Simple, compliqué, complexe ou chaotique

Publié par Louis-Philippe Carignan le mardi 26 février 2013 à 15:03

L’Agilité est de plus en plus présente en entreprise. Selon une étude de Forrester publiée en 2010, les méthodes Agile sont maintenant plus utilisées que l’approche traditionnelle en développement logiciel. D’ailleurs, le CHAOS Reort, publié en 2011, montre que plus de projets Agile sont réalisés avec succès que l’approche traditionnelle (42% pour l’approche Agile tandis que 14% pour l’approche traditionnelle).

Le sondage 2011 de VersionOne nommé « State of Agile Survey » confirme que la gestion de projets avec Scrum est l’approche la plus utilisée lors de projets Agile. Vous avez peut-être vous-même eu un certain succès avec Scrum dans un projet pilote ou bien vous êtes peut-être maintenant rendu au stade où vous utilisez toujours l’Agilité lors de la phase de réalisation de vos projets de développement. Fier de ce nouveau succès professionnel, je trouve que l’être humain a tendance à répéter ce qui a bien fonctionné sans prendre le temps de prendre connaissance de la nouvelle situation qui se présente devant lui. L’objectif de ce billet n’est pas d’énumérer les situations où Scrum s’applique. Plutôt, il veut rappeler au lecteur quel type de problème on peut résoudre avec cet outil.

La matrice de Stacey

Ralph Stacey de l’Université de Hertfordshire a mis au point une matrice qu’il nomme « The Stacey Matrix ». Cette matrice permet de prendre connaissance du degré de complexité d’une situation selon le niveau d’incertitude et le niveau d’accord face à la situation. 

La matrice de Stacey

L’axe des X montre le niveau d’incertitude où, à la gauche, il y a peu d’incertitude (close to certainty) tandis qu’il y aura de plus en plus d’incertitude lorsqu’on s’éloigne vers la droite. Sur l’axe des Y, on évaluera le niveau d’accord. Plus on se rapproche de l’origine, plus le niveau d’accord est fort tandis que plus on s’éloigne de l’origine, plus on devient en désaccord sur un sujet. On peut accoler plusieurs thèmes sur ces axes.

Par exemple, on peut se servir de cette matrice dans le choix des technologies à employer pour un projet. Les technologies viendront donc meubler l’axe des X où le degré d’incertitude permettra de nous situer au bon endroit. Quant à l’axe des Y, lors d’un projet, il pourra représenter les requis. Selon le niveau d’accord par le monde Affaires (i.e. votre clientèle à qui est destiné le produit final) face à leurs besoins, on peut alors se situer sur l’axe des Y.

Simple Stacey Chart

À une plus simple expression de la matrice de Stacey, on retrouve 4 états que l’on énumère de la façon suivante :

  • Connu (simple): Tout est connu
  • Compliqué (complicated): Il y a plus de connus que d'inconnus
  • Complexe (complex): Il y a plus d'inconnus que de connus
  • Chaotique (anarchy): Très peu d'éléments connus

Selon mon expérience, des besoins plus ou moins bien connus et une solution inconnue me situe dans la zone complexe de la matrice de Stacey. Selon moi, cela représente souvent l’état de plusieurs projets de développement logiciel en démarrage. Le client a une idée générale de son besoin mais ne sait pas encore à quoi va ressembler la solution finale.

Dans cette zone de complexité de la matrice, Scrum est un excellent outil pour gérer l’imprévisible. Par son approche empirique, Scrum permet de faire de petits pas en livrant des incréments de la solution finale pour permettre de gérer l’inconnu. Le style de management dans cette zone est aussi prescrit par Scrum. À l’aide d’un leadership au service de l’équipe, on fera émerger des idées tout en augementant le niveau de communication dans l’équipe.

Cependant, tous vos projets ne sont pas aussi complexes et ne requiert pas l’Agilité. Et c’est cette nuance que je vois largement ignorée. Par exemple, si vous êtes dans un projet d’entretien, demandez-vous si vous êtes encore dans la même zone de complexité. Si vos clientèles en maintenance ont des besoins très précis et indépendants l’un de l’autre, vous serez moins haut sur l’axe des Y puisque le niveau d’accord sera plus fort. L’impact de ces demandes sur le produit actuellement en production sera peut-être plus faible. En d’autres termes, le changement technologique demandé sera faible et bien compris, ce qui nous pousse vers la gauche sur l’axe des X.

Toutefois, il se peut que vous restiez dans une zone complexe si vos clients ne s’entendent pas sur leurs besoins mutuels. Il se peut aussi que le logiciel à entretenir soit mal conçu, provoquant ainsi de longues séries de tests avant une mise en production.

Pour conclure

L’objectif de ce billet est de rappeler au lecteur que l’Agilité ne s’applique pas à toutes les situations. Selon le niveau de complexité de votre projet, vous devez utiliser la bonne approche. La matrice de Stacey est un outil qui vous permet de vous positionner quant au niveau de complexité de votre projet. Une fois cela déterminée, il suffit de prendre l’approche pour gérer cette complexité.

Il existe plusieurs outils sur le marché pour vous aider à choisir entre l’Agilité et l’approche traditionnelle. Par exemple, Dean Leffingwell, auteur du Scaled Agile Framework, offre un questionnaire de 10 questions pour vous aider à déterminer quelle approche prendre. À mon avis, un retour à la base, c’est-à-dire bien comprendre l’envergure du projet ainsi que voir sa position dans la matrice de Stacey, vous permettra de voir clair quant à l’approche à prendre.

 

Références des graphiques:

http://www.gp-training.net/training/communication_skills/consultation/equipoise/complexity/stacey.htm

blog comments powered by Disqus

0 Comments:

Post a comment

Comments have been closed for this post.