YAGNI

YAGNI (anglicisme, acronyme anglais de you ain't gonna need it, qui peut se traduire par « vous n'en aurez pas besoin ») est un principe d'extreme programming qui déclare que les programmeurs ne devraient pas ajouter de fonctionnalité à un logiciel tant que celle-ci n'est pas absolument nécessaire. Ron Jeffries recommande par ailleurs : « mettez toujours en œuvre les choses quand vous en avez effectivement besoin, pas lorsque vous prévoyez simplement que vous en aurez besoin ».

Justification

Selon ceux qui prônent l'approche YAGNI, la tentation d'écrire du code qui n'est pas nécessaire à l'instant présent, mais qui pourrait l'être dans le futur, entraine les inconvénients suivants :

Critiques

Ce principe est souvent l'objet de débats entre programmeurs. En effet, l'ajout de certaines fonctionnalités particulièrement structurantes à un logiciel déjà existant peut, parfois, s’avérer excessivement complexe. Que la présence de cette fonctionnalité ait été anticipée dès la première version du logiciel peut donc, malgré un potentiel surcoût initial, s’avérer bien moins coûteux que si elle avait été totalement ignorée. Une analyse fonctionnalité par fonctionnalité est donc généralement nécessaire pour éviter les problèmes que pourrait engendrer une application trop naïve du principe YAGNI.

Notes et références

  1. ↑ (en) Lowell Lindstrom; Carmen Zannier; Erdogmus, Hakan, Extreme Programming and Agile Methods : XP/Agile Universe 2004 : 4th Conference on Extreme Programming and Agile Methods, Calgary, Canada, August 15-18, etc. (Lecture Notes in Computer Science), Berlin, Springer, , 238 p. (ISBN 978-3-540-22839-4, lire en ligne), p. 121
  2. ↑ (en) Ron Jeffries, « You’re NOT gonna need it! » (consulté le )

Voir aussi