Por que desenvolver iterativamente?

Se o processo de desenvolvimento fosse um filme, o modelo iterativo ganharia prêmio de melhor prática


A qualidade do time de desenvolvimento pode determinar o sucesso ou o fracasso de um software. Sim, isso é muito verdade. Mas também é fato que um projeto pode nunca chegar a ser um software se o processo de desenvolvimento não for bem definido.

Se seu produto fosse um filme, o processo de desenvolvimento seria o script. Afinal, ele é o responsável por guiar o time e mostrar o papel que cada um deve desempenhar. E se eu tenho um script bem elaborado e trabalho com o melhor elenco, as chances de o meu filme ser um sucesso de bilheteria são bem maiores, não é mesmo?

Quando se fala em modelos de desenvolvimento, o waterfall — ou modelo cascata — ainda é o mais abordado. A maioria das vezes para criticar, muito raramente para citar como exemplo de boa prática e menos ainda para tecer elogios emocionados.

Ciclo de vida do Modelo Cascata

Depois que as metodologias ágeis viraram tendência, o método cascata ficou tão ultrapassado quanto as fitas K7.

Os motivos não são poucos, mas vamos nos ater ao principal: quando utilizamos o modelo cascata e ocorrem falhas nas etapas iniciais ou intermediárias do processo, esses erros são replicados e ampliados para as fases seguintes. E quando isso acontece, nem Penélope Cruz como protagonista consegue desviar a atenção do estrago.

Além disso, seguir o modelo cascata significa demorar para validar uma aplicação com o cliente, demorar para receber feedback e demorar para descobrir se o que foi entregue atende ou não as necessidades do cliente. Esse conjunto de fatores pode levar esforços e horas de trabalho direto para o lixo.

Por isso, quem adotou o desenvolvimento iterativo e incremental como processo enche a boca para contar vantagem. Este tipo de desenvolvimento é bastante utilizado em metodologias ágeis.

Por que o modelo iterativo merece o Oscar?

O desenvolvimento iterativo existe há mais de 14 anos e é uma das bases do Manifesto para Desenvolvimento Ágil de Software.

A gente já destrinchou os valores do Manifesto Ágil e abordou que é o documento, de onde veio e o que você tem a ver com isso. Mas vale repetir que o manifesto criou um novo jeito de entender os projetos que lidam com imprevisibilidade e garantiu o maior envolvimento das pessoas que definem como será o software a ser desenvolvido.

Enxergar essa evolução fica mais fácil quando analisamos modelos mais ultrapassados.

Enquanto o modelo cascata é visto como um projeto sequencial, com começo, meio e fim, no desenvolvimento iterativo e incremental o ciclo “requisitos — desenvolvimento — testes — implantação” é reduzido ao menor tamanho possível e repetido várias vezes com entregas pequenas de software. Essa repetição cíclica e contínua é chamada de iteração. E os pequenos pedaços entregues a cada ciclo são os incrementos.

Ciclo de vida do Desenvolvimento Iterativo

Na prática, cada iteração deve entregar uma parte funcional do software, que passará por todas as etapas de desenvolvimento, desde a elaboração dos requisitos até a implantação. Como a cada incremento é possível gerar uma versão praticável do software para o cliente, fica mais fácil e mais rápido obter feedbacks constantes.

Além disso, esse modelo de desenvolvimento permite o conserto de falhas mais rapidamente e incentiva o aperfeiçoamento dos ciclos seguintes, tomando como referência os aprendizados e feedbacks recebidos nos ciclos anteriores. Só este parágrafo já seria o suficiente para mostrar que o desenvolvimento iterativo merece o prêmio de melhor ator.

Mas, como dizem por aí, uma imagem fala mais do que mil palavras. Duas imagens, então, são capazes de resumir este texto inteiro sem muito esforço.

O consultor e desenvolvedor de software, Jeff Patton, fez uma analogia com o processo de pintar um quadro para explicar a diferença entre o modelo cascata e o desenvolvimento iterativo.

Modelo Cascata
Desenvolvimento Iterativo

Qual desses modelos você acha que flui de forma mais natural?

Quanto mais você se aprofunda nos métodos ágeis, mais o modelo cascata se parece com aqueles filmes de época que duram três horas e, apesar de seguir o script, não fazem sentido.

Antes de dar tchau, vale esclarecer uma dúvida recorrente…

Iteração não é interação

Se eu falar “desenvolvimento interativo de software”, está correto? Não. Apesar de serem palavras parecidas, seus significados são completamente diferentes. Quando falamos em interação, nos referimos a uma espécie de relacionamento, de comunicação entre pessoas e pessoas ou entre pessoas e máquinas.


Gostou do texto? Que tal recomendá-lo? Você também pode seguir a gente no Facebook e no Twitter e ficar por dentro das nossas atualizações semanais. (:
Show your support

Clapping shows how much you appreciated Aerochimps’s story.