Friday, March 24, 2006

(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.

1 Comments:

At 3/27/2006 06:20:00 PM, Blogger Thiago Arrais said...

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.

 

Post a Comment

<< Home