On n'est pas « agile » quand… les modèles hybrides
Les conversations que j'ai eues avec des collègues, des lecteurs de mon blog et un professeur de l'Université d'État de Pennsylvanie sur ces obstacles ont suscité des discussions passionnées sur la valeur relative et l'utilité des modèles hybrides.
Cascade
Les méthodes classiques de développement logiciel fonctionnent comme une cascade qui commence par la définition des exigences et se termine par l'implémentation. Le travail est effectué étape par étape le long des niveaux de cette cascade – de manière similaire au travail à la chaîne dans la production automobile. Le produit n'est fonctionnel que lorsqu'il sort de la chaîne à la fin. Dans ce modèle, certains travaux sont toujours effectués par les mêmes spécialistes. Henry Ford a révolutionné le marché automobile avec cette méthode.
Cependant, ce type de développement logiciel peut aussi favoriser toutes sortes de comportements négatifs. La raison en est généralement l'incompatibilité entre le travail à la chaîne (par exemple dans la production) et les travaux plus dynamiques, davantage orientés vers la recherche et le développement. Un exemple de tel comportement négatif est l'utilisation erronée des « Stage Gates » (jalons entre les différentes phases). Souvent, les équipes continuent simplement à travailler, même si la méthode exige en fait d'attendre une décision pour un Stage Gate. Le problème est qu'elles ne seraient jamais prêtes à temps si elles attendaient une décision. Les managers savent TOUJOURS ce qui se passe, mais préfèrent ne pas poser de questions. La raison n'est généralement pas que quelqu'un travaille mal dans le processus, mais plutôt que le processus lui-même est mauvais.
Agile est différent
Agile interrompt cette cascade et divise le travail en plus petits morceaux. Ces plus petits morceaux sont ensuite conçus, développés, testés et livrés à l'aide de sprints courts pour obtenir un feedback direct. Grâce au « nouveau » processus, il n'y a plus de raison d'ignorer les panneaux stop des Stage Gates.
Les modèles hybrides sont censés utiliser le meilleur des frameworks classiques et agiles pour s'adapter de manière optimale à la culture et à la structure actuelles de l'organisation. Vouloir adapter les méthodes agiles à une organisation qui est en fait conçue pour des méthodes classiques est le point où les problèmes s'infiltrent souvent. Les compromis nécessaires sont souvent en contradiction avec les hypothèses des valeurs et principes agiles.
Des exemples de telles hypothèses en Agile sont les équipes stables, l'autonomie et la livraison de logiciels fonctionnels à la fin de chaque Sprint. Il est plus facile de s'éloigner de ces valeurs et principes que de changer la culture et la structure de l'organisation. L'un des compromis les plus courants (et les plus nuisibles) peut être observé dans les organisations qui continuent à travailler avec des équipes à composition dynamique (souvent appelées organisations matricielles). Les équipes stables nécessitent souvent la refonte des frontières organisationnelles et un examen plus approfondi des compétences.
Voici les problèmes typiques qui – s'ils ne sont pas abordés – peuvent inciter une organisation à utiliser des formes mixtes de méthodes classiques et agiles :
Silos : Lorsque des groupes individuels sont séparés les uns des autres, il faut plus de planification et de coordination pour s'assurer que les bonnes personnes sont disponibles au bon moment – même en cas de retards. Les grandes organisations de développement ont ajouté le rôle de planificateur ou d'expéditeur à leur organigramme pour faire face à ce type de problèmes.
Trop maigre : De nombreuses organisations de développement souffrent d'années de mesures d'austérité et disposent de beaucoup moins de personnes que nécessaire pour accomplir le travail auquel elles se sont engagées. Les employés travaillent activement sur plusieurs projets différents pour donner l'impression de progresser sur toute une série d'initiatives. Passer d'une tâche à l'autre est très inefficace et diminue la valeur livrée, ce qui conduit souvent à une pression encore plus forte pour réduire les coûts.
Manque de focus : Les dirigeants des organisations de développement ressentent souvent le besoin d'accepter et de réaliser tous les projets qui leur sont présentés. C'est aussi appelé le « syndrome du oui-oui ». Cela se produit généralement dans les organisations qui ne disposent pas d'une gestion de portefeuille solide. En fin de compte, cela signifie que les équipes et les employés sont contraints au multitâche, ce qui entraîne à nouveau de l'inefficacité.
Trop peu d'automatisation : Je n'ai jamais connu de méthode de développement qui n'aurait pas pu être réalisée à petite échelle avec un stylo et du papier. Cependant, une plus grande échelle est rendue possible par l'automatisation. Supposons par exemple que vous deviez écrire quelques milliers de tests de régression à la main. Pour pouvoir exécuter les tests, vous auriez besoin soit de beaucoup de temps, soit de beaucoup de personnes. Beaucoup de personnes signifie généralement plus d'équipes, plus de frontières entre équipes, plus de hiérarchie et plus d'efforts – cela peut potentiellement conduire à moins de tests effectués parce qu'on doit respecter une deadline ou un certain budget.
Les valeurs et principes sur lesquels repose Agile sont vraiment importants. Ils influencent les comportements de manière à se concentrer davantage sur la livraison plus rapide de valeur. Les quatre valeurs du Manifeste Agile sont présentées par paires. Par exemple, la première des quatre valeurs dit : « Les individus et leurs interactions plus que les processus et les outils ». Les éléments de gauche ont plus de valeur que ceux de droite (même si ceux-ci ont bien sûr aussi de la valeur). Les modèles hybrides créent souvent des compromis qui déplacent l'accent des éléments de gauche vers le centre ou même de nouveau vers les éléments de droite.
Les modèles hybrides ne sont pas fondamentalement mauvais
Cependant, si l'on s'éloigne ainsi des valeurs et principes agiles fondamentaux au lieu d'aborder les sujets difficiles dans l'organisation, ce ne sont souvent que des manœuvres d'évitement. Que tu sois d'accord avec tout cela ou non, tes réflexions sur ce sujet sont importantes et orientent la conversation sur ce qu'est Agile et ce qu'il n'est pas.
Ce texte provient du blog de SPaMCAST et a été traduit par nos soins en français.