You ain't gonna need it !

Vous n'en aurez pas besoin. (Ron Jeffries)

Ce crédo est maintenant fort répandu et peu appliqué; il nous tient à coeur. Voici ce qu'on peut en dire:

Ce slogan suggère que les programmeurs ne doivent pas ajouter une fonctionnalité à un programme sauf si elle est nécessaire (et les clients ne doivent pas faire programmer une fonctionnalité, sauf si elle nécessaire). Ron Jeffries écrit: "Ne produisez que des choses dont vous avez véritablement besoin, jamais quand vous pensez que vous en aurez besoin". En accord avec l'approche YAGNI, la tentation de produire des fonctionnalités qui ne sont pas nécessaires aujourd'hui mais pourraient le devenir dans le futur, a les inconvénients suivants:

  • Le temps consacré à ces fonctionnalités ne peut être utilisé pour ajouter, tester ou améliorer des fonctionnalités nécessaires;
  • Ces fonctionnalités doivent être débuguées, documentées, maintenues;
  • Chaque nouvelle fonctionnalité pose des contraintes sur ce qui pourra être fait dans le futur, de telle sorte qu'une fonctionnalité non nécessaire peut empêcher l'implémentation d'une future fonctionnalité nécessaire;
  • Faute d'en avoir vraiment besoin, une fonctionnalité peut difficilement être parfaitement définie; de sorte que si elle se révèle nécessaire dans l'avenir, elle pourra ne pas avoir été développée de façon adéquate;
  • Cela amène le code à grossir, le logiciel à se compliquer;
  • Comme cette fonctionnalité n'est pas nécessaire, elle sera peu suivie et pourra sombrer dans l'oubli;
  • Une nouvelle fonctionnalité en appelle une autre: l'effet boule de neige vous amènera à en développer encore et encore, toutes inutiles.

YAGNI: Vous n'en aurez pas besoin!

Suivant  1 2 3 4 5