« L’agilité est l’aptitude d’un système à mettre en œuvre des ajustements rapides en réponse à un environnement dynamique , sans que cela n’entraine de défaillance, tout en conservant sa cohérence
«
Définition de l’agilité par www.lean-manufacturing.fr
Dans un système agile, les procédures sont dynamiques, c’est-à-dire qu’en fonction des stimuli de son environnement (Milieu), le système adapte ses processus pour assurer sa mission.
Le concept:
Un système cohérent adaptif :
Un système ne peut s’adapter qu’en étant flexible et réactif. Cependant cette adaptation en continue risque d’entrainer un éclatement du système. C’est pour cela qu’il faut trouver des mécanismes de coordination pour maintenir l’unité du système.
Agilité = Cohérence + Flexibilité + Réactivité
La cohérence: l’équipier est considéré comme une ressource essentielle sur laquelle vont s’appuyer les processus de résolution des problèmes complexes et mouvants. En effet, un système agile doit assurer une vision et des intérêts communs, pour que les individus adhèrent au projet et restent motivés aux sollicitations de changement qu’ils vont vivre. De cette cohérence nait la coopération. Elle permet de travailler ensemble dans une atmosphère de soutien et d’encouragement (collaboration), de développer une communauté d’apprentissage qui réunit des compétences (collégialité). Sans cette vision, la confusion règne, l’absence de consensus provoquant le sabotage, c’est-à-dire que les intérêts personnels passent avant l’intérêt de maintenir l’objectif commun.
La flexibilité peut se définir comme la capacité d’un système à s’adapter aux changements de son environnement sans modifier son organisation. Il faut donc être capable de reconnaitre ces changements environnementaux (Culture client), de pouvoir s’adapter (Autonomie). Et évidemment de vouloir changer (Motivation).
La réactivité est la capacité d’un système à mobiliser immédiatement ses compétences au service d’un plan d’actions. Plus le système est compétent, plus il sera à même de trouver les bonnes solutions rapidement. Le plan d’actions permet de partager et de comprendre ce qu’il faut faire et comment le faire.
La méthode SCRUM:
Les méthodes Agiles sont composées de pratiques respectant le cadre décrit précédemment. Il existe plusieurs méthodes d’agilité: FDD, Scrum, DevOps, … Je développerai la plus connue: le SCRUM.
En SCRUM, le projet est porté par une équipe pluridisciplinaire auto-organisée en mode itératif-incrémental.
Le projet est composé de:
- Product Owner : Représentant des parties prenantes vis-à-vis de l’équipe SCRUM. Il est responsable de la mise à jour du backlog. Décide de l’orientation du projet par la priorisation des users stories.
- Scrum Master : Son rôle est de faciliter la résolution des problèmes techniques par l’animation de la méthode SCRUM.
- Membre de l’équipe : L’équipe constituée doit avoir toutes les compétences nécessaires pour réaliser les user stories.
Les fonctionnalités (User Stories) sont listées dans le Backlog. Chaque User Story est priorisée et la charge de travail est estimée par l’équipe.
L’itération commence par la phase Planning. L’équipe s’engage à réaliser un certain nombre de user stories. Elle définit également les critères de succès. Puis découpe les user stories en tâches, ces tâches sont réparties dans le Sprint.
Le sprint est animé lors des daily scrum. Ces réunions régulières permettent de mettre à jour le tableau Kanban.
La réunion de Démonstration clôt le sprint. L’équipe fait la démonstration qu’elle a atteint les objectifs fixés lors de la phase Planning. Le Product Owner valide le résultat et le backlog est mise à jour.
Il existe une autre réunion : la Rétrospective. Cette réunion animée par le Scrum Master, a pour but de proposer des améliorations sur le processus de gouvernance.
Outils:
Planning poker : Outil d’estimation collégiale de la complexité des fonctionnalités. Le processus favorise les échanges entre le Product Owner et chaque membre de l’équipe.
L’équipe est réunie autour d’une table, où le Product Owner explique la fonctionnalité. Les participants sont libres de poser des questions au Product Owner permettant de clarifier les caractéristiques de cette fonctionnalité. Lorsque la phase de clarification est suffisante, les participants évaluent la complexité par un vote (chacun choisit une carte correspondant à son estimation). S’il n’y a pas unanimité, la discussion reprend, jusqu’à l’obtention de l’unanimité.
Burndown Chart : Graphique indiquant l’avancement des activités du sprint par rapport au planning. Il permet de définir la vélocité de l’équipe.