clement13.net
Photo d’origine : Un atelier de charpentier de marine
Description
Un atelier de charpentier de marine
Source
Christoph Braun · page d’origine
Licence
CC0 Domaine public
Photo d’origine, non retouchée. L’arrière-plan en est une version stylisée par le site.

Matrice : Maintenance applicative

Comment le produit installé est maintenu : anomalies, correctifs, versions, dette technique, compatibilité, composants tiers, connaissance, fin de vie.

≈ 12 min de lectureLecture
Périmètre

La vie du produit installé : traitement des anomalies, correctifs et versions maintenues, numérotation et notes de version, dette technique, compatibilité et montées de version, composants et bibliothèques tiers, connaissance et documentation technique, fin de vie. La planification des évolutions relève du thème « Gestion de projet », l'acheminement vers la production du thème « Déploiements ».

8 dimensions, six niveaux (0 à 5) et 112 critères observables. Pour situer votre produit : ouvrir l'état des lieux de ce thème. Les règles de calcul sont ici.

Vue d'ensemble#

Chaque cellule est la signature du niveau pour la dimension.

Dimension0 · Artisanal1 · Local outillé2 · Partagé3 · Industrialisé4 · Intégré et gouverné5 · Autonome
Gestion des anomaliesLes anomalies sont corrigées au gré des demandes, sans trace.Anomalies enregistrées.Tri et gravité.Circuit complet.Anomalies analysées.Anomalies prévenues.
Correctifs et versions supportéesUn seul état du produit : le correctif est appliqué sur ce qui existe.Versions identifiées.Versions maintenues.Correctifs maîtrisés.Correctifs suivis.Correctifs automatisés.
Numérotation et notes de versionVersions nommées par date ou par habitude, sans règle.Numérotation simple.Numérotation significative.Notes utiles.Notes produites à partir du travail.Communication de version automatisée.
Dette techniqueLa dette s'accumule sans que personne la voie.Dette perçue.Dette listée.Dette arbitrée.Dette mesurée.Dette maîtrisée.
Compatibilité et montées de versionChaque montée de version est une aventure.Montées documentées.Montées vérifiées.Chemins de migration.Compatibilité gérée.Montées sans friction.
Composants et bibliothèques tiersLes composants tiers sont ceux qu'un développeur a installés un jour.Composants listés.Composants suivis.Mises à jour planifiées.Chaîne maîtrisée.Dépendances surveillées.
Connaissance et documentation techniqueLe fonctionnement du produit est connu d'une personne.Notes personnelles.Documentation technique.Documentation tenue.Documentation générée et vérifiée.Connaissance accessible.
Fin de vie et retraitUne fonction disparaît parce qu'elle a cassé et que personne ne la répare.Retraits décidés.Retraits annoncés.Politique de support.Retrait accompagné.Cycle de vie piloté.
Lien avec le modèle global

Dimensions du modèle global les plus concernées : Tests et corrections, Industrialisation et déploiement, Documentation et traçabilité et Pilotage projet et roadmap.

Corrections et versions#

Gestion des anomalies#

Comment une anomalie est-elle reçue, qualifiée, corrigée et suivie ?

NiveauSignatureCritères à réunir
0 · ArtisanalLes anomalies sont corrigées au gré des demandes, sans trace.Point de départ : aucun critère.
1 · Local outilléAnomalies enregistrées.
  • Chaque anomalie est enregistrée dans un outil, avec une description.
  • Une personne est affectée à chaque anomalie.
2 · PartagéTri et gravité.
  • Chaque anomalie est qualifiée : gravité, produit et version concernés, comment la reproduire.
  • Le délai de correction attendu dépend de la gravité.
  • La personne qui a signalé l'anomalie est informée de sa correction.
3 · IndustrialiséCircuit complet.
  • Chaque anomalie corrigée est vérifiée par une autre personne que l'auteur de la correction.
  • Un test automatique qui reproduit l'anomalie est ajouté avec la correction.
  • Les anomalies sont reliées aux versions dans lesquelles elles sont corrigées.
4 · Intégré et gouvernéAnomalies analysées.
  • Le stock d'anomalies ouvertes et leur ancienneté sont suivis.
  • Les causes (spécification, code, données, environnement) sont analysées pour agir sur les plus fréquentes.
  • Les anomalies sont traitées dans les délais annoncés pour chaque gravité, et les écarts sont suivis.
5 · AutonomeAnomalies prévenues.
  • Une anomalie corrigée déclenche la recherche automatique de sa jumelle ailleurs dans le code.
  • Les anomalies détectées en production sont rattachées automatiquement au changement qui les a causées.
  • Le nombre d'anomalies par version diminue, et cela est suivi.
Effet sur l'utilisateur

Un défaut signalé a un numéro, un responsable et un délai ; on sait où il en est.

Correctifs et versions supportées#

Quelles versions sont maintenues, et comment un correctif y est-il apporté ?

NiveauSignatureCritères à réunir
0 · ArtisanalUn seul état du produit : le correctif est appliqué sur ce qui existe.Point de départ : aucun critère.
1 · Local outilléVersions identifiées.
  • Chaque installation connaît sa version.
  • Les versions livrées sont conservées.
2 · PartagéVersions maintenues.
  • La liste des versions supportées est définie.
  • Un correctif peut être appliqué sur une version supportée sans y apporter des évolutions.
  • Une correction faite sur une version est reportée sur les autres versions concernées.
3 · IndustrialiséCorrectifs maîtrisés.
  • Les correctifs sont livrés sous forme de versions numérotées et testées.
  • Un correctif urgent suit un circuit raccourci, mais garde les tests essentiels.
  • Le report d'un correctif sur toutes les versions supportées est vérifié.
4 · Intégré et gouvernéCorrectifs suivis.
  • Les versions installées chez chaque client sont connues, avec les correctifs qui leur manquent.
  • Le temps entre la correction et son application chez le client est mesuré.
  • Un correctif peut être installé à chaud ou avec une interruption minimale.
5 · AutonomeCorrectifs automatisés.
  • Les correctifs sont proposés et appliqués automatiquement aux installations qui les acceptent.
  • Un correctif défaillant est retiré automatiquement.
  • L'état de correction de l'ensemble des installations est visible sur un tableau de bord.
Effet sur l'utilisateur

Un client sur une version supportée reçoit son correctif sans devoir changer de version.

Numérotation et notes de version#

Les versions sont-elles numérotées de façon significative et accompagnées d'explications claires ?

NiveauSignatureCritères à réunir
0 · ArtisanalVersions nommées par date ou par habitude, sans règle.Point de départ : aucun critère.
1 · Local outilléNumérotation simple.
  • Chaque version a un numéro unique.
  • Un livrable ne change plus une fois publié sous un numéro.
2 · PartagéNumérotation significative.
  • La numérotation distingue les changements incompatibles, les ajouts compatibles et les corrections (par exemple version majeure, mineure, correctif).
  • Chaque version a des notes de version.
  • Les notes listent les changements visibles, les corrections et les points d'attention.
3 · IndustrialiséNotes utiles.
  • Les notes de version sont rédigées pour les utilisateurs et pour les administrateurs séparément.
  • Les changements incompatibles sont signalés en tête, avec la marche à suivre.
  • Les notes sont conservées pour toutes les versions publiées.
4 · Intégré et gouvernéNotes produites à partir du travail.
  • Les notes de version sont générées en grande partie à partir des demandes et des corrections livrées.
  • Le numéro de version est calculé par des règles, et non choisi à la main.
  • Un historique des changements est consultable par fonction et par date.
5 · AutonomeCommunication de version automatisée.
  • Les clients concernés sont prévenus automatiquement d'une nouvelle version selon son effet pour eux.
  • La nature d'une version (incompatible, compatible) est vérifiée automatiquement par comparaison avec la précédente.
  • Les questions des clients sur une version enrichissent les notes suivantes.
Effet sur l'utilisateur

Le numéro d'une version dit s'il y a un risque à l'installer, et les notes disent ce qui change.

Dette et compatibilité#

Dette technique#

Sait-on où sont les raccourcis pris, ce qu'ils coûtent, et quand les rembourser ?

NiveauSignatureCritères à réunir
0 · ArtisanalLa dette s'accumule sans que personne la voie.Point de départ : aucun critère.
1 · Local outilléDette perçue.
  • Les zones du code que l'équipe évite de toucher sont connues.
  • Les raccourcis délibérés sont signalés au moment où ils sont pris.
2 · PartagéDette listée.
  • La dette technique est inscrite dans le backlog, avec une description de son effet.
  • Chaque élément de dette a une estimation de son coût de remboursement.
  • Un raccourci pris sous contrainte est consigné avec sa date de remboursement prévue.
3 · IndustrialiséDette arbitrée.
  • Une part du temps de chaque période est réservée au remboursement de la dette.
  • La dette est remboursée en priorité là où le code est le plus souvent modifié.
  • Les nouveaux raccourcis sont examinés en revue avant d'être acceptés.
4 · Intégré et gouvernéDette mesurée.
  • Des mesures (complexité, duplication, couverture de tests, ancienneté des composants) sont suivies dans le temps.
  • Le coût de la dette est estimé en temps perdu et en incidents.
  • La dette fait partie des critères de décision pour une nouvelle fonction.
5 · AutonomeDette maîtrisée.
  • Un seuil de dette est fixé, et son dépassement arrête les nouvelles fonctions.
  • Les contrôles automatiques empêchent d'introduire certains types de dette.
  • La dette diminue d'une période à l'autre, et c'est suivi.
Effet sur l'utilisateur

Le produit reste facile à faire évoluer, et la vitesse n'est pas gagnée à crédit sans qu'on le sache.

Compatibilité et montées de version#

Passer d'une version à une autre est-il prévisible, testé et réversible ?

NiveauSignatureCritères à réunir
0 · ArtisanalChaque montée de version est une aventure.Point de départ : aucun critère.
1 · Local outilléMontées documentées.
  • Une procédure de montée de version est écrite.
  • Les sauvegardes avant montée sont prévues.
2 · PartagéMontées vérifiées.
  • La montée d'une version à la suivante est testée sur une copie de données réelles.
  • Les données et personnalisations existantes sont conservées par la montée.
  • Un contrôle après montée vérifie les éléments essentiels.
3 · IndustrialiséChemins de migration.
  • Les chemins de montée entre versions supportées sont définis et testés.
  • Les changements de structure de données sont appliqués par des scripts rejouables.
  • Un retour à la version précédente est prévu et testé.
4 · Intégré et gouvernéCompatibilité gérée.
  • Les changements incompatibles passent par une période où l'ancien et le nouveau coexistent (ajout, migration, retrait).
  • La compatibilité avec les rapports et les extensions des clients est vérifiée avant chaque version.
  • Le temps d'interruption d'une montée est mesuré et réduit.
5 · AutonomeMontées sans friction.
  • Les montées s'effectuent automatiquement, sans interruption notable, avec retour automatique en cas d'échec.
  • La compatibilité est vérifiée automatiquement pour chaque configuration cliente connue.
  • Les clients choisissent la date de leur montée dans une plage définie.
Effet sur l'utilisateur

Une montée de version ne fait rien perdre : ni donnée, ni personnalisation, ni rapport.

Composants et bibliothèques tiers#

Les composants utilisés sont-ils connus, à jour et sans vulnérabilité connue ?

NiveauSignatureCritères à réunir
0 · ArtisanalLes composants tiers sont ceux qu'un développeur a installés un jour.Point de départ : aucun critère.
1 · Local outilléComposants listés.
  • La liste des composants tiers utilisés est connue.
  • La version de chaque composant est notée.
2 · PartagéComposants suivis.
  • La liste des composants est tenue dans un fichier géré avec le code.
  • Les composants abandonnés ou en fin de support sont repérés.
  • La licence de chaque composant est connue et compatible avec l'usage.
3 · IndustrialiséMises à jour planifiées.
  • Les composants sont mis à jour à intervalle défini, avec les tests de non-régression.
  • Les vulnérabilités connues des composants sont recherchées par un outil.
  • Une vulnérabilité grave suit un circuit de correction rapide.
4 · Intégré et gouvernéChaîne maîtrisée.
  • Les composants sont téléchargés depuis des sources approuvées.
  • La liste complète des composants de chaque version livrée est conservée.
  • Un composant critique a une solution de remplacement identifiée.
5 · AutonomeDépendances surveillées.
  • Les mises à jour de sécurité sont proposées et testées automatiquement.
  • Les clients sont informés automatiquement lorsqu'une vulnérabilité touche leur version.
  • L'âge moyen des composants est suivi comme un indicateur.
Effet sur l'utilisateur

Une faille publiée dans un composant est repérée et corrigée avant qu'elle ne devienne un incident.

Connaissance et vie du produit#

Connaissance et documentation technique#

La connaissance du produit dépend-elle de quelques personnes, ou est-elle partagée et écrite ?

NiveauSignatureCritères à réunir
0 · ArtisanalLe fonctionnement du produit est connu d'une personne.Point de départ : aucun critère.
1 · Local outilléNotes personnelles.
  • Des notes techniques existent sur les parties critiques.
  • Les personnes qui connaissent chaque partie sont identifiées.
2 · PartagéDocumentation technique.
  • L'architecture générale et les dépendances sont décrites dans un document partagé.
  • Chaque composant important a au moins deux personnes capables d'intervenir.
  • Les procédures d'exploitation et de correction sont écrites.
3 · IndustrialiséDocumentation tenue.
  • La documentation technique est stockée avec le code et mise à jour avec lui.
  • Les décisions d'architecture sont consignées avec leur motif.
  • Une personne qui arrive sur le produit peut le construire et l'exécuter en suivant la documentation.
4 · Intégré et gouvernéDocumentation générée et vérifiée.
  • Une partie de la documentation (objets, dépendances, schémas) est générée à partir du code et des métadonnées.
  • Une documentation périmée est détectée à la revue de chaque changement.
  • La répartition des connaissances est suivie pour repérer les composants maîtrisés par trop peu de personnes.
5 · AutonomeConnaissance accessible.
  • La documentation est interrogeable par un assistant qui s'appuie sur elle.
  • Les questions posées à l'équipe améliorent automatiquement la documentation.
  • La connaissance est transmise par un parcours d'intégration éprouvé.
Effet sur l'utilisateur

Le départ d'une personne ne bloque ni une correction ni une évolution.

Fin de vie et retrait#

Comment retire-t-on une fonction, une version ou un produit sans surprise pour les utilisateurs ?

NiveauSignatureCritères à réunir
0 · ArtisanalUne fonction disparaît parce qu'elle a cassé et que personne ne la répare.Point de départ : aucun critère.
1 · Local outilléRetraits décidés.
  • Les décisions de retrait sont prises explicitement.
  • Les utilisateurs de la fonction retirée sont recherchés.
2 · PartagéRetraits annoncés.
  • Un retrait est annoncé avec un préavis et une date.
  • Une alternative ou une marche à suivre est proposée.
  • La fonction retirée est signalée comme obsolète pendant le préavis.
3 · IndustrialiséPolitique de support.
  • Une politique écrite définit la durée de support de chaque version.
  • La date de fin de support de chaque version est communiquée dès sa publication.
  • L'usage des fonctions en cours de retrait est mesuré pour adapter le préavis.
4 · Intégré et gouvernéRetrait accompagné.
  • Les clients utilisant une version en fin de support sont contactés avec un plan de migration.
  • Les données des fonctions retirées sont conservées ou exportées selon une règle définie.
  • Le code et les données obsolètes sont réellement supprimés après la période prévue.
5 · AutonomeCycle de vie piloté.
  • Les fonctions peu utilisées sont repérées automatiquement et proposées au retrait.
  • Les migrations vers les alternatives sont outillées pour les cas courants.
  • Le coût de maintien de chaque fonction est connu et alimente les décisions de retrait.
Effet sur l'utilisateur

Un retrait est annoncé, expliqué et accompagné ; personne ne découvre qu'une fonction a disparu.

Origine des critères

Les dimensions s'inspirent des références citées ci-dessous ; les niveaux et les critères sont une synthèse originale, pas une reprise d'un référentiel. Ils sont proposés pour être discutés et adaptés, pas pour faire foi.

Sources et vérification#