Partager via


Implémenter des pratiques Agile qui se mettent à l’échelle

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Les organisations d’entreprise adoptent des pratiques Agile pour de nombreuses raisons. Voici quelques-unes des principales raisons :

  • Raccourcir le délai de commercialisation et accélérer la livraison des produits
  • Améliorer l’efficacité de l’organisation pour gérer l’évolution des priorités
  • Améliorer la qualité des logiciels et la prévisibilité de la livraison
  • Améliorez la visibilité du projet et réduisez les risques liés au projet

À mesure que votre organisation augmente, vous souhaitez mettre à l’échelle vos pratiques pour rester agiles et atteindre les objectifs changeants. Pour ce faire, tenez compte des deux principes directeurs suivants :

  • À quoi est-ce que la réussite ressemble pour vous, vos équipes et votre organisation ? Ce qui vous intéresse le plus : livraison à temps ? Qualité de produit ? Prévisibilité ? Satisfaction des clients ?
  • Revenez aux premiers principes et revenez aux principes et valeurs partagées énumérées dans le manifeste Agile , comme l’a noté Ken Schwaber, l’un des fondateurs de Scrum :
    • « Les valeurs et les principes peuvent être mis à l’échelle, mais les pratiques dépendent du contexte. »
    • « Gardez les valeurs, conservez les principes et pensez pour vous-même. Une prémisse fondamentale d’Agile est que les personnes qui effectuent le travail sont les personnes qui peuvent le mieux déterminer comment le faire. »

Créer un rythme et un flux

En adoptant une cadence partagée et un ensemble de communications périodiques, vous créez un flux constant d’activités au sein de l’organisation. Les pratiques qui aident à créer un rythme et un flux au sein des grandes organisations sont les suivantes :

  • Cadence partagée : les sprints et les mises en production réguliers établissent le rythme de l’entreprise. Le fait que toutes les équipes travaillent selon une cadence partagée aide pour toutes les activités de coordination et de collaboration.
  • Communications sprint : Pour informer l’organisation et toutes les équipes sur la progression et les plans des équipes de fonctionnalités, chaque équipe de fonctionnalités peut partager un résumé de leurs résultats de sprint précédents et des plans de sprint actuels via des canaux numériques tels que Microsoft Teams, Slack ou e-mail.
  • Démonstrations sprint et vidéos : créez des vidéos rapides de 2 à 3 minutes qui illustrent les nouvelles fonctionnalités produites par l’équipe. Partagez des liens vers ces vidéos dans les communications sprint ou les canaux d’équipe.
  • Présenter des réunions : Pour informer d’autres équipes et demander des commentaires sur les logiciels en cours de développement, les équipes présentent le travail qu’ils terminent. Organisez ces réunions à intervalles réguliers tout au long du cycle de vie du projet et ouvrez-les à toutes les parties intéressées.
  • Tableaux de bord des métriques de qualité : pour aider à la compréhension de la qualité des produits et encourager à maintenir la rigueur face aux bogues, partagez régulièrement les métriques de qualité avec l’organisation. Ces métriques peuvent inclure les bogues actifs par équipe de fonctionnalités, les tendances des bogues, la couverture des tests et les taux d’échappement des défauts.
  • Réunions et cérémonies de coordination : organisez des réunions qui coordonnent les équipes à intervalles réguliers ou aussi souvent que nécessaire pour répondre aux objectifs, dépendances et risques qui se chevauchent. Envisagez d'implémenter des sessions de Scrum de Scrums ou de planification d'incrément de programme (PI).

Interagir avec les clients

L’engagement des clients tout au long du cycle de vie de vos produits est un principe premier de l’agilité. Permettez à chaque équipe d’interagir directement avec les clients sur les ensembles de fonctionnalités qu’ils possèdent.

  • Boucles de commentaires continues : créez des mécanismes de commentaires clients. Ces boucles peuvent prendre différentes formes :
    • Plateformes vocales des clients : facilitez les commentaires, ajoutez des idées et votez sur les fonctionnalités de nouvelle génération via des portails dédiés, des forums communautaires ou des systèmes de commentaires intégrés.
    • Commentaires dans le produit : implémentez des boutons de commentaires dans le produit et des données de télémétrie pour recueillir des informations sur l’expérience produit et des fonctionnalités spécifiques.
    • Démonstrations client et tests utilisateur : planifiez des démonstrations régulières qui demandent des commentaires de vos clients et effectuent des sessions de test d’utilisation pour aider à mettre en forme les produits de nouvelle génération et à suivre les applications que vos clients souhaitent consommer.
  • Programmes d’adoption précoce et bêta : développez des programmes avec l’idée que toutes les équipes peuvent vouloir participer à un moment donné. Les utilisateurs précoces accèdent aux premières versions du logiciel de travail et fournissent des commentaires précieux. Souvent, ces programmes fonctionnent en activant les indicateurs de fonctionnalité sélectionnés pour une liste d’utilisateurs précoces.
  • Décisions pilotées par les données : trouver des moyens d’instrumenter votre produit pour obtenir des données utiles et tester différentes hypothèses. Dirigez-vous vers une culture conviviale qui célèbre l’apprentissage et la prise de décision basée sur des preuves.

Améliorer la visibilité du projet

Plus vous et vos équipes avez d’insights sur l’objectif, la vision et la progression du travail effectué, mieux vous pouvez réduire les risques et gérer les dépendances.

  • Structure d’équipe : quelle que soit la taille de votre organisation, structurez votre organisation autour de petites équipes de 6 à 9 personnes de manière efficace. Créez des équipes de fonctionnalités verticales et autonomes regroupées sous des zones de gestion de portefeuille.
  • Structure de répartition du travail : décomposer les grands objectifs, fonctionnalités ou exigences en plus petits reste un élément de base de la gestion de projet. En répartissant le travail en tâches de taille similaire, les équipes peuvent faire de meilleures estimations et identifier les risques et les dépendances.
  • Vues et tableaux de bord consolidés : utilisez vos outils de suivi en ligne pour agréger le travail et acquérir des connaissances dans les équipes. Créez des tableaux de bord en temps réel pour afficher la progression, les tendances et les indicateurs de performances clés à l’aide des services Azure DevOps Analytics.
  • Révisions de l’expérience et de la conception : organisez ces réunions avant le début du développement sur une fonctionnalité afin d’éduquer le leadership sur les scénarios et les priorités, de recueillir des commentaires, de définir les attentes et de poser des problèmes inter-équipes sur la fonctionnalité.

Renforcer la productivité de la main-d’œuvre

Les pratiques Agile spécifiques qui s’adaptent bien et mènent à des employés plus heureux, engagés et productifs sont les suivants :

  • Leadership incorporé et sécurité psychologique : permettre aux équipes et aux dirigeants au sein de l’organisation d’organiser et d’auto-gérer autant que possible. L’autonomie de l’équipe augmente l’agilité organisationnelle et l’efficacité de l’équipe. Assurez-vous que les équipes disposent du parrainage d’entreprise nécessaire pour réussir et créer des environnements où les membres de l’équipe se sentent sûrs d’exprimer des idées et des préoccupations.
  • Stand-ups quotidiens : des réunions Scrum aident les équipes à se concentrer sur ce qu’elles ont besoin de faire quotidiennement pour maximiser leur capacité à respecter leurs engagements de sprint. À mesure que les organisations grandissent, elles doivent envisager d’échelonner ces réunions afin que la participation inter-équipes puisse se produire si nécessaire.
  • Scrum of scrums : Les représentants de différentes équipes Agile se rencontrent régulièrement pour signaler le travail terminé, les étapes suivantes et les problèmes ou blocs qui se produisent au sein de leurs équipes.
  • Communication d’équipe et partage des connaissances : fournissez et encouragez les équipes à partager leurs pratiques et leurs conseils par le biais de réseaux d’entreprise. Les outils courants incluent des wikis d’équipe, Microsoft Teams, Confluence ou des wikis Azure DevOps.
  • Qualité de la collaboration et du code : encouragez les communications et la collaboration informelles en équipe. Institutionnalisez des pratiques telles que les révisions de code, les révisions de conception, la programmation de paires et la programmation mob. Ces pratiques augmentent non seulement la collaboration en équipe, mais aident à développer des compétences individuelles et globales de l’entreprise.

Améliorer la culture organisationnelle

Vous améliorez l’efficacité de l’organisation en prenant en compte la culture que vous souhaitez créer. Les changements de culture se produisent lorsque des individus, des équipes et des organisations adoptent une ou plusieurs pratiques d’amélioration continue. Voici quelques pratiques Agile évolutives :

  • Rétrospectives : Posez des questions telles que : « Qu’est-ce qui s’est bien passé ? », « Que devons-nous faire différemment ? » et « Que devons-nous arrêter de faire ? » pour aider les équipes à réfléchir à la façon dont elles peuvent améliorer leurs processus et leurs pratiques. Les rétrospectives aident les équipes à exposer ce qui fonctionne bien et ce qui a besoin d’amélioration. Vous pouvez effectuer des rétrospectives à tout moment et n’importe où. Toutefois, l’institutionnalisation de certaines rétrospectives à une cadence régulière permet d’établir des pratiques d’amélioration continue. Par exemple :

    • Les rétrospectives sprint aident les équipes à identifier les zones à améliorer à une cadence régulière.

    • Les rétrospectives de publication aident les organisations à identifier les opportunités d'amélioration des communications et des pratiques internes, et à stimuler l'amélioration pour la prochaine version.

    • Révisions opérationnelles : généralement tenues mensuellement et incluent des représentants d’un flux de valeur entier. Couvrez un portefeuille de projets et d’autres initiatives et utilisez des données objectives et quantitatives pour concevoir ces rétrospectives, afin d’engendrer des discussions sur la dynamique affectant les performances entre les équipes.

      Consultez le Wiki des ressources pour les rétrospectives Agile pour obtenir des idées, des conseils et des outils pour la planification et la réalisation de rétrospectives. Consultez également l’extension Rétrospectives de la Place de marché.

  • Tableau de suivi des améliorations : de bonnes idées pour améliorer les processus peuvent provenir de n’importe qui à tout moment. Capturer ces idées pour discuter et décider comment agir rapidement sur eux soutient les efforts d’amélioration du processus.

    Un tableau blanc fournit un moyen simple et visuel de capturer des idées. En outre, vous pouvez créer une équipe de suivi des améliorations et capturer des idées que vous suivez sur une carte électronique.

  • Institutionnaliser le partage et l’apprentissage : le partage des meilleures pratiques et la communication des idées aide toutes les équipes au sein d’une organisation à croître et à améliorer. Le développement d’une culture d’apprentissage prend en charge ces activités et d’autres activités d’amélioration continue. Tenez compte de ces idées :

    • Wikis internes et bases de connaissances

    • Communautés de pratiques et de guildes

    • Semaine du Hackathon ou heure de l’innovation

    • Équipes de coaching DevOps et Agile internes pour prendre en charge les équipes qui adoptent ces pratiques

    • Sessions régulières de déjeuner et d’apprentissage

    • Conférences internes et conférences techniques

      Le jeu de culture fournit une bonne ressource aux responsables Agile pour aider les équipes à adopter des pratiques Agiles et à partager les meilleures pratiques.

  • Communautés de pratique : prendre en charge des disciplines communes internes (par exemple, ingénieurs de fiabilité de site, architectes logiciels, concepteurs d’expérience utilisateur, scientifiques des données et spécialistes de la sécurité)

Logiciel de travail

« Fournissez fréquemment des logiciels fonctionnels, de quelques semaines à quelques mois, de préférence à plus court terme. »
« Un logiciel qui fonctionne est la principale mesure de progression. »
- Agile Manifesto

À mesure que la quantité de logiciels, de fonctionnalités et de complexité augmente, vous devez adopter des pratiques qui vous aident à produire des solutions consommables.

  • Indicateurs de fonctionnalité et remise progressive : utilisez des indicateurs de fonctionnalité pour activer ou désactiver l’accès à différentes fonctionnalités en toute sécurité. Activer les fonctionnalités pour les adoptants précoces afin d’obtenir des retours pratiques. Implémentez des modèles de déploiement progressifs tels que les déploiements en canari et les déploiements bleu-vert.
  • Trains de mise en production et livraison continue : fournissez un autre type de cadence pour livrer une ou plusieurs fonctionnalités. Les équipes fonctionnelles comprennent le calendrier prédéfini d’envoi de nouvelles fonctionnalités et planifient en conséquence. Les trains de mise en production peuvent correspondre à la même cadence de sprint établie pour l’organisation ou se produire à une cadence différente. Consultez Scaled Agile Framework pour savoir comment configurer des sprints et des trains de mise en production.
  • Intégration continue et déploiement continu (CI/CD) : adoptez des processus automatisés qui éliminent le travail manuel et automatisent le flux de logiciels via des cycles de test, de génération et de déploiement. Implémentez des stratégies de test complètes, notamment des tests unitaires, des tests d’intégration et des tests d’acceptation automatisés.
  • Développement interne source et open : apportez la valeur et l’ethos développés dans la communauté Open Source Software à vos équipes de développement internes. Encouragez le partage de code, la documentation et les pratiques de développement collaboratif entre les équipes.
  • Pratiques natives cloud : Embrassez la conteneurisation, les architectures de microservices et les modèles de déploiement natifs cloud pour améliorer la scalabilité et la maintenance.

Pratiques et considérations modernes

À mesure que les pratiques Agile ont évolué, tenez compte de ces autres approches modernes :

  • Intégration de DevSecOps : intégrez des pratiques de sécurité tout au long du cycle de vie du développement plutôt que de traiter la sécurité comme une préoccupation distincte.
  • Ingénierie de fiabilité du site (SRE) : adoptez des pratiques SRE pour améliorer la fiabilité du système et réduire la surcharge opérationnelle.
  • Cartographie de la chaîne de valeur : cartographier et optimiser le flux de valeur de l'idée à la livraison au client.
  • OKR (Objectifs et résultats clés) : utilisez des OKR pour aligner les équipes sur des résultats mesurables plutôt que simplement des sorties.
  • Conception : incorporer des approches de conception centrées sur l’homme pour mieux comprendre les besoins des clients.

En plus des pratiques ci-dessus, vous trouverez des conseils supplémentaires sur la mise à l’échelle de vos outils Agile dans les articles suivants :

Ressources du secteur

Pratiques qui ne peuvent pas être mises à l’échelle

  • Estimation des grandes initiatives : une partie des méthodes de projet en cascade implique l’estimation des ressources et des planifications. Plus les initiatives sont importantes, moins ces estimations fournissent une valeur. À mesure que les projets augmentent, des risques, des problèmes imprévus et des obstacles peuvent survenir, invalidant de nombreuses estimations.
  • Vitesse en tant que métrique inter-équipe : bien que la vélocité de l’équipe puisse fournir une métrique utile pour obtenir des informations sur le travail que chaque équipe peut accomplir pendant un cycle de sprint, vous ne pouvez pas ajouter de vélocités d’équipe pour obtenir des métriques significatives ou utiles. En outre, l’utilisation de la vélocité acquise par de nombreuses équipes pour effectuer de manière fiable des prévisions à long terme est problématique. Les équipes peuvent varier en fonction de la façon dont elles évaluent leur travail, et ces variations augmentent au fil du temps.
  • Solutions prescriptives descendantes : une taille ne convient pas à tous, et une solution ne convient généralement pas à toutes les équipes. La prise en charge de l’autonomie de l’équipe signifie permettre aux équipes de trouver leurs propres solutions tout en fournissant les infrastructures et le support nécessaires.
  • Culte cargo Agile : l’adoption de cérémonies Agiles sans comprendre leur objectif ou les adapter à votre contexte conduit souvent à des implémentations inefficaces.