Comment réduire le coût d'un
logiciel (de) dispositif médical ?

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


En première approche, le coût d'un logiciel peut être réparti sur trois grandes phases de son cycle de vie :

  • le coût de réalisation initiale,
  • le coût de production et distribution,
  • le coût de maintenance.

Il serait aventureux d'estimer le montant de ces coûts en l'absence de précisions sur le logiciel considéré. Mais plusieurs études portent sur les coûts relatifs des logiciels et proposent des moyens pour les réduire.

C'est le sujet développé dans cet article. Il traite le cas des logiciels de dispositifs médicaux après avoir exploré le cas des logiciels en général.

Comment réduire le coût d'un logiciel (de) dispositif médical ?

Coût de réalisation initiale du logiciel

Les statistiques sur les projets logiciels sont tristes. Ainsi, seulement un tiers des projets logiciels sont livrés dans les temps prévus, en respectant le budget alloué et avec les fonctionnalités requises.

Modern resolution for all projects
Modern resolution for all projects
Successful : delivered on time, on budget, with required features and functions.
Failed : cancelled prior to completion or delivered and never used.
Challenged : late, over budget, and/or with less than the required features and functions.
Source : CHAOS Report 2015, The Standish Group International Inc.

Parmi les raisons invoquées pour expliquer cette situation on trouve

  • le manque de clarté / précision des exigences,
  • le manque de réalisme des attentes et
  • les modifications des exigences en cours de projet.

D'autres données complètent celles de la figure précédente. Elles nous apprennent notamment que plus le projet est de petite taille et plus il a de chances de réussite.

CHAOS resolution by project size
CHAOS resolution by project size
The resolution of all software projects by size from FY2011-2015 within the new CHAOS database
Source : CHAOS Report 2015, The Standish Group International Inc.

Sur cette base, pour réduire le coût de réalisation initiale d'un logiciel, il est judicieux de limiter les fonctionnalités proposées dans sa première version.

En plus de diminuer la probabilité d'être "en dehors des clous" en termes de projet, cette approche présente plusieurs avantages :

  • la probabilité d'occurrence d'anomalies du logiciel est d'autant moins élevée que la quantité de code et de fonctionnalités est réduite,
  • le temps disponible pour mener à bien une conception perenne est augmenté,
  • l'effort nécessaire pour la vérification et la validation du logiciel se voit réduit et
  • vous maîtrisez le choix des fonctionnalités qui sont relayées à la version suivante.

Coût de production et distribution du logiciel

La réduction du coût de production et distribution d'un logiciel tient d'avantage de la logistique que du génie logiciel. Elle passe souvent par la diminution du nombre d'opérations manuelles requises.

Plusieurs cas de figure sont possibles.

Logiciel que l'utilisateur va installer par ses propres moyens

On est ici dans le cas de la vente au détail. Il implique un support pour le logiciel et son transport jusqu'au client.

Dans cette situation, l'approche couramment adoptée pour réduire les coûts est de distribuer le logiciel par téléchargement sur Internet.

Il s'agit aujourd'hui de l'approche la plus répandue pour distribuer un logiciel.

Logiciel incorporé dans du matériel

On traite ici du logiciel d'exploitation d'un matériel. Les illustrations sont nombreuses dans l'électroménager par exemple.

Dans ce cas de figure deux approches sont répandues pour diminuer le coût de fabrication du matériel :

  • prévoir un installeur à l'attention du département de production ou
  • installer le logiciel sur le matériel via une image de disque.

Logiciel exploité en service web (SaaS)

Avec le développement de l'utilisation d'Internet, cette approche est en croissance constante depuis plusieurs années. Elle présente notamment l'avantage de la rapidité de déploiement des mises à jour du logiciel.

Dans ce cas, la réduction des coûts passe encore par l'automatisation. Il s'agit notamment d'automatiser l'installation sur les serveurs de mise à disposition du logiciel.

Coût de maintenance du logiciel

Le coût de maintenance du logiciel est le coût le plus élevé dans le cycle de vie du logiciel.

Software life-cycle costs
Software life-cycle costs
Source : Digital Aggregates

On distingue deux types de maintenances du logiciel :

  • la maintenance évolutive et
  • la maintenance corrective.

La maintenance évolutive consiste en l'ajout de nouvelles fonctionnalités au logiciel et la maintenance corrective consiste en la correction de dysfonctionnements du logiciel.

Coût de maintenance évolutive du logiciel

La maintenance évolutive présente une valeur ajoutée pour le fabricant : image de l'entreprise, satisfaction du client, augmentation du chiffre d'affaires… Et elle augmente la durée de vie du produit.

Cependant, elle présente un gros travers : son coût augmente de version en version. En effet, les évolutions nécessitent des efforts de plus en plus conséquents pour une production réelle de plus en plus mince.

Evolution du coût marginal en fonction du temps
Evolution du coût marginal en fonction du temps
Source : "Livre blanc qualité logicielle, Pragmatisme et productivité", Xebia

Parmi les raisons invoquées pour expliquer cette situation on trouve

  • l'augmentation de la quantité de code qui complique d'autant chaque nouvelle évolution,
  • le "turn over" dans l'entreprise qui génère une perte de connaissance du logiciel au moment de le modifier,
  • la lassitude des intervenants à travailler à de multiples reprises sur le même sujet.

Pour pallier à cette situation plusieurs points ont fait leurs preuves :

  • la conception par composants indépendants,
  • la programmation orientée objets et
  • l'emploi de modèles de conception réutilisables ("design patterns").

La conception par composants indépendants permet de constituer un logiciel à partir de plusieurs logiciels de petite taille ou de taille modérée. Ceci diminue la probabilité de dysfonctionnements et simplifie la prise en main du code en cas de besoin.

La programmation orientée objets permet de circonscrire les différents éléments qui constituent le logiciel pour simplifier l'identification des causes de dysfonctionnements et accélerer leur correction.

L'utilisation de "design patterns" permet de standardiser le code généré tout en tirant parti de l'expérience de ceux qui les ont conçus. Cette standardisation simplifie d'autant la participation de nouveaux intervenants au projet.

Coût de maintenance corrective du logiciel

Le besoin de maintenance corrective d'un logiciel ne présente aucune valeur ajoutée pour le fabricant. De ce fait, il est particulièrement important de réduire son coût, voire le besoin en soi.

Plusieurs études ont abouti à une même conclusion : le coût de correction d'un dysfonctionnement est d'autant plus élevé que le dysfonctionnement est identifié tard dans le cycle de vie du logiciel.

Ainsi, la figure ci-dessous montre que quand une erreur de conception est détectée sur la version approuvée du logiciel, le coût pour la corriger est 30 fois supérieur à ce qu'il aurait été si l'erreur avant été corrigée lors de la phase de conception.

Coûts relatifs calculés en fonction du délai écoulé entre l'apparition de l'erreur et sa détection
Coûts relatifs calculés en fonction du délai écoulé entre l'apparition de l'erreur et sa détection
Ce tableau considère uniquement la conception et le développement du logiciel. Il n'intègre pas des éléments de coût tels que l'information des clients, la mise à jour des logiciels chez les clients, la perte d'une part de marché ou le ternissement de l'image de l'entreprise.
Source : "Les défis de la sécurité des applications : des solutions", IBM Corporation

Une question se pose alors : quand est-ce que sont générés les dysfonctionnements d'un logiciel ?

La figure ci-dessous montre que 45 % des erreurs sont générées avant l'implémentation du logiciel et que 12 % des erreurs du logiciel correspondent à des problèmes de documentation.

Origine des erreurs du logiciel
Origine des erreurs du logiciel
Source : Capers Jones 2011, US Industries

Parmi les explications de ce phénomène figurent

  • la mauvaise compréhension et/ou formulation des exigences,
  • la mauvaise compréhension et/ou analyse des contraintes de conception,
  • le manque de vérification de la documentation.

Ces observations ont amené le développement de la qualité du logiciel comme moyen de prévention des dysfonctionnements du logiciel et donc de réduction des coûts de maintenance corrective. Deux points sont apparus particulièrement importants dans cette démarche :

  • des essais logiciels (tests) menés méthodiquement et de manière ciblée,
  • des revues de vérification des documents et du code générés.

Plusieurs études ont montré que cette approche permettait d'éliminer jusqu'à 85 % des dysfonctionnements du logiciel avant sa livraison ("Software defect origins and removal methods", Capers Jones 2012).

Focus sur le logiciel de dispositif médical

Réduction du coût de réalisation initiale

Se focaliser sur les fonctionnalités importantes du logiciel médical considéré est tout à fait adapté aux PME et aux startups du secteur biomédical.

En effet, dans le cadre de projets innovants, c'est souvent qu'on veut beaucoup faire dès le départ au risque d'en oublier tout le travail nécessaire à côté.

Ainsi, un système de management de la qualité (SMQ) ISO 13485 doit être construit en partant de zéro et les exigences de la norme EN 62304 doivent être mises en œuvre pour le logiciel.

Réduction du coût de production et distribution

Dans le cadre des logiciels de dispositifs médicaux, la réduction des opérations manuelles requises pour la production et la distribution du logiciel présente l'avantage de réduire les risques du dispositif en diminuant la probabilité d'opérations manuelles erronées.

Quelques points sont néanmoins à souligner.

Tout d'abord, les logiciels d'automatisation d'installation ne rentrent pas dans le cadre de la norme EN 62304. Par contre ils sont soumis aux exigences de la norme ISO/TR 80002-2.

Ensuite, dans le cadre des logiciels en service web, une attention particulière doit être portée à la confidentialité des données, notamment avec l'entrée en vigueur du Règlement général sur la protection des données (RGPD).

Réduction du coût de maintenance

Dans le cas des logiciels de dispositifs médicaux, la maintenance évolutive et la maintenance corrective peuvent toutes deux correspondre à de la correction d'anomalies du logiciel.

Mais les fabricants de dispositifs médicaux partent avec un avantage en ce qui concerne le coût de maintenance. En effet, les exigences de la norme EN 62304 recouvrent les moyens mis en œuvre dans d'autres secteurs pour réduire le besoin de maintenance corrective des logiciels.

En effet, la norme EN 62304 exige des revues de vérification et des essais (tests) en rapport avec les phases du cycle de conception et développement du logiciel.

De plus, l'analyse de risques du logiciel fournit un guide de pondération et ciblage des essais à mener pour optimiser l'identification et l'élimination d'anomalies du logiciel en amont de sa distribution.

Pour en savoir plus

L'analyse de risques du logiciel est un bon outil pour réduire ses dysfonctionnements et, par conséquent, les coûts de maintenance corrective 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 07 / 10 / 2018