dimanche 20 novembre 2011

LE MANIFESTE AGILE BASE DE L’AGILITÉ

Depuis peu un courant managérial  tendant à coupler les valeurs « agiles » à la Qualité voit le jour . 
Qu'elles sont les origines de ces valeurs, et leurs contenus ? 

17 experts, tous reconnus pour leurs apports au développement de logiciels informatiques se réunissent en 2001 aux Etats-Unis pour proposer de nouvelles méthodes de développement plus légères et plus en phase avec les besoins et la réalité terrain.

Les méthodes agiles sont des groupes de pratiques pouvant s'appliquer à divers types de projets.

Les  méthodes agiles se veulent plus pragmatiques et plus légères que les méthodes traditionnelles telles que par exemple le modèle en cascade ou le Rational Unifies Process.

Elles impliquent le plus possible le client et permettent une grande réactivité par rapport à ses demandes et à leurs éventuelles évolutions. 

Elles visent la satisfaction réelle du besoin et non les termes d'un contrat de développement. [Source WIKI]

Ces 17 experts ont rédigés un texte, le Manifeste Agile pour présenter ces nouvelles méthodes dîtes "agiles"

Le Manifeste Agile est constitué de 4 valeurs et de 12 principes fondateurs.


Les 4 valeurs "agiles"  fondamentales :

L'équipe (« Personnes et interactions plutôt que processus et outils ») : Dans l'optique agile, l'équipe est bien plus importante que les outils (structurants ou de contrôle) ou les procédures de fonctionnement. Il est préférable d'avoir une équipe soudée et qui communique, composée de développeurs (éventuellement à niveaux variables), plutôt qu'une équipe composée d'experts fonctionnant chacun de manière isolée. La communication est une notion fondamentale.

L'application (« Logiciel fonctionnel plutôt que documentation complète ») : Il est vital que l'application fonctionne. Le reste, et notamment la documentation technique, est une aide précieuse mais non un but en soi. Une documentation précise est utile comme moyen de communication. La documentation représente une charge de travail importante, mais peut pourtant être néfaste si elle n'est pas à jour. Il est préférable de commenter abondamment le code lui-même, et surtout de transférer les compétences au sein de l'équipe (on en revient à l'importance de la communication).

La collaboration (« Collaboration avec le client plutôt que négociation de contrat ») : Le client doit être impliqué dans le développement. On ne peut se contenter de négocier un contrat au début du projet, puis de négliger les demandes du client. Le client doit collaborer avec l'équipe et fournir un feed-back continu sur l'adaptation du logiciel à ses attentes.

L'acceptation du changement  (« Réagir au changement plutôt que suivre un plan ») : La planification initiale et la structure du logiciel doivent être flexibles afin de permettre l'évolution de la demande du client tout au long du projet. Les premières réalisations du logiciel vont souvent provoquer des demandes d'évolutions.

Les 12 principes "agiles".
  1. Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.==>  Le retour sur investissement doit être une réalité.
  2. Accueillez 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.==> Les changements sont considérés comme bénéfiques, il ne s'agit pas de suivre un plan gravé dans le marbre, les changement font "vivre" le produit.
  3.  Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts.==> Il s'agit de livrer fréquemment et rapidement un produit utilisable.
  4. Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.==> En écoutant l'utilisateur, en comprenant ses besoins aux quotidiens, on évite les cahiers des charges, de spécifications très compliqués et inadaptés. 
  5. Réalisez les projets avec des personnes motivées. Fournissez-leur l’environnement et le soutien dont ils ont besoin et faites-leur confiance pour atteindre les objectifs fixés.==> le management laisse travailler les personnels, les équipes sur le projet, des rendez-vous avec la hiérarchie sont prévus pour valider l'avancement des travaux.
  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.==> les spécialistes "métier" sont associés au développement du produit.
  7. Un logiciel opérationnel est la principale mesure d’avancement.==> on ne travaille pas sur des dossiers, sur du papier mais un produit concret utilisé au quotidien. 
  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.==> la collaboration de l'ensemble des parties prenantes permet de maintenir un rythme de développement adapté.
  9. Une attention continue à l'excellence technique et à une bonne conception renforce l’Agilité.==> Le principe "vite fait bien fait" n'existe pas avec l'agilité.
  10.  La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle.==> Le lean appliqué au développement.
  11. Les meilleures architectures, spécifications et conceptions émergent d'équipes auto-organisées.==> Pas de carcans méthodologiques strictes qui freinent la créativité et bloque la réflexion.
  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. ==> Rien n'est figé, tout évolue, y compris le fonctionnement des équipes.

L'agilité repose sur le précept que ce que nous faisons est trop complexe pour être théorisé, il s'agit donc d'adopter une approche plus empirique, beaucoup plus en phase et adaptée à la réalité terrain. Le développement adaptatif préconisé par les méthodes agiles se base sur la répétition des projets,testés en continu, validés et intégrés successivement  à partir des résultats obtenus en coopération avec les utilisateurs finaux qui participent au développement et qui bénéficient à ce titre d'une autonomie réelle propice à la créativité.   



Aucun commentaire: