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

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

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

  • Raccourcir le délai de commercialisation, 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 grandit, vous souhaiterez mettre à l’échelle vos pratiques pour rester agile et atteindre vos objectifs en évolution. 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 ? Qu’est-ce qui est le plus important : Livraison à temps ? Qualité de produit ? Prévisibilité ? Satisfaction des clients ?
  • Retour aux principes initiaux, retour aux principes et valeurs partagées énumérés 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, gardez les principes, pensez par 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.
  • E-mails de sprint : pour que l’organisation et toutes les équipes soient informées de la progression et des plans des équipes de fonctionnalités, chaque équipe de fonctionnalités peut envoyer un résumé de ses résultats de sprint précédents et des plans de sprint actuels.
  • Démonstrations de sprint : une vidéo rapide de 2 à 3 minutes qui illustre une nouvelle fonctionnalité produite par l’équipe. Des liens vers ces vidéos peuvent être inclus dans les e-mails de sprint.
  • 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’elles ont effectué. 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.
  • E-mails récapitulatifs des bogues : pour fournir des informations sur la qualité des produits et encourager le maintien de la discipline en matière de bogues, partagez régulièrement des métriques de qualité avec l’organisation. Ces métriques peuvent inclure les bogues actifs par équipe de fonctionnalités, les tendances de bogues et les bogues par ingénieur.
  • Réunions de coordination : organisez des réunions qui coordonnent les équipes à intervalles réguliers ou aussi souvent que nécessaire pour traiter les objectifs, les dépendances et les risques communs.

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.

  • Commentaires continus : créez des boucles de commentaires client. Ces boucles peuvent prendre différentes formes :
    • Voix du client : permet aux clients de donner facilement des commentaires, d’ajouter des idées et de voter sur les fonctionnalités de la prochaine génération. Le partage de retours est souvent effectué par le biais d’un site web dédié.
    • Commentaires sur le produit : les boutons de commentaires dans le produit sont une autre façon de demander des commentaires sur l’expérience produit ou des fonctionnalités spécifiques.
    • Démonstrations client : des démonstrations planifiées régulièrement qui demandent des commentaires de vos clients peuvent vous aider à façonner les produits de nouvelle génération et vous maintenir sur la bonne voie pour créer des applications que vos clients voudront consommer.
  • Programmes d’adoption précoce : de tels programmes doivent être développés avec l’idée que toutes les équipes peuvent vouloir y participer à un moment donné. Les utilisateurs précoces ont accès aux premières versions des logiciels de travail, pour lesquelles ils peuvent fournir des commentaires. Souvent, ces programmes fonctionnent en activant certains indicateurs de fonctionnalité pour une liste d’utilisateurs précoces.
  • Décisions basées sur les données : trouvez des moyens d’instrumenter votre produit pour obtenir des données utiles et qui peuvent tester diverses hypothèses. Aidez à créer une culture favorable à l’expérience qui célèbre l’apprentissage.

Améliorer la visibilité du projet

Plus vous et vos équipes disposez d’informations sur l’objectif, la vision et la progression du travail effectué, mieux vous serez équipé pour 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. 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 : la répartition d’éléments (objectifs, fonctionnalités ou exigences) volumineux en plus petits reste une 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 consolidées : utilisez vos outils de suivi en ligne pour agréger le travail afin d’acquérir des connaissances entre les équipes. Créez des tableaux de bord pour afficher la progression et les tendances.
  • Révisions d’expérience : ces réunions, tenues avant le début du développement d’une fonctionnalité, sont utilisées pour éduquer les dirigeants sur les scénarios et les priorités, recueillir des commentaires, définir des attentes et exposer faire ressortir les problèmes inter-équipes concernant la fonctionnalité.

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

Voici quelques-unes des pratiques Agile spécifiques qui permettent une mise à l’échelle efficace et qui conduisent à des employés plus heureux, engagés et productifs :

  • Leadership incorporé : permettez aux équipes et aux dirigeants au sein de l’organisation de s’organiser et de se gérer eux-mêmes autant que possible. L’autonomie d’équipe augmente l’agilité organisationnelle de l’équipe. Assurez-vous que les équipes disposent du soutien nécessaire de la direction de l’entreprise pour réussir.
  • Stand-ups quotidiens : on les appelle aussi réunions Scrum ; l’objectif est de permettre aux équipes de rester concentrées sur ce qu’elles doivent faire quotidiennement pour optimiser leur capacité à répondre à 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 de scrums : Les stand-ups quotidiens des membres de différentes équipes Agile se rencontrent quotidiennement pour faire rapport du travail terminé et discuter des étapes suivantes et des problèmes ou blocages qui se produisent au sein de leurs équipes représentatives.
  • Communications d’équipe : fournissez et encouragez les équipes à partager leurs pratiques et conseils, auxquels elles et d’autres équipes peuvent accéder via le réseau d’entreprise. Les outils courants utilisés à cette fin incluent les wikis d’équipe, OneNote ou les sites Markdown.
  • Collaboration : encouragez les communications informelles d’équipe à équipe et la collaboration au sein de l’équipe. Les pratiques d’institutionnalisation, comme les révisions de code, les révisions de conception et les révisions de spécifications augmentent non seulement la collaboration d’équipe, mais aident également à développer les 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 : En posant des questions comme : « Qu’est-ce qui s’est bien passé ? », « Que devons-nous faire différemment ? » et « Que devons-nous arrêter de faire ? », vous aidez les équipes à réfléchir à la façon dont elles peuvent améliorer leurs processus et leurs pratiques. Les rétrospectives aident les équipes à identifier ce qui fonctionne bien et ce qui doit être amélioré. Les rétrospectives peuvent être effectuées à tout moment et n’importe où. Toutefois, l’institutionnalisation de certaines rétrospectives à une cadence régulière permet de normaliser les pratiques d’amélioration continue. Par exemple :

    • Les rétrospectives de sprint peuvent aider les équipes à identifier les domaines à améliorer à une cadence régulière.

    • Les rétrospectives de mise en production peuvent aider les organisations à identifier les domaines à améliorer les communications et les pratiques internes et à engendrer des améliorations pour la prochaine version.

    • Examens opérationnels : généralement organisés tous les mois 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 quel processus à tout moment. La collecte de ces idées pour discuter et décider de la façon d’agir rapidement est une clé pour soutenir les efforts d’amélioration des processus.

    Un tableau blanc fournit un moyen facile et visuel de capturer des idées. Vous pouvez également créer une équipe de suivi des améliorations et capturer les idées que vous suivez sur un tableau Kanban électronique.

  • Institutionnaliser le partage : le partage des meilleures pratiques et la communication d’idées aident toutes les équipes au sein d’une organisation se développer et à s’améliorer. Le développement d’une culture d’apprentissage est essentiel pour soutenir cette activité et d’autres activités d’amélioration continue. Voici quelques idées à envisager :

    • Wikis internes

    • Listes de distribution internes

    • Semaines de hackathon ou 10 % de temps de ce type

    • Équipe de support Agile interne pour soutenir les équipes qui adoptent les pratiques Agile

      Le jeu de culture fournit une bonne ressource pour les gestionnaires Agile afin d’aider les équipes à adopter Agile et à partager les meilleures pratiques.

  • Communautés de pratique : soutien de disciplines communes internes (par exemple, administrateurs de base de données, architectes logiciels, concepteurs d’expérience utilisateur)

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é : utilisez des indicateurs de fonctionnalité pour activer ou désactiver l’accès à différentes fonctionnalités. Fournissez une prise en charge de l’activation des fonctionnalités pour les utilisateurs précoces afin d’obtenir des retours exploitables.
  • Trains de mise en production : fournissez un autre type de cadence pour fournir une ou plusieurs fonctionnalités. Les équipes de fonctionnalités comprennent la planification planifiée de l’envoi de nouvelles fonctionnalités, et planifient correctement. 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 : adoptez des processus qui éliminent le travail manuel et automatisent plutôt le flux des logiciels via les cycles de test, de génération et de déploiement.
  • Open Source interne : apportez la valeur et l’éthique développées dans la communauté des logiciels open source à vos équipes de développement internes.

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 conséquentes, moins ces estimations sont susceptibles d’avoir une valeur quelconque. À mesure que les projets augmentent, des risques, des problèmes imprévus et des obstacles peuvent survenir, invalidant de nombreuses estimations.
  • Vélocité : bien que la vélocité de l’équipe puisse fournir une métrique utile pour obtenir des informations sur la quantité de travail que chaque équipe peut effectuer 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 varient dans 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. Soutenir l’autonomie des équipes, c’est permettre aux équipes de trouver leurs propres solutions.