Zum Inhalt springen

YAGNI

Was bedeutet YAGNI?

YAGNI steht für "You Aren't Gonna Need It", sinngemäß: Du wirst es nicht brauchen. Der Grundsatz stammt aus dem Extreme Programming und besagt, dass eine Funktion erst dann entwickelt wird, wenn sie tatsächlich gebraucht wird — und nicht, weil sie später einmal nützlich sein könnte. Kent Beck und Ron Jeffries haben ihn Ende der 1990er Jahre geprägt.

Warum Vorratsentwicklung teuer wird

Eine Funktion, die auf Verdacht entsteht, kostet dreifach: einmal in der Entwicklung, dann bei jedem Test und schließlich bei jeder Aktualisierung, weil sie mitgepflegt werden muss. Wird sie nie benutzt, war der gesamte Aufwand vergeblich. Schlimmer noch: Sie macht den Code umfangreicher und damit alles Weitere langsamer. Dazu kommt ein Denkfehler in der Annahme selbst. Was in der Planung als künftige Anforderung erscheint, sieht ein Jahr später meist anders aus. Die vorsorglich entwickelte Funktion passt dann nicht mehr und muss trotzdem entfernt oder umgebaut werden.

YAGNI im Verhältnis zu anderen Prinzipien

YAGNI ist eng verwandt mit dem KISS-Prinzip, setzt aber an einer anderen Stelle an: KISS fragt, wie einfach eine Lösung sein kann, YAGNI fragt, ob sie überhaupt gebraucht wird. Beide zielen darauf, Komplexität gar nicht erst entstehen zu lassen.

Bedeutung für Onlineshops und Websites

Im E-Commerce zeigt sich YAGNI besonders deutlich bei Erweiterungen. Jedes zusätzliche Plugin, jede eigene Funktion und jede Anbindung muss bei jedem Versionswechsel geprüft werden. Ein Onlineshop mit zwanzig Erweiterungen, von denen fünf niemand nutzt, verursacht dauerhaft Aufwand für nichts. Praktisch heißt das: Anforderungen werden danach sortiert, was heute Zeit oder Marge kostet, nicht danach, was denkbar wäre. Was wirklich gebraucht wird, lässt sich später jederzeit ergänzen — vorausgesetzt, die Architektur ist von Anfang an offen genug dafür.

Grenzen des Prinzips

YAGNI ist kein Freibrief für kurzsichtige Entscheidungen. Grundlegende Weichen wie die Wahl des Shopsystems, die Struktur der Produktdaten oder der Umgang mit Mehrsprachigkeit lassen sich später nur mit hohem Aufwand ändern. Solche Entscheidungen gehören an den Anfang. YAGNI gilt für Funktionen, nicht für Fundamente.