Ré sumé article : En « cascade » + RUP + Agile : Complé mentarité plutô t qu’opposition Dans le domaine du développement logiciel, les clients sont à la recherche de logiciels performants, ayant des fonctionnalités avancées tout en étant les moins coûteux possible. Afin de fournir aux clients en un court laps de temps des logiciels répondants à leurs besoins, les développeurs s’évertuent à rationaliser la production. Pour ce faire, des changements ont été effectués dans le développement logiciel ; passant des méthodes structurées et séquentielles (plus anciennes) aux méthodes plus itératives et progressives (plus récentes). On note ainsi 3 principales méthodes : les méthodes « en cascade », RUP et agile. //Cascade Méthode ayant un processus très structuré qui se base sur l’organisation séquentielle de ses différentes phases. Chacune des phases a ses propres spécifications et sa propre équipe d’experts, mais est dépendante de la précédente. Ainsi, aucune étape ne peut débuter sans que la précédente ne soit préalablement validée. Ces étapes sont : Le recueil des besoins et la rédaction du cahier des charges L’analyse fonctionnelle Le développement du code L’intégration Le test et la mise au point L’installation La maintenance Le principe est de collecter et spécifier tous les besoins des clients dès le départ afin de leur fournir une seule solution complète. Cette méthode est souvent pratique pour le développement d’applications complexes qui requiert les plus hauts niveaux de fiabilité. Toutefois, les projets suivant cette méthode prennent des mois voire des années pour être finalisé et parfois ne répondent plus aux exigences, les besoins initiaux ayant changé. Notons également que la maintenance de ces logiciels est très coûteuse. // RUP « Rational Unified Process » Produit par Rational Software puis par IBM, RUP est aussi lourde que « cascade ». Elle propose par contre une approche plus itérative. Cette méthode comprend 4 phases : Création (évaluation des dépenses, des risques…) L’élaboration (spécification détaillé des besoins, validation de l’architecture…) La construction (…et production de la documentation de support) La transition (le logiciel est testé au niveau système et utilisateur, corrigé et déployé) Le produit final est construit sur plusieurs phases basées sur des revues fréquentes avec les parties prenantes. A chacune des phases, des représentations graphiques des systèmes sont produites. Les tâches sont réparties en détail aux membres de l’équipe et tous ont accès aux mêmes informations pour s’assurer qu’ils gardent tous la même vision du projet. Chaque phase peut avoir plusieurs itérations internes basées sur des retours d’utilisateurs. Chaque itération est un livrable exécutable et chaque phase RUP peut interagir avec les phases précédentes pour s’adapter au besoin. Pratique pour les agences gouvernementales et institutions éducatives etc., RUP corrige bon nombre des défauts de « cascade ». Il n’est toutefois pas optimal quand il s’agit de projet dont les délais sont cruciaux ou encore des environnements SaaS. // Agile Axé sur la vitesse et l’adaptabilité, il existe plusieurs types de processus de développement Agile, tous s’efforçant de fournir aussi vite que possible aux clients une version de produit basique mais fonctionnelle. La documentation est dé-priorisée. Chaque version est élaborée sur de courtes sessions de 2 à 4 semaines et est améliorer au fil du temps, compte tenu du feedback des clients et utilisateurs. Cette méthode préconise la collaboration avec les clients. Tout le processus est managé par une seule et même petite équipe cross-fonctionnelle ayant un représentant client qui s’assure de la validation du travail de l’équipe. Bien que très efficace, cette méthode ne convient pas aux grands projets logiciels ayant beaucoup de parties prenantes. L’accent sur la modularité, le développement progressif et l’adaptabilité ne convient pas aux contrats avec des évaluations fermes et des calendriers fixes. Si l’équipe de base cède sa place à une autre, la maintenance peut s’avérer difficile à cause de l’absence de documentation complète. Ceci peut conduire à des défauts de consistance. // Le meilleur de chaque monde Chacune des 3 méthodes présente aussi bien des avantages que des inconvénients. Le secret d’un développement logiciel réussi est de sélectionner des parties de chacune des méthodes et de les adapter au projet. Il faut également toujours réviser le processus de développement jusqu’à ce qu’il ne corresponde au mieux aux circonstances du projet. Sur un marché concurrentiel, ayant des besoins utilisateurs changeants, la méthode agile est à privilégier car elle permet plus facilement aux développeurs d’apporter des modifications aux logiciels. Dans des domaines exigeant un haut degré de conception et de certitude, le plus probable est de commencer avec la méthode en « cascade ». Pour la production de progiciel, demandant constamment des mises à jour des précédentes versions, il est préférable d’opter pour le procédé itératif de RUP. Toutefois, il n’y a aucun processus parfait pour tels ou tels projets ou environnements. Les sociétés doivent évaluer et tester le processus à différents moments dans le cycle de développement afin d’adapter à leur projet chaque étape des différents méthodes. Bref, il est important d’adapter le processus aux besoins, plutôt que d’adapter les projets aux processus. Yamine Ibrahima. Article complet : https://dantotsupm.com/2010/01/28/en-cascade-rup-agilecomplementarite-plutot-quopposition/