fbpx

Les 12 principes de l'agilité

Une petite définition

Les méthodes agiles sont des groupes de pratiques de pilotage et de réalisation de projet. Ces méthodes se basent sur le manifeste Agile.
Elles ont pour objectif d’impliquer au maximum le client lors de la phase de réalisation du projet. Cela permet une plus grande réactivité mais aussi une plus grande justesse lors de la phase de réalisation du projet, et ainsi d’éviter “l’effet tunnel” (le client n’a aucune visibilité sur les livrables durant la réalisation).

D’autre part, en impliquant le client dans la phase de développement, nous permettons à nos collaborateurs de mieux comprendre le but de leur travail.

Les méthodes agiles, quelles qu’elles soient, respectent 4 valeurs fondamentales, et 12 principes généraux :

Valeurs

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

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

Mais gardez bien tête que la partie droite ne doit pas passer à la trappe ! Utiliser les méthodes agiles ne veut pas dire qu’on ne doit pas documenter son travail ou encore ne pas établir de plan !

Principes

  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.

En pratique, ça donne quoi ?

Les méthodes agiles reposent sur des cycles de développement itératif, incrémental et adaptatif qui permettent d’inclure au fil du projet les demandes et modifications du client, ou tout simplement les imprévus. Rappelons le, lorsqu’une entreprise met en pratique des méthodes agiles, c’est avant tout pour que le client se sente compris, et que le produit corresponde le plus possible à ses attentes.

Appliquer les méthodes agiles, c’est partir du principe que l’approche prédictive d’un projet (planifier en détails l’intégralité d’un projet) est contre-productif. Elles permettent à l’équipe de mettre en place et de cadrer une approche empirique du projet. Le client fait part de sa vision du projet, des fonctionnalités et des exigences à l’équipe de développement, qui estimera au mieux la durée et le coût du développement. Les fonctionnalités listées sont alors regroupées en « paquets », et l’équipe de développement réalise les fonctionnalités paquet par paquet, durant chaque phase de développement (itérations). Après chaque itération, le produit est montré au client, ce qui lui permet de se rendre compte très tôt du travail réalisé, et de l’alignement ou non sur ses attentes.

Cela permet également au client d’optimiser le “time to market” de son produit, s’il estime que le produit, même s’il n’est pas fini, est prêt pour aller en production. Il économise ainsi une partie du budget, et réalise un premier retour sur investissement.

Le client peut aussi apporter des modifications à la priorité des fonctionnalités qui ne sont pas encore développées. Il pourra retarder le développement d’une fonctionnalité dont il n’est pas encore sûr, ou au contraire accélérer la réalisation d’une fonctionnalité clef qui avait été sous-estimée.

Chez Delia, la méthodologie Scrum en action

La méthode Scrum est de loin la méthode agile la plus utilisée dans le monde depuis son expérimentation en 1993. Scrum est un cadre méthodologique de travail, et il faut bien différencier cette méthode des outils utilisés en développement (Pair Programming, TDD, CI/CD, etc.).
Scrum vous propose un cadre de gestion de projet agile en définissant des rôles, des cycles itératifs, des réunions et des règles.

A chaque projet est associé une équipe qui comprend un Scrum Master (il veille au respect de la méthodologie), le Product Owner (il est le représentant du client, il communique la vision à l’équipe de développement), et l’équipe de développement. Toute cette équipe va découper toutes les fonctionnalités en tâches qui seront stockées dans le backlog du produit. A chaque phase de développement (Sprint), on va prendre un certain nombre de tâches et les réaliser. Après chaque sprint, l’équipe fait une revue et une rétrospective du sprint qui vont permettre entre autre de valider les fonctionnalités et livrer l’avancement du produit au client.

En complément de la méthode Scrum, lors des développements chez Delia, nous utilisons une seconde méthode agile, la méthode eXtreme Programming. Elle va venir ajouter les notions techniques et outils pour que le développement en lui-même suive les méthodes agiles (Pair Programming, Test Driven Development, Continuous Integration, Tests Unitaires, …).

Cet article ne fait que survoler les différentes notions liées aux méthodes agiles, Scrum et eXtreme Programming. Si vous avez envie d’en apprendre plus sur ce sujet, nous allons publier des articles les traitant plus en détails très prochainement ! Pour ne pas les rater, suivez nous sur les réseaux sociaux ou abonnez vous à la newsletter !

Vous avez un projet numérique ? Nous pouvons vous aider !

Related News