5
respostas

O Waterfall é um modelo concebido para ser engessado

A minha expertize de Planejamento e Gestao vem da Construção Civil, que utiliza o modelo Waterfall "raiz".

Então, na minha visão, esse modelo na Engenharia de software não funciona porque é uma "gambiarra", uma adaptação de um modelo de desenvolvimento aplicado nas outras Engenharias para produtos que se comportam de um modo completamente diferente em seu processo de desenvolvimento, em comparação a um software.

Na construção de uma casa, os requisitos do produto final estão definidos claramente nas primeiras etapas (elaboração dos desenhos, etc), porque seu MVP é quase 90% do produto final (uma casa sem paredes, teto, portas, instalações elétricas e hidráulicas não é funcional, mas sem reboco na parede ou pisos, pode ser habitada). Logo, é premissa do andamento do processo a impossibilidade de alterações significativas, porque o custo do retrabalho as inviabiliza exponencialmente a cada fase (sem falar das questões burocráticas).

O cenário para engenharia de software é muito diferente disso: mesmo com enorme clareza nos requisitos, eles não engessam o produto final, e permitem um MVP muito mais simples de ser alcançado, e um processo que não tem tantas restrições a influências ao longo das etapas sem inviabilizar o produto.

Tudo isso demanda um modelo de desenvolvimento que seja flexível, para se adaptar a esse cenário.

Meu entendimento está correto?

5 respostas

Uma casa, no final, vai sempre ser uma casa. Um software vem de uma ideia, necessidade, abstrata para resolver um problema que apenas achamos que temos a solução. A tecnologia de software também avança muito mais rápido do que a construção civil. Em poucas décadas saímos do desktop, passamos para a WEB e agora somos mobile. Não poucas vezes o início de um projeto de software começa com uma solução e acaba em outra.

Por isso disse que o Waterfall é um método para desenvolvimento de um tipo diferente de produto.

Ainda vejo como aplicável para a Engenharia de Software, mas em projetos com o "time to market" mais longo , com maior necessidade de gerenciamento de riscos e, por causa disso, com um "time to market" muito maior, ele se aplica perfeitamente.

Mas no desenvolvimento de um app, por exemplo, ele não consegue atender a essa velocidade de mudança.

Ah... uma discussão aqui me mostrou um ponto que acho relevante : falei da aplicação do metodo waterfall em projetos com fases pré-definidas, onde a premissa básica é não haver mudanças substanciais.

Para o desenvolvimento de software, o ambiente é caótico - insatisfação do cliente, evolução de tecnologias, tempo de mercado.... Não sei se minha visão está errada, mas enquanto o Waterfall incorpora os riscos na sua fase de planejamento ( o que agrega mais tempo para no desenvolvimento e produção) , o método Ágil gerencia o RISCO de mudança, diminuindo os prazos...

Apesar de sempre estudarmos o Waterfall como metodologia tradicional, e Scrum como metodologia moderna temos algumas alternativas no meio disso. O Processo Unificado é uma metodologia entre WF e Scrum, onde a cascata tradicional existe, mas ela é feita para cada caso de uso. Como se fossem mini-cascatas para cada funcionalidade, o que lembra muito a Sprint e as Histórias de Usuários.

Ou seja, para cada projeto, uma metodologia se aplica melhor, ou o intercambio entre metologias, conforme as etapas, correto ?