34Teknologi

KISS-princippet

Hold løsninger så enkle som muligt — kompleksitet bør være begrundet, ikke standard.

Kort fortalt

KISS står for Keep It Simple, Stupid (eller mildere varianter). Princippet siger, at systemer virker bedst, når de holdes enkle — og at unødvendig kompleksitet er en fejl, ikke et tegn på dygtighed.

Hvad betyder princippet?

KISS forbindes ofte med amerikansk ingeniørkultur i midten af 1900-tallet, hvor robusthed under begrænsninger var afgørende. I software og produktudvikling bruges det som modvægt til overdesign.

“Enkelt” betyder her forståeligt, vedligeholdeligt og tilstrækkeligt — ikke naivt. Det overlapper med Occams ragekniv, men er mere praktisk rettet mod designvalg.

Hvis en enklere løsning opfylder kravene, er den ekstra kompleksitet en omkostning uden gevinst.

Et konkret eksempel

Et team bygger et internt værktøj med mikroservices, eventbus og tre lag caching “for at være fremtidssikret”. Behovet er en CRUD-app til 30 brugere. En enklere monolit ville have leveret hurtigere og været lettere at drifte.

En brugergrænseflade skjuler avancerede indstillinger bag fornuftige defaults. De fleste får en enkel sti; de få, der har brug for mere, kan åbne det.

Hvornår er princippet nyttigt?

  • Når designs vokser “fordi vi kan”.
  • Når vedligeholdelsesomkostninger undervurderes.
  • Når man vælger mellem elegant abstraktion og klar kode.
  • Når man review’er arkitektur før lancering.

Begrænsninger og kritik

Enkelhed er relativ. En “simpel” løsning, der ikke dækker reelle krav, er ikke bedre. Nogle domæner kræver kompleksitet; KISS siger, at den skal være nødvendig.

Princippet kan også misbruges til at afvise legitim arkitektur. Brug det som krav om begrundelse — ikke som slogan mod al abstraktion.

Kilder

  1. KISS som designslogan i amerikansk ingeniørkultur (ofte knyttet til 1960’ernes flåde-/systemdesignmiljø).
  2. Bemærkning: Den præcise ophavsattribution varierer i kilder; kerneidéen er bredt etableret i praksis.
  • 14DRY-princippetDon't Repeat Yourself: undgå at den samme viden findes i flere, uafhængige kopier, der kan komme ud af sync.
  • 44Occams rageknivBlandt konkurrerende forklaringer bør man foretrække den, der indfører færrest antagelser — alt andet lige.
  • 66YAGNIYou Aren't Gonna Need It: byg ikke funktionalitet, før du faktisk har brug for den.
  • 23Galls lovKomplekse systemer, der virker, er typisk vokset ud af simple systemer, der virkede — de designes sjældent færdige fra scratch.