Une Traduction Incohérente
La dette technique, c'est donc juste une façon de parler. Mais de parler de quoi, au juste ?
Pour Ward Cunningham à l'origine, contracter une dette technique, c'est prendre un raccourci sur notre état de l'art et nos standards le temps d'atteindre un objectif intermédiaire. Une tactique à n'utiliser que ponctuellement, sous peine de se sur-endetter.
Pour l'ensemble de l'industrie aujourd'hui -- à en croire en tout cas les articles de blog des sites de conseil stratégique -- la dette technique est une sorte d'externalité financière globale présente dans toute entreprise qui innove en développant du logiciel. Elle serait principalement causée par :
- l'entropie, ou le fait que "le code pourrit"
- le code de mauvaise qualité
- un leadership technique médiocre
(tant qu'on y est, je pense que l'on pourrait ajouter :
- le court-termisme en général
- la vie)
Je pose que les problèmes que nous désignons (ou que nous masquons) à l'aide du terme "dette technique" ne sont en fait, ni purement financiers, ni purement techniques. Pour mieux le voir, je propose de changer de modèle.
La représentation du développement logiciel la plus répandue aujourd'hui est celle d'un système de fabrication. Dans ce modèle, certains acteurs, les thinkers, ont pour tâche de concevoir, de traiter le "pourquoi", le "quoi" et le "quand". D'autres acteurs, les doers ont pour tâche de réaliser, de traiter le "comment".
Dans ce modèle, les thinkers font des propositions "sur le papier", et les doers "mettent les mains dans le cambouis". La dette technique, c'est l'épaisseur du cambouis.
Cette représentation ne fonctionne pas. Les organisations qui y souscrivent fabriquent invariablement (grâce à la fameuse "software factory") du code legacy.
Une autre représentation est possible, qui voit le développement (et la maintenance) de logiciel comme un système de traduction. Trois acteurs :
- le Métier, dont l'objectif est de réaliser de la valeur,
- la Technique, dont l'objectif est d'apprendre,
- le Management, dont l'objectif est de maintenir l'activité dans la durée
opérent ensemble une traduction d'un système d'idées vers un autre système d'idées.
Il n'y a pas de cambouis ni de papier dans ce processus. Il y a seulement des traductions à de multiples niveaux, dans un sens et dans l'autre, entre le Métier, la Technique, et le Management.
C'est un processus complexe, riche et incomplet, que nos trois acteurs essaient de mettre en œuvre de la manière la plus cohérente possible.
La dette technique est ce qui se produit lorsque des barrières de communication entre ces acteurs empêchent ou diminuent fortement la cohérence de cette traduction.
La dette technique, c'est une traduction incohérente.
Un exemple là maintenant serait le bienvenu, mais on manque un peu de place, et un peu de temps. Pour en savoir plus, restez branché ! 📡