(re)Construindo

Você começaria a construir um prédio sem antes ter uma especificação detalhada?

Eu com certeza não me arriscaria. Mas tenho mais uma pergunta: se você pudesse construir um prédio e reconstruir partes dele livremente a custo quase zero, você esperaria uma especificação detalhada para começar a construir?

Eu também não.

Desenvolver software é muito mais parecido com a segunda do que com a primeira situação e é por isso que esta metáfora de construção não pode ser levada muito longe. Ao contrário dos produtos da construção civil, é fácil e barato mudar uma parte ou outra de um sistema mesmo que ele já esteja em produção, é fácil até trocar a ordem dos andares. Claro que é mais barato fazê-lo em fase de desenvolvimento, mas a diferença de custo pode ser controlada e mantida a níveis razoáveis. A principal razão deste baixo custo não é nenhum segredo: software não é construído por pessoas.

Ao invés disso, as pessoas apenas especificam software utilizando coisas chamadas de linguagens de programação. A parte da construção propriamente dita — a montagem a partir de uma especificação — é feita automaticamente por ferramentas como compiladores e interpretadores. No mundo do software, os construtores são coisas como estas e o tempo de trabalho deles é muito mais barato que o dos construtores humanos. Na verdade, pode-se encontrar alguns excelentes a custo zero.

É como se houvesse máquinas distribuídas gratuitamente que fossem capazes de receber um conjunto de plantas e construir rapidamente um prédio ou uma ponte sem nenhuma intervenção humana. Infelizmente, os engenheiros civis não têm essa sorte. Mas seria estupidez se os engenheiros de software não se aproveitassem dela para fazer seus produtos e colocá-los rapidamente à disposição dos clientes.

Ainda bem que eles fazem isso.

Bom, pelo menos alguns fazem.

4 Responses to “(re)Construindo”


  1. 1 X 27/mar/2006 às 06\0620

    lembrando que nem sempre custo quase zero é possível, afinal, acho que você está considerando que as plantas foram muito bem feitas, estão modulares e possuem testes para suportar mudanças… porque não for assim, veremos a curva de custo ir para a estratosfera e voltarmos a época da famosa curva de custo da mudança em software ensinada há 40 anos atrás…

  2. 2 Thiago Arrais 27/mar/2006 às 18\0620

    O importante é ter em mente que se deve diminuir ao máximo este custo, evitando o empilhamento de especificações (onde uma depende da anteriori) ao máximo. O custo de construção propriamente é quase zero, quase independentemente das besteiras que se venha a fazer. O custo de modificação de especificação é que precisa ser controlado. Você citou alguns meios de se fazer isso.


  1. 1 Desmontando « Mergulhando no Caos Trackback em 29/nov/2006 às 12\1247
  2. 2 Fábricas de software - Uma analogia levada longe demais « Mergulhando no Caos Trackback em 25/jul/2007 às 14\0217
Comments are currently closed.




%d blogueiros gostam disto: