Blogue

16
Adopter DevOps: Le triangle inéluctable : qualité, temps et budget dans le domaine du code propre
19 septembre 2023
par Jean-Paul Lizotte

Introduction

Dans le développement de logiciels, nous entendons souvent parler du « triangle de fer » de la gestion de projet : qualité, temps et budget. Comme si elles résolvaient un casse-tête complexe, les équipes de développement ont du mal à trouver le bon équilibre entre ces trois facteurs critiques. Au milieu de ce défi, il n’est pas rare de trouver des propriétaires de produits qui ignorent béatement la qualité de leur base de code, acceptant naïvement les mauvaises pratiques comme un moyen de couper les coins ronds et de respecter les délais. Ce blogue a pour but d’expliquer comment les contraintes de qualité, de temps et de budget sont inévitables et comment le compromis sur la qualité du code conduit souvent à un cercle vicieux de mauvaises pratiques.

 

Le «triangle de fer» : un aperçu

Le Triangle de fer comprend trois facteurs essentiels qui dictent l’issue d’un projet de développement de logiciels :

  1. Qualité : Il s’agit de la qualité de construction de la base de code, qui intègre des facteurs tels que la maintenabilité, l’évolutivité et la lisibilité.
  2. Temps : Il s’agit du délai dans lequel le projet ou la fonctionnalité doit être livré.
  3. Budget : Il s’agit des contraintes financières, qui peuvent inclure le coût de développement, de test et de déploiement.

L’interdépendance

L’amélioration d’une facette du Triangle de fer se fait souvent au détriment des deux autres. Par exemple, pour accélérer le développement (Temps), vous devrez peut-être embaucher plus de développeurs (Budget), mais cela peut diluer la qualité du code (Qualité) si elle n’est pas gérée correctement[^1^].

 

Le coût caché de la mauvaise qualité

Dans un environnement de développement au rythme rapide, il peut sembler tentant de sacrifier la qualité pour une livraison plus rapide. Cependant, une mauvaise qualité du code a des répercussions à long terme :

 

Les dangers des propriétaires de produits non informés

Un propriétaire de produit qui ne comprend pas l’importance de la qualité du code est une responsabilité. Lorsque les propriétaires de produits acceptent un code de mauvaise qualité, ils font le choix de :

  1. Permettre les mauvaises pratiques : En acceptant la mauvaise qualité, les propriétaires de produits l’approuvent sans le savoir, ce qui en fait une pratique standard.
  2. Compromettre les projets futurs : Un mauvais code est comme une bombe à retardement qui peut perturber les futurs efforts de développement.
  3. Gonfler les coûts : À mesure que la dette technique s’accumule, le coût de l’entretien augmente, dépassant souvent les coûts de développement initiaux[^3^].

 

Solutions pratiques : maintenir l’équilibre

Sensibiliser les intervenants

L’ignorance n’est pas une bénédiction. Sensibilisez les propriétaires de produits et les parties prenantes sur l’importance de la qualité du code et à ses avantages à long terme. Ils devraient participer à l’établissement de normes en matière de qualité du code. Après tout, c’est leur produit et leur budget qui le maintiennent.

Revues de code

Intégrez l’examen de code par les pairs comme une pratique courante pour maintenir la qualité.

 

Le rôle de SonarQube dans le cycle de vie du développement logiciel (SDLC)

SonarQube est un outil d’analyse de code statique qui aide à maintenir la qualité du code. Lorsqu’il est correctement configuré et réglé, il peut fournir la transparence qui manque souvent aux parties prenantes.

Voici comment faire :

Visibilité

SonarQube fournit des mesures telles que des odeurs de code, des bogues et des vulnérabilités, ce qui permet aux propriétaires de produits de comprendre plus facilement la qualité de leur base de code. Il dispose d’un joli tableau de bord avec un état assez explicite du code. Il permet également de savoir s’il s’agit d’une amélioration ou d’une dégradation.

Prise de décisions

Les métriques de SonarQube peuvent influencer les décisions de projet, guidant les équipes vers l’écriture d’un code plus propre et la refactorisation si nécessaire.

Responsabilisation

SonarQube crée un sentiment de responsabilité parmi les développeurs, les encourageant à écrire un code plus propre et plus efficace.

Automatiser

 

Conclusion

Le Triangle de fer de la qualité, du temps et du budget reste un défi, mais celui-ci peut être mieux surmonté avec les bons outils et la bonne prise de conscience. SonarQube peut agir comme boussole de navigation, fournissant la visibilité et les informations nécessaires pour maintenir l’équilibre fragile. En intégrant des outils comme SonarQube dans votre SDLC, non seulement vous appliquez de meilleures pratiques, mais vous permettez également une prise de décision éclairée, ce qui permet d’obtenir un projet plus équilibré et plus réussi.

Références

Remerciements : Merci à Manon Warembourg | LinkedIn