Adopter la culture DevOps
permettre aux équipes de développement et d’exploitation d’améliorer continuellement leur conception et processus système en travaillant avec un état d’esprit de collaboration, de responsabilité partagée et de propriété. |
---|
DevOps est une communauté de pratique où la diversité du point de vue et des compétences s’oriente vers une mission. Les équipes doivent favoriser un environnement collaboratif de connaissances partagées au lieu d’apprendre en silo. Utilisez des fonctions partagées pour tenter de surmonter les contraintes de ressources.
Une bonne culture DevOps s’étend sur la responsabilité partagée. Les équipes de développement et d’exploitation doivent aligner leurs objectifs et leurs priorités avec les attentes de leurs clients et garder le focus sur l’entreprise à l’esprit. L’équipe de développement doit impliquer l’équipe des opérations dans la boucle de commentaires afin que les améliorations soient pilotées amont et d’autres équipes bénéficient également. À l’inverse, les équipes d’exploitation sont responsables de la réussite de l’équipe de développement dans leurs résultats métier en partageant des ressources et des commentaires pertinents pour la charge de travail.
En même temps, les pratiques DevOps appliquent des lignes claires de propriété et de responsabilité à chaque équipe. Quel que soit l’endroit où l’application s’exécute, l’équipe de charge de travail est responsable de cette application.
DevOps optimise les tâches opérationnelles afin qu’elles soient efficaces, mais pas fastidieuses. Pour tirer pleinement parti de DevOps, la culture doit optimiser les processus par le biais de la technologie et avoir des processus pour les personnes de l’organisation afin de promouvoir la communication transparente.
Exemple de scénario
Le service Ressources humaines (RH) de Contoso lance un projet visant à développer une nouvelle application métier pour l’utilisation interne de son service. L’application est actuellement en phase de planification, aucun travail de conception ou d’implémentation n’a encore commencé.
Collaborer efficacement
Utilisez des systèmes et des outils courants qui favorisent un environnement collaboratif pour la communication et le suivi de la progression.
Les outils et processus courants permettent une communication transparente. Les équipes de développement et d’exploitation bénéficient à la fois de la sensibilisation à la situation dans différents environnements, des problèmes de support courants et des défis globaux et des victoires.
Teams connaît déjà les chemins d’escalade existants s’il existe un incident.
Un backlog partagé rend les priorités, telles que le travail sur de nouvelles fonctionnalités ou la résolution des bogues, clair.
Problématique de Contoso
- Contoso dispose de trois équipes techniques qui seront impliquées dans le développement et la maintenance de la nouvelle application : développement, test et opérations. Actuellement, il n’existe aucun outil de communication et de suivi de projet standard qui sont constamment utilisés dans ces équipes.
- Historiquement, chaque équipe a pu sélectionner ses outils de choix. Certains utilisent Slack, tandis que d’autres utilisent Microsoft Teams pour la messagerie interne. Certains utilisent Azure DevOps (ADO) et d’autres utilisent Excel pour suivre les tâches, et chaque équipe utilise un référentiel de documents différent du reste pour partager des procédures de connaissance et de réponse aux incidents.
- Dans les projets précédents, l’organisation technique globale a eu du mal à communiquer et à collaborer en raison des outils disparates utilisés. À l’avenir, Contoso HR souhaite améliorer la productivité et éviter les situations qui pourraient ralentir le projet, comme celles rencontrées précédemment.
Application de l’approche et résultats
- Les responsables des équipes techniques ont rencontré les commanditaires du projet pour choisir les outils standard qui seront utilisés à l’avenir. Le groupe a choisi ADO pour gérer son backlog, son référentiel de code et son pipeline de déploiement. Ils ont également choisi Microsoft Teams pour les communications et la collaboration.
- L’utilisation d’un ensemble commun d’outils permet aux équipes de développement, d’opérations et de test de rester informées et synchronisées sur l’état des différents environnements, des problèmes courants de projet et des réalisations d’équipe. De plus, les équipes peuvent accéder à des informations sur les chemins d’escalade établis en cas d’incidents à partir d’un emplacement connu unique.
- Un backlog partagé permet également de planifier uniformément et de rester aligné sur les priorités, telles que le développement de nouvelles fonctionnalités ou la résolution des bogues.
Adopter l’amélioration continue
Créez un état d’esprit continu d’apprentissage et d’expérimentation tout au long du cycle de développement. Prenez en charge le partage des connaissances entre les équipes et gérez la documentation pour la réutilisation. Et, effectuez une analyse sans blâme et des évaluations post-publication et/ou post-incident.
Grâce à des mécanismes d’expérimentation, tels que les tests A/B et le développement de preuves de concept, vous pouvez encourager l’innovation tout en conservant les coûts bas.
Partagez des connaissances grâce à la collaboration qui rend l’équipe compétent dans les approches de conception, les outils et les processus.
Faire des rétrospectives après un projet permet d’identifier les domaines d’amélioration et de célébrer le succès.
Problématique de Contoso
- Pour faciliter davantage le partage d’informations et favoriser une culture de collaboration et de transparence, l’équipe souhaite disposer d’une source centralisée et facilement accessible de vérité pour la documentation du projet. Entre autres choses, cela serait utile si un nouveau développeur rejoint l’équipe et doit rapidement s’accélérer avec le projet.
- L’intérêt particulier pour contoso RH est de s’assurer que les apprentissages des incidents qui affectent la disponibilité de l’application sont capturés et partagés dans l’ensemble de l’organisation technique afin d’aider les incidents futurs et d’empêcher la périodicité autant que possible.
- Pour éviter de répéter les erreurs passées lors de la conception de l’expérience utilisateur de l’application, l’équipe souhaite également utiliser une approche plus agile qui leur permettrait de prendre en considération les commentaires réels des utilisateurs.
Application de l’approche et résultats
- L’équipe crée un wiki de partage de connaissances dans ADO où toutes les spécifications de conception seront publiées avec toutes les procédures opérationnelles actives, les plans de réponse aux incidents et les résultats rétrospectifs.
- Faire des rétrospectives sans blâme après des incidents et chaque itération de développement et documenter les apprentissages dans le wiki aide l’équipe du projet à identifier les domaines d’amélioration et de célébrer le succès.
- L’équipe a adopté une approche exploratoire de la conception de l’expérience utilisateur pour la nouvelle application, tirant parti des tests A/B pour trouver la meilleure expérience utilisateur sur plusieurs variantes proposées par les consultants de l’expérience utilisateur, en prenant en considération les commentaires des utilisateurs pour prendre en considération les décisions pilotées par les données.
Codifier les procédures de développement et d’exploitation
Définissez des normes pour toutes les procédures opérationnelles et de développement, puis passez en revue et validez-les à une cadence régulière. Ces procédures incluent les tâches de routine, les processus hors bande, les exercices d’urgence et les situations, le choix d’outils, les procédures de surveillance, les plans de compétence et même la communication avec les parties prenantes et les divulgations des clients. Soyez intentionnel et explicite sur vos décisions.
Les normes ajoutent la prévisibilité aux opérations et rendent les processus et les pratiques évolutifs. La validation des normes est un excellent moyen de dessiner des points d’amélioration.
Préparez-vous aux situations d’urgence et de récupération en effectuant des exercices réguliers.
Exécutez avec précision et activez la gouvernance pour éviter les anomalies qui entraînent des risques.
Problématique de Contoso
- L’un des défis qui ont affecté la productivité et la qualité de sortie de l’équipe de développement dans le passé est un manque de normalisation et de cohérence dans la base de code. Par exemple, l’absence d’uniformité dans les conventions d’affectation de noms ou l’utilisation de modèles logiciels courants rend difficile pour les membres de l’équipe de comprendre le code de l’autre et qui a affecté l’efficacité.
- En outre, sans une approche courante correctement documentée des opérations, le personnel des opérations peut utiliser différentes méthodes pour atteindre le même objectif, ce qui entraîne une inefficacité et une confusion.
- Motivé par le succès qu’ils ont eu à implémenter d’autres améliorations DevOps, Contoso HR a décidé de résoudre ce problème dans le cadre du prochain cycle de développement.
Application de l’approche et résultats
- L’équipe de développement se réunit pendant le cycle de développement pour s’entendre sur un ensemble de normes de développement à mettre en œuvre. Ils documentent les choix effectués et commencent à les appliquer pendant les révisions de code et par le biais d’outils. Ils examinent des sujets tels que : Conventions de mise en forme et d’affectation de noms de code, gestion des erreurs, contrôle de version et pratiques de sécurité. L’équipe prévoit de prêter une attention particulière aux métriques de qualité et aux rapports générés dans ADO pour quantifier l’impact que ces changements auront sur la qualité et la productivité, afin qu’ils puissent prouver la valeur de ces types d’améliorations DevOps à leur équipe de gestion.
- De même, l’équipe des opérations consacre du temps pendant la même période pour étendre sa documentation existante sur la gestion de routine et les pratiques de résolution des problèmes et la publier dans le wiki. À l’avenir, le wiki servira de source unique de vérité, d’économiser du temps et de l’énergie qui serait autrement consacré à la recherche d’informations.