Qu’est-ce que l’agilité?

C’est le mot à la mode depuis ces dernières années, surtout dans le milieu corporate et aussi dans les associations petites ou grandes qui prônent le changement. Mais finalement qu’est-ce que l’agilité?

L’origine

Bien qu’elle puisse être considérée comme une méthode de gestion de projet, l’agilité est avant tout une philosophie qui inclut des valeurs et des principes. Elle a pour but de créer des projets de manière itérative, incrémentale et adaptative.

Le terme “Agile” débarque en 2001 grâce au manifeste agile présent en ligne et toujours identique depuis, le design du site web l’attestant.

Cette philosophie de travail a été créée dans le monde informatique, mais s’applique aussi à d’autres secteurs et je dirais même qu’on peut l’appliquer à sa vie personnelle. Carrément.

Elle possède aussi de nombreuses similarités avec la philosophie Lean, l’approche de l’amélioration continue. J’ai réalisé une série d’articles pour tout savoir sur le Lean ici (en anglais).

Tout comme le lean, l’agilité se rapproche aussi beaucoup du minimalisme qui est l’art d’aller à l’essentiel. Tout comme le minimalisme, l’idée de l’agilité est de se focaliser sur l’humain et de savoir tout de suite ce dont nous avons réellement besoin.

Quelques exemples concrets

Voici pour rappel quelques définitions:

Itérative: qui se répète plusieurs fois. Par exemple, des réunions sont prévues de manière régulière et précise.
Incrémental: qui se rajoute petit à petit, brique par brique et qui grandit de manière continue
Adaptative: qui change de direction lorsque c’est nécessaire

L’agilité fait opposition à des projets qui prennent des mois à être conçus pour finalement ne plaire à personne. Imaginez, vous prenez deux semaines à cuisiner un gâteau aux bananes à votre grand-mère. Et finalement, votre grand-mère vous dit qu’elle est allergique aux bananes. Ceci est évité grâce à l’agilité, car on prend en compte l’avis des utilisateurs dès le départ. Logique, vous me direz et pourtant cela arrive encore fréquemment de réaliser des projets qui coûtent une fortune pour finalement le vendre et se rendre compte que personne n’en veut.

Un exemple de manque d’adaptation est celui de la gare de Liège qui a pris des années à être construite et un peu de temps après son inauguration, on s’est rendu compte que les dix guichets étaient obsolètes, car les gens vont acheter leurs tickets aux machines. Donc aujourd’hui, deux guichets seulement de cette nouvelle gare sont utilisés. Et quelque chose me dit que ce sera pareil pour la nouvelle gare de Mons qui met presque dix ans à être construite.

Une sandwicherie est un très bon exemple d’agilité. Au lieu de créer un gros stock de sandwichs dès le matin sans savoir combien seront vendus en fin de journée, l’idée ici est de demander directement aux clients quel type de pain faut-il mettre, la quantité de fromage, de jambon, d’œufs, etc. Cela permet de s’adapter en permanence, d’avoir une communication qui se répète plusieurs fois avec le client et de rajouter petit à petit ce dont il a réellement besoin.

Les valeurs

Voici les quatre valeurs fondamentales de la philosophie agile:

  • Les individus et leurs interactions plus que les processus et les outils ;
  • Des logiciels opérationnels plus qu’une documentation exhaustive ;
  • La collaboration avec les clients plus que la négociation contractuelle ;
  • L’adaptation au changement plus que le suivi d’un plan.

Bien que la partie droite ait de la valeur, la partie gauche (en gras) doit être privilégiée.

Vous remarquerez donc que l’accent est donc mis sur l’humain, le pratique, la collaboration et l’adaptation. Un monde utopique, certains diront, mais au moins on fait son maximum pour y parvenir. De nos jours, de nombreuses compagnies se disent être agiles, mais sont réellement loin d’y être. Si vous êtes passés par une grosse boîte, vous voyez ce que je veux dire.

Les douze principes

On pourrait les comparer aux dix commandements. Oui l’agilité, c’est un peu comme une religion. D’ailleurs, certains ne se cachent pas à porter des titres comme gurus, maîtres, senseis, apôtres, etc.

  1. La plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée ;
  2. Accueillir positivement les changements de besoins, même tard dans le projet. Les processus agiles exploitent le changement pour donner un avantage compétitif au client ;
  3. Livrer fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts ;
  4. Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet ;
  5. Réaliser les projets avec des personnes motivées. Leur fournir l’environnement et le soutien dont ils ont besoin et leur faire confiance pour atteindre les objectifs fixés ;
  6. 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 est le dialogue en face à face ;
  7. Un logiciel opérationnel est la principale mesure d’avancement ;
  8. Les processus agiles encouragent un rythme de développement soutenable. Ensemble, les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir indéfiniment un rythme constant ;
  9. Une attention continue à l’excellence technique et à une bonne conception renforce l’agilité ;
  10. La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle ;
  11. Les meilleures architectures, spécifications et conceptions émergent d’équipes auto-organisées ;
  12. À intervalles réguliers, l’équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.

J’aime beaucoup le principe 10 qui parle de simplicité. Je trouve que la définition donnée est vraiment intéressante: “l’art de minimiser la quantité de travail inutile”. En effet, la simplicité, c’est garder l’essentiel donc supprimer tout ce qui n’est pas utile.

Les méthodes agiles

Depuis sa création, de nombreuses méthodes ont vu le jour dont par exemple:

  • Scrum: la plus connue et la plus utilisée aujourd’hui, surtout dans le milieu des startups.
  • L’extreme programming (XP)
  • Le dynamic systems development method (DSDM)
  • L’adaptative software development (ASD)