Avant d’aborder directement la question centrale, il est pertinent de clarifier l’objectif ultime de votre projet.
Visualisez le produit fini dans un mois, six mois, un an. Décrivez-le avec précision dès maintenant. Cette démarche offre une perspective éclairée et établit des attentes fondamentales quant à la prévisibilité, la flexibilité, l’adaptabilité, la rapidité de mise sur le marché et la maîtrise des coûts tout au long du projet.
Il est vrai qu’aujourd’hui, l’approche en cascade peut sembler dépassée. L’agilité est essentielle pour réagir promptement aux fluctuations du marché. Néanmoins, si votre but est de livrer un produit dans un an, avec des fonctionnalités bien définies et un budget précis, et si votre équipe manque d’expérience en méthodes agiles, une approche plus traditionnelle en cascade peut être envisagée.
Cependant, tous les cas ne sont pas aussi simples. Examinons ensemble comment évaluer la méthodologie la plus adaptée à votre projet.
Comment se déroule un projet en cascade ?
Au lieu de nous perdre dans des définitions connues de tous, voici une description pragmatique du déroulement d’un projet en cascade :
- Définition du résultat final/produit et estimation approximative du coût.
- Phase de recueil des besoins. Discussions approfondies sur les moindres détails du produit, avec des échanges, des questionnements, des compromis et une validation finale.
- Estimation budgétaire et confirmation des attentes financières.
- Conception de la solution. Réunions avec les parties prenantes, création de documents, validation et approbation du design technique et fonctionnel.
- Mise en œuvre de la solution selon le design. Développement du produit final complet.
- Phase de test : tests unitaires, système, fonctionnels, d’intégration, de performance, de régression, d’acceptation utilisateur, et potentiellement d’autres selon les pratiques de l’entreprise. Documentation et validation par les parties prenantes.
- Déploiement en production. Les utilisateurs finaux commencent à utiliser le produit.
- Phase de support pour la correction des bugs éventuels.
Ce processus peut s’étaler sur plusieurs mois, voire des années. Les utilisateurs ne verront les résultats qu’à la fin de cette longue phase. Après une longue attente, vient le moment de la vérité.
Si des changements surviennent en cours de route, cela nécessite une demande de modification. Il faut alors revoir la conception, l’adapter, et la valider à nouveau. Cela rallonge le projet. Chaque changement implique un redémarrage partiel du processus.
Néanmoins, l’approche en cascade offre une définition de phase claire, un budget fixe pour chaque étape et une durée déterminée. Si les changements sont peu probables, cette méthode peut être judicieuse malgré la longue attente pour obtenir le premier résultat.
Comment se déroule un projet Agile ?
Voici une description du fonctionnement d’un projet Agile :
- Définition de la vision du produit final, avec des attentes claires sur la valeur qu’il doit apporter aux utilisateurs.
- Création d’une liste de grandes fonctionnalités et de besoins techniques couvrant la vision.
- Estimation globale de ces éléments pour établir des attentes budgétaires et un calendrier de livraison. Identification du produit minimum viable (MVP) et des fonctionnalités supplémentaires.
- Constitution d’une équipe Scrum et planification des sprints. Décomposition des grandes fonctionnalités en tâches plus petites. Estimation de ces tâches et planification des sprints en fonction de leur priorité.
- Travail sur les tâches pendant chaque sprint. Intégration de la conception, du développement, des tests et du déploiement dans chaque sprint. Présentation de l’incrément aux utilisateurs et recueil de leurs avis à la fin de chaque sprint.
- Adaptation des fonctionnalités en fonction des retours et des évolutions du projet. Ajustement des sprints suivants.
- Diffusion du MVP auprès des utilisateurs finaux pour obtenir rapidement des retours.
- Poursuite du développement en intégrant les retours utilisateurs dans les itérations suivantes.
Ce résumé met en évidence les différences avec l’approche en cascade. L’agilité met l’accent sur la réactivité, l’adaptation, la prise en compte des besoins évolutifs et la livraison rapide d’un produit de valeur. Ces éléments sont difficiles à obtenir dans un projet en cascade.
Agile contre Cascade
La réussite d’un projet repose sur le choix d’une méthodologie de gestion adaptée. Cela implique la mise en place de processus, de mesures, d’évaluations et de méthodes de travail claires pour les équipes.
Les équipes doivent connaître les règles à suivre, les jalons à atteindre et comment évaluer leur succès. Les parties prenantes doivent comprendre les attentes du projet et quand elles verront les premiers résultats.
En généralisant, les projets cloud ont tendance à favoriser les méthodologies agiles, tandis que les projets sur site préfèrent souvent les approches en cascade. Cela découle de leur nature même.
Le cloud est conçu pour s’adapter rapidement à un environnement en constante évolution. Les environnements sur site sont souvent prédéfinis et plus difficiles à modifier, ce qui pousse les équipes à privilégier les méthodes plus déterministes, comme la cascade.
Résumé comparatif des approches Agile et Cascade.
Approche | Cascade | Agile |
Gestion des exigences utilisateurs | Les changements sont formels (demande de changement), peuvent impacter coûts et délais. | Les changements sont intégrés au processus, avec un impact limité sur les coûts et les délais. |
Planification et portée du projet | Portée définie initialement et rigide. Phases fixes respectant le plan original. | Vision claire, mais adaptable. Travail en sprints avec flexibilité. |
Suivi de la progression du projet | Suivi dans chaque phase. Retards impactant le calendrier global. | Suivi via des démonstrations à la fin de chaque sprint, axé sur le produit livrable. |
Collaboration d’équipe | Différentes personnes dans différentes phases, interactions limitées. | Équipe pluridisciplinaire avec communication constante entre les membres et les parties prenantes. |
Gestion des risques | Suivi de l’état selon l’avancement des phases. Réponse rétrospective aux risques, en adhérant au plan. | Résolution proactive des dépendances et adaptation du plan pour éliminer les risques. |
Cadre de mise en œuvre | Méthodologie traditionnelle. | Nécessite une transformation pour s’adapter à l’approche agile, avec des changements d’habitudes. |
Ce choix influencera plusieurs aspects de l’exécution du projet.
#1. Exigences du projet et gestion du changement
Un facteur déterminant est la manière dont les besoins des utilisateurs sont traités et la procédure à suivre en cas de modification ultérieure des exigences.
Dans un projet en cascade, les exigences sont définies et validées initialement. Tout changement est traité comme une demande de modification, nécessitant une nouvelle validation, des ajustements et une confirmation.
Le travail déjà réalisé doit être revu et refait. Les coûts doivent être réévalués et le calendrier peut être prolongé.
En agile, les changements sont bienvenus. Ils sont intégrés au quotidien. Les modifications sont validées avec les parties prenantes (souvent après la démonstration du dernier sprint) et sont planifiées pour les sprints suivants.
Le contenu précédent est modifié en conséquence, et les équipes continuent de travailler avec les nouvelles exigences. Pas de perte de temps ni de coûts, car l’adaptation à la réalité est immédiate. La gestion des changements fait partie intégrante de la planification des sprints.
#2. Planification et portée du projet
En cascade, la portée est définie et fixée dès le départ. Le plan de projet est structuré autour de cette portée. La durée du projet est divisée en phases (analyse, conception, développement, test, déploiement, support et maintenance), et les équipes sont organisées en conséquence. L’objectif est de respecter le plan initial en termes de coûts et de délais.
En agile, une vision du produit final remplace un plan rigide. L’objectif est clair, mais le chemin pour l’atteindre peut évoluer. Le calendrier est défini sur la base d’une estimation initiale des besoins. Chaque sprint est une mini-phase intégrant toutes les activités nécessaires au lancement d’un incrément du produit.
En résumé, le projet en cascade considère les changements comme des complications. Le projet agile, quant à lui, les intègre naturellement sans conséquences majeures.
#3. Suivi de l’avancement du projet
L’approche en cascade suit la progression du plan au fil des phases. Chaque phase doit être complétée avant de passer à la suivante.
Tout retard dans une phase affecte les phases suivantes, ce qui nécessite une vérification rigoureuse de l’avancement à chaque étape.
L’approche agile suit la progression via des démonstrations à la fin de chaque sprint. Le produit livrable est le principal indicateur de progrès. Chaque sprint doit se terminer avec un contenu complet.
Il est plus facile de voir la progression du projet en testant directement l’incrément du produit et en donnant des retours à l’équipe.
#4. La collaboration d’équipe
L’approche en cascade implique une séparation des rôles et des phases, tandis que l’approche agile favorise la collaboration continue.
En cascade, différentes personnes travaillent dans différentes phases du projet, parfois de manière cloisonnée.
En agile, l’accent est mis sur la communication et la valeur. Une équipe interfonctionnelle est capable de gérer toutes les activités du cycle de vie du produit. La communication constante entre l’équipe et les parties prenantes est essentielle.
#5. Gestion des risques
Il est nécessaire de suivre les risques, les problèmes ou les obstacles qui peuvent survenir pendant le projet.
En cascade, le suivi repose sur l’état de la phase en cours (vert, jaune, rouge).
L’agilité se concentre sur la résolution des dépendances entre les équipes et les activités. L’objectif est d’éviter qu’une équipe n’attende le travail d’une autre.
En cas de risque, l’agilité privilégie l’adaptation du plan pour éliminer le risque, contrairement à l’approche en cascade qui tente de résoudre le risque tout en respectant le plan initial.
#6. Cadre de mise en œuvre
La mise en œuvre d’un projet en cascade est généralement plus simple, car elle correspond souvent aux pratiques existantes.
Les projets agiles nécessitent des changements de mentalité et de méthodes de travail. La transformation vers l’agilité est un processus difficile et long. Les entreprises investissent beaucoup dans la formation et l’adaptation aux processus agiles.
Les bénéfices de l’agilité, comme une adaptation rapide aux besoins clients, sont importants, mais le changement de culture est un défi majeur.
Toutefois, cela reste le meilleur moyen de rester compétitif sur le marché.
Derniers mots
Sauf si vous avez un client très conservateur et peu enclin à une livraison rapide des résultats en production, il est préférable d’adopter dès le départ une approche agile. Cela est devenu une évidence dans le monde actuel, même pour les systèmes sur site. Surtout si l’équipe est nouvelle, il est plus logique d’aligner les processus sur les méthodologies agiles.
Cependant, certains projets persistent à refuser cette approche, préférant une organisation du travail strictement en phases, avec des sous-traitances sur des durées et des budgets fixés, et ce, sans tenir compte des résultats.
C’est un choix qui leur appartient, mais c’est aussi une manière de rester figé dans le passé. Cela peut fonctionner pendant un temps, mais cette situation ne durera pas.
Pour aller plus loin, consultez l’article détaillé sur le cycle de vie des tests Agile.