Thèse
Le développement de logiciel comporte un coût caché lié à la mauvaise qualité du code et/ou du leadership technique, la dette technique, qu'il revient à la Technique de réparer sous peine de grever le budget des évolutions fonctionnelles futures.
Antithèse
Le code d'un logiciel est la cristallisation de conversations entre trois acteurs : Métier, Technique et Management, obtenue à travers un processus continu de traduction multiple et complexe, faisant intervenir de nombreux états de l'art. Lorsque ces conversations perdent en cohérence, le code cristallise en retour ce désalignement.
Synthèse
La dette technique est relative aux objectifs et contraintes que se donnent les trois acteurs dans leur projet de développement logiciel et dans ses évolutions. Dans cette perspective, manager "la dette technique" revient à gérer les conséquences au lieu de prévenir les problèmes. En revanche, prévenir la dette technique, empêcher qu'elle se produise ou du moins qu'elle augmente, constitue la tâche du Management (bien sûr, en étroite symbiose avec le Métier et la Technique).
Dans l'organisation, trois acteurs se réunissent afin de développer et maintenir du logiciel. Ce n'est pas nécessairement leur but premier à chacun, mais c'est le but qu'ils ont en commun, le temps que ce logiciel existe :
- Le Métier a pour objectif de réaliser de la valeur. À ce titre, le "rêve" du métier, son pattern de référence, sa "caricature" si l'on veut, est l'innovation. Le Métier veut se retrouver demain, ou avant demain, devant la compétition.
- La Technique a pour objectif d'apprendre. Sa caricature est de "faire école". Lorsque les acteurs techniques n'apprennent plus, ils démissionnent.
- Le Management a pour objectif de maintenir. Sa caricature est la "factory", une sorte de machine à produire qui serait fiable, stable, régulière et pérenne.
Problèmes de croissance
La persistence des problèmes (que j'appellerais des problèmes de croissance) que rencontrent les entreprises qui développent et maintiennent du logiciel montre à quel point le rôle du Management est difficile dans ce domaine. En effet,
- il doit prendre en compte un très grand nombre de tenants et aboutissants liés au Métier comme à la Technique
- il doit créer au sein de l'entreprise une institutionnalisation des fondations qui permettent de maintenir du logiciel de manière cohérente, tandis que le marché du service accentue le mercenariat des activités
- il doit traiter avec le quotidien des équipes aussi bien qu'avec la stratégie et la politique dans l'entreprise
- il doit vivre au rythme absurde de la technologie sauf à défendre un conservatisme incongru
À cet égard il est difficile de ne pas voir dans les tendances actuelles l'augure d'une augmentation en masse de la "Dette Technique" dans les entreprises.
Bon, encore des généralités, voire des généralisations...La dette technique : Que faire ? Nous y arrivons, stay tuned !