La culture DevOps est apparue à la suite de mouvements convergeant dans le management et les technologies qui ont débuté en 1980 avec les principes Lean Management et qui s’est formalisé en 2009 avec l’émergence de la culture DevOps.
Le flux de production d’une chaîne logistique a été adapté au flux de production logiciel avec toujours le même objectif : convertir le plus efficacement possible et par étapes successives un besoin client en un produit. Dans notre cas un logiciel ou un ensemble de services apportant de la valeur au client.
Initialement mis en place dans l’industrie, les principes du Lean Management ont été appliqués à la technologie de 3 façons :
Créés par Toyota en 1980, les principes du Lean ont été adaptés au flux de production de valeur technologique :
Le Lean a également apporté à l’agilité et au DevOps des outils de management visuel grâce à l’apport du “Value Stream Mapping” : la visualisation des flux de livraison d’un logiciel, plus connu sous le nom de tableau Kanban.
Enfin, il a contribué au remplacement du traditionnel cycle en V en démontrant, l’intérêt de livrer de plus petits incréments logiciels en limitant le nombre de feature. Cela a permis de rendre plus simple la détection et la correction des erreurs, le contrôle de la qualité et de la sécurité.
La théorie des contraintes, également appliquée initialement dans l’industrie s’appuie sur le principe que : le débit d’une chaîne de valeur (industrielle ou logicielle) est égal au débit de son goulot d’étrangement. Ce goulot d’étrangement doit être l’objet de toutes les attentions.
Il s’agit, plus globalement, de s’attaquer à tout ce qui pourrait ralentir le flux de production :
En assurant des cycles de livraison plus courts comprenant les features demandées par le marché, en contrôlant plus régulièrement la vélocité des équipes (compétences et capacité à produire) et enfin, en automatisant les flux de validation, de contrôle sécurité et de la qualité (tests d’acceptance et de non-régression) plusieurs contraintes inhérentes au développement logiciel ont été réduites permettant d’accélérer le Time To Market.
L’Agile Manifesto est le regroupement de l’ensemble des valeurs et principes de l’agilité. Il a l’avantage d’apporter une dénomination commune et de sacraliser le terme “agilité”.
On retrouve l’apport du Lean et de la théorie des contraintes dans l’un des principes clés établie dans le manifeste : “Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois”.
L’agile manifesto ne demandera que quelques minutes de lecture à l’adresse : https://agilemanifesto.org/iso/fr/manifesto.html.
Le Kata Mouvement est un principe d’amélioration continue basée sur la répétition et la mise en place de changements progressifs, nécessitants peu d’effort. À l’image des Kata dans les Arts Martiaux, plus l’on enchaîne un même mouvement, plus il devient coutumier plus il se perfectionne et devient habituel. Le mouvement demande alors moins d’effort à produit, ce qui se traduit par un gain de temps et d’énergie (ressource).
Le Kata Mouvement comprend 4 étapes clés :
Le Kata Mouvement vient ajouter au Lean management les notions de routines et d’amélioration continue journalière. Le rôle du coach est également introduit. Il accompagne les équipes afin d’améliorer leur capacité et compétences au travers de cérémonies centrées sur le feedback (ce qui était planifié, ce qui a été fait, les difficultés rencontrées, ce qui va être fait).
Le Continuous Delivery Movement a permis d’étendre les principes d’automatisation d’intégration des changements de code et de test aux Infrastructures afin que le logiciel et les infrastructures (serveurs / services) possèdent des états cohérents, permettant de passer en production n’importe quelle version d’un logiciel.
Le concept de pipeline de déploiement est né, complétant le pipeline d’intégration des codes et assurant ainsi le lien entre le Dev (le code) et l’Ops (l’Infra).
La culture DevOps n’est pas un mouvement purement technique. Il est global aux organisations et demande une bonne compréhension du métier et des enjeux business. Il est le fruit de 40 ans d’expérience dans l’optimisation des flux dans les supply chains et des chaînes de valeur technologiques. Le Lean, la théorie des contraintes, L’Agilité et le Kata mouvement en son ses pères, bien qu’il soit devenu un courant à part entier.