Crise de Croissance
Sortir des ronces #8
[legacy]
Toutes les fois où un Tech Lead m’a annoncé “cette application, c’est la vache à lait de l’entreprise” il m’a ensuite montré du code legacy.
☕️🥐🗞
Un système contenant de la technologie croît de manière non-linéaire. C’est même sa raison d’être.
Un éditeur logiciel investit dans un système relativement simple basé sur une idée innovante, et vend quelques licences.
🦻 Ses premiers clients sont agréablement surpris, et de bouche à oreille, lui amènent de nouveaux clients.
💶 Cela permet à l’éditeur non seulement de rembourser ses prêts mais aussi d’investir : faire plus de logiciel, vendre plus de logiciel !
Qu’est-ce exactement que cette croissance non-linéaire ?
On peut choisir de la définir ainsi : le nombre d’interactions concrètes possibles entre les éléments de ce système. Ce nombre croît comme le produit du nombre d’utilisateurs par le nombre de chemins d’interactions possibles avec le programme.
⏰ Par exemple un logiciel très simple, appelons-le 𝗗𝗲𝗯𝗼𝗼!, contient 6 fonctionnalités :
- afficher l’heure
- définir l’heure d’alarme
- modifier l’heure d’alarme
- annuler le mode alarme
- restaurer le mode alarme
- stopper l’alarme déclenchée
et son éditeur l’a distribué à 250 clients.
Nous pourrions convenir que la complexité du système 𝗗𝗲𝗯𝗼𝗼! = 250 x 6
Notre éditeur ajoute 4 features :
- réglage du volume de l’alarme
- définir une alarme exceptionnelle
- annuler une alarme exceptionnelle
- définir la sonnerie d’alarme (parmi 28 possibilités!)
ce qui lui amène 200 nouveaux clients.
𝗗𝗲𝗯𝗼𝗼! croît en complexité : 550 x 10
Certains clients demandent : est-ce que vous pouvez aussi reporter une alarme à dans 9 minutes ?
Des prospects : est-ce que vous sauriez diffuser de la musique au lieu de la sonnerie ? 🛒
Nouvelles features → nouveaux clients → nouvelles features 🔄
Le logiciel s’enrichit, l’éditeur s’enrichit, le code se complexifie.
📈🤑🤖
Côté Technique, “tout est prioritaire” :
- coder de nouvelles fonctionnalités
- répondre aux utilisateurs réveillés à des heures non programmées à cause d’un bug (voir tickets 4807 à 4822 – le même défaut à causé plusieurs incidents similaires).
- gérer les demandes du marketing, de la vente, du help-desk, des intégrateurs partenaires…
🥀 Le temps où on avait le temps de prendre le temps de bien faire les choses est révolu. Sous pression, l’équipe commence à sacrifier quelques procédés de son état de l’art :
✂️ est-ce qu’on a vraiment besoin de relire le code ? SVP moins de réunions !
🗑 j’ai arrêté de mettre à jour la doc (en plus j’aimais pas ça)
🪚 ces tests, là, sont cassés depuis 1 an. Je propose qu’on les débranche
Et notre éditeur se retrouve avec ce paradoxe :
🤔 un business florissant, soutenu par une base de code “legacy”
🚪 Conclusion 🚪
Notre solution croît : utilisateurs: ↗️ features: ↗️ complexité: ↗️ ↗️
Est-ce maintenant le moment de RETIRER des procédés de notre état de l’art ?
🪜🪜🪜 Réfléchissons 🪜🪜🪜
#etatdelart #dettetechnique