Qu'est-ce que le Modèle de maturité de l'excellence en ingénierie ?

Les ingénieurs savent généralement où le code pose problème. Ce qui est plus difficile, c'est de s'accorder en équipe sur les problèmes les plus importants et sur l'avancement de leur résolution. Avec le Modèle de maturité de l'excellence en ingénierie, votre équipe évalue 12 pratiques réparties en quatre groupes (Qualité et standards de code, Architecture et évolutivité, Gestion de la dette technique, Collaboration et accompagnement en ingénierie) sur une échelle de cinq niveaux, d'Ad hoc à Optimisé. Comme chaque niveau est décrit, les évaluations transforment des impressions floues sur la qualité en constats précis : des revues de code qui détectent les bugs sans diffuser les connaissances, ou une dette technique que tout le monde connaît mais que personne ne suit. Ce langage commun aide les ingénieurs et les responsables à s'accorder sur ce qu'il faut améliorer en priorité. Utilisez-le régulièrement pour vérifier si les changements apportés ont fait progresser vos pratiques d'un niveau.

Dimensions

Qualité et standards de code

La régularité avec laquelle l'équipe écrit un code propre, maintenable et bien relu, guidé par des standards communs.

  • Cohérence des standards de code

    La régularité avec laquelle l'équipe applique des règles de codage communes.

    1. Ad hocLes pratiques de codage varient fortement ; aucun standard commun n'est suivi.
    2. ÉmergentCertains standards existent mais sont appliqués de manière irrégulière.
    3. DéfiniLes standards sont documentés et généralement respectés.
    4. MaîtriséLes standards sont appliqués de manière constante et revus régulièrement.
    5. OptimiséLa culture de la qualité du code est forte ; les standards évoluent grâce à la collaboration et aux bonnes pratiques.
  • Maintenabilité du code

    La facilité avec laquelle le code peut être lu, compris, modifié et étendu.

    1. Ad hocLe code est difficile à lire, à parcourir ou à réutiliser.
    2. ÉmergentQuelques améliorations ont été apportées, mais des problèmes de maintenabilité subsistent.
    3. DéfiniLe code est en grande partie compréhensible et maintenable.
    4. MaîtriséLe code est propre, modulaire et prévisible, avec de solides pratiques de maintenabilité.
    5. OptimiséLa maintenabilité fait partie de la culture ; les équipes améliorent et font évoluer la structure du code de manière proactive.
  • Qualité des revues de code

    L'efficacité des revues de code pour améliorer la qualité et l'apprentissage de l'équipe.

    1. Ad hocLes revues sont rares, bâclées ou superficielles.
    2. ÉmergentDes revues ont lieu, mais leur profondeur et leur utilité varient fortement.
    3. DéfiniLes revues détectent les problèmes et améliorent la qualité de manière fiable.
    4. MaîtriséLes revues sont constructives, régulières et renforcent à la fois la qualité et les compétences de l'équipe.
    5. OptimiséLes revues sont collaboratives, riches en partage de connaissances et essentielles à l'excellence en ingénierie.

Architecture et évolutivité

La clarté de l'architecture du système et sa capacité à évoluer, à tenir les performances et à maîtriser les risques techniques.

  • Clarté de l'architecture

    Dans quelle mesure l'architecture du système est définie, documentée et comprise.

    1. Ad hocL'architecture est floue ou non documentée.
    2. ÉmergentUne certaine documentation existe, mais elle manque d'exhaustivité ou de clarté.
    3. DéfiniL'architecture est documentée et comprise par la plupart des membres de l'équipe.
    4. MaîtriséL'architecture guide les décisions et évolue grâce à une collaboration structurée.
    5. OptimiséL'architecture est évolutive, réfléchie et affinée en continu à partir des enseignements tirés.
  • Évolutivité et robustesse

    La capacité du système à absorber la croissance et à répondre aux exigences de performance et de fiabilité.

    1. Ad hocLe système peine sous la charge ; la montée en charge n'est pas anticipée.
    2. ÉmergentCertains composants passent à l'échelle, mais des limites subsistent.
    3. DéfiniLe système supporte la charge habituelle avec des performances acceptables.
    4. MaîtriséLe système passe à l'échelle de manière fiable et les performances sont activement surveillées et optimisées.
    5. OptimiséL'évolutivité est un point fort ; le système absorbe la croissance avec aisance et de façon prévisible.
  • Gestion des risques techniques

    L'efficacité avec laquelle les risques techniques sont identifiés, évalués et atténués.

    1. Ad hocLes risques apparaissent tardivement et provoquent d'importantes perturbations.
    2. ÉmergentLes risques sont évoqués de temps en temps, sans être gérés de manière systématique.
    3. DéfiniLes risques sont identifiés lors de la planification et traités au besoin.
    4. MaîtriséUne évaluation structurée des risques permet de les atténuer de manière proactive.
    5. OptimiséLa gestion des risques est intégrée à l'ensemble des processus d'ingénierie et prévient les problèmes majeurs.

Gestion de la dette technique

La visibilité du suivi de la dette technique, sa réduction et le lien établi avec son impact sur la livraison.

  • Visibilité de la dette

    La manière dont la dette technique est identifiée, suivie et communiquée.

    1. Ad hocLa dette technique est cachée et non gérée.
    2. ÉmergentL'équipe a une certaine conscience de la dette, mais elle est rarement documentée.
    3. DéfiniLa dette est suivie et revue périodiquement.
    4. MaîtriséLe backlog de dette est priorisé et intégré à la planification.
    5. OptimiséLa visibilité et la prévention de la dette sont des pratiques d'ingénierie fondamentales.
  • Pratiques de réduction de la dette

    L'efficacité avec laquelle l'équipe traite et réduit la dette technique.

    1. Ad hocLa dette s'accumule sans que rien ne soit fait.
    2. ÉmergentLa dette est évoquée mais rarement résorbée.
    3. DéfiniLa dette est traitée quand c'est possible.
    4. MaîtriséLa réduction de la dette est proactive et fait partie du travail courant.
    5. OptimiséL'équipe maintient une dette minimale grâce à une ingénierie rigoureuse et à l'amélioration continue.
  • Conscience de l'impact

    La compréhension de l'effet de la dette technique sur la vélocité, la qualité et les risques.

    1. Ad hocL'équipe ne fait pas le lien entre la dette technique et les problèmes de livraison.
    2. ÉmergentUne certaine prise de conscience, mais peu d'actions.
    3. DéfiniL'impact de la dette est compris et influence certaines décisions.
    4. MaîtriséL'impact de la dette guide systématiquement la planification et la priorisation.
    5. OptimiséUne forte culture de la dette technique empêche son accumulation et favorise une vélocité durable.

Collaboration et accompagnement en ingénierie

L'efficacité avec laquelle l'équipe partage ses connaissances, diffuse les compétences et donne aux développeurs les outils pour faire du bon travail.

  • Partage des connaissances

    L'efficacité avec laquelle les connaissances et l'expertise techniques sont partagées au sein de l'équipe.

    1. Ad hocLes connaissances sont cloisonnées ; l'équipe dépend fortement de quelques personnes clés.
    2. ÉmergentUn certain partage a lieu, mais de manière irrégulière.
    3. DéfiniLes connaissances sont partagées par des canaux informels ou structurés.
    4. MaîtriséLes connaissances circulent bien ; l'intégration des nouveaux arrivants est efficace.
    5. OptimiséUne culture très collaborative, avec un apprentissage continu et une responsabilité partagée.
  • Étendue et polyvalence des compétences

    La capacité de l'équipe à travailler sur plusieurs parties du système.

    1. Ad hocDe forts cloisonnements créent des goulets d'étranglement liés aux dépendances.
    2. ÉmergentUne montée en compétences croisée a lieu de temps en temps.
    3. DéfiniLes membres de l'équipe peuvent couvrir la plupart des domaines clés.
    4. MaîtriséGrande polyvalence ; l'équipe s'adapte rapidement à la charge de travail.
    5. OptimiséUne expertise à la fois profonde et étendue au sein de l'équipe permet une livraison rapide et résiliente.
  • Outillage et accompagnement des développeurs

    La qualité des outils, des processus et de l'environnement qui soutiennent la productivité des développeurs.

    1. Ad hocLes outils sont obsolètes ou disparates ; les frictions sont nombreuses.
    2. ÉmergentDes améliorations sont en cours, mais des lacunes subsistent.
    3. DéfiniLes développeurs disposent d'outils fiables qui répondent aux besoins de base.
    4. MaîtriséLes outils sont simplifiés, efficaces et améliorés en permanence.
    5. OptimiséUne expérience développeur de premier ordre qui permet un travail d'ingénierie rapide et de grande qualité.

Quand utiliser ce bilan de santé

  • Pour établir un état des lieux de la maturité technique de votre équipe d'ingénierie sur le code, l'architecture et la collaboration.
  • Lors des rétrospectives trimestrielles ou de fin de release, pour suivre l'évolution des pratiques d'ingénierie.
  • Quand un nouveau responsable technique arrive et a besoin d'une vision franche des forces et des lacunes actuelles.
  • Avant d'investir dans des outils, une refonte du code ou des changements de processus, pour savoir où les efforts porteront le plus.
  • Quand l'équipe s'agrandit et que vous voulez que les standards, le partage des connaissances et l'architecture suivent le rythme.

Conseils et astuces

  • Demandez à chacun d'évaluer seul avant d'en discuter, pour que les avis sincères s'expriment avant que la pensée de groupe ne s'installe.
  • Consacrez l'essentiel du temps aux dimensions où les notes sont les plus dispersées. Les désaccords révèlent souvent des visions différentes du système.
  • Considérez les niveaux comme des étapes, pas comme des notes. Passer d'Émergent à Défini est un vrai progrès, alors dites-le.
  • Choisissez une ou deux dimensions à améliorer avant le prochain bilan plutôt que de vouloir tout faire progresser en même temps.
  • Refaites l'exercice à intervalles réguliers pour que les progrès des pratiques d'ingénierie restent visibles.

Foire aux questions

Qu'est-ce que le bilan de santé Excellence en ingénierie ?
C'est une évaluation fondée sur la maturité de vos pratiques d'ingénierie en matière de qualité du code, d'architecture et d'évolutivité, de gestion de la dette technique et de collaboration. Chacune des 12 dimensions est notée sur cinq niveaux, d'Ad hoc à Optimisé, ce qui donne à l'équipe un langage commun pour situer où elle en est.
En quoi est-ce différent d'un bilan de santé d'équipe classique ?
Un bilan de santé d'équipe classique mesure le ressenti des personnes. Celui-ci évalue le degré d'ancrage de chaque pratique, et chaque note correspond à un niveau décrit : les résultats montrent donc ce qu'il faudrait pour atteindre le niveau suivant.
Qui devrait participer ?
Les ingénieurs, les tech leads et les responsables d'ingénierie. Toute personne proche de la manière dont le code est écrit, relu et maintenu a un point de vue utile.
À quelle fréquence faut-il le réaliser ?
La plupart des équipes le font chaque trimestre ou à l'occasion des releases majeures. Un rythme régulier permet de suivre les tendances et de vérifier si les efforts d'amélioration portent leurs fruits.
Que signifient les niveaux de maturité ?
L'échelle comprend les niveaux Ad hoc, Émergent, Défini, Maîtrisé et Optimisé. Les niveaux bas correspondent à des pratiques irrégulières ou réactives ; les niveaux élevés, à des pratiques constantes, proactives et en amélioration continue.