Table des matières

Les dépendances sont les relations entre les activités qui déterminent l'ordre dans lequel les éléments de travail (fonctionnalités, récits, tâches) doivent être réalisés par les équipes Agile. La gestion des dépendances est le processus qui consiste à analyser, mesurer et travailler activement pour minimiser les perturbations causées par les dépendances intra-équipe et/ou inter-équipes.

Dans cet article, nous discuterons de la manière d'identifier, de cartographier et de gérer les dépendances afin d'accroître l'agilité et de réduire les gaspillages au sein des équipes Agile.

Démonstration de la solution de gestion de programme Agile

Regarder la démo sur la solution : démo sur la solution de gestion de programme Agile

Solutions logicielles Lean et Agile : Le guide ultime de l'acheteur

Criteria for Team, Program, and Portfolio Level Solutions

Obtenir le guide : Solutions logicielles Lean et Agile : Le guide ultime de l'acheteur
Les équipes Agile font en sorte que la gestion des dépendances soit possible en séquençant les tâches, les activités, les étapes et les processus.
Les équipes Agile font en sorte que la gestion des dépendances soit possible en séquençant les tâches, les activités, les étapes et les processus.

Que sont les dépendances au sein des équipes Agile ?

La gestion d'aucun projet ne peut s'effectuer de façon totalement autonome. Il existe des dépendances au sein de chaque projet : entre des personnes, des étapes, des fonctions ou des équipes. Dans toutes les situations où un élément doit se produire avant un autre, il existe une dépendance :

  • Un travail doit être vérifié avant sa livraison
  • Un article doit être rédigé avant qu'il soit possible de le publier
  • Une fonctionnalité doit faire l'objet de contrôles d'assurance qualité avant de pouvoir être lancée
  • Un échantillon sanguin doit être prélevé avant de pouvoir être analysé

Toutes ces relations entre des tâches sont des dépendances. Les dépendances peuvent être internes ou externes aux équipes ou aux organisations Agile qui réalisent les activités.

Même si le terme « dépendance » possède une connotation négative dans nombreux contextes (la dépendance à une substance illicite est par exemple considérée comme néfaste et préjudiciable à la personne qui en souffre), les dépendances dans les processus de travail constituent un facteur neutre. Elles ne sont ni bonnes, ni mauvaises en soi, et sont inévitables dans la plupart des cas.

C'est grâce au séquencement des tâches, des activités, des étapes ou des processus que les équipes Agile sont en mesure de gérer les dépendances. L'identification et la visualisation des dépendances permettent à toutes les personnes impliquées de mieux aligner et prioriser leur part de travail afin d'optimiser le flux.

Les équipes Agile intègrent souvent des dépendances dans leurs processus afin de limiter les risques, par exemple lorsqu'une personne relit un article rédigé par une autre, ou lorsqu'un membre de l'équipe teste une fonctionnalité qu'un autre a conçue. Tout processus présente un risque inhérent lorsqu'une seule et même personne est responsable à la fois de sa réalisation et de sa vérification. Pour atténuer ce risque, les équipes ajoutent des dépendances aux processus.

Toutes les dépendances ont un point commun : elles augmentent la complexité, quel que soit le système. Par ailleurs, plus la complexité augmente, plus le risque de gaspillage est grand. Le transfert d'une activité entre collaborateurs ou entre équipes, à moins que ces personnes ou équipes ne soient parfaitement coordonnées, engendre généralement une certaine inactivité (autrement dit, une source de gaspillage). De nombreuses équipes Agile tentent de limiter le travail en cours afin de réduire le temps d'inactivité, mais au risque de créer un type de gaspillage différent : les talents non utilisés.

Pourquoi des dépendances existent-elles au sein des équipes Agile ?

Une question évidente à se poser serait : « Les dépendances ont-elles une raison d'être ? ». Si les dépendances réduisent l'agilité, les organisations Agile ne devraient-elles pas les éliminer totalement ?

Conceptuellement, oui : l'organisation Agile idéale serait structurée en équipes Agile totalement autonomes, autosuffisantes et interfonctionnelles. Ces équipes seraient en mesure de produire systématiquement de la valeur, du début à la fin, sans aucune dépendance externe. Ceci n'est cependant pas réaliste.

La collaboration avec d'autres équipes, fonctions et personnes au sein de l'organisation est profitable ; la plupart des projets, même les plus Agile dans leur conception, comportent certaines dépendances, au moins au sein de l'équipe elle-même.

Outre ces types de dépendances de processus, il existe également des dépendances systémiques, telles que les dépendances techniques, que nous aborderons ultérieurement.

Cela ne signifie pas que toutes les dépendances ont la même importance ou qu'elles sont inévitables, et que les équipes Agile doivent simplement faire avec. Certaines dépendances sont le résultat d'une conception organisationnelle défectueuse ou trop complexe, et les équipes doivent s'efforcer de les éliminer entièrement. Mais d'autres sont essentielles pour une collaboration efficace, pour la gestion des risques ou pour des raisons techniques. Au final, les équipes Agile ont besoin de systèmes de contrôle et d'équilibrage (dépendances) pour s'assurer de proposer la meilleure solution possible.

Ainsi, l'objectif de toute organisation Agile n'est pas d'éliminer complètement toutes les dépendances, mais de :

  • S'organiser en équipes Agile pluridisciplinaires en « éliminant » efficacement les dépendances inutiles
  • Utiliser une cartographie des dépendances afin de mieux comprendre les dépendances entre les systèmes, les processus et les équipes
  • Mettre en pratique l'amélioration continue pour éliminer les dépendances inutiles
  • Analyser les dépendances nécessaires pour prévoir leur impact sur la capacité de livraison
  • Créer de meilleurs systèmes de gestion des dépendances, qui atténuent les perturbations qu'elles provoquent

Qu'est-ce que la gestion des dépendances au sein des équipes Agile ?

La gestion des dépendances consiste à identifier, anticiper et gérer les dépendances entre les tâches, les personnes, les processus et les systèmes. Une gestion efficace des dépendances contribue à réduire la variabilité des processus et à accroître la prévisibilité.

Qu'implique exactement la gestion des dépendances ? Dans sa forme la plus basique, elle consiste à :

  • Identifier les relations entre les activités
  • Déterminer les activités interdépendantes
  • Visualiser ces dépendances
  • Cartographier les dépendances : créer une documentation dynamique et détaillée des dépendances entre les systèmes, les ressources et les processus
  • Tirer parti des technologies appropriées pour intégrer la gestion des dépendances à la planification et à l'exécution des workflow

Types de dépendances au sein des équipes Agile

Dans tout processus de travail, il existe différents types de dépendances. Pour assurer une gestion efficace des dépendances, il est utile de les différencier.

Plusieurs facteurs peuvent être utilisés par les équipes Agile pour catégoriser les dépendances :

  • leur caractère interne ou externe
  • leur caractère obligatoire ou discrétionnaire
  • la nature des dépendances

Nous allons utiliser des exemples basés sur la construction d'une maison pour illustrer chacun de ces facteurs.

Dépendances internes et dépendances externes

Type de dépendanceExplicationExemple
InterneLa dépendance est dans le champ de contrôle de l'équipe et repose sur les relations entre les activités.Un constructeur demande au plaquiste de son équipe de commencer à travailler sur les cloisons intérieures de la maison.
ExterneLa dépendance est hors du contrôle de l'équipe et repose sur les relations entre les équipes, les fonctions ou les organisations.Un couvreur doit attendre une livraison de tuiles avant de pouvoir les poser.

Dépendances obligatoires et dépendances discrétionnaires

Type de dépendanceExplicationExemple
ObligatoireImplique une relation logique implacable : une étape doit être réalisée avant une autre.Les cloisons d'une maison neuve doivent être montées avant de pouvoir être peintes.
DiscrétionnaireImplique une logique facultative : il est préférable de réaliser une étape avant une autre, mais pas nécessairement obligatoire. Ces dépendances sont définies par les équipes Agile comme de bonnes pratiques.Les cloisons d'une maison neuve doivent être peintes avant d'installer les meubles et les éléments de décoration.

Fonction de dépendance

Type de dépendanceExplicationExemple
Fin-Début (FD)La tâche 2 ne peut pas débuter tant que la tâche 1 n'est pas achevée. Il s'agit du type de dépendance le plus courant.Le terrain doit être acheté avant que la construction ne puisse commencer.
Début-Fin (DF)La tâche 1 ne peut pas être achevée tant que la tâche 2 n'est pas commencée. Il s'agit du type de dépendance le moins courant.Pour conclure la vente du terrain, une évaluation et/ou une inspection doit être réalisée.
Début-Début (DD)La tâche 2 ne peut pas débuter tant que la tâche 1 n'a pas démarré, mais la tâche 2 peut débuter avant que la tâche 1 ne soit achevée.L'installation des cloisons sèches doit commencer avant que la peinture ne puisse débuter, mais il n'est pas nécessaire que toutes les cloisons soient montées pour que la peinture commence.
Fin-Fin (FF)La tâche 2 ne peut pas être achevée tant que la tâche 1 n'est pas terminée. Les tâches qui présentent une dépendance début-début peuvent également avoir une dépendance fin-fin.L'installation de cloisons sèches doit être terminée pour que la peinture des murs intérieurs puisse être achevée.

Le type de dépendance aura un impact sur la façon dont les équipes Agile visualisent, cartographient ou gèrent la dépendance. Il est également important de connaître la raison d'être de la dépendance, car celle-ci peut affecter la façon dont la dépendance est gérée.

Motif de dépendance

Motif de dépendanceExplicationExempleConsidérations
Dépendances de critèresDépendances qui existent en raison des critères du projet (épopée, fonctionnalité ou récit, en termes Agile) réalisé.Une maison neuve doit respecter tous les codes et réglementations du bâtiment.Au cours du processus de planification, les équipes Agile doivent chercher à identifier ces dépendances afin de pouvoir planifier en conséquence.
Dépendances d'expertise ou d'expertsDépendances qui existent parce que le travail nécessite l'expertise spécifique d'un spécialiste en la matière et ne peut être effectué sans l'intervention d'une personne possédant cette expertise.Si une maison doit être construite sur une forte pente, un ingénieur en BTP doit s'assurer qu'elle résistera à toutes les conditions climatiques.Si l'équipe comprend une personne possédant cette expertise, la dépendance est interne et plus facile à gérer. Si elle est externe et souvent requise, l'équipe devrait envisager d'intégrer une personne possédant cette expertise.
Dépendances des processus économiquesUne étape doit être réalisée avant une autre afin de répondre à des critères économiques.Avant que la construction de la maison débute, un prêt doit être obtenu afin de payer les travaux.Les dépendances économiques doivent être prises en compte dans la planification préalable afin de ne pas négliger les processus opérationnels.
Dépendances techniquesDépendances qui existent en raison de limites ou de contraintes techniques.La maison étant construite sur un terrain en pente, elle nécessite des fondations, des systèmes de drainage et des renforts architecturaux différents.Elles peuvent être découvertes une fois que les travaux ont débuté. Par sécurité, tous les travaux impliquant des critères techniques doivent également être inclus dans le processus de planification préalable.

Qu'est-ce que la cartographie et la visualisation des dépendances et quelle est son utilité pour les équipes Agile ?

La visualisation des dépendances est la première étape de la gestion des dépendances : les équipes Agile doivent déterminer où se situent les dépendances afin de les gérer. En procédant constamment de cette manière, les équipes peuvent prévenir plus efficacement les goulets d'étranglement en amont et éviter des conséquences inattendues en aval.

La cartographie et la visualisation des dépendances aident les équipes Agile à comprendre :

  • La relation et la corrélation entre les équipes et les équipes d'équipes (Agile Release Trains, ou ART)
  • Où se situent les dépendances
  • Où se situent des modèles de dépendances

Cartographie des dépendances et Kanban

Les équipes Agile qui appliquent déjà la méthodologie Kanban procèdent peut-être déjà à une forme de cartographie des dépendances, ou du moins de visualisation des dépendances. Certains outils Kanban permettent en effet aux équipes d'établir des relations parents-enfants entre les cartes, par exemple pour visualiser des activités connexes sur un même tableau ou réparties sur plusieurs tableaux.

Les équipes Agile peuvent établir des relations parent-enfant entre les cartes pour consulter visuellement le nombre de cartes et leur statut (commencée, non commencée ou terminée, par exemple).
Les équipes Agile peuvent établir des relations parent-enfant entre les cartes pour consulter visuellement le nombre de cartes et leur statut (commencée, non commencée ou terminée, par exemple).

Si leur outil Kanban leur permet de visualiser les relations entre les tâches en connectant des cartes, les équipes Agile peuvent utiliser ces connexions pour créer une carte de toutes les dépendances existantes sur un tableau unique.

Dans LeanKit, les équipes Agile peuvent par exemple utiliser la Cartographie des connexions pour visualiser comment les cartes d'un tableau sont reliées. Ce type de cartographie des dépendances est parfois appelé « visualisation du trait rouge », car, sur les tableaux Kanban physiques, un trait rouge est souvent utilisé pour visualiser ces relations.

Les équipes Agile peuvent connecter visuellement les dépendances à l'aide d'une cartographie afin d'identifier rapidement des activités et des tâches associées.
Les équipes Agile peuvent connecter visuellement les dépendances à l'aide d'une cartographie afin d'identifier rapidement des activités et des tâches associées.

Outre la mise en lien de cartes connexes, d'autres moyens peuvent aider les équipes à visualiser l'impact potentiel des dépendances sur l'exécution et à communiquer à ce sujet sur un tableau Kanban.

Il est par exemple possible d'utiliser des icônes de cartes pour refléter les dépendances externes. Une icône « bloquée » peut indiquer qu'une carte ne peut pas avancer en raison d'une dépendance externe. Si leur outil Kanban permet aux équipes Agile d'indiquer la raison du blocage de cette carte, cette fonctionnalité peut aider les équipes à communiquer rapidement sur les dépendances externes.

Lorsque certains types d'activités nécessitent une expertise spécifique qu'un seul membre de l'équipe possède, l'affectation de cartes à cette personne aidera l'équipe à déterminer la capacité dont elle dispose. Si plusieurs cartes se trouvent dans sa file d'attente de ce membre, l'équipe peut en tenir compte dans le calendrier d'ajout de nouvelles cartes au tableau.

De nombreuses équipes Agile utilisent les affectations de carte pour désigner uniquement le « responsable » de l'activité, ce qui donne une vue incomplète des tâches auxquelles le personnel consacre son temps. Le fait d'affecter à la carte toutes les personnes impliquées dans une tâche peut aider les équipes à déterminer plus précisément la capacité, ce qui peut également être utile pour accroître la prévisibilité.

Quels sont les avantages de la cartographie et de la visualisation des dépendances ?

Toute organisation Agile a pour objectif d'améliorer la prévisibilité, ce qui est impossible sans une méthode plus efficace pour identifier, visualiser et gérer les dépendances.

Même si elles sont en théorie intrinsèquement contradictoires avec la méthodologie Agile, il n'est pas réaliste d'essayer d'éliminer totalement les dépendances. Certaines dépendances sont essentielles pour une collaboration efficace, pour la gestion des risques et pour des raisons techniques.

Dans leur quête pour devenir plus Agile (aussi bien en termes de méthodologie que dans un sens plus général), les équipes Agile ne doivent pas avoir pour objectif d'éliminer totalement les dépendances, mais de réduire la complexité, d'améliorer le flux et d'accroître leur aptitude à prédire comment les dépendances impacteront leur capacité à exécuter leur travail.

Il est essentiel de visualiser les connexions entre des activités associées et de prendre le temps d'évaluer l'impact de ces dépendances pour aider les équipes à gagner en agilité en :

  • Améliorant le séquencement des activités afin de prévenir les blocages et de réduire les gaspillages de processus
  • Optimisant le flux des activités par la réduction des changements de contexte à tous les niveaux
  • Aidant les équipes à définir des attentes plus réalistes avec les parties prenantes internes et externes
  • Réduisant la variabilité des processus et accroissant ainsi la prévisibilité
  • Mettant en pratique une planification de la capacité et une priorisation plus efficaces au sein des équipes et entre elles
  • Réduisant les temps de cycle et les délais d'exécution

Il n'est pas nécessaire que la gestion des dépendances débute sous la forme d'une initiative applicable à toute l'organisation. Elle peut commencer avec une seule équipe s'engageant à identifier et à gérer activement les dépendances, et se développer à partir de là. Il s'agit d'une compétence organisationnelle comme n'importe quelle autre ; plus les équipes Agile la mettent en pratique, plus elles gagnent en efficacité.