Pour avoir un aperçu de la perception et compréhension des personnes de quelque chose, il suffit de regarder les réseaux sociaux.
Ce message qui provient d’une compagnie cherchant un lead DevOps me fait me poser de grosse question à propos de la perception et compréhension du marché vis-à-vis DevOps.
Mais est-ce que DevOps est vraiment une personne ayant ce rôle dans l’organisation ? Mais avant tout, c’est quoi DevOps ?
Selon Wikipedia, voici la definition:
“A cultural and professional movement that stresses communication, collaboration and integration between software developers and IT operations professionals while automating the process of software delivery and infrastructure changes “
Essentiellement voici ma compréhension et interprétation de DevOps,
C’est une pratique qui a pour objectif d’amener une empathie mutuelle à deux groupes, les Dev et Ops, qui ont des missions et responsabilités qui vont à l’ opposer de l’un de l’autre. Ainsi, l’application de la pratique DevOps va permettre l’atteinte des objectifs propres à chaque groupe tout en respectant les responsabilités de l’autre.
Je mentionne deux équipes quand idéalement, il ne devrait en faire qu’une seule, mais malheureusement historiquement et même encore de nos jours ce sont deux groupes distincts qui n’ont pas les mêmes objectifs. L’un a pour objectif de livrer de la valeur affaires le plus rapidement possible tandis que l’autre c'est d’avoir des infrastructures le plus stable possible.
Maintenant, pour que ça fonctionne il faut deux choses, premièrement il faut un framework pour structurer le processus de livraison de valeur affaires, par exemple Scrum ou Kanban. L’approche agile choisit, permettra à l’ensemble de l’organisation et les équipes de développement de produire de valeur affaire chaque itération voir chaque jour.
Deuxièmement, il est nécessaire d’avoir un ensemble d’outils automatisés permettant aux « Ops » et au « Dev » de suivre la cadence de livraison de valeur d’affaire de l’organisation tout en respectant les objectifs et responsabilités de l’autre groupe.
Pour maximiser les chances d’implanter une pratique DevOps dans une organisation, il faut absolument que les deux critères de bases soient présents, un framework pour structurer et guider le flux de production de valeur et une suite d’outils. Si la volonté d’implanter DevOps provient seulement des TI par les outils, l’ensemble de l’organisation ne pourra pas suivre et verra l’initiative comment une dépense sans réelle valeur. Si la volonté vient de l’organisation et du train de livraison agile et que l’équipe TI n’a pas les connaissances et les outils nécessaires, l’implantation de la pratique mettra beaucoup de pression sur l’équipe de développement et n’aura pas les succès attendus.
Donc une première étape est de mettre en place un framework pour structurer et guider le flux de production de valeur, par exemple Scrum ou Kanban. Grâce à une bonne application de Scrum ou Kanban, l’organisation sera en mesure de supporter les livraisons fréquentes, voire quotidiennes, du besoin client de sa réalisation jusqu’à sa livraison.
Par contre, pour être en mesure de mettre une pratique DevOps, il est nécessaire que le flux de production de valeur ait atteint un certain niveau de maturité dans l’ensemble de l’organisation.
Ce que je veux dire par là, c’est qu’habituellement lorsqu’une organisation décide de prendre le virage agile avec Scrum ou Kanban, l’application du framework ne s’en tient qu’à l’équipe de développement. Avec l’augmentation de la maturité de l’équipe avec l’Agilité, l’équipe tant à élargir la portée de l’Agilité en incluant le volet affaires et le volet opérationnel TI.
Ce n’est qu’à ce moment que l’organisation pourra plus facilement implanter les principes DevOps dans ses équipes de Dev et Ops à condition qu’ils aient les bons outils, ce qui nous amène au deuxième critère.
Les outils sont le critère qui permettra, tant aux équipes de développement (Devs) qu’aux équipes d’infrastructure (Ops), d’atteindre les objectifs de leur groupe tout en permettant à l’autre d’atteindre les leurs.
C’est pourquoi il est essentiel que les équipes aient un coffre d’outils contenant l’ensemble des outils permettant d’atteindre ces objectifs. Habituellement, on devra trouver un ou des outils pour chacune de catégories suivantes :
- Dépôts de contrôle de version
- Outil d’intégration continue
- Outils automatisés de test
- Analyse statique de code
- Outil de tests automatisés
- Outil de test de performance
- Outil de déploiement continue
- Programmation de l’infrastructure et gestionnaire de configuration
- Virtualisation et technologies de conteneurisation
Si je reviens au début avec le post Linkedin d’une compagnie recherchant un lead DevOps, comme on voit il n’est pas possible qu’une seule personne, voire un groupe, soit responsable de la pratique DevOps. Donc si vous voulez mettre en place une pratique DevOps dans votre organisation, assurez-vous d’avoir en place les deux critères essentiels et surtout responsabiliser l’ensemble de l’organisation plutôt qu’une équipe ou une personne.