La théorie des contraintes dans l'Agilité

De Wiki Agile
Aller à la navigation Aller à la recherche

Auteur : Leon Tranter (Extreme Uncertainty )
Source : Theory of constraints in Agile
Date : 16/03/2021


Traducteur : Fabrice Aimetti
Date : 28/04/2011


Traduction :

Un concept de la théorie du management intitulé La théorie des contraintes est devenu populaire dans les cercles Agile et Lean. La théorie est assez simple, et se rapporte aux contraintes ou goulots d'étranglement présents dans tout processus (que ce soit dans le domaine de la fabrication ou de l'ingénierie des connaissances). Cet article vise à expliquer la théorie des contraintes et comment elle se relie au développement logiciel agile, dans un contexte micro et macro.

Qu'est-ce que la Théorie des Contraintes ?

Les principes de la Théorie des Contraintes ont été établis par un chercheur israélien nommé Eli Goldratt, dans les années 1980. Ces principes ont été popularisés par son excellent livre Le But (que je recommande vivement et qui est considéré comme un ouvrage de référence dans le domaine de la Pensée Lean), et ont eu une forte influence sur le célèbre ouvrage récemment publié Le Projet Phoenix, un livre classique dans la communauté Agile et DevOps.

La théorie elle-même est la suivante. Dans tout système considéré, il y a un composant qui constitue la contrainte ou le goulot d'étranglement du système, en termes de limitation de la production de ce système. Toute tentative d'optimisation d'une partie du système autre que la contrainte est un gaspillage d'efforts, car elle n'améliorera pas le débit du système.

Tous les efforts de l'organisation doivent viser à améliorer cette contrainte. Ce processus doit se poursuivre jusqu'à ce que la contrainte disparaisse. À ce stade, le prochain maillon le plus faible de la chaîne devient la contrainte, et doit être optimisé.

Les cinq étapes dites de "focalisation" de la théorie des contraintes

Ces étapes sont plus formellement décrites comme les cinq étapes de focalisation :

  • Identifier : chercher à identifier la contrainte actuelle du système, c'est-à-dire l'élément du processus qui limite le rythme pour lequel l'objectif d'optimisation du système est satisfait.
  • Exploiter : aller améliorer rapidement le débit de cette contrainte, en utilisant toutes les ressources disponibles (même si ces ressources sont déjà utilisées).
  • Subordonner : examiner toutes les autres parties du processus pour s'assurer qu'elles sont alignées sur les besoins de la contrainte et qu'elles y répondent véritablement.
  • Élever : si la contrainte existe toujours (c'est-à-dire qu'elle constitue toujours le goulot d'étranglement global pour l'amélioration de l'objectif d'optimisation du système), examiner quelles autres actions peuvent être entreprises pour éliminer la contrainte. Les actions ci-dessus sont poursuivies jusqu'à ce que la contrainte ait été "levée", c'est-à-dire qu'elle n'est plus la contrainte, et qu'une autre partie du système soit devenue la contrainte. Dans certains cas, un investissement en capital peut être nécessaire.
  • Répéter : les cinq étapes de focalisation sont un processus d'amélioration continue. Par conséquent, une fois qu'une contrainte est résolue et qu'elle n'est plus une contrainte, la prochaine partie du système qui est devenue une contrainte doit être traitée, en suivant les étapes précédentes.

Cette dernière étape est un petit encouragement à ne jamais se laisser aller à la satisfaction. Chaque système a une contrainte, sinon le système produirait un résultat infini. Donc, continuez à vous occuper des contraintes !