Remove ads
Programmierprinzip Aus Wikipedia, der freien Enzyklopädie
YAGNI ist ein Akronym und steht für You Aren’t Gonna Need It, zu deutsch: „Du wirst es nicht brauchen“.[1][2] Es bezeichnet ein Prinzip des Extreme Programming (XP), das besagt, dass in einem Programm erst dann Funktionalität implementiert werden sollte, wenn klar ist, dass diese Funktionalität tatsächlich gebraucht wird.
Entgegen diesem Vorgehen wird in der Praxis oft versucht, Programme durch zusätzlichen oder allgemeineren (generischen) Code auf mögliche künftige Änderungsanforderungen vorzubereiten. Die dahinter liegende Überlegung ist, dass Änderungen später aufwändiger umzusetzen sind als sie jetzt bereits vorwegzunehmen.
Oft stellt sich später heraus, dass dieser Zusatzaufwand unnötig war, weil sich die ursprünglich erwartete Anforderung in der gedachten Form tatsächlich nie ergeben hat. Stattdessen ergeben sich häufig Anforderungen, die bei der ursprünglichen Entwicklung nicht vorhergesehen wurden und deren Umsetzung durch den Code, der eigentlich Änderungen erleichtern sollte, nicht unterstützt und oft sogar behindert wird.
YAGNI führt also in erster Linie zu schlankerem, einfacherem Code und ermöglicht damit, später kommende Anforderungen kostengünstig umzusetzen. Weitere Überlegungen hinter YAGNI sind:
YAGNI ist eines der Prinzipien hinter der XP-Technik von „Implementiere die einfachst mögliche Lösung, die funktioniert“ (“do the simplest thing that could possibly work” [DTSTTCPW]).[2][3] Die Verwendung des YAGNI-Prinzips ist gedacht in der Kombination mit anderen XP-Prinzipien wie laufendes Refactoring, automatisierte Modultests und kontinuierliche Integration.
Wird YAGNI falsch umgesetzt – beispielsweise wenn dadurch die Erweiterbarkeit des Systems eingeschränkt wird – so kann es auch zu Mehraufwänden führen.[4]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.