Scrum par la pratique

En génie logiciel, beaucoup de méthodes dites agiles sont apparues ces dernières années : Scrum, Lean, Extreme Programming… Prenant le contre-pied des méthodes traditionnelles prédictives, elles permettent d’éviter une définition trop précoce et figée des besoins grâce à leur souplesse et leur adaptabilité.

Parmi ces méthodes, Scrum s’est peu à peu imposée comme la méthode agile la plus populaire, bien loin maintenant devant les autres. Tous les rôles, événements et artefacts liés à ce cadre agile sont détaillés dans cet ouvrage, pour que les chefs de projet puissent acquérir les bases de cette méthode ou consolider leurs connaissances. « Ce qui séduit avant tout dans l’utilisation de Scrum, c’est sa capacité à pouvoir évoluer et s’adapter en fonction du contexte. Il ne s’agit pas là d’une méthode monolithique et totalement rigide, mais, au contraire, d’une boîte à outils qui vous propose des mécanismes ajustables en fonction de vos besoins », expliquent les auteurs.

Certes, Scrum apporte une base solide, mais encore faut-il pouvoir la mettre en œuvre de manière pertinente. Historiquement, les méthodes dites « classiques » étaient encore bien ancrées dans les formations universitaires et les pratiques professionnelles. « Loin de l’innovation qu’a pu apporter l’agilité par la suite, elle était, au début des années 2000, considérée comme expérimentale. Beaucoup la jugeaient inadaptée ou considéraient que ce type de méthode ne pouvait pas fournir de solution viable aux problématiques d’organisation projet », rappellent les auteurs.

Le poids des approches traditionnelles est encore significatif, en particulier les méthodes les plus connues. D’une part, le waterfall (cascade) qui met bien en avant le processus linéaire de création logicielle traditionnel et propose une succession d’étapes simples, allant du recueil des besoins jusqu’au déploiement et à la maintenance du produit. D’autre part, le cycle en V : les étapes clés sont mises en relation 2 par 2. Ces relations marquent un lien de causalité entre les étapes : par exemple, l’étape de recette se base nécessairement sur les spécifications.

Ce sont en réalité deux styles qui se font face : d’un côté, les méthodes classiques sont de nature prédictive, le besoin est figé, tout est prévu et il n’y a guère de place pour le hasard. D’un autre côté, les méthodes agiles sont plus adaptatives : l’évolution du besoin est prise en compte au cours du développement, avec l’élaboration de briques incrémentales et itératives. Les méthodes agiles reposent sur quatre préceptes, qui sont ceux du Manifeste agile, élaboré au début des années 2000 :

  • Les individus et leurs interactions, plus que les processus et les outils : l’humain est au centre de la démarche, sans cloisonnement des équipes, car la création d’un logiciel se nourrit des échanges entre les différents concepteurs.
  • Des logiciels opérationnels, plus qu’une documentation exhaustive, même si, bien sûr, la documentation reste toujours utile. Il s’agit juste, selon les auteurs, « de la rendre plus rationnelle, plus légère, moins chronophage et plus simple à faire évoluer. »
  • La collaboration avec les clients, plus que la négociation contractuelle : « le client fait partie de l’organisation de manière active et il est impliqué dans toutes les phases de création de son produit. La relation contractuelle ne doit pas être remise en cause mais simplement adaptée à ce dispositif : redistribution des responsabilités, nécessité d’investissement de l’ensemble des acteurs (client compris), etc. », assurent les auteurs.
  • L’adaptation au changement, plus que le suivi d’un plan : attention toutefois, préviennent les auteurs, « être agile ne signifie pas appliquer tous les changements sans discernement dès que le client ou les utilisateurs le souhaitent. Le plan initial doit servir de ligne directrice, l’agilité permettant ensuite d’ajuster le projet au fur et à mesure des développements et d’être proactif sur les futurs besoins de l’application. »

Ces quatre préceptes se déclinent en douze principes :

  • Satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.
  • Exploiter le changement pour donner un avantage compétitif au client.
  • Livrer fréquemment un logiciel opérationnel, avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts.
  • Faire travailler ensemble, quotidiennement et tout au long du projet, les utilisateurs ou leurs représentants et les développeurs.
  • Faire confiance aux équipes pour atteindre les objectifs fixés.
  • La méthode la plus simple et la plus efficace, pour transmettre de l’information à l’équipe de développement et à l’intérieur de celle-ci, reste le dialogue en face-à-face.
  • Un logiciel opérationnel est la principale mesure d’avancement.
  • Les processus agiles encouragent un rythme de développement soutenable.
  • Une attention continue à l’excellence technique et à une bonne conception renforce l’agilité.
  • La simplicité, c’est-à-dire l’art de minimiser la quantité de travail inutile, est essentielle.
  • Les meilleures architectures, spécifications et conceptions émergent d’équipes auto-organisées.
  • À intervalles réguliers, l’équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.

Pour aider le lecteur dans son apprentissage, ce livre est complété par un dépliant détachable de quatorze pages qui regroupe l’ensemble des principes fondamentaux de Scrum.

Scrum, de la théorie à la pratique, par Bassem El Haddad et Julien Oger, Eyrolles, 2019, 254 pages.