Pourquoi les gros lots semblent efficaces mais ne le sont pas — et comment réduire la taille.
Un lot est un groupe d'éléments traités ensemble. En fabrication : des pièces produites lors d'une série. En logiciel : des fonctionnalités regroupées dans une version.
La pensée traditionnelle favorise les gros lots. Si la préparation de la machine prend 30 minutes, fabriquez 100 pièces par série au lieu de 10. Répartissez le coût de préparation sur plus d'unités.
Cette logique s'applique aussi au logiciel : si le déploiement prend 2 heures, regroupez plusieurs fonctionnalités par déploiement. Répartissez les frais généraux sur plus de changements.
Mais ce raisonnement omet des coûts cachés :
Coût d'inventaire : Les gros lots créent un gros inventaire. Les pièces attendent. Les fonctionnalités attendent. Le capital est immobilisé. La rétroaction est retardée.
Coût de qualité : Les défauts dans les gros lots affectent plus d'éléments. Trouver quel changement a causé le bogue est plus difficile dans les grandes versions.
Coût de délai : Les clients attendent plus longtemps. Une fonctionnalité terminée tôt attend que le lot soit complet.
Délai d'apprentissage : Vous n'apprenez pas de la réaction des clients avant que tout le lot soit livré. Des mois de travail pourraient être dans la mauvaise direction.
Le coût total des gros lots dépasse souvent le coût de préparation économisé.
Le compromis caché
Les gros lots échangent la visibilité et la rétroaction contre une efficacité apparente. Vous vous sentez efficace en traitant de gros lots. Mais vous êtes aveugle aux problèmes plus longtemps, vous apprenez plus lentement et l'inventaire s'accumule. L'efficacité est illusoire.
L'idée clé : si vous réduisez les coûts de transaction (préparation), les petits lots deviennent économiques.
Le SMED (Single-Minute Exchange of Dies) de Toyota a réduit le changement de machine de plusieurs heures à quelques minutes. Une fois le changement peu coûteux, les petits lots avaient du sens. L'usine pouvait fabriquer ce qui était nécessaire, quand c'était nécessaire, en n'importe quelle quantité.
En logiciel, le « changement » inclut :
Chacun de ces éléments est réductible :
Lorsque les coûts de transaction approchent zéro, la taille du lot peut approcher un. C'est le flux pièce par pièce : chaque changement va en production individuellement.
Chaque fusion vers main déclenche des tests et un déploiement automatisés. Coût de transaction : ~0 (automatisé). Un développeur fusionne 5 petits changements par jour. Chacun est en production en quelques minutes. Taille du lot : 1 changement.
Les déploiements nécessitent l'approbation du comité consultatif des changements, la coordination des environnements et l'exécution en fin de semaine. Coût de transaction : jours d'effort. Les versions ont lieu trimestriellement avec plus de 100 changements regroupés. Trouver ce qui a cassé prend des jours.
Lorsque vous atteignez de petits lots, tout s'améliore :
Rétroaction plus rapide : Les fonctionnalités atteignent les utilisateurs rapidement. Vous apprenez ce qui fonctionne. Vous pouvez pivoter.
Débogage plus facile : Lorsqu'un petit changement cause un problème, la cause est évidente. Le retour en arrière est simple.
Risque réduit : Chaque déploiement est un petit changement. Le rayon d'impact d'un bogue est limité.
Meilleur flux : Les petits lots traversent le système plus rapidement. Le délai de livraison diminue.
Moins d'inventaire : Pas de grandes piles de travail en attente d'être publiées. Le capital n'est pas immobilisé.
Qualité supérieure : Les petits changements sont plus faciles à réviser. Les défauts sont détectés plus tôt.
Plus de flexibilité : Vous pouvez reprioriser rapidement. Vous n'êtes pas enfermé dans une grande version.
Moral de l'équipe : Livrer fréquemment est plus gratifiant que d'attendre des mois pour une grande version.
L'expression ultime est le déploiement continu : chaque changement va en production quand il est prêt. C'est le flux pièce par pièce pour le logiciel. Pas de regroupement, pas d'attente, pas de coordination de versions.
Si le déploiement continu semble impossible, demandez-vous : quels coûts de transaction devraient diminuer ? Ensuite, travaillez à les réduire.
Commencez où vous êtes
Si vous déployez mensuellement, essayez de déployer hebdomadairement. Si hebdomadairement, essayez quotidiennement. Si quotidiennement, essayez en continu. Chaque étape révèle les obstacles à l'étape suivante. Résolvez ces obstacles progressivement.