Humanismo
Pessoas desenvolvem software. Metodologias e ferramentas apenas as ajudam a realizar o trabalho. Portanto, é importante compreender a natureza humana para que possamos potencializar o que ela tem de melhor e suprimir o que tem de pior. Em particular, devemos compreender os programadores para que possamos nos aliar a favor e não contra seus instintos.
Desenvolvedores de software, assim como designers, artistas, engenheiros e cientistas, lidam com um trabalho que demanda profunda concentração. Programar é uma atividade complexa, que envolve técnicas conhecidas, experimentação, criatividade, feedback e aprimoramento. Infelizmente, muitas propostas para melhorar o desenvolvimento de software ignoram a natureza humana. Algumas, por exemplo, sugerem que programadores escrevam longos documentos antes de implementar qualquer funcionalidade.
Programadores gostam de programar e é o que fazem de melhor. Por que forçá-los a escrever documentos, quando não é isso de que gostam, nem é o que sabem fazer de melhor? Não quer dizer que documentação não seja importante ou não deva ser feita. Significa apenas que existem outras formas alternativas de se alcançar o mesmo resultado, porém respeitando a natureza dos desenvolvedores.
Existem alguns fatores que afetam diretamente a qualidade do trabalho de um desenvolvedor:
- Segurança básica - não passar fome, nem sofrer ferimentos (físicos ou psíquicos), nem ver seus entes amados serem ameaçados. Esse princípio é colocado em risco, por exemplo, quando vive-se em uma cultura impregnada pelo medo de demissões.
- Realização - a oportunidade e habilidade de contribuir com a sociedade.
- Participação - a habilidade de se identificar com um grupo do qual se possa receber validação e responsabilidade e com o qual se possa contribuir para alcançar objetivos em comum.
- Crescimento - a oportunidade de expandir suas habilidades e pontos de vista.
- Intimidade - a habilidade de compreender e ser compreendido profundamente por outros.
- Orgulho - a possibilidade de fazer um trabalho de alta qualidade, do qual se possa obter orgulho.
XP coloca as pessoas no centro do esforço de desenvolvimento e suas práticas são voltadas para potencializar o melhor que podem oferecer, bem como suprimir suas falhas. O problema da documentação, por exemplo, é um problema de comunicação. Programação em par permite que os desenvolvedores trabalhem juntos e conversem continuamente sobre o que estão fazendo, o que ajuda a disseminar conhecimento e reduz a necessidade de documentação dentro da equipe. Escrever testes automatizados é um meio de documentar o sistema através de exemplos de uso, além de ser uma atividade de programação, portanto, melhor relacionada ao que os programadores gostam de fazer. Outras práticas como o planejamento do ciclo semanal, reunião em pé, uso de um ambiente informativo, ajudam a resolver o problema da comunicação sem impor aos desenvolvedores a necessidade de escrever extensos documentos.
Autoria
Texto de Vinícius Manhães Teles.
Ilustrações de Leandro Mello.
Publicado em 02/10/2006.
Licenciado como Creative Commons Atribuição.