Telechargé par yamine.iby

("Cascade" - RUP - Agile) : résumé d'article sur la complémentarité de ces méthodes de développement logiciel

publicité
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/
Téléchargement