CULTURA/MINDSET

Iterativo e incremental: Suas definições

Iterativo e incremental: Suas definições
Iterativo e incremental: Suas definições

O desenvolvimento iterativo e incremental foi criado para solucionar os buracos do nosso querido modelo cascata, apesar de serem palavras (iterativo e incremental) comumente utilizadas no meio ágil, suas definições se confundem ou ficam subentendidas na cabeça de muitas pessoas. Bem, nesse artigo quero defini-las para você através de alguns exemplos bem legais. Então, se você quer aprender a diferença entre eles ou somente fixar a abordagem, fica comigo pelos próximos parágrafos e eu vou te explicar! Me acompanha? 🙂

Desenvolvimento iterativo

Um processo iterativo é aquele que faz progresso através de tentativas sucessivas de refinamento. Por exemplo, uma equipe de desenvolvimento faz sua primeira tentativa para construção de um software, porém, existem pontos de informação falhos ou incompletos em algumas (talvez muitas) partes. A equipe de forma iterativa refina essas partes até que o produto atinja o ônus de satisfatório. Com cada iteração, o software é melhorado através da adição de mais e mais detalhes.

Vamos a outro exemplo, em uma primeira iteração, temos que codificar uma tela de relatórios que suporte apenas o tipo mais simples para exibição. Na segunda iteração, podemos adicionar critérios de pesquisa para ampliar o leque de opções no relatório. Finalmente, em uma terceira iteração, poderíamos adicionar gráficos para explanar visualmente o relatório.

Desenvolvimento incremental

Um processo incremental é aquele em que o software/produto é construído e entregue por pedaços. Cada pedaço ou incremento representa um subconjunto de funcionalidades completas. O incremento pode ser pequeno ou grande, por exemplo, ele pode variar apenas de uma tela de relatórios simples, para um conjunto altamente flexível de telas de gerenciamento de dados. Cada incremento é totalmente codificado e testado, e a expectativa geral é que o trabalho tenha a conclusão mais completa possível.

Métodos ágeis são tanto iterativos, quanto incrementais. São iterativos por que o trabalho realizado é sempre melhorado em ciclos subsequentes. São também incrementais, por que o trabalho planejado é entregue em partes que são adicionadas ao todo do projeto.

Impregnando de vez

Para impregnar de vez as diferenças entre iterativo e incremental, vamos supor a construção de um e-commerce. Consideremos primeiro a forma iterativa e ignoremos a forma incremental. A equipe iria construir um pouco de cada parte do e-commerce, como gerenciador de produtos, consulta de produtos, relatório, checkout, etc. A equipe, então, iria rever todas as partes de novo, fazendo novas melhorias. Dessa forma, temos um processo puramente iterativo, pois todo o e-commerce está ficando cada vez melhor.

Em seguida, consideremos o desenvolvimento do mesmo e-commerce com um processo incremental, mas não iterativo. Se o e-commerce fosse construído de forma incremental, a equipe iria construir o gerenciador de produtos antes de iniciar qualquer outra parte. Eles, então, iriam construir e aperfeiçoar uma segunda parte, que seria a consulta de produtos, antes de passar para a terceira parte. Cada parte teria que estar perfeita, assim a próxima poderia ser iniciada. Processos iterativos e incrementais são fantásticos juntos, mas perdem o sentido se atuarem separadamente.

Gostou? Então deixe seu comentário e compartilhe com seus amigos. :)
Um grande abraço e até a próxima!

Você pode gostar também