Introduction
Le principe YAGNI, ou « You Aren't Gonna Need It », est souvent mal interprété comme une règle de thrift, visant à éviter d'écrire du code qui ne sera pas nécessaire. Cependant, cet article montre que YAGNI est en réalité une méditation sur le timing et les coûts de la structure spéculative.
Contexte Technique
Le principe YAGNI a été popularisé par Kent Beck, qui raconte une histoire où son collègue Chet Hendrickson voulait implémenter une fonctionnalité plus compliquée pour anticiper les besoins futurs. Kent Beck lui a répondu « You aren't gonna need it », soulignant que la structure spéculative peut être coûteuse et risquée. Les deux principaux coûts associés à la structure spéculative sont l'optionnalité et la valeur actuelle nette (NPV).
Analyse et Implications
L'optionnalité se réfère au coût de la structure spéculative qui est construite avant que le besoin réel ne se présente. Même si la prédiction est correcte, la structure spéculative peut s'avérer inutile ou nécessiter des modifications coûteuses. La valeur actuelle nette (NPV) concerne le coût de la structure spéculative qui est payé avant que les revenus générés par la fonctionnalité ne soient perçus. Les deux coûts sont indépendants et s'appliquent même lorsque la génération de code est gratuite.
Perspective
La génération automatique de code ne rend pas YAGNI obsolète, car les coûts d'optionnalité et de NPV survivent à la gratuité du code. Il est important de comprendre que YAGNI n'est pas une règle de thrift, mais plutôt une théorie des prix qui s'applique à la programmation. La leçon clé est de construire les fonctionnalités lorsqu'elles sont nécessaires, et non pas à l'avance, car l'option de construire la bonne structure à temps a plus de valeur que la structure spéculative elle-même.