Développement Agile de logiciel (de) dispositif médical
Maurice Navarro
Consultant qualité & logiciel pour dispositifs médicaux
Il y a quelques années, un fabricant de dispositifs médicaux me faisait la remarque : "l'ANSM (Agence Nationale du Sécurité du Médicament et des produits de santé) nous a dit que les méthodes Agile sont contraires au réglementaire".
Je ne remets pas en cause son propos mais je soupçonne l'ANSM de taquinerie à cette occasion.
En effet, l'ANSM ne s'intéresse pas à l'approche choisie pour organiser un projet logiciel (de) dispositif médical. Par contre elle examine attentivement la conformité réglementaire du logiciel qui en résulte.
Traitons du développement Agile de logiciel (de) dispositif médical dans le cadre de cet article.
En quoi consistent les méthodes Agile de développement logiciel ?
Les méthodes Agile de développement logiciel sont des méthodes itératives qui prévoient des livraisons incrémentales du logiciel entre la détermination initiale des besoins et la livraison finale du logiciel.
A chaque livraison, la version N du logiciel présente deux caractéristiques majeures par rapport à la version N-1 :
- elle est enrichie de fonctionnalités supplémentaires et
- des fonctionnalités présentes dans la version N-1 ont été modifiées suite à des demandes des utilisateurs.
La figure ci-dessous représente le temps de mise à disposition des fonctionnalités d'un logiciel dans le cadre d'un cycle en V et d'une méthode Agile.
Cycle en V | |
Méthode Agile |
Source : Agilité et sécurité numériques, ANSSI
On remarque que la mise à disposition de toutes les fonctionnalités du logiciel prend plus de temps avec une approche Agile qu'avec un cycle en V. En effet, avec une approche Agile, la reprise de fonctionnalités déjà livrées impacte le temps de développement global du logiciel.
Néanmoins, pour des logiciels avec de multiples fonctionnalités et dont les besoins ne peuvent être déterminés avec précision dès le début du projet, les méthodes Agile de développement logiciel présentent deux avantages majeurs par rapport au cycle en V :
- elles permettent aux utilisateurs de disposer par étapes des fonctionnalités du logiciel et
- elles acceptent des modifications des exigences alors que le projet logiciel est en cours.
C'est tout l'intérêt des méthodes Agile de développement logiciel.
Mise en œuvre du développement Agile de logiciel (de) dispositif médical
La désignation "Méthode de développement Agile de logiciel" recouvre différentes approches qui s'inscrivent toutes dans le cadre du Manifeste Agile de 2001 : Scrum, eXtreme Programming (XP), Feature Driven Development (FDD), Rapid Application Development (RAD), Behavior Driven Development (BDD) …
La figure ci-dessous schématise le déroulement d'un projet logiciel (de) dispositif médical organisé suivant une méthode de développement Agile.
On remarque qu'un unique projet logiciel génère plusieurs livraisons du logiciel (stage1, stage 2, …, stage n) et que chaque version du logiciel livrée va de pair avec une conception détaillée, des essais (ou tests), une étape de débug …
En effet, suivant les principes sous-jacents au Manifeste Agile, le prérequis est de livrer des versions parfaitement fiables du logiciel bien qu'elles n'assurent pas toutes les fonctionnalités prévues pour la dernière version.
Sur cette base, une fois la version N du logiciel livrée, la version N+1 sera conçue et développée en se basant sur :
- les retours des utilisateurs sur la version N du logiciel et
- les fonctionnalités manquantes dans la version N mais prévues pour la version finale du logiciel.
Développement Agile de logiciel et réglementation sur les dispositifs médicaux
La réglementation sur les dispositifs médicaux (Règlement (UE) 2017/745 et Règlement (UE) 2017/746) n'impose aucun agencement pour les projets de conception et développement de logiciel.
Il en est de même pour les normes harmonisées applicables au logiciel (de) dispositif médical. De fait, la norme CEI EN 62304 (Logiciels de dispositifs médicaux – Processus du cycle de vie du logiciel) le précise :
La présente norme ne prescrit pas un modèle de cycle de vie spécifique. Il incombe aux utilisateurs de la présente norme de choisir un modèle de cycle de vie pour un projet de logiciel et de faire correspondre les processus, activités et tâches définis dans la présente norme avec ce modèle.
Source : CEI EN 62304 – Logiciels de dispositifs médicaux – Processus du cycle de vie du logiciel
Ainsi, la réglementation sur les dispositifs médicaux et les normes harmonisées correspondantes sont applicables indépendamment du cycle de développement logiciel choisi.
Sur cette base, les méthodes Agile de développement logiciel doivent être mises en œuvre en prêtant attention à deux aspects en rapport avec des considérations réglementaires :
- la documentation du projet logiciel et
- le système de management de la qualité (SMQ).
Documentation du projet logiciel
Dans le cadre des dispositifs médicaux, les méthodes de développement Agile de logiciel n'ont aucun impact sur le contenu des documents à générer.
L'important est que cette documentation soit mise à jour pour chaque version distribuée du logiciel. Elle doit notamment rendre compte
- de la modification de fonctionnalités existantes,
- de l'implémentation de nouvelles fonctionnalités et
- de la maîtrise des risques qui se font jour dans ce contexte.
Système de management de la qualité
L'emploi de méthodes de développement Agile de logiciel doit être prévu par le système de management de la qualité (SMQ) du fabricant de dispositifs médicaux.
En effet, les procédures en rapport direct ou indirect avec la conception et le développement du logiciel doivent traduire l'organisation Agile des projets logiciels, notamment pour tenir compte de deux caractéristiques de ces méthodes de développement :
- la modification des exigences alors que le projet logiciel est en cours et
- la livraison de plusieurs versions du logiciel lors du déroulement d'un unique projet.
Dans ce contexte, la maîtrise du changement est tout particulièrement importante.
A titre d'exemple, pour chaque version du logiciel au sein du projet, il faudra examiner le besoin de faire intervenir l'organisme notifié (ON) avant de procéder à la distribution.
Intérêt pour le fabricant de dispositifs médicaux
Les méthodes Agile de développement logiciel sont tout particulièrement intéressantes pour des logiciels (de) dispositifs médicaux
- qui proposent un grand nombre de fonctionnalités aux utilisateurs et
- dont les besoins ne peuvent pas être déterminés avec précision dès le début du projet.
En effet, ces approches de développement permettent
- de livrer le logiciel par étapes pour préciser les besoins des utilisateurs au fil de l'avancement du projet et
- d'enrichir progressivement le logiciel avec de nouvelles fonctionnalités.
Pour assurer la conformité réglementaire du logiciel résultant, le système de management de la qualité (SMQ) doit être adapté à ce type d'approches.
Par ailleurs, dans le cadre des méthodes Agile de développement logiciel, la préparation du projet est particulièrement importante.
En effet, elle peut réduire le nombre d'interventions nécessaires de l'organisme notifié (ON) pour la distribution des différentes versions du logicel.
Pour en savoir plus
L'utilisation du terme "Agile" dans différents domaines d'activité peut rendre difficile de déterminer ce qu'est le développement Agile de logiciel.
Quelle que soit l'approche de développement choisie, la préparation du projet est un élément clef de réussite.