Simplicité

La simplicité est une valeur d’eXtreme Programming affichée comme suit:

Nous ferons ce qui est nécessaire et demandé, mais pas plus. Cela maximisera la valeur créée pour l’investissement réalisé à ce jour. Nous prendrons de petites mesures simples pour atteindre notre objectif et atténuerons les échecs au fur et à mesure qu’ils se produisent. Nous allons créer quelque chose dont nous sommes fiers et le maintenir à long terme à des coûts raisonnables.

La dernière phrase met en relief les aspirations profondes de l’équipe pour lesquelles la simplicité est vue comme un moyen:

  • la durabilité de l’oeuvre réalisée par l’équipe attachée à la maintenir à long terme à des coûts raisonnable

  • la fierté est la dimension affective de l’équipe attachée plus à une certaine humilité et auto-discipline dans sa pratique d’essais-erreurs pour créer de la valeur plus qu’à la création d’une oeuvre parfaite qui lui succèderait et finirait par déprécier faute de capacité à la maintenir, modifier par manque de simplicité.

La simplicité est reprise dans le Xème principe du manifeste agile encadrée par deux principes portant sur la fabrication:

Principe 9: Une attention continue à l’excellence technique et à une bonne conception renforce l’Agilité.

Principe 10: La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle.

Principe 11: Les meilleures architectures, spécifications et conceptions émergent d’équipes autoorganisées.

Dans les définitions du manifeste, la notion de valeur produite du travail de l’équipe est inscrite dans le langage de l’économie financière associée aux mots investissement, et coût. La quantité de travail inutile est souvent entendue sous la forme du gaspillage compatible avec la logique de diminution des coûts de l’équipe. Hors c’est bien l’équipe qui travaille au quotidien à minimiser les coûts du changement pour assurer la viabilité de la solution, à maintenir la valeur des parties prenantes dans la durée. Ces limites de langage peuvent ainsi être dépassées à une échelle plus globale, de temps et d’espace.

Quant on sait les enjeux que représentent aujourd’hui l’eco-conception de produits et services numériques quant aux impacts environnementaux, j’ai bien envie de reformuler ce 10ème principe de la façon suivante:

La simplicité et la sobriété - c’est-à-dire l’art de minimiser la quantité de travail , d’énergie et de ressources matérielles inutiles - sont essentielles.

Exprimé comme tel, le principe reste pratique et ouvert à tout domaine d’activités, tout en invitant explicitement l’équipe à investir les questions sur les impacts environnementaux de ses solutions et de ses propres comportements.

Dans le développement logiciel, la simplicité peut consister à retarder des décisions, à préserver des options d’architecture tant que le choix n’est pas nécessaire. C’est donc refuser le choix trop rapide d’un framework, refuser d’inclure une nouvelle librairie à la moindre fonction technique manquante, challenger tous ces ajouts qui rendent la solution dépendante des évolutions de ces composants, et gourmande en ressources mises bout à bout (temps de travail, temps latence/CPU, place disque/mémoire, énergie).

Références

En fouillant le net, j’ai découvert le concept (parlant) de Simplicité volontaire

Suivez aussi l’évolution de la section Numérique responsable dans laquelle j’explore progressivement les sujets de la sobriété numérique et de l’eco-conception avec agilité.

En chanson: La simplicité https://youtu.be/UNRHEqZ-8ZM