Un morceau utile
Un gros projet aboutit rarement d’un seul geste. Il manque de l’argent, des gens, de l’information, ou la possibilité d’arrêter le travail en cours avant que le nouveau soit terminé.
Dans ces cas-là, mieux vaut découper le projet non pas simplement en étapes, mais en états utiles. Après chaque étape, le système doit déjà savoir faire quelque chose.
Un mauvais découpage ressemble à ceci :
1. démonter tout l’existant ;
2. construire le nouveau pendant plusieurs mois ;
3. espérer à la fin que ça marche.
Un bon découpage, à ceci :
1. mettre en service une part minimale qui fonctionne ;
2. la vérifier ;
3. transférer un petit volume ;
4. corriger ce qu’on a découvert ;
5. étendre le système ;
6. ne couper l’ancien qu’après confirmation du nouveau.
Il faudra parfois jeter plus tard la solution intermédiaire. Ce n’est pas nécessairement une perte. Un escalier provisoire ne devient pas absurde parce qu’on l’a retiré une fois le bâtiment achevé.
Le prix d’une étape intermédiaire est justifié si elle :
- apporte déjà un bénéfice ;
- réduit le risque ;
- fournit des données ;
- permet de s’arrêter sans catastrophe ;
- maintient le fonctionnement du système existant ;
- révèle une erreur avant le passage à l’échelle.
L’inachevé est dangereux surtout parce qu’il absorbe des ressources sans encore produire de résultat. Dix projets presque terminés peuvent donner l’impression d’une activité énorme et d’un bénéfice étonnamment faible.
Un petit résultat qui fonctionne vaut d’ordinaire mieux qu’une construction grandiose qui commencera à servir juste après un trimestre de plus, une validation et un alignement favorable des planètes.
Le bénéfice intermédiaire compte particulièrement lors du remplacement d’un système en service : on ne détruit pas l’ancien au seul motif que le nouveau est déjà joliment dessiné.
On peut déposer toutes les fenêtres en une journée. Les nouvelles auront trois semaines de retard. Couper l’ancien logiciel tient en une décision. On découvre ensuite que le nouveau ne sait pas exécuter l’opération dont « plus personne ne se sert », sauf la comptabilité, l’entrepôt et la moitié des clients.
Tant que le remplaçant ne fonctionne pas, l’ancien système reste une assurance. Il peut être incommode, inefficace et agacer tout le monde depuis longtemps. Mais ses défauts sont connus. Ceux de la nouvelle solution existent encore surtout au futur.
C’est pourquoi il est utile, quand c’est possible, de remplacer par petits morceaux :
- une fenêtre ;
- une portion ;
- une équipe ;
- un type de données ;
- une fonction ;
- un processus de travail.
Faire tourner deux systèmes en parallèle coûte plus cher. En revanche, cela permet de comparer les résultats et de revenir en arrière.
Le basculement complet se justifie quand le passage progressif est impossible, quand l’ancien système crée lui-même un danger ou quand le coût du fonctionnement en parallèle est inacceptable. Mais une telle décision doit être un risque assumé, non l’effet secondaire de l’envie de voir au plus vite un terrain dégagé.
Une cuisine se refait exactement de cette manière, sauf que c’est rarement selon le plan. On commence par sortir les vieux meubles, parce qu’ils gênent, et pendant trois semaines la famille fait la vaisselle dans la salle de bains, réchauffe les plats au micro-ondes posé sur l’appui de fenêtre et déjeune debout. Cette étape n’apporte aucun bénéfice : elle ne prépare pas les repas et ne rapproche pas la nouvelle cuisine, mais elle montre combien d’opérations tenaient à l’ancien évier. L’autre ordre — monter et raccorder les nouveaux meubles le long du mur libre, et ne sortir les anciens qu’après le premier dîner cuisiné — coûte plus cher et paraît ridicule pendant exactement les trois jours où les deux cuisines cohabitent.
La différence entre ces deux chantiers ne tient pas au soin, mais à celui qui paie le délai. Dans le premier cas, l’incertitude est payée par la famille, chaque jour, en dînant sur l’appui de fenêtre. Dans le second, par le client, une seule fois, en argent. C’est en général moins cher.