YAGNI (You Aren’t Gonna Need It)
YAGNI staat voor You Aren’t Gonna Need It en is een principe uit de softwareontwikkeling die stelt dat je geen functionaliteit moet implementeren die je op dit moment niet nodig hebt. Het is een kernprincipe binnen Extreme Programming (XP) en Agile development. Het idee achter YAGNI is simpel: ontwikkelaars verspillen vaak tijd en middelen door code te schrijven voor functies die mogelijk nooit gebruikt zullen worden. Dit leidt tot complexiteit, onderhoudsproblemen en hogere kosten.
Inhoudsopgave
YAGNI behoudt de focus
YAGNI helpt ontwikkelaars om zich te focussen op de huidige vereisten en niet op hypothetische toekomstige behoeften. Het principe voorkomt dat projecten onnodig complex worden en zorgt ervoor dat teams sneller kunnen aanpassen.
Veel ontwikkelaars denken: “Laten we alvast deze extra functionaliteit toevoegen, dat bespaart later werk.” Maar in werkelijkheid leidt dit vaak tot:
- Code die nooit wordt gebruikt.
- Moeilijker onderhoud en debugging.
- Onnodige complexiteit, waardoor nieuwe teamleden langer nodig hebben om de code te begrijpen.
- Verspilling van tijd en middelen.
Voorbeelden die je wél nodig hebt
In softwareontwikkeling is het verleidelijk om alvast extra functionaliteiten te bouwen voor toekomstige behoeften. Maar vaak blijkt dat deze functies nooit worden gebruikt, wat leidt tot verspilling van tijd en complexiteit in de code. Bij deze voorbeelden komt het YAGNI-principe dan ook uitstekend van pas:
- Extra configuratie-opties die niemand gebruikt
Een ontwikkelaar voegt een geavanceerd configuratiesysteem toe voor een app die slechts één instelling heeft. Niemand gebruikt de extra opties, maar de code moet wel onderhouden worden. - Generieke oplossingen voor specifieke problemen
Een team bouwt een extreem flexibele API, terwijl de applicatie slechts één specifieke functionaliteit nodig heeft. Dit zorgt voor onnodige complexiteit. - Vooruitwerken op toekomstige functies
Een webshop ontwikkelt een uitgebreid loyaliteitssysteem terwijl er nog geen klanten zijn. Wanneer het eindelijk nodig is, blijkt dat de vereisten veranderd zijn en moet het systeem opnieuw gebouwd worden.
Hoe YAGNI zich verhoudt tot andere principes
YAGNI staat niet op zichzelf, maar maakt deel uit van een bredere filosofie binnen softwareontwikkeling die gericht is op eenvoud en efficiëntie. Het principe sluit nauw aan bij andere bekende richtlijnen zoals KISS, DRY en Lean Development. Hoewel deze concepten verschillende focuspunten hebben, delen ze een gemeenschappelijk doel: het vermijden van onnodige complexiteit en het maximaliseren van productiviteit:
- KISS (Keep It Simple, Stupid): Beide principes streven naar eenvoud, maar YAGNI gaat specifiek over het vermijden van onnodige functies.
- DRY (Don’t Repeat Yourself): DRY focust op het vermijden van dubbele code, terwijl YAGNI voorkomt dat je onnodige code schrijft.
- Lean Development: YAGNI sluit aan bij de lean-filosofie, die verspilling minimaliseert door alleen waarde toe te voegen die echt nodig is.
Veelgestelde vragen over YAGNI
Altijd wanneer je overweegt een functie toe te voegen die niet direct nodig is. Vraag jezelf af: “Heb ik dit nú echt nodig?” Zo niet, dan wacht je ermee.
YAGNI betekent niet dat je nooit vooruit mag denken, maar dat je alleen code schrijft voor wat nu noodzakelijk is. Agile ontwikkeling maakt het makkelijk om later functionaliteit toe te voegen als het echt nodig blijkt.
Door een goede balans te vinden. Focus op de huidige vereisten, maar houd je code flexibel en uitbreidbaar zonder meteen alles te bouwen.
Nee, YAGNI kan in elke ontwikkelmethode worden toegepast. Maar het past wel perfect bij Agile en Lean Development, omdat deze methoden iteratief werken en verspilling willen minimaliseren.