Avec l’accélération de la digitalisation des entreprises au cours de ces dernières années, il est devenu crucial de faire évoluer et d’adapter au mieux les développements informatiques aux besoins de l’entreprise, mais surtout de donner plus d’autonomie aux développeurs, sans pour autant supprimer les processus déjà existants. Cependant, même si de nombreuses organisations ont déjà implémenté des méthodes DevOps, la mise en œuvre et la théorie ne sont aujourd’hui malheureusement pas toujours en adéquation. En effet, nombreuses sont les entreprises qui axent le DevOps sur l’aspect « Dev » et beaucoup moins sur l’aspect « Ops ».
Au fil des ans, le concept DevOps a évolué sous différentes formes, avec une nette tendance à la centralisation des tests et au développement des applications pour aider les entreprises à améliorer les temps d’itération en ce qui concerne le développement de logiciels et l’optimisation de technologies commerciales. Cependant, si les dirigeants de nombreuses entreprises pensent travailler selon les concepts DevOps, force est de constater qu’en réalité leurs processus n’ont pas encore atteint un niveau de maturité suffisant.
Une approche créatrice de synergies
Le travail à distance a, certes, accéléré la digitalisation des entreprises, mais il a surtout bousculé la façon de travailler, si bien qu’aujourd’hui, toutes les équipes ont besoin d’outils fiables qui pourront les accompagner tout au long d’un projet. Désormais, les demandes sont multiples, et alors que l’on pourrait encore penser que chaque équipe peut et doit avancer de façon indépendante, ce modèle est révolu. En effet, plus elles pourront collaborer et avancer main dans la main, et plus les équipes seront efficaces. Les Dev et les Ops ne sont plus deux services distincts qui interagissent, mais bien un ensemble de collaborateurs qui travaillent conjointement afin d’optimiser l’ensemble des processus. Plus qu’une méthode, le DevOps est une culture. Mais pour exploiter son potentiel, il faut l’intégrer dans l’activité quotidienne de chacun.
L’approche DevOps permet de regrouper ces deux forces dans un seul environnement et ouvre ainsi la porte à d’autres pratiques comme les DevSecOps ou les DevTestOps, mais surtout, elle permet de réunir des collaborateurs qui seront alors pleinement conscients de l’impact de leur contribution à un projet commun. Adopter ces méthodes permet de mieux responsabiliser les équipes et de les rendre plus polyvalentes.
Une meilleur collaboration grâce à des outils ouverts et évolutifs
Plus l’entreprise se digitalise, et plus les briques technologiques augmentent. Il devient alors de plus en plus compliqué de livrer un projet dans les délais sans les bons outils. En adoptant une approche DevOps, l’entreprise s’assure une meilleure collaboration interne qui viendra dynamiser et accélérer les processus de développement, de maintenance et de déploiement des applications.
Aujourd’hui, il existe de très nombreux outils, il faut en revanche s’assurer que ceux qui seront choisis le seront pour les bonnes raisons. Ils doivent notamment être capable de s’intégrer et s’interfacer avec « l’usine logiciels »,offrant un soutien actif aux développeurs, mais surtout être capable d’évoluer au fil des demandes.
Cette flexibilité doit assurer une collaboration fluide et transparente entre tous les départements de l’entreprise. L’outil présenté ci-dessous (Fig.1) est l’exemple de cette flexibilité avec la possibilité de s’interfacer avec les différents outils de la chaine DevOps et donner de la visibilité sur l’état de l’application en temps réel (statuts des builds, de la couverture du code, des tests, timeline, …).
L’approche DevOps doit permettre aux équipes d’innover et d’améliorer leur façon de travailler, et non pas de combler de possibles lacunes. Il faudra donc toujours rechercher le bon équilibre entre le contrôle et la flexibilité
Plus de performances grâce à l’automatisation des tests
D’après une le rapport The 2021 State of Database DevOps de RedGate Software, l’adoption du DevOps ne cesse d’augmenter. En effet, parmiles 3 200 entreprises sondées, 74 %ont fait ce choix et constatent même que ce concept a dopé leur productivité. Il devient donc impensable pour une entreprise de ne planifier que deux versions par an d’un produit ou d’une application. Pire, cela pourrait même s’avérer dangereux en termes de sécurité. En adoptant l’approche DevOps, l’entreprise assure à ses clients des mises à jour régulières de ses produits et peut les programmer une fois par semaine, par jour ou même par heure. Mais avec l’accélération du rythme de livraison il faut s’assurer qu’en interne, les tests pourront être automatisés afin de garantir la qualité et la stabilité souhaité.
Pourtant cruciale, cette automatisation est pourtant négligée par de nombreuses entreprises. Bien qu’ayant beaucoup investi (argent, ressources, tests, …)dans le lancement d’un produit ou d’une application, elles vont délaisser progressivement les tests et leurs améliorations par manque d’intérêts, de temps, de budget ou de compétences. Au-delà de faire peser un risque qualité pour l’application, c’est diminuer – voire réduire à néant – son retour sur investissement (ROI).
Afin d’éviter ce piège, une bonne pratique est d’automatiser au plus tôt les tests et de les partager en mode « Shift Left » avec les développeurs. Les intérêts sont multiples : sensibilisation des acteurs aux tests, optimisation du ROI d’automatisation, détection potentielle d’erreur au plus tôt et donc moins couteuses à corriger, … Au besoin, l’entreprise pourra en confier la responsabilité à une personne ou à une équipe dédiée.
La mise en place du « tests en continue » permet d’assurer une qualité constante de l’application tout en maintenant un rythme soutenu de déploiements permettant d’enrichir l’expérience client.
Plus de collaboration grâce à un renouveau de la culture interne
Avant même de réfléchir à comment adopter une approche DevOps, il faut d’abord se demander pourquoi elle est aujourd’hui indispensable, et pourquoi il faut la mettre en place. Cela peut paraître évident, mais les entreprises doivent prendre conscience que leurs organisations internes doivent évoluer et ainsi permettre une meilleure collaboration entre chaque équipe. L’étape suivante consistera à vérifier que tous les collaborateurs pourront travailler dans cette dynamique commune, du développeur au superviseur et jusqu’à la direction. Il est donc recommandé de sensibiliser chaque salarié aux concepts DevOps avant même de la mettre en place.
En effet, cette approche va impliquer de nombreux changements en interne, à commencer par un décloisonnement des services. Ils doivent être transparents et leurs équipes doivent pouvoir interagir. Un accompagnement et une formation sont conseillés pour que chacun prenne conscience des enjeux. Enfin, il faudra mettre en place et développer une culture client en insistant sur le service et la satisfaction puisque l’approche DevOps aura un impact direct sur la vitesse des livraisons produits et sur leurs améliorations. Cette approche est souvent associée à l’Agile. Ce qui est normale car l’Agile impose une multiplication et accélération des cycles (par opposition au cycle en V) et donc DevOps permet de l’atteindre. Mais DevOps est également recommandé dans les approches non Agiles (cycle en V, en W, …). Bref on peut être DevOps sans être Agile, on ne peut pas être Agile sans être DevOps !
Mettre en œuvre le DevOps à petite échelle est tout à fait accessible. Mais à grande échelle, cela peut rapidement devenir un véritable défi. Il faut impérativement garder une vue d’ensemble de la chaîne de développement pour tirer pleinement parti de cette méthode. Une fois de plus, les outils ne font pas tout mais vont grandement aider et accompagner les entreprises pour leur permettre d’accomplir leur stratégie.
Par Olivier Félis, Presales France & BeLux chez Micro Focus