Qual é o segredo do desenvolvimento de software de sucesso?

communication-importanceSe alguém te perguntasse qual é o segredo do desenvolvimento de software de sucesso? Qual seria o ponto chave para que a coisa realmente funcione? Já fiz essa pergunta para alguns especialistas e cada um puxou a coisa para seu lado: o DBA falou que o mais importante é o banco de dados, o arquiteto falou que o mais importante é blue-print da arquitetura, o gestor já falou que o mais importante é plano do projeto e o programador já defendeu o Java, afirmando que é uma boa plataforma.

Infelizmente nenhum deles acertou. Para desenvolver um software, realmente são necessários toda “parafernálias” chamadas de infraestrutura. Um bom banco de dados, uma boa arquitetura, um plano de gestão coerente e adaptativo e uma ótima plataforma como Java, .NET ou PHP. Mas o segredo não esta neles.

Você pode ter a melhor infraestrutura do planeta e os melhores profissionais nelas, mas se for construindo o software fora da expectativa, nada disso vai resolver.

O segredo esta na colaboração!

Colaboração se divide resumidamente em 3 itens:

Comunicação

Como o cliente interage e repassa as informações das suas necessidades para a equipe de desenvolvimento vai afetar tudo.
Como o cliente interage e repassa as mudanças das necessidades para equipe de desenvolvimento vai afetar tudo.

Feedback

Como a equipe de desenvolvimento interage e repassa o entendimento do precisa ser feito para o cliente vai afetar tudo.
Como a equipe de desenvolvimento interage e repassa os riscos técnicos acerca daquilo que precisa ser feito vai afetar tudo.

Expectativas

Como as mudanças de necessidades, negócios e tecnológicas são esclarecidas e alinhadas entre o cliente e a equipe de desenvolvimento vai afetar tudo.

“Um bom software não se origina de ferramentas CASE, programação visual, prototipagem rápida, uso de tal plataforma ou tecnologia de objetos. Um bom software é resultados de pessoas. Assim como é o caso de software ruins (…) já que software é criado por pessoas e usado por pessoas, uma melhor compreensão das pessoas, como colaboram, como trabalham em conjunto é a base para melhorar o desenvolvimento de software. (Tradução Nossa)”

Livro The Peopleware papers: notes of human side of software. Larry Constantine.

“Ensina-me a fazer a tua vontade, pois tu és o meu Deus; guie-me o teu bom Espírito por terreno plano.” Salmos 143:10