Créer une structure d'équipe DevOps idéale
Il n'existe pas de formule universelle pour créer une équipe DevOps.
Une plateforme DevOps solide a besoin d'une structure d'équipe DevOps solide pour offrir une efficacité maximale.
La mise en place d'une structure d'équipe DevOps robuste ne consiste pas seulement à rassembler un groupe de professionnels possédant des compétences techniques : il s'agit de favoriser une culture DevOps qui met l'accent sur la collaboration, l'amélioration continue, la réactivité et le rendement tout au long du cycle de vie du produit.
Les entreprises cherchent toutes à rationaliser leur processus de développement logiciel. Dans ce contexte, il est essentiel de comprendre les rôles respectifs de l'ingénieur DevOps et des développeurs, mais aussi la manière dont les outils d'automatisation peuvent améliorer la productivité. Cette vision holistique aide à façonner une structure DevOps qui répond aux objectifs généraux, c'est-à-dire une livraison de logiciels fiable et un environnement de travail productif.
Plusieurs facteurs peuvent influencer la structure de l'équipe :
- Effets de silo existants : existe-t-il des ensembles de produits/équipes qui travaillent de manière indépendante ?
- Leadership technique : les responsables de groupe disposent-ils des moyens nécessaires pour atteindre les objectifs DevOps ?
- Évolution des rôles : les tâches opérationnelles s'insinuent dans des rôles de développement, les équipes de sécurité travaillent avec toutes les autres équipes et les technologies évoluent. Attendez-vous à devoir réévaluer votre organisation régulièrement.
- Amélioration continue : une équipe DevOps ne sera jamais statique. L'itération est nécessaire.
La séparation distincte entre l'équipe de développement et l'équipe des opérations entraîne souvent des difficultés lors des déploiements. Cependant, l'adoption d'une culture DevOps qui comprend des outils communs peut combler ce fossé.
Matthew Skelton, consultant en gestion, connaît bien les divers scénarios DevOps. Nous allons examiner dans cet article certains effets de silo qu'il mentionne spécifiquement, ainsi que leur impact sur l'entreprise.
Pour Matthew Skelton, cette structure d'équipe classique n'a aucune place dans une stratégie DevOps efficace. Les deux équipes travaillent chacune de leur côté et n'ont aucune visibilité sur leurs workflows respectifs. Ce scénario empêche la collaboration, la visibilité et la compréhension, les éléments clés d'une stratégie DevOps efficace. Il est alors trop facile pour une équipe de rejeter la faute sur l'autre équipe : « Nous ne savons pas ce qu'ils font là-bas, nous avons fait notre part et maintenant c'est à eux de jouer » et ainsi de suite.
Dans cette structure d'équipe, nous avons toujours une équipe de développement et une équipe des opérations distinctes, mais nous disposons également d'une équipe « DevOps » qui joue un rôle d'intermédiaire. Cette structure n'est pas nécessairement mauvaise et Matthew Skelton souligne qu'elle peut être utile dans certains cas d'utilisation. Par exemple, cette structure peut convenir comme solution temporaire si son objectif est d'améliorer la cohésion entre les équipes de développement et des opérations à l'avenir.
Dans ce scénario, les équipes de développement et DevOps sont fusionnées, tandis que l'équipe des opérations est isolée. Les entreprises qui suivent ce modèle considèrent les opérations comme un élément de soutien pour les initiatives de développement logiciel, sans valeur intrinsèque. Ces entreprises sont toutefois confrontées à des erreurs opérationnelles de base et pourraient booster leurs résultats si elles comprenaient la valeur de l'équipe des opérations.
Pour briser les effets de silo au sein de l'équipe DevOps, il faut mettre en place un leadership à tous les niveaux. Commencez par demander à chaque groupe de répertorier les points de friction rencontrés, puis identifiez les leaders de chaque groupe (développement, opérations, sécurité, test). Chaque leader devra examiner l'ensemble des points de friction, à la fois individuellement et avec les autres leaders.
Une bonne communication est cruciale : les membres d'équipe ont besoin de recevoir des commentaires réguliers sur tous les aspects de leur rôle.
Il peut également être utile de nommer des « champions » au sein des groupes en difficulté. En adoptant des comportements et un langage qui facilitent la communication et la collaboration, ces champions encouragerons le reste de l'équipe à faire de même.
Les progrès technologiques, qu'il s'agisse du multicloud, des microservices ou des conteneurs, influencent également la création d'une structure d'équipe DevOps efficace. Dans notre enquête Global DevSecOps 2020, 83 % des répondants ont déclaré que leurs équipes publiaient le code plus rapidement, mais ils ont également mentionné que leurs rôles changeaient, et dans certains cas de façon spectaculaire.
Aujourd'hui, les développeurs créent, surveillent et tiennent à jour les infrastructures, des fonctions auparavant associées aux opérations. Les équipes des opérations consacrent quant à elles plus de temps à la gestion des services cloud, tandis que les membres de l'équipe de sécurité travaillent plus que jamais de façon transversale avec les équipes de développement et des opérations.
De toute évidence, le cycle du développement logiciel repose aujourd'hui sur des éléments mobiles, ce qui signifie que la définition de la structure d'équipe DevOps doit rester fluide et faire l'objet d'évaluations régulières.
L'itération est l'une des valeurs fondamentales de GitLab. Nous appliquons beaucoup ce principe en interne, dans le cadre de notre propre structure d'équipe DevOps. GitLab est une plateforme DevOps complète, livrée en tant qu'application unique. De ce fait, nos équipes de développement sont organisées en étapes (Vérification par exemple), car dans toute autre entreprise elles seraient distinctes et autonomes. Au-delà du développement, nous avons également créé d'autres groupes DevOps fonctionnels qui gèrent d'autres aspects de notre produit.
Ceux-ci incluent notamment un groupe de fiabilité qui gère l'uptime et la fiabilité de GitLab.com, un service qualité et une équipe de distribution. Grâce à notre engagement en faveur de la transparence et à une grande visibilité tout au long du SDLC, toutes ces pièces s'assemblent pour constituer un tout. Mais nous modifions (ou itérons) également cette structure régulièrement pour maintenir un fonctionnement optimal.
Pour résumer, la création d'une équipe DevOps n'est pas un projet qui a un début et une fin, mais qui nécessite une révision constante et fluide. Cela en vaut toutefois la peine, car cela permet d'accélérer les sorties de nouvelles versions de code et d'améliorer l'expérience de travail des équipes.
L'optimisation de la structure d'une équipe DevOps est un processus itératif, qui reflète les progrès continus des processus et des outils DevOps. Chaque élément joue un rôle crucial dans la réussite de l'équipe. En éliminant les effets de silo traditionnels et en intégrant divers rôles au sein des équipes DevOps, les entreprises peuvent favoriser une plus grande cohésion et efficacité.
Au final, l'amélioration continue repose sur l'évaluation et l'ajustement constants de la structure DevOps, afin de s'adapter au rythme des exigences évolutives de la production et du déploiement de logiciels. Cet engagement accélère non seulement le processus de développement logiciel, mais crée également une entreprise plus résiliente et plus réactive.
Cartographie des tendances DevSecOps
En savoir plus sur les équipes DevOps
Voir toutes les ressourcesLancez-vous dès maintenant
Découvrez comment la plateforme DevSecOps unifiée de GitLab peut aider votre équipe.