agilitécommunicationdéveloppeur

La méthode agile : pour l’amour du code

Les méthodes agiles sont à la mode : qu’il s’agisse de management, de développement de logiciels ou de techniques de commercialisation, l’”agility” (à ne pas confondre avec le sport canin du même nom) couvre des réalités variées, à l’image des interlocuteurs qui portent ses valeurs.

De quoi s’agit il ?

À la base, c’est la redéfinition des principes et de l’organisation de la production de logiciels qui a permis de définir les principes agiles, qui se traduisent par des pratiques. Le développement informatique était structuré à l’origine comme une activité de production industrielle, descendant du fordisme et du taylorisme, avec des cycles de productions verticaux : besoin / cahier des charges / spécification / codage / test / livraison.

Dans la réalité, la complexité et la singularité d’un programme informatique montre très vite les limites du modèle industriel destiné à la conception de produits physiques : l’industrie du logiciel estime que 60% des projets échouent, et se traduisent par une perte sèche. La cause est assez simple : dans la construction intellectuelle qu’est un logiciel, si on connait le besoin qu’on veut satisfaire et les données de départ, le cheminement et les étapes sont imaginées au fur et à mesure de la réalisation.

Les développeurs ont progressivement créé des concepts, des méthodes et des approches liés à leur méthode : l’humain prime sur le process, l’adaptabilité sur le cahier des charges, et le rendu doit être immédiatement exploitable et testé. Si cela parait assez évident dans une logique de management, de relation client et de marketing, c’est beaucoup plus délicat à mettre en oeuvre lorsqu’il s’agit de projets mobilisant des centaines d’ingénieurs pendant plusieurs années.

Méthodes agiles : tout va bien, rien ne change ?

Méthodes agiles : tout va bien, rien ne change ?

Les méthodes des géants du web

Google, Facebook, et la plupart des outils que nous utilisons en ligne sont directement programmés en utilisant des méthodes agile de production : la proximité avec l’utilisateur, le test, et l’auto-adaptation en sont la clef de voûte. Par exemple, la page Google que nous utilisons quotidiennement est mise à jour jusqu’à 80 fois en 24H ! Cette batterie de tests et d’adaptations en temps réel est transparente pour l’utilisateur, mais contribue à faire radicalement évoluer le logiciel en quelques mois.

Le succès des méthodes agiles, qui correspond à l’émergence de nouvelles générations de développeurs, se traduit par une multitudes d’écoles, aux acronymes plutôt impénétrables : scrum, xprogramming, kaban… Un effet de chapelle est inévitable, mais ce qui frappe, c’est la ferveur des adeptes, fondée sur la qualité des résultats obtenus.

Un développeur code de 50 à 60% de son temps ; le reste est utilisé dans des réunions et des interactions diverses. Dans son temps de production, on estime à 50% le temps passé à tester et débugger ses outils. En utilisant une méthode agile qui intègre des tests dans la programmation du code, son temps de production est doublé ! et personne n’aime tester et débugguer !

On n'improvise pas l'agilité

On n’improvise pas l’agilité

Si on rajoute les bonnes pratiques agiles de lisibilité de l’architecture et de la conception du logiciel : les gains de productivité explosent. Car dans la méthode agile, la conception et les données structurantes du logiciel sont intégrées au coeur même du code : un autre codeur peut prendre le relais à tous moment, sans avoir besoin d’analyser entièrement le code déjà écrit, et on peut s’abstraire de la fastidieuse ou souvent obsolète documentation technique.

Cet ensemble de pratiques, d’outils et de méthodes, que je résume grossièrement dans cet article, améliore considérablement le quotidien du codeur, tout en décuplant sa productivité et la satisfaction client.

L’obsession de la qualité client

Outres ses éléments humains et l’aspect test, les méthodes agiles mettent l’utilisateur au coeur de la démarche de production, et intègrent ainsi dès l’origine du projet la capacité à changer l’orientation du logiciel : c’est la fameuse “agilité” dont il est question (même si il a probablement autant d’explications que de développeurs !).

Si la méthode ne résout pas le problème des délais de livraison, et qu’il n’y a pas de solution miracle à en attendre, elle permet de proposer un produit fonctionnel, adapté à la problématique de base posée par le client, même si les voies utilisée sont finalement différentes.

Ceci étant, la question économique posée par la négociation commerciale n’est pas traitée par les méthodes agile : que se passe t il si le temps de codage est réduit ? si il est augmenté ? La régie (vente de la prestation à la journée) est un principe idéal de travail en agilité, mais concrètement, la vente au forfait (un nombre de jour fixe vendus pour un résultat de production convenu) reste un fondamental de la relation commerciale.

Bref, la méthode agile ne résous pas les épineux problèmes de relation client qui se posent classiquement en gestion de projet : comment ajuster la facturation à la prestation effectivement fournie ?

Quelles applications pour Résidence Mixte ?

Un grand nombre de publics s’approprient les méthodes agile, comme cadre de réflexion à l’atteinte de leurs objectifs personnels, sortant ainsi du cadre de l’ingénierie logicielle : le management, la vente, le développement personnel… autant de sujets qui passent avec plus ou moins de bonheur à la moulinette agile. Dans notre cas, en tant qu’agence web, le développement informatique est un maillon-clé de nos prestations : nous devons intégrer cet apport méthodologique, avec (si possible) du bon sens.

Concrètement, l’intégration des méthodes agile nous permettrons d’accentuer l’existant, et de fournir un cadre de formalisation aux intuitions d’Amir :

  • l’équipe plutôt que les procédures,
  • la validation client de chaque étape du processus de construction, qui devient ainsi co-création,
  • le découpage du projet en tâches courtes, identifiables, fonctionnelles, générant un rendu immédiatement utilisable,
  • prévisibilité des délais de production.

Notre objectif est d’intégrer cette culture, et d’en recueillir les effets, tout en tenant compte de nos spécificités métiers : la commercialité des prestations, la primauté de l’émotion sur la fonction, et le rôle-clé de l’éditorial.

L’agilité nous permet de creuser un peu plus notre sillon, et d’affirmer notre identité et notre singularité par notre capacité à mélanger et s’enrichir des cultures de chacun (Résidence Mixte !).

© Romain Couturier http://www.terredagile.com/

© Romain Couturier http://www.terredagile.com/

Avec du recul, les méthodes agiles sont la traduction par l’industrie logicielle d’un mouvement de fond, dont le web est le catalyseur : design thinking pour le design, interface orientée utilisateur pour le web, auto- organisation pour le management etc

Ces méthodes, cet air du temps, qui aujourd’hui a des parfums d’avant gardisme, sera bientôt notre quotidien et la base de nouvelles réflexions.

Le mouvement, toujours, l’agilité ;)

 

Pour aller plus loin :

Wikipédia 

Agile tour

Infographie

 

Copinage : Romain Vignes et Romain Couturier

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *