Na minha experiência, parece que o modelo Waterfall provou ser muito inflexível e não responde às alterações de requisitos para ser considerado um método viável no mundo moderno do desenvolvimento de software. O crescimento e o histórico comprovado de métodos iterativos mais ágeis parecem indicar que não há razão para que alguém deva seguir um processo de blocos rígidos que pressupõe pouca ou nenhuma alteração desde o início do projeto até a entrega do produto.
A metodologia de desenvolvimento em cascata ainda é viável para o fornecimento de sistemas de software, com relação ao tempo, custo e qualidade?
development-methodologies
waterfall
CFL_Jeff
fonte
fonte
Respostas:
O modelo em cascata ao qual você está se referindo nunca teve a intenção de ser um modelo de processo usado em um projeto real. Em vez disso, é um palhaço. Ele identifica as principais fases e atividades que existem nos projetos de software e o fluxo mais básico entre eles. Essa simplificação excessiva de como desenvolver software é falha e foi apresentada dessa maneira.
Do artigo da Wikipedia:
O artigo discutido é intitulado Gerenciando o desenvolvimento de grandes sistemas de software . Nele, Royce apresenta esse modelo na segunda página. No entanto, o texto imediatamente abaixo da representação pictórica passa a ler:
Ele segue isso com uma discussão dos problemas com os testes após a "conclusão" da fase de desenvolvimento, e como as falhas aqui podem levar a grandes reprojetos e alterações de código, e como elas podem levar a grandes excedentes de custo e cronograma. Ao longo do artigo, ele refina o modelo original para um que seja realmente viável em um projeto. No final, ele acaba com um modelo que introduz prototipagem, interação com o cliente e refinamento de artefatos - idéias que acabariam sendo críticas para o movimento ágil que começou no final dos anos 90 e no início dos anos 2000.
Para responder à sua pergunta: A Cachoeira que você está perguntando não é, e nunca foi, um método viável para entregar projetos de software com uma quantidade razoável de qualidade no prazo e no orçamento. No entanto, existem outras metodologias orientadas a planos que se opõem ao ágil que podem e funcionam nos projetos.
fonte
other plan-driven methodologies that lie opposite of agile that can and do work on project
?As pessoas não usam o modelo de cascata de livro-texto e provavelmente nunca o fizeram.
É uma construção teórica idealizada, cujo objetivo é fazer com que você pense nas etapas do desenvolvimento de sistemas. O ponto principal é que você deseja que as maiores mudanças ocorram o mais cedo possível, porque você nunca terá tempo ou dinheiro para fazer uma grande mudança, uma vez que há muito código construído.
Apesar de ser mais uma maneira de pensar do que um processo, ainda é muito assim que muitas - provavelmente a maioria das organizações desenvolvem software (ou casas, submarinos ou qualquer outra coisa ...).
No mundo real, você não tem interrupções totalmente estritas entre as fases e, às vezes, volta às fases anteriores para pequenos subprojetos. O que a metodologia diz não é que "essas coisas não são permitidas". O que ele diz é "essas coisas custam dinheiro e / ou tempo" - então tente evitar isso no futuro.
Está tudo bem para o Agile Snobs (TM) desprezar os desenvolvedores "antiquados" e sua singular e impraticável metodologia em cascata, mas o fato é que o Agile também não é uma panacéia. Alguns projetos não podem ser construídos usando o Agile e muitas equipes que pensam que são Agile são na verdade apenas desleixadas e desorganizadas.
A metodologia não é o ponto. O objetivo é pensar no que você está fazendo e por que está fazendo dessa maneira - e obter o maior valor possível para o cliente no menor tempo possível.
fonte
O mítico processo em cascata que é mais frequentemente comparado ao ágil nunca existiu e, portanto, não pode ser considerado morto. Os processos reais em cascata ainda estão vivos e bem, e são excelentes para entregar dentro do prazo o software que atende às expectativas do usuário.
fonte
Talvez uma maneira melhor de perguntar no que você está falando é: "quando é menos iterativo e mais formal, melhor?"
Existem situações em que este é o caso:
Quando os requisitos não mudarem.
Atender a novos requisitos é menos importante do que atingir 100% dos originais.
Quando todos os componentes da tecnologia estão maduros e bem compreendidos.
Em certo sentido, você pode tomar o oposto do que pode levá-lo a ser ágil.
Muito poucas técnicas são aplicáveis em todos os lugares. Muito poucos não têm utilidade.
fonte
Sim, ele está muito vivo, embora hoje seja o " modelo V " mais comum usado.
Nos dois casos, o problema do Agile é que a solução quase nunca termina, o cliente pode continuar solicitando alterações e o desenvolvimento continuará a resolvê-las iterativamente. Para um projeto que se baseia no tempo e no custo dos materiais, isso funciona muito bem. Para um projeto que tem um custo fixo, isso não acontece.
Para esses projetos de custo fixo, o cliente quase sempre espera que marcos pré-definidos demonstrem progresso; no entanto, esses são mais da variedade formal escrita, em vez do código funcional. Para clientes como esse, as especificações escritas se tornam o projeto, onde o desenvolvimento do software é uma consideração secundária (como eles assumem, se você tiver um projeto bem definido, o software deve ser fácil de desenvolver). Essas empresas também são as que fazem uso pesado de recursos de desenvolvimento baratos e terceirizados.
Portanto, se você tiver um pote fixo de dinheiro ou tempo, não espere que os requisitos mudem ou não tenha permissão para alterar nenhum requisito e que forneça um conjunto forte de documentação escrita, os modelos em cascata são os únicos que faz sentido.
O Agile pode ser introduzido no meio desses projetos para o desenvolvimento, mas você ainda tem uma fase de aceleração em que as especificações são criadas a partir dos requisitos e uma fase de aceleração em que o software é instalado e testado in situ. O Agile não responde bem a esses casos.
fonte
Para quem? A maioria dos gerentes com quem eu lidei ainda usa o Processo de Desenvolvimento de Software Waterfall para agendamento, e os níveis superiores parecem gostar dele por facilitar o agendamento.
Praticamente, poucos desenvolvedores que conheço acreditam que funcionam ou são válidos.
fonte