Comment améliorer les performances de livraison de logiciels ? Comme l’a affirmé Peter Drucker, célèbre consultant américain en management, « ce qui ne peut pas être mesuré ne peut pas être amélioré », explique Alex Tacho, directeur de la gestion des produits chez CloudBees DevOptics, spécialiste en solutions DevOps.
La visibilité sur la chaîne de valeur du logiciel et la capacité à identifier l’état d’avancement du projet dans un système de livraison de logiciels complexe et changeant permettent aux équipes d’effectuer des mesures et de fournir des analyses rapides sur le bon fonctionnement d’un système. Mais comment les entreprises doivent-elles s’y prendre ? Par où commencer à s’améliorer, où passer du temps ? Qu’ont en commun les organisations les plus performantes ?
Une récente étude DevOps réalisée par DevOps Research et Assesment révèle les compétences qui améliorent statistiquement les performances de livraison de logiciels, et qui sont partagées par les équipes et entreprises les plus performantes. « Les entreprises les moins performantes étaient deux fois plus nombreuses à développer et à livrer
des logiciels dans des équipes séparées et cloisonnées, que les meilleures organisations. »- Etude DevOps « Accelerate: State of DevOps 2018 », DevOps Research and Assessment
L’amélioration de la capacité à livrer un logiciel est favorisée par un changement dans la manière dont le travail est effectué en interne. Les pratiques DevOps, lean et agiles offrent un certain nombre de compétences techniques et de gestion qui peuvent influencer le changement en matière de culture et de comportement.
Influencer la culture par le leadership et l’autonomie
L’étude DevOps précédemment citée conclut également que les leaders donnant de l’autonomie à leurs équipes leur permettent d’être plus confiants et assurent un cadre dans lequel elles se sentent à l’aise pour verbaliser leurs idées, leurs opinions et leurs préoccupations, dans le but d’atteindre les meilleurs résultats possibles. Il incombe au leader d’encourager l’autonomie en fournissant des objectifs et des résultats clairs, tout en laissant à l’équipe le soin de décider la manière dont le travail doit être effectué. Cette méthode favorise la confiance, qui à son tour influence positivement la culture d’entreprise.
Établir un climat propice à l’apprentissage
L’apprentissage doit être au cœur de la culture d’entreprise, en partant de la manière dont les employés développent leurs compétences et leurs connaissances, à celle dont les autres
collaborateurs de l’entreprise apprennent des utilisateurs, des clients et du marché, et mettent ensuite cet apprentissage à profit. L’apprentissage et la formation des employés doivent être définis de façon formelle, et tous doivent avoir un accès équitable à ces opportunités dans le cadre de leur travail quotidien.
« Une entreprise avec un climat propice à l’apprentissage le considère comme un investissement primordial pour la croissance plutôt que comme un mal nécessaire » – Etude DevOps « Accelerate: State of DevOps 2018 », DevOps Research and Assessment
Dans l’industrie du développement, l’apprentissage doit être permis et encouragé. Le
développement de logiciels est un secteur qui rencontre beaucoup d’incertitudes. Le changement y est constant. La livraison continue, avec des lots de petite taille associés à des hautes performances de livraison de logiciels, permet des déploiements réguliers et rapides. Cela constitue également, pour les entreprises, des occasions d’apprendre régulièrement et rapidement. Ces pratiques doivent cependant s’intégrer dans le fonctionnement de l’entreprise. Est-il possible de changer les plans ? Comment l’organisation planifie-t-elle ses livraisons ? Quel est le degré de rigidité de ces plans ?
Comment l’organisation réagit-elle au changement pendant le développement d’un logiciel ou dans le cadre d’une livraison ?
Pour adopter l’apprentissage et le changement, il faut revoir la manière dont sont envisagés les ajustements de plans et la manière d’y répondre. Les pratiques de gestion de produits agiles et lean s’attendent au changement et sont centrées sur l’apprentissage induit par ces informations nouvellement générées.
Adopter la gestion de produits lean
L’étude DevOps « Accelerate: State of DevOps 2018 » a notamment montré que les capacités de gestion de produits lean influencent de manière positive les performances de livraison de logiciels, la culture d’entreprise et la productivité organisationnelle. La gestion de produits lean, le DevOps et la livraison continue montrent que les performances de
livraison de logiciels impactent la capacité à livrer le logiciel plus vite, mais elles libèrent également une autre compétence qui est de modifier la manière dont le travail est effectué et d’adopter un modèle d’apprentissage et de retours fréquents.
L’étude décrit trois caractéristiques de la gestion de produits lean :
– Les produits et les fonctionnalités sont divisés en plus petits lots qui peuvent être traités en moins d’une semaine et livrés fréquemment.
– Les entreprises cherchent activement et régulièrement à obtenir un retour de la part des
clients afin de les intégrer.
– Les équipes de développement ont le pouvoir de créer et de modifier des spécificités dans le cadre du processus de développement, sans avoir à demander une approbation.
Créer des équipes interfonctionnelles
Les équipes interfonctionnelles ont toutes les compétences nécessaires pour effectuer le travail demandé sans dépendre d’autres personnes extérieures. Ces équipes sont autonomes dans la façon de livrer leur travail. Elles sont proches du client, sont
autorisées à changer des spécificités basées sur les retours du marché, et possèdent les compétences et les connaissances nécessaires pour agir rapidement et prendre des décisions pertinentes, en gardant clairement à l’esprit les objectifs et les résultats attendus.
Penser « livraison continue »
Le processus de livraison continue représente le moteur qui permet aux équipes interfonctionnelles de déployer et d’apprendre rapidement, tout en respectant les normes et les exigences de haute qualité au sein de l’entreprise. L’étude caractérise la livraison continue comme une pratique essentielle pour une transformation technologique réussie. La livraison continue comprend l’utilisation du contrôle des versions, de
l’automatisation du déploiement, de l’intégration continue, du développement à branche unique (Trunk-Based Development) et d’une architecture souple.
La gestion de la chaîne de valeur du logiciel, la visualisation du processus de livraison continue de bout en bout et le contrôle de la plateforme de livraison continue sous-jacente constituent des éléments critiques pour améliorer la capacité d’une entreprise à effectuer des livraisons continues.
Dans un monde où nous cherchons à avancer et à apprendre rapidement, où les parties mobiles se multiplient et où le système logiciel devient de plus en plus complexe, il est nécessaire de comprendre le système de livraison de bout en bout, ainsi que savoir comment et où l’améliorer. Une livraison de logiciels hautement performante utilise les pratiques agiles et lean d’amélioration et d’apprentissage continus pour avancer rapidement dans la bonne direction.