Em dezembro de 2002, Richard Gabriel, um grande nome da Computação e ex-engenheiro da Sun, falou sobre a semelhança entre programar computadores e escrever poesias. Como é possível que essas duas atividades, aparentemente pertencentes a áreas tão distintas, tenham coisas em comum?
O atividade de escrever software deve ser vista como uma atividade criativa. Afinal, software interessante de se fazer é software que nunca foi feito. Essa atividade não pode ser comparada à de criar pontes, por exemplo. Nós construímos pontes há mais de 2000 anos. O software mais antigo não deve ter mais de 50 anos! Mesmo utilizando boas ferramentas, um programador está quase sempre criando uma coisa nova. Se olharmos para o código de vários programadores, veremos o mesmo problema resolvido de várias maneiras diferentes. Existem programas bem e mal escritos. Por ser uma atividade totalmente criativa, programadores deveriam ser treinados como pessoas criativas, artistas e poetas.
E como os poetas são treinados? Eles estudam grandes obras e a vida de grandes poetas! Isso é feito com software? Olhamos para grandes pedaços de código? De maneira geral, a grande literatura de software não é consultada pelos engenheiros.
Para que um poema fique realmente bom, ele normalmente passa pela revisão de várias pessoas. Depois de escrito, normalmente alguém o revisa. O poeta faz então algumas alterações. Uma outra pessoa revisa. Depois vai para a editora. Nova revisão. Nós fazemos isso com software? Nas metodologias ágeis, o processo de criação de software se tornou muito mais interativo: cria-se uma parte do software; o cliente revisa; o software é melhorado; o cliente revisa novamente. É obvio que não podemos planejar todo o software antecipadamente. Se pudéssemos, não haveria a necessidade de lançarmos várias versões!
Dizem que você sabe reconhecer um grande poeta pelo tamanho de sua obra. Isso significa que quanto mais se escreve, mais experiência se obtém e melhores vão ficando os escritos. Quantos poemas possui um grande poeta? 1000? 2000? Quantos softwares você escreveu? 50? 100?
A idéia principal é que para escrever bom software precisamos:
- Consultar uma boa literatura
- Praticar muito
- Ter pessoas criticando o que escrevemos
Se procurarmos na Amazon livros de “aprenda em 21 dias”, a maioria deles será sobre computação. Escrever software é uma arte! Leva-se no mínimo 10 anos para ficar bom nisso. As pessoas teimam em acreditar que programar é umas atividade fácil e complementar, quando na verdade é uma atividade central, difícil, humana e sociológica.