La méthode des chutes d’eau est certainement viable et est aussi philosophiquement valable que toute autre approche. N'oubliez pas que Waterfall existe depuis beaucoup plus longtemps qu'Agile, mais notez qu'il ne s'agit pas d'un argument pour affirmer qu'une méthodologie est meilleure qu'une autre.
Vous utilisez la méthode Waterfall lorsque vous comprenez très bien le domaine du problème et ce que le client souhaite obtenir dans un progiciel. Vous avez probablement indiqué un prix fixe lors de la prise du contrat, et votre client comprend qu'il ne peut pas déroger aux exigences convenues. Votre processus est strictement un processus qui passe par une série d’approbations entre les différentes étapes du développement, et il est fréquent que chaque étape soit complétée par une équipe différente - parfois même une entreprise différente contact avec les autres. Vous voyez souvent que Waterfall est appliquée à bon escient dans les projets militaires et gouvernementaux lorsqu'ils sont confiés à des entrepreneurs extérieurs. Lorsque Waterfall et d’autres approches similaires ont mauvaise réputation, c’est lorsque les développeurs rencontrent des problèmes, comme une mauvaise estimation, des calendriers planifiés sans temps de réserve ou une compréhension médiocre ou incomplète du domaine problématique. La question n’est jamais vraiment une faute de la méthodologie, mais dans l’application de celle-ci.
La comparaison entre Agile et toute méthodologie est fausse. Agile n'est pas une méthodologie, c'est une philosophie, ou peut-être serait-il préférable de dire que c'est un terme générique qui représente une manière différente de voir comment vous allez développer un logiciel. Une méthodologie est simplement un outil et, en tant que telle, sa valeur sera toujours inférieure aux individus et aux interactions qui sont au cœur de ce que signifie être agile .
Est-ce que quelqu'un pense vraiment que minimiser les changements dans les logiciels est une option viable pour ceux qui souhaitent fournir des logiciels de valeur?
Chaque opportunité de minimiser les changements est précieuse pour le développeur et le client. Les modifications peuvent faire glisser un calendrier ou laisser des fonctionnalités de côté afin de respecter un calendrier. C'est la façon dont vous gérez les effets du changement qui influe sur la valeur de vos projets.
Ou est-ce vraiment la question de savoir quelle sorte de pratiques fonctionnent le mieux dans nos situations pour gérer le changement inévitable?
Vos pratiques peuvent aider à gérer le changement, ou peuvent ignorer complètement le changement. Ce qui compte, c’est la combinaison de vos pratiques de développement et de la gestion de votre relation avec vos clients, et de savoir si ces éléments fonctionnent ensemble de manière efficace pour toutes les parties concernées.
Ceux d’entre nous qui sommes à toutes fins utiles Agile comprennent que vous choisissez une méthode qui fonctionne pour vous. Si vous aimez une approche particulière, suivez-la. Si cela ne vous convient pas, changez-le. La manière dont vous concevez un logiciel consiste réellement à utiliser au mieux les ressources dont vous disposez et à minimiser les pratiques qui peuvent conduire votre projet à l’échec. Vous constaterez souvent que vous devez modifier votre méthode en fonction projet particulier à portée de main.
C’est vraiment une chose de dire «OK, alors nous sommes maintenant agiles», et c’est une toute autre chose que de vivre et de travailler selon la philosophie de l’agile. Que vous utilisiez Waterfall, Incremental, Spiral, SCRUM, XP, FDD ou toute autre méthode, vous êtes fondamentalement agile où vous appréciez:
- Individus et interactions sur les processus et les outils
- Logiciel de travail sur une documentation complète
- Collaboration client sur négociation de contrat
- Répondre au changement au sujet d'un plan
et où vous apportez vos outils, votre méthode et votre expérience pour mettre en application ces valeurs avec succès.