Design Incremental

O design de uma aplicação surge de forma iterativa e incremental em projetos . O objetivo é criar a solução mais simples possível que seja suficiente para implementar as funcionalidades de cada iteração. Qualquer característica que possa ser implementada para dar apoio a funcionalidades futuras, só são codificadas de fato se e quando tais funcionalidades forem priorizadas para uma iteração futura. Assim, busca-se concentrar os esforços da equipe naquilo que se tem certeza absoluta de que será necessário hoje, por já ter sido priorizado pelo cliente para a iteração corrente. Aquilo que poderia ser útil no futuro, deixamos para resolver no futuro, quando houver certeza da necessidade.

Isso levanta a preocupação de que não sejamos capazes de solucionar problemas futuros com rapidez. Entretanto, as demais práticas do ajudam a equipe a ter agilidade e segurança, de modo que ela possa esperar o futuro chegar sem se comprometer com ele cedo demais. Além disso, a prática regular de tentar se antecipar ao futuro não parece ser das mais adequadas quando se observa os padrões da indústria em que 64% de funcionalidades de um sistema comercial tipicamente não são utilizadas.

Autoria

Texto de Vinícius Manhães Teles.
Ilustrações de Leandro Mello.

Publicado em 02/10/2006.

Licenciado como Creative Commons Atribuição.