/ scrum

S'organiser agile !

Vous rencontrez certainement des imprévus et des changements quotidiennement, même pour les choses les plus ordinaires. Cela vous demande de faire preuve d’agilité pour comprendre, décider et vous adapter très vite aux nouveaux défis qui s'annoncent. C'est complexe. Pourtant, vous savez le faire !

Cet état d’esprit est très sollicité dans les équipes de développement de logiciel, car de nouveaux besoins émergent tous les jours et la technologie évolue constamment. Ainsi, plusieurs méthodes dites Agiles comme Scrum, Kanban, Lean ou XP ont été pensées pour faciliter cette agilité. De nos jours, elles aident bien d'autres secteurs que l’industrie du logiciel, car elles se démocratisent et peuvent même rendre votre vie quotidienne ou familiale plus agréable.

Dans cet article, nous allons survoler l’histoire des méthodes agiles et partager l'approche que nous mettons en oeuvre quotidiennement.

Les origines des méthodes agiles

La mise en garde et les tentatives

“La chose la plus dangereuse dans le domaine du logiciel est l'idée, apparemment presque universelle, que vous allez spécifier ce qu'il y a à réaliser, puis le réaliser. Voilà d'où viennent la plupart de nos ennuis. On appelle réussis les projets qui sont conformes à leurs spécifications. Mais ces spécifications s'appuient sur l'ignorance dans laquelle étaient les concepteurs avant de démarrer le boulot !"

D.T. Ross à [The NATO Software Engineering Conferences (1968)](http://homepages.cs.ncl.ac.uk/brian.randell/NATO)

Malgré la sagesse de ces propos, les méthodes dites Classiques se sont imposées durant des décennies. Elles consistent à recueillir les besoins, définir le produit, le développer et le tester avant de le livrer. Cette démarche séquentielle et rigide favorise l’effet boîte noire, le résultat n'étant révélé au client qu'à la livraison du produit. En outre, ces méthodes ont généré les problèmes suivants :

  • mauvais engagement de l’équipe de développement
  • non respect des délais et du budget
  • mauvaise qualité des livrables
  • performances insuffisantes
  • non respect des exigences exprimées
  • maintenance et évolutivité difficiles
  • arrêt définitif du projet

L'effet boîte noire

Entretemps, des approches itératives et incrémentales proches des méthodes agiles, comme Rugby ou le modèle en Spirale, ont tenté de combler le manque de flexibilité et d’adaptabilité; sans jamais s’imposer.

Ce n’est que dans les années 90 que les premières méthodes dites Agiles arrivent : RAD (Rapid Application Development), SCRUM, RAD2 ou encore Extreme programming. Elles apportent une grande flexibilité et adaptabilité, tout au long du développement du produit.

L’année officielle de la “révolution”

C’est durant une rencontre en 2001 que dix-sept personnalités ont écrit le manifeste pour le développement agile de logiciels. Ces gourous officialisent ainsi l’ère des méthodes agiles et publient ses caractéristiques :

  • 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

L'agilité a pour ambition de promouvoir la collaboration entre les parties prenantes et d’accepter les changements afin de réduire le risque d’échec.

De nos jours

Les bénéfices des méthodes agiles sont multiples, notamment :

  • adaptation aux changements
  • augmentation de la productivité des équipes
  • amélioration de la visibilité de l’avancement
  • augmentation de la satisfaction et motivation des équipes
  • meilleure maîtrise des risques
  • livraison continue de fonctionnalités à forte valeur métier

Ces bénéfices sont des arguments non négligeables pour adopter rapidement les méthodes agiles.

En Suisse, c’est le cas de plusieurs éditeurs de logiciels, tel que Finnova (Éditeur de progiciel bancaire) qui a refondu son processus de développement, passant des méthodes classiques vers la méthode agile. D’ailleurs, c’est la recommandation d’un Groupe parlementaire après le cas INSIEM :

“[...] Le groupe suggère également préférable d’employer les méthodes de développement agiles plutôt que l'approche en cascade lorsque cela est possible”.

L’agilité à Octree

Pour nous...

C'est une séance hebdomadaire de 45’ minutes où une planification générale est réalisée. Cela permet d’organiser de façon précise notre travail de la semaine et d’avoir une vision globale des semaines à venir.

Puis, une séance quotidienne de 15’ minutes où chaque membre informe l’équipe de ses tâches en cours et terminées, mais principalement des difficultés rencontrées. Cette séance encourage la collaboration, apporte une grande visibilité et supprime tout blocage. De plus, ce fonctionnement apporte une grande flexibilité, car les priorités peuvent être revues, chaque jour, en cas d’imprévus.

Nous utilisons la méthode Kanban pour organiser notre travail

Enfin, à Octree il n’y a pas de hiérarchie classique, nous favorisons l'intelligence collective et l’auto-organisation (composants du management agile). Ainsi, chacun est responsable de l’avancement de ses activités (nous reviendrons sur cette expérience dans un prochain article).

Pour nos clients...

L’approche de collaboration que nous mettons en oeuvre avec nos clients pour le développement de produits est très similaire à notre organisation interne.

Dans un premier temps, nous définissons avec le client les fonctionnalités du produit, chaque fonctionnalité est décrite dans une story pour constituer le backlog (liste de stories du produit).

Ensuite, nous planifions des sprints (cycles incrémentaux de développement) de deux semaines. Durant ces sprints l’équipe de développement développe, test et livre le backlog du sprint (liste de stories sélectionnées pour un sprint). De plus, l’équipe de développement se réunit quotidiennement autour d’un scrum (séance quotidienne pour revoir et échanger sur les stories en cours).

Pour finir, à chaque fin de sprint nous réalisons un sprint review (démonstration au client), puis nous définissons le prochain backlog du sprint.

Notre approche s'inspire de la méthode Scrum

Grâce à cette approche, le client peut suivre de manière précise la construction de son produit, tester rapidement et adapter le backlog en fonction de ses besoins. Cette méthode agile demande une grande disponibilité du client, car il est celui qui possède la vision globale du produit et de sa stratégie, voici quelques unes de ses missions :

  • rédiger ses besoins sous forme de story (backlog)
  • définir les priorités pour chaque sprint (backlog du sprint)
  • tenir le backlog du produit à jour
  • être réactif aux questions de l’équipe de développement
  • tester et valider les stories livrées

Etablir le budget agile

Le principal défi d’un projet est de fournir au client un budget fixe et une échéance. Dans cette situation, les méthodes agiles sont mises à rude épreuve car il est difficile d’estimer ces éléments sans avoir démarré le projet.

A Octree, nous favorisons la réalisation d’un MVP (le produit minimum viable) durant une phase d’analyse et de prototypage, contenant les éléments suivants :

  • la réalisation des esquisses de l’interface du produit
  • la création du backlog
  • le développement d’un prototype fonctionnel
  • l’estimation précise de la charge de travail et une budgétisation

Ces premiers éléments sont des générateurs de confiance entre les parties prenantes. Ainsi, grâce à cette première brique, la collaboration peut continuer de manière robuste et transparente.

Les ingrédients de l’agilité

L’agilité s’adapte - Les pratiques agiles sont nombreuses, il est essentiel de les connaître. Toutefois, il est important de sélectionner et adapter les pratiques qui conviennent à vos équipes, projets et clients.

Une culture agile - Les méthodes agiles ne sont pas des directives, mais de bonnes pratiques. Elles doivent être fédérées auprès des parties prenantes, afin de créer une culture agile.

La livraison continue - Livrer régulièrement en apportant une grande valeur métier, sans perturber ce qui existe déjà, et avoir la capacité d’accepter et de s’adapter aux changements, ce qui est appelé le développement itératif, incrémental et adaptatif.

Le design UI/UX - Intégrer dans la démarche agile le design UI/UX, il est un atout majeur dans la conception et production de projets. En effet, les designers ont une sensibilité accru des processus itératifs grâce à leurs méthodes.

Conclusion

Malgré un succès croissant des méthodes agiles, la phase de transition est souvent douloureuse. En effet, les organisations en voie de transition peuvent vite abandonner l’idée face aux barrières suivantes :

  • incapacité à faire évoluer la culture existante de l’entreprise
  • résistance générale aux changements
  • méthodes classiques ancrées et rigides
  • problèmes générationnels

Néanmoins, l’élément clé de la réussite d’une intégration ou transition est l’humain, il est le plus sensible aux changements. Donc, il faut l'accompagner dans cette transition et lui accorder un soin particulier.

A Octree, nous baignons dans les valeurs de la méthode agile. Elles permettent à notre équipe d’être efficace et agile dans les interactions, aussi bien en interne qu'avec nos clients. Ce fonctionnement est optimal grâce aux techniques de livraison continue, expliquées dans DevOps : du code à la prod'.

Ainsi, nous avons conçu un écosystème alliant approche client et techniques de livraison continue pour produire efficacement et rapidement de la valeur métier pour nos clients.

Références :