You Ain’t Gonna Need It (YAGNI) – Wissenshäppchen #2

You Ain’t Gonna Need It (YAGNI) – Wissenshäppchen #2

In der zweiten Episode meiner „Wissenshäppchen“ geht es um ein weiteres wichtiges Prinzip der Softwareentwicklung: You Ain’t Gonna Need It (YAGNI) (alternativ auch You Aren’t Gonna Need It). Wir sollten immer nur das entwickeln,
16 Minuten

Beschreibung

vor 8 Jahren

In der zweiten Episode meiner „Wissenshäppchen“ geht es um ein
weiteres wichtiges Prinzip der Softwareentwicklung: You
Ain’t Gonna Need It (YAGNI) (alternativ auch You Aren’t
Gonna Need It). Wir sollten immer nur das entwickeln, was wir
wirklich brauchen!


Always implement things when you actually need them, never when
you just foresee that you need them. (YouArentGonnaNeedIt)
Inhalt

Durch den Fokus auf das wirklich Wichtige vermeiden wir
unnötige Komplexität (vgl.
SimpleBeanFactoryAwareAspectInstanceFactory) in unserem Code, die
zu schlechterer Wartbarkeit führt.

Außerdem widmen wir damit den Großteil unserer wertvollen
Arbeitszeit der Lösung des eigentlichen Problems.

Das bedeutet nicht, dass wir absichtlich zu einfache Lösungen
bauen sollen.

Wir sollten nur keine Features einbauen, von denen wir
lediglich glauben, dass wir sie später einmal brauchen (bzw. der
Fachbereich sie gerne hätte).

Die Praktik des Test Driven Development forciert YAGNI, da
immer nur der produktive Code geschrieben wird, der den nächsten
Testfall grün macht.

Anforderungen bzgl. der Architektur unserer Anwendung,
Sicherheit oder Benutzerfreundlichkeit können nicht im Nachhinein
eingebaut werden und müssen daher schon von Beginn des Projekts
an eingeplant werden.

Durch YAGNI kann Featuritis vermieden werden, das Problem,
dass immer mehr Features hinzugefügt werden, anstatt die wirklich
gewünschten perfekt umzusetzen.

Auch das Problem der voreiligen Optimierung (Premature
Optimization) steht im Zusammenhang mit YAGNI. Meistens optimiert
man Kleinigkeiten, die im Verhältnis zum großen Ganzen kaum
Auswirkungen haben.

Ein weiterer Begriff, der mit YAGNI in Verbindung gebracht
werden kann, ist das Yak Shaving. „Nur noch eben schnell meinen
eigenen ORM programmieren und dann kann es weitergehen!“

Literaturempfehlungen

YAGNI wird oft im Kontext von Extreme Programming zitiert. Kent
Beck hat dazu das Standardwerk Extreme Programming Explained*
geschrieben, das ich jedem Anwendungsentwickler wärmstens
empfehlen kann. Auch der Sinn von Praktiken wie TDD und Pair
Programming und Werten wie Einfachheit und Feedback wird hier
detailliert beschrieben.


*
Links

YAGNI (hier sind auch zwei treffende Bilder aus dem
Software-Craftsmanship-Kalender zu sehen)

What are the most ridiculous Java class names from real code?

How To Build A Horse With Programming [Comic]

Feature creep

Premature Optimization

yak shaving

Kommentare (0)

Lade Inhalte...

Abonnenten

15
15