20 års fejl i softwareudvikling: Hvorfor er krav stadig så problematiske?

Klumme: Krav og kravstyring har alle dage været en af de store udfordringer ved softwareudvikling, og selv om der er skrevet kilometervis af bøger om emnet, gør mange stadig de samme fejl som for 20 år siden. Det skyldes måske først og fremmest menneskene.

Artikel top billede

Et krav er et krav er et krav

I de 20 år, jeg efterhånden har udviklet software, har der været et utal af strategier for at håndtere krav: Nummererede lister af målbare udsagn, use cases, user stories ...

Men til trods for, at navnene på metoder og værktøjer har ændret sig, er det alligevel mange af de samme fejl, der begås, og ofte bliver de brugt på en måde, hvorpå det lige så godt kunne have været en anden metode, der anvendtes.

Om folk skriver en one-liner og kalder det et nummeret krav eller en user story, gør altså ikke den helt store forskel.

Men der er nogle ret klare forskelle i de forskellige tilgange, som det er vigtig at være opmærksom på.

Funktionelle krav

Et af de store problemer ved mange af de klassiske lister af krav, der blev sendt ud til budkrige i de "gode gamle dage", var, at de for det meste kun indeholdt de funktionaliteter, systemerne skulle indeholde, og oftest også kun information om, hvad der skulle ske i de situationer, hvor alting gik, som det burde.

Det betød for eksempel, at der sjældent var informationer om, hvor mange samtidige brugere der skulle være på systemet, om systemet skulle kunne anvendes uden mus, eller om det var i orden at vise en blå skærm, når der skete et eller andet, som ikke lige var en del af den normale arbejdsgang.

Faktisk kan en ting, som at oppetiden hæves fra 95 procent til 99,99 procent, betyde meget mere for prisen end selv store funktioner.

Som leverandør var det selvfølgelig dejligt at kunne skrue på disse parametre, så man kunne finde den rigtige pris, som kunne vinde kontrakten, men det var oftest ikke befordrende for samarbejdet med kunden, når de så efterfølgende fandt ud af, hvordan leverandøren tolkede kravene.

Fokus på ikke-funktionelle krav

For at få bedre kravsspecifikationer begyndte man så i OOA/OOD at have fokus på både de funktionelle og de ikke-funktionelle krav; oftest organiseret efter huskereglerne som FURPS+ og lignende (Functionality, Usability, Reliability, Performance, Supportability...).

Når det gælder de funktionelle krav begyndte man også i højere grad at strukturere kravene til systemet ved at bruge use cases, som ikke kun havde fokus på hovedsuccesscenariet (hvor alt bare gik, som det ideelt set burde), men også beskrev, hvordan fejlsituationerne skulle håndteres.

Hermed fik man så skabt en mere detaljeret specifikation, hvor man også blev tvunget til at forholde sig til rigtig mange ting, som så gjorde, at kodningen efterfølgende blev nemmere (jeg har selv været med til at skrive kravspecifikationen til en stor del af en elektronisk patientjournal, og det blev godt nok til en del sider).

Krav i det agile mindset

Med det agile mindset er der selvfølgelig også kommet en ny tilgang til krav, hvor det hele er blevet til user stories.

Umiddelbart kan det se ud som et tilbageskridt, da man nu oftest er tilbage i en liste af one-liners uden støttehjulene med FURPS+ og use cases til at sikre, at alt kommer med.

Men fejlen er nok at se listen af user stories som en traditionel kravspecifikation.

Et af fundamenterne for user stories er nemlig antagelsen om, at delte dokumenter ikke er det samme som en delt eller fælles forståelse.

User stories er derfor mere overskrifter eller referencer, som den efterfølgende skabelse af en fælles forståelse kan hænges op på.

Hvordan man så efterfølgende mest effektivt skaber og fastholder den fælles forståelse, er meget afhængig af den konkrete situation, og det ligger egentlig uden for user story'en.

Her kan der være situationer, hvor use cases, workflows, mock-ups, personas og mange andre metodikker kan være anvendelige.

Det andet område, hvor jeg synes, at den agile tilgang tilføjer en ekstra dimension til kravstyringen, er i forhold til "definition of done".

Her er det ikke kun eksterne parter som product owners eller kunder, der definere kravene til, hvornår en feature er færdig, men mindst lige så meget udviklingsteamet selv, der får lov til at indgå en intern kontrakt om, hvad teamet mener er godt håndværk og nødvendigt for, at kunden får det rigtige produkt.

Selvom "definition of done" er et meget vigtigt koncept i for eksempel Scrum, er der overraskende mange team, som ikke har indgået sådan en kontrakt, hvilket kan gå ud over kvaliteten og - mindst lige så vigtigt - teamgejsten.

Vær opmærksom på styrker og svagheder

Som jeg har forsøgt at eksemplificere, er der nogle ret store forskelle i tilgangene til krav i de forskellige perioder.

Det gælder lige fra antagelsen om, at kravene skal være så komplette og detaljerede som muligt, til user stories som i praksis bare er overskrifter, som man efterfølgende skal samarbejde om at skabe en fælles forståelse af (husk nu det agile manifest med "samarbejde med kunden frem for kontraktforhandling").

Alligevel ser man mange gange User stories brugt i situationer, hvor målet er en detaljeret og komplet kravspecifikation, som vi kan styre leverandør eller kunde ud fra - hvilket det aldrig var skabt til.

Omvendt synes jeg, det er forkert at se værktøjerne fra de forskellige perioder, som om de udelukker hinanden, men formålet med at bruge dem har måske ændret sig.

For eksempel kan FURPS+ stadig være en god remse at huske på, når man skriver sine user stories, eller mens man skaber den fælles forståelse, så man også får tænkt de ikke-funktionelle aspekter ind.

Og use cases er i nogle situationer den mest effektive måde at få alle variationerne tænkt igennem og fastholdt.

Som sædvanlig handler det altså om at kende styrker og svagheder ved så mange værktøjer som muligt og så bruge det, der giver mening. Det vil sige det, som er med til at skabe den fælles forståelse - også for de sværere elementer, hvor man er som udgangspunkt er uenig.

Læses lige nu

    Event: SAP Excellence Day 2026

    It-løsninger | Nordhavn

    Få konkrete erfaringer med S/4HANA, automatisering og AI i praksis. Hør hvordan danske virksomheder realiserer gevinster og etablerer effektive SAP-løsninger. Vælg fysisk deltagelse hos SAP eller deltag digitalt.

    24. februar 2026 | Gratis deltagelse

    Navnenyt fra it-Danmark

    EG Danmark A/S har pr. 1. december 2025 ansat Søren Jermiin Olesen som Senior Product Manager. Han skal især beskæftige sig med finans- og debitorstyring i det offentlige med ansvar for økonomistyringssystemet EG ØS Indsigt. Han kommer fra en stilling som Product Manager hos KMD A/S. Han er uddannet Cand. oecon. Han har tidligere beskæftiget sig med økonomi bl.a. i Aarhus Kommune og været med til at udvikle NemØkonom før og efter salget til KMD. Nyt job

    Søren Jermiin Olesen

    EG Danmark A/S

    Netip A/S har pr. 15. september 2025 ansat Peter Holst Ring Madsen som Systemkonsulent ved netIP's kontor i Holstebro. Han kommer fra en stilling som Team Lead hos Thise Mejeri. Nyt job
    Norriq Danmark A/S har pr. 1. september 2025 ansat Niels Bjørndal Nygaard som Digital Product Lead. Han skal især beskæftige sig med designe og implementere effektive IT-løsninger. Han har tidligere beskæftiget sig med at være digital consultant og project Manager hos Peytz & Co. Nyt job

    Niels Bjørndal Nygaard

    Norriq Danmark A/S

    Netip A/S har pr. 1. november 2025 ansat Christian Homann som Projektleder ved netIP's kontor i Thisted. Han kommer fra en stilling som Digitaliseringschef hos EUC Nordvest. Han er uddannet med en Cand.it og har en del års erfaring med projektledelse. Nyt job

    Christian Homann

    Netip A/S