08/04/2020 15h53 - Atualizado em 04/10/2021 16h05

Ágil precisa ser os dois: iterativo e incremental

Bom, o guia Scrum nos fala que “O Scrum emprega uma abordagem iterativa e incremental para aperfeiçoar a previsibilidade e o controle de riscos.”, mas o que vem a ser uma abordagem iterativa e incremental.

Muita gente usa estas palavras sem saber a correta definição. O texto abaixo publicado no site do Mike Cohn é um bom referencial para entendermos a diferença dos termos.

Boa leitura!

O texto abaixo foi originalmente publicado no informativo mensal de Mike Cohn. Se você gostar do que você vai ler, faça sua inscrição para ter este conteúdo entregue na sua caixa de entrada antes de ser postado no Blog.

Scrum, como todos os processos ágeis, é iterativo e incremental. Uma vez que estas palavras são usadas com muita frequência e sem definição, vamos defini-las.

O processo iterativo é aquele que progride através de refinamentos sucessivos. A equipe de desenvolvimento apresenta uma parte de um sistema, ciente de que está incompleto ou deficitário em algumas (talvez muitas) partes. A equipe então refina estas partes até o produto apresentar um nível satisfatório. A cada iteração, o software é melhorado através da adição de um maior nível de detalhe.

Por exemplo, numa primeira iteração, uma tela de pesquisa pode ser codificada para suportar apenas o tipo mais simples de pesquisa. A segunda iteração pode adicionar critérios de pesquisa adicional. Finalmente, uma terceira iteração pode adicionar tratamento de erros.

Uma boa analogia, é escultura. Em primeiro lugar, o escultor seleciona uma pedra de tamanho apropriado. Em seguida, escultor vai esculpir a forma geral na pedra. Neste ponto, pode-se talvez distinguir a cabeça e o torso, e discernir que o trabalho final será o de um corpo humano e não de um pássaro. Em seguida, o escultor refina seu trabalho adicionando detalhes. No entanto, o escultor não vai ter nenhuma área completa até todo o trabalho estar completo.

O processo incremental é aquele em que o software é construído e entregue em pedaços. Cada peça, ou incremento representa um subconjunto completo de funcionalidades. O incremento pode ser pequeno ou grande, talvez variando de uma simples tela de login a um conjunto altamente flexível de telas de gerenciamento de dados.

Cada incremento é totalmente codificado e testado, e a expectativa comum é que o trabalho de uma iteração não precisará ser revisitado. Um escultor incremental iria pegar uma parte do trabalho e se concentrar inteiramente sobre ele até que seja concluído. Ele pode selecionar pequenos incrementos (primeiro o nariz, olhos, boca e assim por diante) ou grandes incrementos (cabeça, tronco, pernas e depois os braços). No entanto, independentemente do tamanho do incremento, o escultor incremental tende a terminar esse trabalho completamente.

Scrum e Ágil são tanto incrementais, quanto iterativos. Eles são iterativos quando se planeja o trabalho de uma iteração, para ser melhorado em iterações subsequentes. Eles são incrementais porque o trabalho concluído é entregue ao longo do projeto.

Para melhor ilustrar as diferenças entre iterativo e incremental, vamos considerar a construção de um site de forma iterativa, mas não de forma incremental. Para fazer isso, a equipe iria construir um pouco de cada parte do site – alteração de perfil, busca, anúncios, etc. A equipe, então, vai rever todas as partes, melhorando cada uma delas.

A equipe deve rever todas as partes, aplicando as melhorias, desta forma todo o site está ficando um pouco melhor.

Em seguida, vamos considerar o desenvolvimento do mesmo site com uma abordagem puramente incremental, não um processo iterativo. Se um site de namoro fosse construído de forma incremental, o time iria construir um perfeito sistema de gerenciamento do perfil antes de começar qualquer outra parte do site. Depois, eles então, iriam construir a segunda área – pesquisa – e passariam para a terceira área. Cada área funcional concluída deve ficar perfeita, antes de se iniciar a próxima.

Nem iterativo e nem incremental são bons isoladamente. Mas juntos – como eles estão no Scrum – são fantásticos.

Texto Original: https://www.mountaingoatsoftware.com/blog/agile-needs-to-be-both-iterative-and-incremental

Sobre o autor:

Rodrigo Zambon

Servidor público efetivo no Governo do Estado do Espírito Santo, tendo participado de grandes projetos estruturantes ligados a saneamento e obras públicas. Multiplicador da disciplina Gerenciamento de Projetos e Planejamento Estratégico na Escola de Governo (ESESP), e atua como coach nos diversos órgãos públicos e autarquias.

Tópicos:
scrum
2015 / Desenvolvido pelo PRODEST utilizando o software livre Orchard