En kravspesifikasjon er en strukturert beskrivelse av hva et system skal gjøre — funksjonelle og ikke-funksjonelle krav, prioritert etter verdi og risiko.
Funksjonelle krav beskriver hva systemet skal kunne (for eksempel «bruker kan bestille time»), mens ikke-funksjonelle krav beskriver hvordan det skal være (ytelse, sikkerhet, tilgjengelighet, universell utforming). En god kravspesifikasjon skaper felles forståelse mellom bestiller og utvikler og er den billigste forsikringen mot dyre misforståelser senere. Den bør prioriteres — ikke alt er like viktig — og i smidige prosjekter utvikles og forfines den underveis i stedet for å spikres helt på forhånd.
Relaterte begreper: MVP, Fossefall