« Accélérer: La science de la méthode Lean et DevOps » est un livre écrit par Nicole Forsgren, Jez Humble et Gene Kim qui explore les pratiques et principes qui conduisent à une performance maximale dans les entreprises de logiciels. Les auteurs ont mené une étude de plusieurs années qui a impliqué plus de 30 000 professionnels de l’informatique pour identifier les pratiques qui ont le plus d’impact sur la performance des organisations.
Les principaux résultats de cette étude montrent que les entreprises qui adoptent une approche Lean pour la gestion de leur logiciel et une approche DevOps pour leur développement et leur livraison de logiciels ont des performances significativement meilleures que les entreprises qui n’utilisent pas ces approches.
Les pratiques clés identifiées dans le livre incluent l’automatisation des processus de construction, de test et de déploiement, la collaboration entre les équipes de développement et de production, et la culture de la livraison continue. Les auteurs fournissent également des conseils sur la façon de mettre en place ces pratiques dans votre organisation.
Ce livre est particulièrement important pour les personnes qui travaillent dans la gestion de produits, les CPO et les entrepreneurs car il leur donne une compréhension approfondie des pratiques qui ont été prouvées pour améliorer les performances des entreprises de logiciels. Il leur donne également des conseils concrets sur la façon de mettre en place ces pratiques dans leur propre organisation pour améliorer les résultats.
Enseignements de la première section
Voici quelques-uns des principaux enseignements de la première section du livre, qui donne un aperçu de la recherche et de ses résultats :
- Les entreprises qui adoptent une approche Lean pour la gestion de leur logiciel et une approche DevOps pour leur développement et leur livraison de logiciels ont des performances significativement meilleures que les entreprises qui n’utilisent pas ces approches. Exemple : une entreprise qui utilise des processus automatisés pour la construction, le test et le déploiement de son logiciel peut livrer des mises à jour plus fréquemment et plus rapidement que les entreprises qui n’utilisent pas ces automatisations.
- La collaboration entre les équipes de développement et de production est essentielle pour une performance optimale. Exemple : une entreprise qui favorise la communication et la collaboration entre les équipes de développement et de production peut résoudre les problèmes plus rapidement et améliorer la qualité de ses logiciels.
- La culture de la livraison continue est un facteur clé de la performance des entreprises de logiciels. Exemple : une entreprise qui adopte une culture de la livraison continue peut livrer des mises à jour de logiciels plus fréquemment et améliorer ainsi la satisfaction des clients.
Enseignements de la seconde section
Voici quelques-uns des principaux enseignements de la seconde section du livre, qui traite des pratiques et des principes spécifiques qui conduisent à la performance :
- La surveillance en continu des performances est cruciale pour une livraison continue de qualité. Exemple : une entreprise qui suit les indicateurs de performance de ses logiciels en continu peut détecter les problèmes plus rapidement et les résoudre plus efficacement.
- L’automatisation des processus est essentielle pour une livraison continue de qualité. Exemple : une entreprise qui automatise les processus de construction, de test et de déploiement de ses logiciels peut livrer des mises à jour plus fréquemment et plus rapidement.
- La collaboration entre les équipes est cruciale pour une performance optimale. Exemple : une entreprise qui favorise la communication et la collaboration entre les équipes de développement et de production peut résoudre les problèmes plus rapidement et améliorer la qualité de ses logiciels.
- L’amélioration continue est un élément clé pour maintenir une performance optimale. Exemple : une entreprise qui met en place des processus d’amélioration continue peut continuer à améliorer la qualité de ses logiciels et à répondre aux besoins de ses clients.
DevOps
Selon le livre « Accélérer », DevOps est un mouvement qui vise à améliorer la collaboration entre les équipes de développement et d’exploitation pour accélérer la livraison de logiciels de qualité. Il se concentre sur l’automatisation des processus, la surveillance en continu des performances et la collaboration pour améliorer la qualité du logiciel et la satisfaction des clients.
Voici quelques exemples de comment DevOps peut être mis en place :
- Automatisation des processus : l’automatisation des processus de construction, de test et de déploiement des logiciels permet de réduire les erreurs humaines et de livrer les mises à jour plus rapidement.
- Surveillance en continu des performances : les outils de surveillance en continu des performances permettent de détecter les problèmes plus rapidement et de les résoudre plus efficacement.
- Collaboration entre les équipes : en favorisant la communication et la collaboration entre les équipes de développement et d’exploitation, les problèmes peuvent être résolus plus rapidement et la qualité des logiciels améliorée.
- Amélioration continue : en mettant en place des processus d’amélioration continue, l’entreprise peut continuer à améliorer la qualité de ses logiciels et à répondre aux besoins de ses clients.
- Automatisation des tests : Les équipes de développement peuvent utiliser des outils d’automatisation pour tester automatiquement les nouvelles fonctionnalités et les correctifs de bugs. Cela permet de détecter rapidement les problèmes et de les corriger plus rapidement, améliorant ainsi la qualité du logiciel.
- Intégration continue : Les équipes peuvent utiliser des outils d’intégration continue pour automatiser la compilation, les tests et le déploiement des logiciels. Cela permet de livrer les mises à jour plus rapidement et de détecter les problèmes de compatibilité plus tôt.
En résumé, DevOps est un ensemble de pratiques qui visent à améliorer la collaboration entre les équipes de développement et d’exploitation pour accélérer la livraison de logiciels de qualité. Il se concentre sur l’automatisation des processus, la surveillance en continu des performances et la collaboration pour améliorer la qualité du logiciel et la satisfaction des clients.
Les principaux bénéfices de DevOps sont :
- Une livraison plus rapide et plus fiable des logiciels
- Une meilleure qualité des logiciels
- Une amélioration de la satisfaction des clients
- Une réduction des coûts liés aux erreurs et aux retards
Les entreprises qui adoptent DevOps peuvent donc améliorer significativement leur performance en termes de livraison de logiciels, de qualité et de satisfaction des clients. Cela est particulièrement important pour les product managers, CPO et entrepreneurs qui cherchent à améliorer les performances de leurs produits et de leur entreprise.
Lean Software
Selon le livre « Accélérer », Lean Software est un ensemble de pratiques qui visent à améliorer l’efficacité et l’efficience des processus de développement de logiciels. Il s’inspire des principes Lean de l’industrie automobile, qui visent à éliminer les gaspillages et à améliorer la qualité des produits.
Voici quelques exemples concrets d’application de Lean Software dans un contexte de gestion de produits :
- La limite de WIP (Work in Progress) : Cette pratique consiste à limiter le nombre de tâches en cours d’exécution simultanément pour éviter les blocages et les retards. Par exemple, une équipe de développement peut limiter le nombre de bugs en cours de résolution à un certain nombre pour se concentrer sur les résolutions les plus importantes.
- Kanban : Cette méthode de gestion de la production consiste à utiliser des tableaux visuels pour visualiser le flux de travail et identifier les blocages. Par exemple, un tableau Kanban pourrait être utilisé pour suivre le développement d’une nouvelle fonctionnalité, avec des colonnes pour les tâches à venir, en cours et terminées.
- La méthode Scrum : Cette méthode de développement de produits agile consiste à travailler en itérations courtes appelées sprints pour livrer régulièrement des fonctionnalités utilisables. Par exemple, une équipe de développement pourrait utiliser Scrum pour planifier, prioriser et livrer des fonctionnalités pour une application mobile.
- La rétrospective : Cette pratique consiste à réunir régulièrement l’équipe pour discuter des réussites et des échecs, identifier les améliorations possibles et planifier les actions à venir. Par exemple, une équipe de développement pourrait utiliser une rétrospective pour améliorer la qualité de son code en identifiant les erreurs fréquentes et en planifiant des améliorations.
- La méthode 5S : Cette méthode de gestion de l’environnement de travail consiste à maintenir l’ordre, la propreté, la standardisation, la discipline et la sécurité pour améliorer l’efficacité et la qualité. Par exemple, une équipe de développement pourrait utiliser la méthode 5S pour organiser son espace de travail pour faciliter la recherche de documents et de matériel.
- La rétroaction en boucle continue : cette pratique consiste à recueillir régulièrement des commentaires et des suggestions des clients, des utilisateurs finaux et des membres de l’équipe pour améliorer continuellement les produits et services. Par exemple, un product manager peut organiser des sessions de feedback avec des utilisateurs pour recueillir des idées sur de nouvelles fonctionnalités à ajouter à un produit existant.
- La limitation de la marge de manoeuvre : il s’agit de fixer des limites sur les tâches et les projets pour éviter les dépassements de coûts et les délais non nécessaires. Par exemple, un product manager peut fixer un budget et un calendrier pour la mise en place d’une nouvelle fonctionnalité sur un produit, et s’assurer que l’équipe travaille dans ces limites pour livrer le produit dans les délais impartis.
- La gestion visuelle : cette pratique consiste à utiliser des outils visuels pour communiquer de manière claire et efficace sur l’avancement des projets et des tâches. Par exemple, un product manager peut utiliser un tableau Kanban pour visualiser l’état des tâches de son équipe et identifier les blocages rapidement.
Nicole Forsgren, Jez Humble et Gene Kim
Nicole Forsgren est une doctorante en informatique et en gestion de projets à l’Université de Utah. Elle est également la directrice de la recherche chez GitLab et a été l’une des principales chercheuses à l’origine de l’étude sur les performances d’entreprise qui a inspiré le livre « Accelerate ».
Jez Humble est un expert en entreprise logicielle, en livraison continue et en DevOps. Il est l’auteur de plusieurs livres sur le sujet, dont « Continuous Delivery » et « The DevOps Handbook ». Il est également un conférencier et un consultant en entreprise logicielle.
Gene Kim est un expert en informatique et en sécurité de l’information. Il est l’auteur de plusieurs livres sur les pratiques d’entreprise logicielle, dont « The Phoenix Project » et « The Visible Ops Handbook ». Il est également un conférencier et un consultant en entreprise logicielle.