Posts Tagged ‘XP’

Agilité et holisme

vendredi, mars 13th, 2009

L’agilité est souvent considérée comme un paradigme jeune ne fonctionnant qu’à petite échelle.

L’agilité est souvent considérée comme un paradigme jeune ne fonctionnant qu’à petite échelle, principalement parce que certaines méthodologies agiles fonctionnent bien à petite échelle, mais sont difficiles à transposer telles quelles à plus grande échelle.

Par exemple, SCRUM ou XP (Extreme Programming) peuvent ne pas être transposées facilement en une utilisation à grande échelle. Ceci parce que ces approches ne prennent pas en compte l’environnement dans sa dimension holistique, négligent certaines solutions possibles, plus particulièrement les solutions faisant appel à la technologie, par manque de vision, d’adaptabilité, ou de connaissance.

Les réunions SCRUM de type “stand up”, ou les tableaux de “post-its” représentant les demandes utilisateurs, ou histoires, peuvent ne pas être pratiques, quand le nombre d’histoires à implémenter est trop grand, ou quand la gestion des dépendances entre équipes est complexe.

Pour les écosystèmes actuels, la complexité des produits et la taille des organisations ne doivent pas représenter un frein aux possibilités d’expansion, d’adaptabilité aux changements, d’amélioration de la productivité et de la réduction des couts, tout en gardant ou atteignant un haut niveau de qualité.

Pour les écosystèmes actuels, la complexité des produits et la taille des organisations ne doivent pas représenter un frein aux possibilités d’expansion, d’adaptabilité aux changements, d’amélioration de la productivité et de la réduction des couts, tout en gardant ou atteignant un haut niveau de qualité.  Ceci est spécialement vrai dans les secteurs du développement logiciel ou de solutions en ligne, car la compétition est devenue extrêmement dure grâce à la rapidité de l’évolution technologique, et l’accès relativement transparent à de nombreuse sources d’information via le net.

La complexité des produits, la rapidité de l’évolution technologique, la diffusion rapide de l’information et la globalisation des marchés sont vus comme des handicaps pour les uns, mais ce seront sûrement des facteurs de succès pour les autres. Et c’est là que le management agile a son rôle à jouer, en aidant les organisations à atteindre de hauts niveaux de compétitivité, à s’adapter au changement tout en gardant la possibilité de grossir en taille si nécessaire.

Des équipes travaillant sur un produit unique peuvent désormais être réparties dans plusieurs pays ou continents, en conséquence des possibilités offertes par la globalisation du marché du travail, le développement par composants, l’utilisation de différentes technologies de communication comme support à la collaboration, la mise en œuvre de systèmes informatiques autorisant le développement réparti, etc.

Est-ce que de telles équipes peuvent produire de nouvelles versions d’un produit fréquemment et en respectant un calendrier, tout en conservant un haut niveau de qualité, tout en améliorant la productivité et en restant proche des demandes du marché et des clients?

Oui, elles le peuvent, et oui c’est possible! Mais cela n’a rien à voir avec SCRUM ou XP en tant que méthodologies suffisantes. Cela a à voir avec les racines de la gestion en mode agile, et plus particulièrement la prise en compte de l’aspect holistique des marchés et des environnements de production. Avec une telle approche agile, les solutions pragmatiques qui permettent des sauts quantiques en termes de rapidité, de respect de calendrier, de qualité, de respect des couts sont des combinaisons de différentes pratiques (processus, technologies, changement organisationnels), plutôt que l’utilisation d’une seule et même méthodologie.

Au final, le management en tant que tel doit être géré en mode agile, et non pas simplement les projets gérés.

Les pré requis clairs à cette “agilité pragmatique” consistent souvent à avoir une bonne connaissance de la palette des bonnes pratiques, et de garder la possibilité d’adapter les solutions choisies en fonction des contraintes connues et à venir, car une solution n’est jamais définitive, les marchés se chargeant de les rendre obsolètes à plus ou moins long terme. Au final, le management en tant que tel doit être géré en mode agile, et non pas simplement les projets gérés.

L’expérience montre que les groupe des meilleures pratiques contient 4 invariants, ou pattern fondamentaux de management, qui peuvent être réglés ou modifiés, mais qui sont toujours présents dans une solution efficace de gestion agile:

  • Garder les clients et leurs besoins proches des équipes en charge de la production, afin d’être constamment piloté par les demandes du marché,
  • Un reporting transparent, plus spécialement pour le suivi de l’avancement du travail et la qualité, en se reposant sur des indicateurs dont l’utilisation a été négociée avec toutes les parties y ayant accès,
  • La promotion du travail en équipe (les clients doivent être associés à ce travail d’équipe), plutôt que de permettre l’existence d’îlots de savoir isolés et de trous noirs d’information,
  • L’usage systématique de la technologie, et de l’automatisation des tâches quand cela est possible.
The holistic agile planet

The holistic agile planet

Ces 4 invariants sont liés les uns aux autres. La technologie et l’automatisation peuvent faciliter le reporting, le reporting peut être utilisé pour favoriser le travail en équipe en partageant des indicateurs qui formeront un référentiel commun, et les clients ou leurs représentants peuvent être associés au travail en équipe en participant à la planification du travail, et à la gestion des priorités entre les différentes demandes.

A côté de ces 4 invariants, il existe un grand nombre de pratiques pouvant aider et améliorer la gestion agile des projets. L’intégration continue, le développement par tests, en sont des exemples. Mais ces pratiques sont liées entre elles, tout comme les invariants le sont entre eux0: un système de build automatique risque de générer trop de bruit s’il n’est pas couplé à plusieurs niveaux d’intégration de code via un système de gestion de configuration. Enfin, les fondamentaux et les meilleures pratiques sont liés entre eux, et, finalement, tout est lié avec tout, il n’est pas vraiment possible de ne gérer qu’une seule partie du système global.

Finalement, l’utilisation des fondamentaux et des meilleurs pratiques laisse peu d’espace à des interprétations différentes de la réalité, en permettant aux clients et aux fournisseurs de partager une même vision, et en permettant aux équipes de produire dans un environnement efficace.

L’agilité, comme tout concept, peut être vue comme une approche purement théorique et stérile. Or, il s’agit en fait d’une approche extrêmement pragmatique, efficace, qui rend très transparents les différents aspects de la production, de la prise en compte des souhaits du client jusqu’au produit fini.