Comme abordé dans l’article précédent « Efficience et orientation client grâce au management allégé », historiquement, toutes les approches allégées sont issues ou ont évolué à partir de la production allégée (mot-clé : Système de Production Toyota) – y compris la méthodologie du management allégé, considérée comme un concept de gestion et d’organisation. La gestion d’entreprise allégée visée est un concept global qui affecte une multitude d’activités et devrait être établi dans les structures de l’ensemble de l’entreprise. Par conséquent, au cours de la généralisation et de l’adaptation ultérieures des approches allégées, des évolutions de la production allégée sont apparues.[2] Parallèlement à de nombreux autres domaines de l’entreprise, une approche allégée s’est également développée dans le développement logiciel – le développement logiciel allégé.
Qu’est-ce que le développement logiciel allégé ?
Comme le montrent les expériences en production, exploitation et logistique, les processus allégés peuvent fournir la plus grande vitesse, la meilleure qualité et les coûts les plus bas dans un environnement hautement concurrentiel. L’approche allégée représente ainsi une meilleure façon de livrer des produits. Mary et Tom Poppendieck ont donc transposé les principes et pratiques de l’environnement de production au développement logiciel. Il s’agit également ici d’éliminer le gaspillage. Dans le développement logiciel, la principale cause de gaspillage réside dans les longues boucles de rétroaction, c’est-à-dire les coordinations internes qui se répètent sans fin, entraînant des retards dans les projets logiciels. Inversement, le raccourcissement des boucles de rétroaction conduit à une vitesse et une qualité accrues à moindre coût.[3]
Principes du développement logiciel allégé
Le Système de Production Toyota et le Système de Développement de Produits Toyota sont les principes sous-jacents du développement logiciel allégé, qui sont exposés ci-après :
Les sept principes fondamentaux du développement logiciel allégé selon Poppendieck et Poppendieck
- Éliminer le gaspillage (Eliminate Waste) : Selon ces principes, les fonctionnalités supplémentaires sont considérées comme du gaspillage. L’objectif est de se concentrer sur les 20 % des fonctionnalités qui représentent 80 % de la valeur. Les écarts sont également considérés comme du gaspillage. Un écart de besoin est, par exemple, le résultat d’une spécification prématurée, tout comme des tests tardifs sont la cause de cycles de test et de correction.
- Intégrer la qualité (Build Quality In) : Si des erreurs sont systématiquement détectées dans le processus de vérification, le processus est défectueux. La qualité devrait être mise en œuvre par un code à l’épreuve des erreurs avec un développement piloté par les tests. De plus, seul le code contenant des tests unitaires et d’acceptation automatisés devrait être produit (code patrimonial). Le nouveau code est également intégré en continu.
- Créer du savoir (Create Knowledge) : L’apprentissage est un élément essentiel, c’est pourquoi les équipes devraient être en mesure d’utiliser des méthodes scientifiques pour mettre en œuvre la meilleure alternative. Parallèlement, les normes/standards devraient être remis en question et constamment améliorés, les meilleures pratiques connues et actuelles devant toujours être incarnées dans les normes. En outre, les organisations devraient réagir rapidement à l’avenir et être guidées par le feedback, plutôt que de planifier avec des prédictions sur l’avenir.
- Reporter l’engagement (Defer Commitment) : Il s’agit ici d’accepter que le développement ne puisse pas commencer seulement lorsque la spécification est complète. L’architecture du système devrait plutôt permettre l’ajout de fonctionnalités arbitraires et ainsi résoudre les dépendances. De plus, d’autres options sont toujours maintenues ouvertes et le code est considéré comme une expérience et tolérant aux changements. En outre, les décisions irréversibles devraient être prises au dernier moment responsable.
- Livraison rapide (Deliver Fast) : Les entreprises qui rivalisent sur la base de la rapidité bénéficient d’un avantage significatif en termes de coûts, fournissent une qualité supérieure et sont davantage axées sur les besoins de leurs clients. Se concentrer sur une pleine utilisation des capacités conduit à des encombrements. C’est pourquoi il convient de réduire les temps de cycle et de livrer de petits lots. Cela implique que moins d’éléments sont en cours de traitement simultanément, ce qui réduit l’utilisation réelle. De même, le volume de travail devrait être limité à la capacité de l’équipe et adapté à la capacité de livraison.
- Respecter les personnes (Respect People) : Les personnes engagées et réfléchies offrent l’avantage concurrentiel le plus durable, c’est pourquoi les équipes devraient être caractérisées par des valeurs telles que la fierté, l’engagement et la confiance. Les équipes efficaces ont des dirigeants efficaces qui tirent le meilleur parti de l’équipe.
- Optimiser l’ensemble (Optimize the whole) : Les bons produits résultent d’une combinaison unique d’opportunités et de technologie. C’est pourquoi l’accent est mis sur l’ensemble du flux de valeur et la livraison d’un produit complet, qui ne peut être développé que par des équipes complètes. Des mesures de la capacité du processus, de la performance de l’équipe ou de la satisfaction du client peuvent alors être prises en conséquence.
Ces principes doivent être considérés principalement comme des lignes directrices pour fournir des logiciels plus rapidement, mieux et à moindre coût.
Conclusion
Le Lean Software Development, tout comme le Lean Management, a ancré les principes de la Lean Production en son cœur. L’accent est mis sur l’élimination de tout type de gaspillage, d’erreurs ou de coûts superflus. Simultanément, l’objectif est d’atteindre une qualité optimale.
Étant donné que le Lean Software Development ne consiste pas en des règles strictes, mais plutôt en des lignes directrices, elles peuvent être adaptées et mises en œuvre individuellement pour chaque entreprise et taillées sur mesure pour chaque projet. Cette approche permet d’améliorer l’efficacité des projets et d’optimiser les processus.
[1] cf. Brunner, Franz J. : Concepts de réussite japonais : KAIZEN, KVP, Lean Production Management, Total Productive Maintenance, Shopfloor Management, Toyota Production Management
[2] cf. Schwickert, Axel C.; Ostheimer, Bernhard; Eroglu, Murat : Kaizen, TPM, Lean – Fondements, délimitation, relations, dans Arbeitspapiere WI, N° 4/2011
[3] cf. Poppendieck et Poppendieck[/artikel_text]
Adrian Liepert
Il dispose de plusieurs années d'expérience en conseil et en transactions, et soutient la stratégie de croissance et de Buy&Build du groupe digatus en tant que responsable des fusions-acquisitions. Adrian Liepert est diplômé du programme de Fusions & Acquisitions (LL.M.) de la Frankfurt School of Finance & Management ainsi que du MBA exécutif Durham-EBS.