Le continuous delivery, réelle opportunité ou mode passagère ?

Le 11 Septembre 2014 a eu lieu à Paris le CD (Continuous Delivery) Summit. Cet événement centré sur le processus de « Continuous Delivery » (ou livraison continue) a été l’occasion de revenir en détail sur les différents acteurs du CD ainsi que des difficultés de sa mise en place au sein de grands groupes. Au delà du buzzword, le Continuous Delivery est né d’un réel besoin des entreprises.

Dans le contexte actuel, pour survivre, une entreprise doit être de plus en plus prompte à s’adapter au changement. Ce changement doit être guidé par les attentes clientes, et par conséquent, le business. Il est donc nécessaire de pouvoir quantifier le plus rapidement et précisément possible l’impact d’un changement donné afin de juger sa corrélation au business. C’est à cette double problématique que tente de répondre le Continuous Delivery. D’un coté en réduisant au maximum le délai entre l’émission d’un besoin (d’une idée) et sa mise à « disposition ». De l’autre en apportant un feedback optimal pour les équipes marketing qui à partir de ces intrants seront capable d’orienter une stratégie pertinente vis à vis des attentes clientes.

Cette journée a été l’occasion d’aborder les différents outils à disposition pour « faire » du CD. Certains intervenants ont aussi fait part de leurs expériences respectives dans la mise en place du CD au sein de structures de grande taille.

Enfin, bien que parrainé par des grands noms du Continuous Delivery, ce sommet a dans sa grande partie traité le CD d’un point de vue généraliste et non corporatiste ce qui a grandement contribué à la qualité de l’événement.

A quels besoins répond continuous delivery ?

Depuis l’émergence du mouvement Agile au début des années 2000 de nombreux concepts liés à cette philosophie sont apparues. Bien qu’intervenant à différents niveaux du cycle de vie d’un projet, tous ont pour but de modifier, tant sur le fond que sur la forme, la manière d’aborder un projet. Le classique cycle en V des années 90, bien que toujours bien ancré dans le domaine de l’IT, commence peu à peu à être remis en cause. Ainsi observe-t-on actuellement une tendance à son remplacement partiel par différents concepts agiles.

Le continuous delivery en fait partie. Certains  concepts agiles n’interviennent qu’à des niveaux bien définit du cycle de vie d’un projet. Le CD l’englobe complètement en apportant des solution depuis l’expression d’un besoin jusqu’à sa livraison en production. Le souhait de tout décideurs est de pouvoir orienter une stratégie en fonction de données mesurables. Dans l’IT cela correspond par exemple à l’usage d’une feature d’une application et le business qu’elle permet de générer. Mais encore faut-il produire ces donnés pour pouvoir les mesurer. Et le plus rapidement pour que cette analyse soit pertinente.

Or, force est de constater que depuis l’émergence d’une idée jusqu’à sa mise en production et son analyse, des semaines voire des mois peuvent s’écouler (ce délai est communément appelé « Time To Market »). Et d’ici là le besoin à l’origine de cette idée aura peut-être disparue ou ne sera plus autant adapté au marché (concurrence, évolution de la demande, politique interne…). L’analyse de son impact devient dès lors biaisée car décalé du contexte initial. Il serait pourtant utile et bénéfique de pouvoir concrétiser cette idée dans les jours qui viennent. Derrière ce constat se cache une des principale motivation du continuous delivery et se fut là un enseignement important de cette conférence dans la compréhension du concept.

A savoir que sa mise en place est motivée par le business et l’innovation. Certes des effets bénéfiques sont à observer pour chacun des acteurs d’un projets (automatisation de tâches répétitives, meilleure communication entre équipes, meilleure productivité…), mais la raison principale de sa mise en place n’est pas à chercher ailleurs. Cela a d’ailleurs été appuyé par un témoignage d’ Andrew Phillip, qui a observé de nombreuses équipes marketing ne plus demander d’innovation aux équipes de développement pour cause de lourdeurs de mise en place.

Comment fonctionne-t-il ?

Le CD va donc dans le sens du business et de l’innovation en permettant, de manière sûre, précise et rapide, l’apport ou  la modification de fonctionnalités d’une application. Mais quels sont les principaux éléments à l’origine de cette efficacité ? Comment se distingue-t-il des méthodes classiques de conduite de projet?

Parmi les différentes présentations il est ressorti que le CD est moins une question d’outils que de pratiquesCela dit, il ne faut pas négliger les outils car c’est à travers ces derniers que l’on permettra la mise en place de pratiques.

Le CD introduit le concept de pipeline de déploiement. C’est une représentation de son implémentation technique, permettant de faire passer le code d’une application, du gestionnaire de version à l’environnement de production. Le schéma suivant représente de manière gros grain les différentes étapes du pipeline.

pipeline

Phase de Commit: informe sur le niveau de qualité technique du projet. Les principaux acteurs de cette phase sont les équipes de développement. Le but de cette phase est de compiler le  code, lancer les tests unitaires, faire de l’analyse de qualité de code et préparer la distribution.

Phase de tests d’acceptance: Lancement de tests automatiques afin de s’assurer de l’adéquation de l’application avec les requis fonctionnels et techniques.

Phase de tests manuels: Vérifie que le système est utilisable dans un environnement de test. Cette phase est gérée par les équipes QA qui se chargent de dérouler différents cas de tests et user stories.

Phase de release: Livraison d’un package (sous forme de war par exemple) au client final ou déploiement de l’application en environnement de production.

En excluant les tests manuels, une des philosophies du CD est d’automatiser au maximum les étapes de chaque phases afin de gagner du temps sur les livraisons, d’améliorer la qualité des livrables et pour le acteurs du projet diminuer au maximum le rapport temps d’attente sur temps de travail. Cela contribue à fluidifier la boucle de rétroaction qui orientera les décisions stratégiques pour une application donnée. 

Et sur le terrain ?

Tout cela reste bien entendu théorique et le CD ne pourra fonctionner s’il n’y a pas un appui massif de l’ensemble des équipes d’un projet. Le principal obstacle n’est pas technique mais humain. Tel est l’enseignement qui fut remonté par Pascal Cohen d’Amadeus et Laurent Sarazin coach Agile chez Zenika. Dans chacune de leurs expériences l’implication des différents acteurs est essentielle. Tout le travail des coachs ainsi que des technical advocates est de savoir convaincre les personnes du bien fondé des nouvelles pratiques qu’ils souhaitent apporter. Dans cette optique cinq points clés ont été énoncés:

  1. Inclure les équipes de management dans la réflexion
  2. Avoir quelqu’un dans son équipe qui a de l’expérience dans le CD.
  3. Mettre  en avant des personnes convaincues et capables
  4. Rendre visible les avancées
  5. Constamment communiquer

Ce dernier point est très important dans la mesure où pour remporter l’adhésion de la majorité il ne faut pas négliger l’implication de tous. Et c’est en communiquant que l’on commence à impliquer.

Un autre obstacle est d’ordre organisationnel. Classiquement les équipes d’un projet sont organisées en silo ce qui ne favorise pas la communication. Nous avons une équipe de testeur, une équipe de développeurs, une équipe système… Cette manière de fonctionner implique des frictions entre équipes car chacune ont des objectifs différents. Un développeur par exemple ne se souciera pas de problématique de déploiement ou de testabilité. De même un opérateur système refusera naturellement la release d’une feature si cette dernière remet en cause la stabilité de sa plateforme, etc.

Nous remarquerons qu’à ce titre le CD est une composante majeure du mouvement DevOps. Bien que motivés par des objectifs différents (stabilités des plateformes vs évolutions des applications), la pratique du CD tend à gommer cette opposition dev/ops en « conciliant » les souhaits des uns et des autres via un ensemble de pratiques et d’outils.

La structure des équipes doit aussi s’adapter au CD. Cela suppose de travailler main dans la main en vue d’un objectif commun. Cette organisation doit aussi se faire en terme de localisation en privilégiant des équipes hétérogènes afin de favoriser le partage de connaissances et donc de responsabilité.

Les phases d’itération d’un projet doivent aussi être repensées. Là où le cycle en V s’étale sur plusieurs mois, le cycle d’un projet sous CD se chiffre typiquement en semaines (2 étant un choix courant). L’objectif du CD est d’apporter de petit changements fréquemment.

Pour bien se représenter le défi que représente la mise en place du CD dans une entreprise, nous pouvons représenter ce dernier comme l’association de trois concepts distinct.

La Culture, représentée par des valeurs, des convictions et des traditions.

Les pratiques, qui expriment la culture par l’intermédiaire de pratiques marquées (stand up, TDD, Rolling release…)

Enfin les outils, qui permettent  de mettre en place les pratiques.

La culture du CD est l’objectif qu’il est nécessaire d’atteindre.

Les outils peuvent changer, de même que les pratiques, mais la culture s’inscrit dans la durée. Toutefois c’est le point le plus délicat à atteindre car ce n’est pas quelque chose que l’on peut imposer par le haut. Il ne suffit pas qu’un décideur annonce la mise en place du CD pour que l’entreprise suive. C’est pour cela que la méthode préconisée par chacun des intervenants fut de se concentrer dans un premier temps sur les pratiques et les outils. En privilégiant ces aspects, l’expérience a montré que l’on fédère de manière efficace autour du CD.

les trois notions clés dans la réussite du continuous delivery
les trois notions clés dans la réussite du continuous delivery

Un autre point mis en avant par ce sommet est l’importance des outils. Car c’est à partir des outils qu’il sera plus simple de convaincre de la plus value apportée par le CD. Des outils vont permettre la mise en place de pratiques qui vont à leur tours instaurer une culture. La mise en place du pipeline se fait à l’aide d’outils dont chacun officie dans un domaine particulier. Ce fut là le second aspect de ce sommet, à savoir la présentation d’outils facilitant la mise en place de CD. On trouvera les domaines suivants:

  • La revue de code
  • L’intégration continue
  • Le déploiement
  • Test et qualité de code
  • Provisioning
  • Orchestration

Bien que, et il faut insister la dessus, le CD ne se définisse pas à travers des outils, ces derniers ont un rôle à jouer dans sa mise en place.

Expérience personnelle

J’ai eu l’opportunité d’effectuer deux missions aux antipodes au niveau de l’adoption du CD. J’ai constaté à quel point la manière de l’aborder impacte sur les performances d’un projet.

Dans un cas les équipes étaient organisées en silos. Les testeurs entre testeurs, les développeurs entre développeurs, etc. Pire, ces différentes équipes n’étaient pas localisées dans un même lieu géographique laissant lieu à des lourdeurs et latences dans les communications (outils pas forcément ergonomiques, mentalités et horaires différents). Communication qui existait dans le meilleurs des cas. Car il arrivait souvent que personne ne sache à qui s’adresser en cas de plateforme instable et cela pénalisait le projet dans sa globalité. Paradoxalement, la volonté de mettre en place le CD était présente. Il était fait usage d’outils et de  pratiques allant dans ce sens. Néanmoins peu de communication était faite à ce niveau, impliquant une non implication des acteurs regrettant parfois l’approche cycle en V.

Dans une autre mission, le continuous delivery était appliqué sinon avec succès au moins avec réalisme. Une réelle communication s’est installée au sein d’équipes hétérogènes. Les rares instabilités de plateforme était corrigées dans l’heure, et les personnes non techniques avaient les compétences nécessaires pour démarrer les plateformes de tests sur lesquelles ils pouvaient vérifier les nouvelles fonctionnalités. Un réel soucis du partage de connaissance au travers d’outils dédiés permettait une rapide monté en compétence pour les nouveaux arrivants. Pourtant le terme de continuous delivery n’était pas cité. Les choses se faisait naturellement car une culture était présente, et au final peu importe le nom que l’on met dessus.

En repensant à cette différence de succès dans la mise en place du CD, j’en suis venu à conclure que dans un cas (échec de mise en place) le CD était vu comme une fin et non un moyen. C’est à dire que l’on voulait faire du CD car il le fallait, mais qu’on ne se posait que trop peu souvent la question du pourquoi. Nous sommes arrivé à une situation où même l’équipe chargé de mettre en place le CD travaillait en silo. Un comble.

Penser l’avenir à travers le CD ?

Ce sommet a été l’occasion de revenir sur les principes clés du CD ainsi que de leur mise en place au sein d’un projet et de manière plus globale dans une entreprise. C’est par l’association d’outils et de pratiques qu’une culture du CD émergera pérenne dans le temps.

Au delà de l’aspect technique et outillage je pense que l’enseignement principal fut que , correctement appliqué, le CD permet d’avoir un avantage concurrentiel significatif. Cela signifie aussi que ne pas s’y intéresser peut s’avérer être un choix malheureux compte tenu du nombre croissant d’entreprises qui le mettent en place. Les géants du web s’y sont mis depuis plusieurs années, et leur succès est très certainement lié à cela. En tant que décideur, dois-je penser à mettre en place de tel process malgré la lourdeur que cela peut représenter ? Je pense que la réponse est évidemment positive.

Mais comme nous l’avons précisé cela ne doit pas relever d’une décision unilatérale. Le CD est avant tout un travail collectif. Et la réflexion de sa mise en place doit tout autant l’être. Enfin, cette réflexion ne doit pas perdre de vue que le CD est et restera avant tout un moyen et non une fin. Chez Viseo nous avons des personnes d’expériences capables de vous accompagner dans cette réflexion et vous permettre d’envisager une solution adaptée à vos besoins.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *