Vers un développement logiciel Agile - Com-Hom

Transcription

Vers un développement logiciel Agile - Com-Hom
Vers un développement
logiciel Agile
emmanuel etas s e
jean- rené rous se a u
Avril 2009
V ers un dévelo ppem ent lo g ic iel a g ile
emmanuel etas se, jean-rené rous seau
1 Introduction
Durant les 30 dernières années, les spécialistes en technologie de l’information (TI) ont tenté
d’appliquer le paradigme de la fabrication prévisible au développement logiciel. Cependant, la plupart
des logiciels ne sont pas des projets présentant une problématique prévisible et ils ne peuvent être
réalisés en utilisant des procédés inspirés de la fabrication de masse. La réalisation de logiciels est en
fait un domaine de création, comportant des inconnus et un haut taux de changements.
C’est pourquoi les méthodologies traditionnelles, préconisant un cycle de développement linéaire
caractérisé par la production d’une lourde documentation initiale, par une gestion hiérarchisée et par
une organisation du travail individualisé (Taylorisme informatique), s’avèrent être peu efficaces.
De récentes études 1 ont d'ailleurs démontrés que plus de 50 % des projets de développement logiciels
échouent et que plus de 65 % des fonctionnalités des systèmes en production sont rarement utilisées.
Il semble donc évident que les investissements des organisations en matière de développement logiciel
peuvent être et doivent être grandement optimisés.
2 L'approche Agile
Dans les années 90, plusieurs nouvelles approches de développement sont nées de cette volonté de
réaliser des projets informatiques plus efficacement. En février 2001, 17 des leaders de ces nouvelles
approches au développement logiciel se sont regroupés et ont adoptés le terme Agile pour définir ces
nouvelles méthodes. Ils ont ainsi former l'Alliance Agile2 et établit une liste de valeurs et principes
régissant ce qu'on appel maintenant le manifeste3 de développement logiciel Agile.
En résumé, le développement logiciel Agile permet de:
•
Répondre aux changements en utilisant un modèle de développement empirique où l’on
produit fréquemment une partie fonctionnelle du système, et où, par inspection fréquente, on
adapte la planification et le processus.
•
Optimiser le retour sur l'investissement en mettant la valeur d'affaire du logiciel au premier
plan du processus décisionnelle.
•
Augmenter la productivité en valorisant des processus simples et minimaux et en favorisant
la communication au sein d'équipes multi-disiplinaires, auto-orgasnisées et responsables.
•
Augmenter la prévisibilité en établissant un rythme de travail constant améliorant ainsi la
planification des projets en terme de temps et de budget.
1 Chaos Report 2003 pour les projets qui échouent, Standish Report 2002 pour les fonctionnalités
non utilisés
2 http://www.agilealliance.org/
3 http://agilemanifesto.org/
www.pyxis-tech.com
1
Avril 2009
V ers un dévelo ppem ent lo g ic iel a g ile
emmanuel etas se, jean-rené rous seau
L'approche Agile semble donc mieux répondre aux problèmes complexes que sont les projets de
développement logiciels.
En effet, de nombreuses entreprises ayant réalisé des logiciels à l’aide d'un processus Agile,
rapportent de larges gains en productivité, une satisfaction accrue des utilisateurs et un meilleur retour
sur les investissements. Les magazines spécialisés en TI et également les magazines d’affaires et
d’économie sont tapissés d’articles encensant cette nouvelle approche au développement logiciel. On
parle même désormais d’Agilité organisationnelle et de plus en plus d’organisations se dotent de
moyens pour passer à un mode de gestion Agile.
3 Scrum
Parmi les différentes méthodologies Agiles, Scrum 4 se présente comme un exemple parfait de
processus empirique et se démarque par sa simplicité. Scrum est un processus itératif qui permet de
gérer et contrôler le développement de logiciels. Scrum ce définit par des règles et pratiques à la fois
simples et efficaces dont voici les grandes lignes:
•
Une liste de fonctionnalités à développer est maintenue et priorisée par le Gestionnaire de
Produit.
•
Des itérations de plus ou moins 30 jours appelés sprint, permettent à l'Équipe de
Développement de produire des incréments du produit final à partir des fonctionnalités les
plus prioritaires.
•
Une rencontre quotidienne de 15 minutes, le daily scrum , permet de communiquer
l'avancement des travaux et de discuter des obstacles rencontrés, permettant au gestionnaire
de projet, le Maître Scrum d'apporter rapidement les ajustements nécessaires au bon
déroulement du projet.
•
Une rétrospective à la fin de chaque sprint permet de démontrer les nouvelles fonctionnalités
développées et de réviser le processus de développement permettant ainsi d'apporter les
correctifs qui permettront d'augmenter la productivité.
Scrum permet de générer les bénéfices liés au développement Agile tout en demeurant simple à
implanter. Le cycle quotidien et mensuel d’inspection et d’adaptation de Scrum permet d'identifier tous
les obstacles nuisant à la productivité concentrant ainsi les efforts de développement sur la production
d'une solution logicielle optimale maximisant ainsi la valeur d'affaires et le retour sur l'investissement.
Scrum est souvent présenté comme un accélérateur de dysfonctionnement dans le sens où des
désordres contre-productifs pourront être révélés plus tôt dans le projet que dans une approche
classique. Cette transparence peut avoir un impact sur le mode de fonctionnement et la culture de
l'entreprise. La transition vers une approche agile n'est jamais chose facile.
4 Tra n sition A gile/ S cru m
De part sa nature non prescriptive et empirique, Scrum se présente comme un compagnon idéal pour
effectuer une transition agile. Scrum:
4 http://www.controlchaos.com/
www.pyxis-tech.com
1
Avril 2009
V ers un dévelo ppem ent lo g ic iel a g ile
emmanuel etas se, jean-rené rous seau
•
intègre des pratiques d’ingénieries existantes comme celles de eXtreme Programming (XP)
et de RUP ou d'autres pratiques provenant de votre processus actuel.
•
laisse émerger un processus simple et minimal adapté aux réalités de l'organisation.
•
identifie les obstacles organisationnels qui nuisent à la productivité et à la réalisation d'une
solution logicielle optimale.
•
peut être utilisé dès le début d'un projet ou au milieu d'un projet existant.
Une transition Agile par la mise en œuvre du processus Scrum impliquera donc une transformation à
deux niveaux: au niveau du processus de développement, en y éliminant les activités superflus, en
améliorant les pratiques d'ingénieries courantes et en y intégrant de nouvelles pratiques; mais aussi au
niveau de l'organisation elle-même qui devra résoudre les problèmes identifiés par le processus de
développement. La résolution des problèmes identifiés devra impliquer le plus possible l'ensemble des
acteurs de terrain afin de renforcer motivation et responsabilisation, qui sont deux piliers pour libérer la
performance des équipes projet.
jean- rené rousse au
Titulaire d'une licence en informatique de gestion de l'Université Laval à Québec, Jean-René compte
plus de dix années d'expérience en développement de systèmes informatiques et en services-conseils, dont sept
avec la plateforme Java/J2EE. Formateur agréé par Emploi Québec et certifié ScrumMaster, il effectue
régulièrement des mandats de formation et d'accompagnement où il transfère son expertise de la méthodologie
Scrum et du développement orienté objet. Ces mandats lui permettent de mettre à l'avant plan ses qualités de
communicateur et son leadership.
emmanuel etas s e
Scientifique de formation (mécanique des fluides), Emmanuel compte 11 années d'expérience dans le
secteur du développement logiciel. Passionné par la programmation et en quête perpétuelle d'amélioration de la
qualité de ses prestations (et de celles de ses collaborateurs), il s'intéresse de près aux méthodes Agiles depuis
2002. Il commence alors à s'impliquer dans la mise en œuvre de Scrum et des pratiques d'eXtreme Programming
au sein de son entreprise. Il a des compétences dans les domaines d'expertise opérationnelle suivants :
programmation orientée objet, ergonomie des interfaces utilisateurs graphiques, intégration continue et
développement piloté par les tests. Sa motivation profonde est d'aider les entreprises à être plus performantes
d'une part grâce aux approches Agiles et, d'autre part, grâce à une gestion plus respectueuse des individus.
www.pyxis-tech.com
1
Avril 2009