IT-Berufe-Podcast

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


Listen Later

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
...more
View all episodesView all episodes
Download on the App Store

IT-Berufe-PodcastBy Stefan Macke

  • 5
  • 5
  • 5
  • 5
  • 5

5

1 ratings


More shows like IT-Berufe-Podcast

View all
Chaosradio by Chaos Computer Club Berlin

Chaosradio

7 Listeners

Computer und Kommunikation by Deutschlandfunk

Computer und Kommunikation

10 Listeners

IQ - Wissenschaft und Forschung by Bayerischer Rundfunk

IQ - Wissenschaft und Forschung

46 Listeners

ZEIT WISSEN. Woher weißt Du das? by ZEIT ONLINE

ZEIT WISSEN. Woher weißt Du das?

45 Listeners

c’t uplink - der IT-Podcast aus Nerdistan by c’t Magazin

c’t uplink - der IT-Podcast aus Nerdistan

5 Listeners

Eine Stunde History - Deutschlandfunk Nova by Deutschlandfunk Nova

Eine Stunde History - Deutschlandfunk Nova

109 Listeners

Smarter leben by DER SPIEGEL

Smarter leben

50 Listeners

Kampf der Unternehmen by Wondery

Kampf der Unternehmen

16 Listeners

kurz informiert by heise online by heise online

kurz informiert by heise online

2 Listeners

Quarks Science Cops by Quarks

Quarks Science Cops

19 Listeners

Terra X History - Der Podcast by ZDF - Terra X

Terra X History - Der Podcast

9 Listeners

Aha! Zehn Minuten Alltags-Wissen by WELT

Aha! Zehn Minuten Alltags-Wissen

25 Listeners

KI verstehen by Deutschlandfunk

KI verstehen

8 Listeners

Wirecard: 1,9 Milliarden Lügen by Süddeutsche Zeitung

Wirecard: 1,9 Milliarden Lügen

3 Listeners

Passwort - der Podcast von heise security by Dr. Christopher Kunz, Sylvester Tremmel

Passwort - der Podcast von heise security

3 Listeners