Prática: Desenvolvimento Iterativo
O desenvolvimento iterativo está focado em entregar incrementalmente valor ao cliente durante o projeto de uma maneira previsível. É uma prática diretamente associada aos Princípios Agéis.
Descrição
ObjetivoEntregar incrementalmente funcionalidades do software ao longo do projeto e receber feedback constante e antecipado sobre o produto em desenvolvimento.
Descrição Principal

As iterações mantêm o time focado na entrega de valor incremental ao cliente em um período de semanas. Os incrementos são “pacotes” de funcionalidades totalmente testadas, apresentadas ao cliente e entregues para que ele teste e até mesmo utilize-o tirando proveito o mais cedo possível de seu investimento. O foco aqui é justamente a entrega de valor constante ao cliente. Conforme reconhecido pelos Princípios Agéis, a melhor forma de demonstrar o progresso de um projeto é entregando software funcionando. No tenebroso desenvolvimento em cascata, modelo oposto a prática iterativa, o cliente só tem contato com o software real ao final do projeto e não é de se assustar que ele exclame: “Puxa! Não era nada disso que eu queria!”. Entregar constantemente em um período de 2 a 4 semanas incrementos funcionais permite que os usuários tenham contato antecipadamente com o software em desenvolvimento e apresentem feedback o tempo inteiro, possibilitando correções no curso do projeto.

O planejamento e monitoramento das iterações são centrados em Itens de Trabalho, que podem ser Casos de Uso, Correção de Erros ou Implementação de Mudanças. As iterações são compostas com base nas prioridades e relacionamentos entre os Itens de Trabalho. Quanto mais prioritário o Item de Trabalho para o cliente mais cedo ele deve ser desenvolvido.

Assim como um projeto, as iterações têm seu próprio ciclo de vida. A Adok utiliza iterações tipicamente de 3 semanas. A iteração começa com o planejamento. O Gerente do Projeto deve fazer um planejamento preliminar que será necessariamente revisado e validado com a equipe.  O time deve confirmar e se comprometer com os Itens de Trabalho selecionados após uma explicação detalhada de cada um deles por parte de um Analista de Negócio envolvido. Além de entender os itens a serem desenvolvidos e a dependência lógica entre eles, a equipe deve validar a estimativa de esforços bem como os responsáveis por cada um deles. Após validar o plano da iteração também com o cliente, alinhando as expectativas e comprometimentos, desenvolvedores e analistas de testes começam a trabalhar na construção do build, enquanto os analistas de testes trabalham no refinamento dos itens de trabalho candidatos a compor a próxima iteração. A última semana tipicamente tem uma ênfase mais forte em “polir” e corrigir possíveis erros detectados e em aberto. Após o fechamento da implementação, um build é gerado e integrado ao ambiente de homologação. A iteração termina com uma apresentação dos resultados para o cliente e com uma reunião de fechamento do time em que se faz uma retrospectiva do que foi feito e quais as lições aprendidas que podem melhorar o processo na próxima iteração.