Ce qu'un déploiement révèle de votre équipe
Asseyez-vous à côté d'une équipe en train de déployer. Que voyez-vous ?
Une personne est devant son portable, ouvre un terminal ou le tableau de bord CI/CD, et appuie sur le bouton de déploiement. Quelques membres de l'équipe se regroupent, observant le statut du pipeline passer du jaune au vert. Quelqu'un sirote son café. Un autre consulte un groupe de discussion. Un dernier fixe l'écran sans rien dire.
Quelques minutes plus tard, le pipeline se termine. Vert. L'équipe souffle. Mais ce n'est pas fini. Quelqu'un ouvre l'application dans un navigateur pour vérifier que la page d'accueil se charge. Un autre sort le tableau de bord de monitoring, à l'affût de pics d'erreurs. Quelqu'un demande dans le chat : "Quelqu'un voit quelque chose d'anormal ?" Silence. Personne ne répond. On suppose que tout va bien.
Mais parfois, ça se passe différemment. Le pipeline échoue à mi-parcours. Un test ne passe pas. Ou le build casse à cause d'une incompatibilité de dépendance. La personne qui effectue le déploiement commence à paniquer. Les autres membres de l'équipe se rapprochent. Quelqu'un suggère un rollback. Un autre dit de réessayer. La tension monte. Si ce déploiement contient un correctif que les utilisateurs attendent, la pression s'intensifie.
Ou encore un autre scénario : le déploiement réussit, mais après quelques minutes, le tableau de bord de monitoring montre des taux d'erreur en hausse. L'équipe part en chasse de la cause. Quelqu'un fouille les logs. Un autre vérifie la base de données. On demande s'il y a eu des changements d'infrastructure. Une heure plus tard, on découvre qu'une nouvelle requête déployée avec le code est lente car elle n'utilise pas d'index.
Que vous apprennent ces trois scénarios ?
Vous voyez comment l'équipe fonctionne. Vous voyez qui prend les décisions, qui attend, qui travaille en silo. Vous voyez à quel point l'équipe est préparée à l'échec. Vous voyez si elle a des procédures ou si elle compte simplement sur la chance. Vous voyez si la communication circule ou se désagrège.
Le déploiement comme miroir
C'est ce que les gens veulent dire quand ils affirment que le déploiement est un miroir de l'organisation. La façon dont une équipe déploie — qui est impliqué, ce qui est vérifié, combien de temps cela prend, comment elle réagit quand les choses tournent mal — tout cela reflète la manière dont l'équipe est organisée, à quoi ressemble sa culture de travail, et quel est le niveau de maturité de son processus de développement.
Les équipes qui déploient rapidement et échouent rarement partagent certains traits. Elles ont des pipelines bien automatisés. Elles ont suffisamment de tests pour se sentir en confiance pour déployer à tout moment. Elles ont un monitoring qui détecte les problèmes tôt. Et surtout, elles ont une culture où les gens n'ont pas peur de déployer, mais ne déploient pas non plus à la légère.
Les équipes qui déploient lentement, échouent souvent, ou transforment chaque déploiement en crise ont généralement des problèmes plus profonds. Peut-être qu'elles n'ont pas de tests adéquats. Peut-être que leur pipeline est manuel et dépend d'une seule personne. Peut-être qu'elles n'ont aucun moyen de détecter les problèmes si ce n'est en attendant que les utilisateurs les signalent. Ou peut-être que la culture d'équipe pousse les gens à éviter les risques, faisant de chaque déploiement un événement majeur.
Au-delà du technique
À partir de cette simple observation, on commence à voir que le déploiement n'est pas qu'une activité technique. C'est un signal. Il vous renseigne sur la santé de votre organisation d'ingénierie.
Si vos déploiements sont douloureux, corriger le pipeline seul ne suffira pas. Il faut regarder plus loin : comment l'équipe travaille-t-elle ensemble ? Comment gère-t-elle le risque ? Comment utilise-t-elle les retours de la production pour apprendre et s'améliorer ?
Une équipe qui traite le déploiement comme un sport d'équipe, avec des rôles clairs, des vérifications automatisées et une réaction calme face à l'échec, est une équipe qui a construit ces capacités au fil du temps. Elle n'y est pas arrivée en achetant un meilleur outil CI/CD. Elle y est arrivée en changeant sa façon de travailler.
Une équipe qui traite le déploiement comme un événement à haut risque, où une personne porte le fardeau et les autres regardent nerveusement, est une équipe qui n'a pas encore construit ces capacités. Aucun outil ne pourra résoudre cela. Seuls des changements dans les processus, la culture et les pratiques le pourront.
Ce qu'il faut observer
La prochaine fois que vous assisterez à un déploiement, prêtez attention à ces signaux :
- Qui est impliqué ? Est-ce une seule personne ou toute l'équipe ? Tout le monde sait-il ce qui se passe ?
- Qu'est-ce qui est vérifié ? Regardent-ils seulement le statut du pipeline, ou vérifient-ils que l'application fonctionne réellement ?
- Combien de temps cela prend-il ? Est-ce en minutes ou en heures ? Le temps est-il passé sur l'automatisation ou la coordination manuelle ?
- Comment réagissent-ils à l'échec ? Restent-ils calmes et suivent-ils une procédure, ou la panique s'installe-t-elle ? Ont-ils un plan de rollback prêt ?
- Que se passe-t-il après le succès ? Surveillent-ils pendant un moment, ou s'en vont-ils immédiatement ?
Ces signaux vous en disent plus sur votre organisation d'ingénierie que n'importe quel tableau de bord de métriques.
Le vrai enseignement
Le déploiement n'est pas la ligne d'arrivée. C'est le moment où toutes les habitudes, pratiques et cultures de votre équipe deviennent visibles. Si vous voulez améliorer vos déploiements, ne commencez pas par modifier votre pipeline. Commencez par regarder ce que votre processus de déploiement actuel révèle de votre équipe, et travaillez sur les problèmes sous-jacents à partir de là.