Qu'est-ce qu'une méthode Agile de développement logiciel ?

Maurice Navarro
Consultant qualité & logiciel pour dispositifs médicaux


Depuis plusieurs années, les méthodes Agile de développement logiciel se généralisent dans tous les secteurs d'activité.

De plus, le terme "Agile" s'est connoté positivement à tel point qu'il se voit employé dans des publicités télévisées et des présentations d'entreprise sans rapport avec le génie logiciel.

Dans ce contexte, il peut être difficile de savoir précisément ce que sont les méthodes Agile de développement logiciel.

Traitons ce sujet à l'occasion de cet article.

Qu'est-ce qu'une méthode Agile de développement logiciel ?

Origine des méthodes Agile de développement logiciel

Les méthodes Agile de développement logiciel reposent sur des approches de génie logiciel préexistantes telles que Scrum, eXtreme Programming (XP) ou encore Feature-Driven Development (FDD) et se sont répandues suite au manifeste Agile de 2001.

Manifeste de 2001 pour le développement Agile de logiciels
Manifeste de 2001 pour le développement Agile de logiciels

Source : Manifeste Agile de 2001

Pour compléter ce manifeste, les auteurs ont précisé douze principes sous-jacents au développement Agile de logiciel.

Principes sous-jacents au Manifeste pour le développement Agile de logiciels

"Nous suivons ces principes :

  • Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.
  • Accueillez positivement les changements de besoins, même tard dans le projet. Les processus Agiles exploitent le changement pour donner un avantage compétitif au client.
  • Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts.
  • Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.
  • Réalisez les projets avec des personnes motivées. Fournissez-leur l'environnement et le soutien dont ils ont besoin et faites-leur confiance pour atteindre les objectifs fixés.
  • La méthode la plus simple et la plus efficace pour transmettre de l'information à l'équipe de développement et à l'intérieur de celle-ci est le dialogue en face à face.
  • Un logiciel opérationnel est la principale mesure d'avancement.
  • Les processus Agiles encouragent un rythme de développement soutenable. Ensemble, les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir indéfiniment un rythme constant.
  • Une attention continue à l'excellence technique et à une bonne conception renforce l'Agilité.
  • La simplicité – c'est-à-dire l'art de minimiser la quantité de travail inutile – est essentielle.
  • Les meilleures architectures, spécifications et conceptions émergent d'équipes autoorganisées.
  • À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence."

Source : Principes sous-jacents au manifeste Agile de 2001

Sur cette base, les méthodes de développement logiciel conformes à ce manifeste et à ses principes sous-jacents sont dénommées "méthodes Agile de développement logiciel".

Du point de vue du produit, les méthodes de développement Agile de logiciel sont itératives : elles préconisent des livraisons précoces du logiciel suivies d'améliorations et d'ajouts de fonctionnalités dans les livraisons suivantes.

Du point de vue de l'ingénierie du logiciel, les méthodes de développement Agile passent par une organisation en petites équipes autonomes qui se réunissent avec des représentants métier tout au long du cycle de vie du logiciel.

Enfin, il est important de noter que les méthodes de développement Agile n'autorisent pas la livraison de logiciel "buggy" dont les dysfonctionnements seraient corrigés dans des versions à venir.

Il s'agit de livrer des versions parfaitement fiables du logiciel mais qui n'assurent pas toutes les fonctionnalités prévues avant la dernière livraison.

Finalité des méthodes Agile de développement logiciel

La finalité première des méthodes Agile de développement logiciel est la satisfaction du client (cad l'utilisateur du logiciel) dans le cadre de projets logiciels de grande envergure.

Dans ce but, les méthodes Agile de développement logiciel sont conçues pour

  • assurer une réactivité face aux demandes des utilisateurs et
  • fournir "rapidement" un résultat visible d'ingénierie du logiciel.

De manière sous-jacente, il s'agit de pallier aux limites d'un cycle de développement logiciel en V pour les gros projets de génie logiciel.

Résultat d'ingénierie visible "rapidement"

L'approche adoptée par les méthodes Agile pour fournir "rapidement" un résultat visible d'ingénierie du logiciel est de livrer au client des versions incrémentales du logiciel. Autrement dit, des versions du logiciel qui assurent une partie des fonctionnalités prévues sur l'ensemble du projet.

Ainsi, le terme "rapidement" fait référence au fait que le client (l'utilisateur) aura un logiciel entre les mains dans un délai plus court qu'avec un cycle en V mais pas que les fonctionnalités du logiciel seront développées plus vite.

Pour illustrer ce propos, la figure ci-dessous représente le temps de mise à disposition des fonctionnalités d'un logiciel en fonction du fait que son développement soit fait suivant un cycle en V ou suivant une méthode Agile.

Fonctionnalités disponibles du logiciel
Pourcentage de fonctionnalités du logiciel disponibles
Cycle en V
Méthode Agile

Source : Agilité et sécurité numériques, ANSSI

Réactivité face aux demandes des utilisateurs

Les projets logiciels de grande envergure peuvent être destinés à des environnements d'utilisation dont les besoins sont divers et difficiles à déterminer avec certitude et / ou exhaustivité.

Afin de pallier à ces situations, les méthodes Agile de développement logiciel sont conçues pour accepter la modification des exigences alors que le projet logiciel est déjà en cours.

"Modifier les exigences alors que le projet est en cours" est à interpréter avec précaution.

Il ne s'agit pas de modifier les exigences applicables à une fonctionnalité qui est en cours de développement. En effet, une telle approche retarderait inexorablement la livraison des fonctionnalités du logiciel.

Il s'agit plutôt d'accepter des modifications d'exigences sur des fonctionnalités qui ne sont pas encore implémentées ou sur des fonctionnalités qui sont déjà livrées. Notamment pour pallier aux incertitudes et / ou aux manques qui précédaient leur livraison.

Intérêt des méthodes Agile de développement logiciel dans le domaine médical

Les méthodes de développement Agile de logiciel s'avèrent particulièrement intéressantes pour concevoir et développer des logiciels de grande envergure qui proposent de multiples fonctionnalités.

Ce type de produits logiciels tirent un avantage indiscutable de la mise en œuvre de méthodes Agile de développement logiciel

  • pour satisfaire le client en livrant "rapidement" un résultat d'ingénierie du logiciel et
  • pour augmenter les parts potentielles de marché du logiciel en augmentant le nombre de fonctionnalités disponibles.

Dans le domaine médical, les systèmes d'information hospitaliers (SIH) sont typiquement dans ce cas de figure. En effet, ces logiciels proposent de multiples fonctionnalités dans des secteurs aussi divers que la facturation, la gestion de stocks, la prise de rendez-vous, le suivi de soins, la prescription de médicaments…

Un point est cependant à remarquer : l'emploi de méthodes Agile de développement logiciel n'exonère pas le fabricant du respect de la réglementation applicable à ses produits.

De ce fait, un effort doit être fourni pour adapter le système de management de la qualité (SMQ) à la mise en œuvre de ce type d'approches de génie logiciel.

Pour en savoir plus

L'emploi de méthodes Agile de développement logiciel n'exonère pas le fabricant du respect de la réglementation applicable à ses produits.

Développement Agile de logiciel (de) dispositif médical

Implications des méthodes de développement Agile de logiciel dans le cadre des dispositifs médicaux (DM) et des dispositifs médicaux de diagnostic in vitro (DMDIV)

Dans le cadre des logiciels (de) dispositifs médicaux, la gestion des risques du logiciel aide à prévenir d'éventuelles anomalies du logiciel.

Prévenir les anomalies du logiciel (de) dispositif médical

L'analyse de risques des logiciels (de) dispositifs médicaux permet de maîtriser leurs risques et de limiter leurs dysfonctionnements

Maurice Navarro

Maurice Navarro

Consultant qualité & logiciel pour dispositifs médicaux

Depuis plus de 15 ans, j'accompagne la réalisation de projets logiciels et la mise en place de systèmes de gestion de la qualité pour assurer le marquage CE de dispositifs médicaux fiables, sûrs et commercialisables sans délais.

Le 21 / 06 / 2021