Escrever software é como… Escrever!
Bruce Eckel – autor da série de livros “Thinking in Java”, entre outros – escreveu esta semana em seu blog no site Artima Weblogs uma artigo a respeito de analogias ao trabalho de desenvolvimento de software.
Por quê precisamos de analogias? Programadores sabem o que estão fazendo, eles programam computdores! E eles sabem o que isto significa, simplesmente pelo fato de que eles o fazem.
Porém, para os stakeholders – gerentes, presidentes, clientes, parceiros – desenvolvimento de software é um mistério. Eles não estão interessados em saber tudo sobre o assunto, mas querem saber o bastante para fazerem previsões. Precisam então de uma abstração, uma analogia.
Matemática e Engenharia são duas analogias comumente utilizadas. Na primeira tudo pode ser matematicamente provado ou desmentido. Na segunda, o grau de previsibilidade é altíssimo e as técnicas de trabalho são consolidadas e padronizadas. É perfeitamente possível substituir um engenheiro por outro, e ainda assim obter-se resultados similares.
Olhando para tais considerações, identificamos grandes diferenças para os programadores. Mudar um programador significa mudar os resultados.
Segundo Eckel, programadores são – essencialmente – escritores.
Escritores como autores de livros, de novelas, de roteiros. Existem bons e maus escritores, e existem empresas que precisam de ótimos escritores, como também existem aquelas que precisam apenas de escritores, não tão bons assim. E mais, ter um bom escritor não implica na produção de um best-seller.
O que o autor defende, em resumo, é que esta analogia não ajuda a aumentar o grau de previsibilidade de o que fazem os programadores, mas, a exemplo da escrita, que é um trabalho artístico, estranho e difícil de medir, ajuda aos stakeholders a entenderem o quanto tal atividade é imprevisível.
Leia o artigo na íntegra clicando aqui.