Produtividade pra programadores

Algumas semanas atrás o Diego (Tableless) Eis me encaminhou uma cópia do documento sobre Produtividade que o Élcio Ferreira escreveu, onde ele fala sobre montagem de bicicletas, construção de software e qualidade de código.

Veja bem: Eu recebi o documento, de graça, pra escrever sobre ele aqui no blog, não recebi dinheiro e não alterei minha opinião só porque recebi de graça, cada palavra que você lê aqui é sincera e não pode ser comprada. Se você está incomodado com essa atitude, pare de ler o post agora e me xingue por email. É bom que eu saiba quantos leitores meus condenam este tipo de prática.

Ele fala um bocado de coisas que eu, Marco Gomes, já sei, como conceitos da Web 2.0, Padrões Web, AJAX e JSON, isso é praticamente metade do documento. É bom pra introduzir o assunto a quem está completamente fora desde mundo ou nunca trabalhou com conceitos mais modernos da Web.

O que mais valeu a pena, na minha experiência de leitura, foram os capítulos sobre Programação Pragmática, Não Repita a si Mesmo (DRY), Ortogonalidade (Desacoplamento) Tracer Code, Desenvolvimento Orientado a Testes (TDD) e Controle de Versão.

Programação Pragmática[bb] é um conceito/filosofia/mentalidade/religião que vem me conquistando cada vez mais nos últimos dias. Nas palavras do Élcio:

O programador pragmático é, antes de tudo, um inconformado e um otimista. Ele não consegue repetir dezenas de vezes a mesma tarefa sem se perguntar se há uma maneira melhor. Ao mesmo tempo, ele acredita que há maneiras melhores, e que ele pode desenvolver uma.

[…]

O programador pragmático não se contenta em conhecer uma solução, uma linguagem e um jeito de aprender a fazer as coisas.

[…]

Outra atitude do programador pragmático é a responsabilidade. Ele não se contenta em sentar-se em seu cubículo e esperar por tarefas de programação, mas entende que é parte do seu trabalho envolver-se em todo o processo de desenvolvimento.

Significa que ele nunca vai dizer coisas como:

_ Não fiz backup do código, isso é responsabilidade do departamento de infra-estrutura. (Não importa de quem é a culpa, você vai ter que fazer de novo.)

_ Eu imaginei que isso não ia funcionar, mas o cliente quis assim. Ele assinou uma aprovação para o desenvolvimento disso. (Você viu o problema e não disse nada?)

_ O framework que nós compramos não fala com as versões antigas do nosso banco de dados. (Sim, e?)

Isso é só uma pequena amostra, se você se interessou por este pequeno pedaço, compre o PDF completo.

Estes conceitos de programação pragmática e produtividade já foram usados em meu mais novo projeto, a integração boo-box + WeShow, que ainda não foi publicada mas vai entrar no ar em breve. Veja no blog boo-dojo como eu conduzi a implementação da parte client-side do projeto.

Além disso, eu também já escrevi sobre produtividade pra instruir uma equipe que eu coordenava no meu emprego anterior, é um documento bem antigo, mas que contém muita coisa boa.

Saiba mais sobre programação pragmática