YAGNI - You aren't gonna need it

Utvikling MOC
Konseptet er hentet fra Xtreme Programming
Ikke implementer noe fordi du forutser at du vil trenge det i fremtiden. Det fører bare til mer kode som fører til mer kompleksitet som fører til en vanskeligere å håndtere kodebasen.

Dette minner meg om Emergence i programvare, og at Programmatisk kompleksitet bør etterligne biologiske prosesser. Programmet må vokse organisk og gjøre det man har bruk for i nuet.

Man må være pragmatisk å implementere noe på en viss måte dersom det ikke legger til kompleksitet, men vil gjøre koden lettere å utvide senere. Men dette er ikke et brudd på YAGNI, det er bare å holde koden vedlikeholdbar.

Det å slette død kode går heller ikke under YAGNI prinsippet. Det er kostnaden knyttet opp mot det å bygge og planlegge en feature som YAGNI forsøker å redusere. Om en feature allerede er implementert i en kodebase, og man mistenker den trengs fremover kan den bare være der.

xkcd: The General Problem

Ressurser

https://martinfowler.com/bliki/Yagni.html
Yagni