La méthode Waterfall (waterfall method en anglais), ou " en cascade ", est un processus de développement de logiciel. Inventé par le Dr Winston W.Royce en 1970, il s'agit de la méthodologie la plus ancienne dans le domaine du développement.
Ce modèle repose sur une progression par étapes au fil du cycle de développement, à la manière d'une chute d'eau. En règle générale, le processus se décompose en cinq grandes phases.
Source : wikipédia.org
Dans un premier temps, il s'agit de définir les différents éléments requis pour le développement de l'application et de les noter sur un document. On analyse ensuite le système pour générer les modèles et la logique métier qui seront utilisés dans l'application.
Vient ensuite l'étape de la conception, visant à définir de façon claire comment implémenter techniquement la logique métier définie par l'analyse. Vient alors le moment d'écrire le code source pour implémenter les modèles, la logique métier et les intégrations de services.
Par la suite, l'application est rigoureusement testée pour découvrir les éventuels bugs et problèmes qui doivent être résolus. En fonction des résultats, le code peut être modifié. Pour finir, la dernière étape est le déploiement de l'application qui devra toutefois être maintenue et mise à jour au fil du temps…
Cette méthodologie présente plusieurs avantages. Elle est appropriée pour les vastes projets menés par de larges équipes dont les membres pourront être remplacés au fil du temps. Pour cause, tous les éléments requis pour la conception de l'application sont notés et documentés et les nouveaux membres pourront donc s'adapter rapidement.
Elle induit par ailleurs une discipline dans la conception et la structure du projet avec des procédures détaillées au fil de chaque étape. Ce modèle permet aussi des changements dans le design du logiciel au début du projet, puisque l'écriture du code ne commence qu'après la conception complète. Enfin, il est idéal pour les projets soumis à des dates précises, puisque chaque étape pourra être planifiée minutieusement.
En revanche, la méthode waterfall présente aussi des inconvénients. À cause de ces points faibles, elle a perdu en popularité depuis son invention au profit de modèles plus modernes comme la méthode agile.
Son principal défaut est son manque d'adaptabilité une fois que l'écriture du code a débuté. Une erreur dans la conception peut s'avérer désastreuse, et un problème découvert lors du testing force un important retour en arrière dans les étapes du processus.
De même, un changement dans les exigences du client ou de l'utilisateur final de l'application obligera un retour à l'étape de conception qui coûtera du temps et de l'argent. Enfin, en suivant ce modèle, le testing ne survient généralement qu'à la fin du processus et les bugs ou problèmes ne seront donc découverts que très tardivement.