O método Waterfall certamente é viável e é tão filosoficamente correto quanto qualquer outra abordagem. Lembre-se de que o Waterfall existe há muito mais tempo que o Agile, mas observe que este não é um argumento para afirmar se uma metodologia é melhor que a outra.
Você usa o método Waterfall quando tem um entendimento muito claro sobre todo o domínio do problema e o que o cliente deseja obter em um pacote de software. Você provavelmente citou um preço fixo ao assinar o contrato e seu cliente entende que eles não podem se desviar de nenhum dos requisitos acordados. Seu processo é estritamente aquele que flui através de uma série de aprovações entre os vários estágios de desenvolvimento, e geralmente é o caso de cada estágio ser concluído por uma equipe diferente - às vezes até uma empresa diferente - cada uma das quais não necessariamente contato com os outros. Você costuma ver o Waterfall aplicado com bons resultados em projetos militares e governamentais quando são oferecidos a empreiteiros externos. O ponto em que o Waterfall e outras abordagens semelhantes têm má reputação é quando os desenvolvedores encontram problemas, tais como estimativas precárias, cronogramas planejados sem tempo de contingência ou um entendimento insuficiente ou incompleto do domínio do problema. A questão nunca é verdadeiramente uma falha da metodologia, mas na sua aplicação.
A comparação entre o Agile e qualquer metodologia é falsa. Agile não é uma metodologia, é uma filosofia, ou talvez seja melhor dizer que é um termo genérico que representa uma maneira diferente de ver como você desenvolve o software. Uma metodologia é apenas uma ferramenta e, como tal, seu valor sempre será menor do que os indivíduos e as interações que estão no centro do que significa ser ágil .
Alguém realmente acha que minimizar a mudança de software é uma opção viável para aqueles que desejam oferecer software valioso?
Toda oportunidade de minimizar as mudanças é valiosa para o desenvolvedor e o cliente. As alterações podem fazer com que uma agenda caia ou que os recursos sejam deixados de fora para atender a uma agenda. É como você gerencia os efeitos das mudanças que afetam o valor de seus projetos.
Ou é realmente a pergunta sobre que tipo de práticas funcionam melhor em nossas situações para gerenciar a mudança inevitável?
Suas práticas podem ajudar no gerenciamento de mudanças ou podem ignorar completamente as mudanças. O que importa é a combinação de suas práticas de desenvolvimento e o gerenciamento de seu relacionamento com seus clientes, e se essas coisas funcionam juntas de maneira eficaz para todas as partes envolvidas.
Aqueles de nós que são para todos os fins e objetivos Agile entendem que você escolhe um método que funciona para você. Se você gosta de uma abordagem específica, siga-a. Se não atender às suas necessidades, altere-o. A maneira como você desenvolve o software realmente se resume a tentar fazer o melhor uso dos recursos que você tem em mãos e a minimizar as práticas que podem levar seu projeto ao fracasso. projeto em questão.
É realmente uma coisa a dizer "Ok, então agora somos Agile", e totalmente outra para realmente viver e trabalhar pela filosofia que é Agile. Se você usa Cachoeira, Incremental, Espiral, SCRUM, XP, FDD ou qualquer outro método, você é basicamente Agile onde valoriza:
- Indivíduos e interações sobre processos e ferramentas
- Software que trabalha sobre uma documentação completa
- Colaboração do cliente sobre negociação de contrato
- Respondendo a mudanças após seguir um plano
e onde você reúne suas ferramentas, método e sua experiência para aplicar esses valores com sucesso.