16. 08.
A natureza maleável do software muitas vezes traz a sensação de que ele pode ser produzido quase que instantaneamente. Embora esse sentimento seja justificável, escrever software de qualidade, para durar o tempo necessário para agregar valor para seus usuários, leva tempo. Às vezes mais do que todas as partes interessadas desejariam.
Independente de qual seja a definição de pronto da equipe de desenvolvimento, a construção de cada parte do software deve demorar o tempo suficiente para satisfazê-la. Um determinado time de desenvolvimento, por exemplo, poderia adotar a seguinte convenção para considerar que uma funcionalidade está pronta:
- Testes unitários e de integração realizados
- Deploy em servidor de demonstração/homologação
- Funcionalidade pronta para testes de aceitação
Mesmo com poucos itens, a lista acima requer uma boa dose de esforço para se alcançar. Na verdade, em muitos casos é comum aceitar como “pronta” uma funcionalidade que acabou de ser codificada. Tal prática é nociva para qualquer processo de desenvolvimento, uma vez que, além de comprometer a qualidade do produto, impossibilita a correta medição de esforço e prejudica as estimativas para projetos futuros.
Os métodos ágeis prevêem algumas práticas e princípios para disciplinar esse aspecto do desenvolvimento. Ao definir iterações curtas, na verdade estamos tentando garantir que o escopo para a iteração seja cuidadosamente escolhido, de modo a forçar a decomposição em atividades atômicas o suficiente garantir que cada uma seja executada por completo. Ao trazer o cliente para perto da equipe, facilitamos sua compreensão de que é importante que todos os passos previstos para completar uma funcionalidade sejam realizados na íntegra.
Ou seja, o produto estará pronto quando estiver pronto.
Os textos e livros a seguir discorrem com mais detalhes sobre o assunto:
- Building a definition of done
- Cuidando para o que o software não apodreça
- Scrum and XP from the trenches
- The Pragmatic Programmer
Leia também
Tags: agile, desenvolvimento, peopleware, scrum, software
Rodrigo Amaral
September 6th, 2008 at 19:51
Fala Rodrigo,
Achei tanto o artigo quanto o blog muito legais, ótimos temas e muito bem apresentados.
Abraço.