agile

Une définition du Jargon Français.
Aller à : Navigation, rechercher

adjectif  [génie logiciel]. Mode de réalisation tolérant de l'incertitude quant à l'objectif, donc reposant sur l'adaptation rapide à tout changement du contexte ou de l'objectif.

On parle alors d'« agilité », codifiée à partir du début des années 2000 en un « Manifeste » (anglais: « Manifesto »).

Cela qualifie des méthodes (sens 2) de développement et de gestion de projet par lesquelles les développeurs sont en contact étroit et permanent avec les experts du métier, et les laissent fréquemment employer la réalisation en cours afin qu'ils orientent les efforts.

Selon P. Norvig « La culture classique privilégiait la chute d'eau. À présent une majorité préfère un modèle en spirale, avec des cycles rapides (un peu d'analyse, un peu de programmation, des tests, puis davantage d'analyse avant retour à la programmation, et ainsi de suite) ou les approches agiles par lesquelles l'utilisateur est impliqué et la fréquence de ces étapes augmentée. ».

Cette façon de procéder est issue du développement itératif et du RAD, formalisés et complété de divers principes:

  • impliquer l'utilisateur,
  • ne pas concevoir ou documenter longuement, mais (plutôt) développer une version minimale,
  • progresser régulièrement et refactorer,
  • solidariser les participants
http://agilemanifesto.org/iso/fr/manifesto.html   VF du manifeste

Détail

Un mode d'organisation du travail par étapes, adéquat sur une chaîne de montage, ne l'est pas lorsqu'il s'agit de service, en particulier de développement de logiciel qui relève de la technique, de la science et de l'art.

Selon une autre perspective durant le développement d'un logiciel le travail est constitué d'activités interdépendantes plutôt que de missions chacune isolée, donc leur segmentation en étapes, selon les principes classiques invitant à ne commencer à programmer qu'après voir décrit en détail le résultat espéré, n'est pas pertinent.

En matière de développement il y a trop d'inconnues (y compris quant à ce que les utilisateurs veulent et, indépendamment de cela, quant à ce qui leur serait utile), d'imprévus, de revirements, de non-maîtrisé...

Le logiciel développé constitue à la fois la solution et une facette d'un problème, que l'agilité éclaire.

Une équipe de réalisation agile construit le logiciel progressivement, par petites touches, en soumettant fréquemment le fruit de son travail au futur utilisateur afin de laisser mûrir ses attentes tout en y ajustant à mesure le logiciel en gestation. Le développeur, ainsi, réalise pour partie afin de découvrir le besoin donc de mieux réaliser ensuite. La primeur jusqu'alors accordée à l'analyse préalable laisse place à une forme d'empirisme par lequel l'examen permanent du logiciel en gestation remplace, en tant que fil conducteur du chantier, le gros des études préalables préconisées par des méthodes plus anciennes.

Sur un plan plus immatériel l'agilité établit un système de valeurs qui cultive un esprit d'équipe par lequel chacun intègre mieux l'intérêt de dissiper quelques efforts afin que d'autres travaillent mieux ou plus vite et lui rendent la pareille. Cela semble utopique mais produit de bons résultats dans une équipe homogène faisant face à des défis et dynamisée par un « expert agile » montrant par l'exemple l'efficacité de la communication et de la simplicité. Une part de tout cela repose sur la fierté (voire l'orgueil) des participants et leur capacité à s'auto-discipliner (voire à s'inter-fliquer).


Direction.png Voir aussi : effet de tunnel, CI/CD, MVP, lean, devops