YAGNI
YAGNI ( "You aren't gonna need it" ; fra engelsk - "You won't need it") er en softwaredesignproces og -princip , hvor afvisningen af overskydende funktionalitet erklæres som hovedmålet og/eller værdien, som er, afvisningen tilføjende funktionalitet, der ikke er direkte nødvendig.
Begrundelse
Ifølge tilhængerne af YAGNI-princippet fører ønsket om at skrive kode, som ikke er nødvendig lige nu, men som kan blive nødvendigt i fremtiden, til følgende uønskede konsekvenser:
- Der spildes tid, som ville have været brugt på at tilføje, teste og forbedre den nødvendige funktionalitet.
- Nye funktioner skal fejlfindes, dokumenteres og vedligeholdes.
- Ny funktionalitet begrænser, hvad der kan lade sig gøre i fremtiden – unødvendige nye funktioner kan efterfølgende forhindre tilføjelsen af nye, der er nødvendige.
- Indtil der virkelig er brug for nye funktioner, er det svært helt at forudsige, hvad de skal gøre og teste dem. Hvis nye funktioner ikke er grundigt testet, fungerer de muligvis ikke korrekt, når det er nødvendigt senere.
- Dette får softwaren til at blive mere kompleks (nogle gange for kompleks).
- Hvis al funktionalitet ikke er dokumenteret, kan den forblive ukendt for brugerne, men det kan skabe forskellige sikkerhedsrisici for brugerens system.
- Tilføjelse af ny funktionalitet kan føre til et ønske om endnu mere ny funktionalitet, hvilket resulterer i en sneboldeffekt.
Se også
Links