12 agosto 2010

A Construção Civil é que busca uma metáfora com desenvolvimento de software

O meu amigo Rodrigo Machado da OnCast escreveu um artigo muito interessante discutindo como podemos trabalhar a metáfora batida ente o desenvolvimento de software e a construção civil.

Esta metáfora da construção civil comparando com software é usada a muito tempo e acho que hoje todo mundo já suspeita que a relação não é muito clara.

Uma forma de aproveitar a metáfora na linha que o Rodrigo trabalhou, levando a construção do software a ser comparada com construção apenas do projeto é uma forma de melhorar esta comparação, mas ainda acredito que a questão ainda fica mal posicionada, pois o resultado tangível de um projeto é apenas um papel, e o software bem desenvolvido é uma aplicação funcional que altera o nosso mundo ao redor.

Eu diria na realidade que a construção civil como conhecemos hoje é uma péssima referência para comparação, pois a mesma está em crise justamente por tentar se basear num ideal de fixar antecipadamente num projeto algo que não se pode prever sem custos absurdos, como a qualidade do terreno ou a definição final de como o espaço criado vai ser utilizado, além de provocar quantidades gigantes de retrabalho para poder mudar depois de pronto uma especificação "escrita numa pedra".

O sucesso do uso dos conceitos lean baseado em fluxo em vez do modelo de transformação em várias atividades humanas está provocando uma revolução também na construção civil. Estes conceitos caminharam da produção enxuta inicialmente aplicada no Japão para construir carros de baixo custo e alta qualidade e progrediram para vários segmentos, e em especial o desenvolvimento de software.

Esta evolução não era esperada nem mesmo pela Toyota, pois a mesma até a pouco ainda usava o modelo de transformação para sua área de desenvolvimento de produto.

A comunidade Ágil, que estava experimentando as técnicas XP, SCRUM e uma série de outras menos conhecidas começaram a reparar que as técnicas que estavam sendo criadas tinham relação muito forte com os conceitos lean, permitindo o casamento, cruzamento e transformação, fortalecendo o paradigma de fluxo de valor no software.

Agora o desenvolvimento de software passou a ser referência, e podemos encontrar até na construção civil uma revolução acontecendo: o Lean Construction.

Então acho que podemos dizer com orgulho que, na realidade, a construção civil é que tem que usar o desenvolvimento de software ágil como metáfora. A construção civil precisa tanto como o software:
  • aceitar mudança de especificação do cliente, mesmo que cinco pavimentos já tenham sido construidos;
  • focar no aprendizado durante o processo, nem que seja por protótipos;
  • não perder tempo demais com projetos superdetalhados, que logo serão invalidados na prática da construção;
  • reduzir a quantidade absurda de retrabalho, usando o valor para o cliente como principal métrica do progresso;
  • adiar o máximo possível decisões de custo de retrabalho alto;
  • implantar projetos de escopo variável.
Entretanto, se o desenvolvimento de software que é relativamente recente na história humana tem dificuldade de usar o paradigma lean, imagina quanto vai custar para a construção civil desenvolver isso.