YAGNI : You Ain’t Gonna Need It

yagni you ain t gonna need it
yagni you ain t gonna need it

L’Extreme Programming propose une philosophie de développement appelée YAGNI. Celle-ci impose aux développeurs de ne pas développer des fonctionnalités qu’on n’a pas besoin d’avoir.

Mais plus précisément, qu’est-ce que le principe Yagni ?

Vous pouvez regarder la vidéo de La Minute Agile qui explique en vidéo ce concept :

Définition de YAGNI

YAGNI est un acronyme qui signifie « you ain’t gonna need it » ; en français, on le traduira par « vous n’en aurez pas besoin ». Les développeurs qui lisent ces lignes comprendront vite l’idée générale qui se cache derrière cet acronyme YAGNI.

Nous ne prévoyons pas des fonctionnalités, nous ne développons que les fonctionnalités que nous avons besoin sur le moment. C’est très important car beaucoup de développeurs aiment prévoir des fonctionnalités sans même que la demande soit d’actualité.

Cependant avec la popularisation de l’agilité, ce phénomène semble disparaitre doucement. Mais il est toujours utile de rappeler l’importance du Yagni.

YAGNI est très agile

Aujourd’hui dans le monde de l’agilité, nous privilégions fortement de ne développer que ce qui est nécessaire. Cela a pour but de maximiser la productivité.

L’Extreme Programming va même plus loin en expliquant qu’il est préférable de faire du refactoring du code (ou modèle de données) quand nous ajoutons une fonctionnalité que de prévoir la future mise en place de fonctionnalités.

Comme le dit le Lean, nous ne faisons que le nécessaire et nous éloignons au maximum la perte de temps (le waste). Ne sachant pas si la fonctionnalité future va vraiment sortir, nous ne risquons pas de perdre du temps à la préparer.

Oui comme vous le voyez, le Yagni est une notion très philosophique mais qui a beaucoup de sens. Combien de fois, j’ai vu dans le passé des développeurs prévoir le double de fonctionnalité par rapport au besoin exprimé ? Je ne pourrais même plus compter aujourd’hui.

Pourquoi adopter cette philosophie ?

La philosophie YAGNI permet d’éviter un grand nombre d’inconvénients que nous oublions quand nous réalisons des fonctionnalités supplémentaires sans en avoir eu la demande :

  • Quand on développe une fonctionnalité non demandée, on prend du temps non prévu à la base mais qu’on ne pourra pas dédier à des choses essentielles.
  • Lorsqu’on développe une fonctionnalité non demandée, on devra prendre du temps pour la tester avant chaque livraison.
  • Quand on livre cette nouvelle fonctionnalité, on sera tenu de la maintenir, de la débugguer et de la documenter.
  • Lorsqu’on livre une nouvelle fonctionnalité non demandée, on peut être contraint de prendre du temps complémentaire à la suite pour gérer d’éventuelles dépendances avec celle-ci.
  • Quand on développe une fonctionnalité non demandée, on ajoute des lignes de code non nécessaires mais qui complexifieront par défaut le code source.
  • Lorsqu’on développe une fonctionnalité non demandée et que cela n’a posé de soucis à personne, l’envie de faire d’autres fonctionnalités non demandées est encore plus forte.

Vous l’aurez compris, ajouter de nouvelles fonctionnalités non prévues, impose de prendre beaucoup de temps sur le moment. Ces fonctionnalités ne seront peut-être d’ailleurs jamais utilisées à l’avenir.

Adopter la philosophie Yagni sera un atout majeur pour vos équipes.

YAGNI est proche du KISS

Le Yagni est proche de la philosophie KISS très répandue dans le monde de l’agilité. Cette philosophie KISS dit qu’il faut faire au plus simple dans les développements. Voici un article qui en parle si cette autre philosophie vous intéresse :

Article lié à YAGNI : Le principe KISS pour les développeurs

Conclusion

Chers développeurs, pensez YAGNI permettra à l’entreprise où vous agissez, d’optimiser ses processus de développement ; elle vous remerciera d’avoir conscience que la valeur business est devenue de plus en plus importante dans ce monde où tout bouge très vite voire trop vite.

Prêt à penser YAGNI à présent ? Alors, est-ce que le Yagni vous parait extrême ?

Lien utile avec Yagni : site officiel de l’extreme programming

[ Article lu 1 fois aujourd'hui ]
A propos Judicaël Paquet 942 Articles
  Paquet Judicaël (expert en transformation et AI) Mes activités en France et en Suisse : - ingénieur prompt - coach AI - architecte de transformation agile - formations agiles personnalisées - sensibilisations et coaching de manager - audits de maturité agile et de situations - coaching agile (équipes, orga, product owner, scrum master, coach agile) Spécialités : scrum, kanban, management 3.0, agilité à l’échelle, lean startup, méthode agile, prompt AI, Intelligence artificielle. [Me contacter]

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.