feat: add okr plugin v1.0.0 — OKR guidance for Norwegian public sector

Expert OKR guidance based on Google/Doerr methodology, adapted for
4-month tertial cycles and Norwegian government accountability.

Components:
- 8 commands (skriv, kvalitet, kaskade, sporing, møter, innføring, governance, oppsett)
- 5 agents (kvalitetssjekker, kaskadebygger, fremdriftssporer, møtefasilitator, styringsrådgiver)
- 3 hooks (UserPromptSubmit context injection, PreCompact state preservation, Stop reminder)
- 15 reference files covering methodology, governance, meetings, antipatterns
- Linear MCP integration for OKR tracking

Previously in ktg-privat, now open-sourced.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-04-08 13:32:45 +02:00
commit 906abb8201
42 changed files with 7341 additions and 0 deletions

View file

@ -0,0 +1,578 @@
# OKR Framework for Offentlig Sektor
## Grunnleggende metodikk
Vår OKR-metodikk er basert på Google's tilnærming (popularisert av John Doerr i "Measure What Matters"), men tilpasset offentlig sektor i Norge.
### Hva er en OKR?
**OKR = Objective + Key Results**
- **Objective (Mål)**: Et kvalitativt, inspirerende mål som beskriver hva du vil oppnå
- **Key Results (Nøkkelresultater)**: 2-5 målbare utfall som viser at målet er nådd
### Forskjell fra tradisjonelle KPI-er
- **KPI-er**: Måler helse og vedvarende ytelse ("business as usual")
- **OKR-er**: Driver endring og forbedring (ambisiøse mål som flytter nåla)
En analogi: KPI er som speedometeret i bilen (overvåker fart), OKR er destinasjonen du skal til.
## Vår 4-måneders syklus
### Årlig struktur
- **Syklus 1**: Januar - April
- **Syklus 2**: Mai - August
- **Syklus 3**: September - Desember
### Rytme innen hver syklus
**Måned 1 - Planlegging**
- Uke 1: Review av overordnede strategimål
- Uke 1-2: Brainstorm og draft OKR
- Uke 2: Alignment-møter mellom team og ledelse
- Uke 2: Finalisere OKR, publisere i Oboard
**Måned 2-3 - Utførelse**
- Månedlig check-in (15-30 min)
- Oppdater status i Oboard
- Identifiser blokkere og juster kurs
**Måned 4 - Review og Retrospektiv**
- Tidlig i måned: Score alle Key Results
- Midt i måned: Review-møte (presenter resultater)
- Slutten av måned: Retrospektiv (lær og forbedre)
- Parallelt: Start planlegging av neste syklus
## Strategiske vs taktiske OKR
I offentlig sektor er det viktig å skille mellom to nivåer av OKR:
### Strategiske OKR (årlige)
**Hvem setter dem:** Toppledelse/etatsledelse
**Horisont:** 12 måneder (kalenderår eller budsjettår)
**Antall:** 3-4 objectives for hele organisasjonen
Strategiske OKR etablerer den overordnede retningen og kommuniserer hva organisasjonen skal oppnå i løpet av året. De er ambisiøse, inspirerende og koblet til virksomhetsstrategi og tildelingsbrev.
**Eksempel - Statens vegvesen strategisk OKR:**
- **Objective**: Etablere SVV som ledende på datadrevet trafikksikkerhet
- **KR1**: Redusere antall alvorlige ulykker på riksveinettet med 10%
- **KR2**: Implementere prediktiv vedlikeholdsmodell på 70% av vegstrekningene
- **KR3**: Oppnå 90% digital selvbetjening på førerkorttjenester
### Taktiske OKR (syklusbaserte)
**Hvem setter dem:** Avdelinger og team
**Horisont:** 4 måneder (per syklus)
**Antall:** 2-4 objectives per team
Taktiske OKR operasjonaliserer de strategiske målene i konkrete, oppnåelige leveranser innenfor en syklus. De gir teams autonomi til å bestemme *hvordan* de bidrar til strategien.
**Eksempel - Team trafikksikkerhet, Syklus 1:**
- **Objective**: Etablere sanntids ulykkesanalyse for raskere respons
- **KR1**: Implementere automatisk varsling ved alvorlige ulykker (< 5 min)
- **KR2**: Redusere gjennomsnittlig responstid fra 45 til 30 minutter
- **KR3**: Analysere 100% av vinterulykker med AI-støtte
### Hvordan de henger sammen
```
Strategisk OKR (årlig) → Taktisk OKR (syklus)
─────────────────────────────────────────────────────────
Etatens KR → Teamets Objective
"Redusere ulykker med 10%" → "Etablere sanntids analyse"
→ "Forbedre vintervedlikehold"
→ "Øke synlighet ved skoler"
```
**Prinsipper:**
- Strategiske Key Results kan bli taktiske Objectives (men ikke slavisk)
- Teams har autonomi til å velge *hvordan* de bidrar
- Ikke alle strategiske KR må dekkes av alle teams
- Krysskobling og avhengigheter avklares i alignment-møter
### Committed vs Aspirational
**Committed (forpliktet):**
- Forventer 100% måloppnåelse
- Typisk: Regulatoriske krav, tildelingsbrev-mål, lovpålagte oppgaver
- Eksempel: "100% av førerkortklager behandlet innen 6 uker"
**Aspirational (ambisiøst):**
- 70-80% måloppnåelse er suksess
- Typisk: Innovasjon, forbedring, nye initiativ
- Eksempel: "Lansere AI-basert chatbot for førerkortspørsmål"
I offentlig sektor anbefales en balanse: 60% committed, 40% aspirational.
## Komplett årshjul for OKR
### Visuell oversikt
```
Jan Feb Mar Apr Mai Jun Jul Aug Sep Okt Nov Des
├─────────────────┼─────────────────────┼─────────────────────┤
Syklus 1 │▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓│ │ │
Syklus 2 │ │▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓│ │
Syklus 3 │ │ │▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓│
├─────────────────┼─────────────────────┼─────────────────────┤
Strategi │ │ ◆ │ ◆◆◆◆◆│
└─────────────────┴─────────────────────┴─────────────────────┘
◆ = Strategisk aktivitet ▓ = Syklusgjennomføring
```
### Detaljert årskalender
**November (året før)**
- Uke 45-46: Strategisk planlegging starter
- Input: Tildelingsbrev (utkast), virksomhetsplan, styringssignaler
- Ledergruppen utarbeider forslag til årlige OKR
**Desember**
- Uke 49-50: Strategiske OKR ferdigstilles
- Presenteres på ledermøte/allmøte
- Forberedelse til Syklus 1-planlegging
**Januar** (Syklus 1 start)
- Uke 1: Tildelingsbrev mottas, OKR justeres ved behov
- Uke 1-2: Teams utarbeider taktiske OKR for Syklus 1
- Uke 2: Alignment-workshop mellom teams
- Uke 3: Kick-off - alle OKR publiseres i Oboard
**Februar - Mars**
- Ukentlige team-check-ins (15 min)
- Månedlig OKR-status til ledergruppen
- Identifiser blokkere og juster kurs
**April** (Syklus 1 avslutning + Syklus 2 start)
- Uke 14: Score alle KR, forbered review
- Uke 15: Syklus 1 review-møte (presentasjon av resultater)
- Uke 15-16: Retrospektiv + planlegging Syklus 2
- Uke 16-17: Syklus 2 kick-off
**Mai - Juli**
- Gjennomføring Syklus 2
- Juni: Halvårs strategisk statusmøte (er vi på rett kurs?)
- Eventuelle justeringer av strategiske OKR ved store endringer
**August** (Syklus 2 avslutning + Syklus 3 start)
- Uke 32: Score alle KR
- Uke 33: Review + retrospektiv
- Uke 34-35: Syklus 3 planlegging og kick-off
**September - Oktober**
- Gjennomføring Syklus 3
- Oktober: Statsbudsjettet fremlegges (påvirker neste år)
- Forberedelse til årlig review
**November - Desember** (Syklus 3 avslutning + nytt år)
- Uke 48-49: Syklus 3 review
- Uke 49-50: Årlig OKR-retrospektiv
- Uke 50-51: Strategisk planlegging neste år
- Desember: Statsbudsjettet vedtas av Stortinget
## Integrasjon med budsjettprosess
OKR i offentlig sektor må koordineres med statens budsjettprosess for å være realistiske og gjennomførbare.
### Nøkkeldatoer i statsbudsjettet
| Dato | Hendelse | OKR-implikasjon |
|------|----------|-----------------|
| Oktober 15 | Statsbudsjett fremlegges | Indikasjon på ressursrammer |
| November | Stortingsbehandling | Avklaringer underveis |
| Desember (tidlig) | Budsjett vedtas | Rammer bekreftet |
| Januar | Tildelingsbrev sendes | Endelige mål og rammer |
### Praktisk synkronisering
**Fase 1: Strategisk planlegging (nov-des)**
- Bruk statsbudsjett-forslaget som foreløpig ramme
- Lag "robuste" OKR som tåler mindre justeringer
- Hold 10-15% buffer for usikkerhet
**Fase 2: Tildelingsbrev-justering (januar)**
- Når tildelingsbrevet kommer, verifiser at OKR er realistiske
- Juster ambisjonsnivå eller scope ved behov
- Dokumenter eventuelle avvik fra opprinnelig plan
**Fase 3: Løpende ressursstyring**
- Link OKR til ressursallokering i budsjett
- Bruk OKR-prioritering ved omfordeling
- Rapporter OKR-progress i tertialrapporter
### OKR og tildelingsbrev
Tildelingsbrevet inneholder ofte mål som kan oversettes direkte til OKR:
```
Tildelingsbrev-mål → OKR-formulering
─────────────────────────────────────────────────────────
"Redusere saksbehandlingstid" → KR: "Saksbehandlingstid fra
30 til 20 dager"
"Øke brukertilfredsheten" → KR: "Brukertilfredshet fra
3.5 til 4.2 (skala 1-5)"
"Digitalisere X tjenester" → Objective: "Fulldigitalisere
brukerreisen for tjeneste X"
```
**Tips:** Ikke kopier tildelingsbrevet blindt - oversett til inspirerende, outcome-fokuserte OKR som gir mening for teamene.
### Ressursallokering basert på OKR
OKR kan brukes aktivt i ressursdiskusjoner:
1. **Prioritering**: OKR-er rangert etter viktighet styrer hvor ressurser settes inn
2. **Trade-offs**: "Hvis vi prioriterer OKR A, må vi nedskalere OKR B"
3. **Transparens**: Alle ser koblingen mellom mål og ressursbruk
4. **Omfordeling**: Ved endrede forutsetninger, juster ressurser til prioriterte OKR
## Kjennetegn på gode OKR
### Gode Objectives
- ✅ Inspirerende og meningsfull
- ✅ Klar retning ("Hva vil vi oppnå?")
- ✅ Tidsbestemt (innenfor syklus)
- ✅ Aligned med overordnet strategi
- ✅ Fokusert på outcome, ikke aktivitet
❌ **Dårlig**: "Forbedre kundeservice"
✅ **Bedre**: "Levere raskere og mer responsiv kundeservice for førerkortsøknader"
### Gode Key Results
- ✅ Målbar (tall, prosent, eller klare milepæler)
- ✅ Outcome-basert, ikke output
- ✅ Ambisiøs men oppnåelig
- ✅ Med baseline og target
- ✅ Verifiserbar (kan avgjøre om oppnådd)
❌ **Dårlig**: "Gjennomføre 5 kundeservicetraininger"
✅ **Bedre**: "Øke kundetilfredshet fra 75% til 90% (via survey)"
## Scoring system
**Skala**: 0.0 til 1.0 (eller 0% til 100%)
- **1.0** = Target nådd 100%
- **0.7-0.8** = God score for ambisiøse (stretch) OKR
- **0.5-0.6** = Under forventning, men verdifullt forsøk
- **<0.5** = Trenger grundig analyse: feil ambisjonsnivå, eller eksterne blokkere?
### Typer OKR
- **Committed**: Må nås (typisk 0.9-1.0 forventet). Eksempel: Regulatoriske krav.
- **Aspirational (Stretch)**: Ambisiøse mål (0.6-0.8 er suksess). Eksempel: Innovasjon, store forbedringer.
**Viktig**: Scorer brukes til læring, IKKE personlig evaluering eller bonus.
## Progresjonsberegning og prognosering
### Progresjonsformel
Progresjon (score) beregnes med formelen:
```
Score = (Nåværende verdi − Baseline) / (Target − Baseline)
```
**Eksempel:**
```
KR: Øke NPS fra 30 til 50
Nåværende verdi: 40
Score = (40 − 30) / (50 − 30) = 10 / 20 = 0.5 (50%)
```
**Flere eksempler:**
| KR | Baseline | Target | Nåværende | Score |
|----|----------|--------|-----------|-------|
| Saksbehandlingstid fra 30 til 20 dager | 30 | 20 | 25 | 0.5 |
| Brukertilfredshet fra 3.5 til 4.5 | 3.5 | 4.5 | 4.2 | 0.7 |
| Digitale søknader fra 40% til 80% | 40% | 80% | 70% | 0.75 |
| Responstid fra 60 til 30 sekunder | 60 | 30 | 38 | 0.73 |
**Merk:** For KR-er der lavere er bedre (f.eks. redusere tid), fungerer formelen fortsatt korrekt fordi både teller og nevner blir negative.
### Aggregert score
OKR-scorer aggregeres oppover i hierarkiet:
**Nivå 1: Key Result → Objective**
```
Objective-score = Gjennomsnitt av alle KR-scorer
Eksempel:
KR1: 0.7
KR2: 0.5
KR3: 0.8
───────────
Objective-score = (0.7 + 0.5 + 0.8) / 3 = 0.67
```
**Nivå 2: Objective → Team**
```
Team-score = Gjennomsnitt av alle Objective-scorer
Eksempel:
Objective A: 0.67
Objective B: 0.80
Objective C: 0.55
───────────────────
Team-score = (0.67 + 0.80 + 0.55) / 3 = 0.67
```
**Nivå 3: Team → Organisasjon**
```
Organisasjon-score = Gjennomsnitt av alle Team-scorer
```
#### Vektet gjennomsnitt
I noen tilfeller gir det mening å vekte KR-er ulikt:
```
Vektet score = Σ(KR-score × vekt) / Σ(vekt)
Eksempel med vekting:
KR1: 0.7 (vekt: 2 - kritisk)
KR2: 0.5 (vekt: 1 - normal)
KR3: 0.8 (vekt: 1 - normal)
───────────────────────────
Vektet score = (0.7×2 + 0.5×1 + 0.8×1) / (2+1+1) = 2.7 / 4 = 0.675
```
**Når bruke vekting:**
- Når noen KR-er er tydelig viktigere enn andre
- Når ressursinnsatsen varierer vesentlig mellom KR-er
- Når noen KR-er er "committed" og andre "aspirational"
**Anbefaling:** Start med uvektet gjennomsnitt. Introduser vekting kun hvis det gir tydelig verdi.
### Confidence levels (konfidensnivåer)
Mens *score* måler faktisk oppnåelse, måler *confidence* sannsynligheten for å nå målet. Confidence oppdateres underveis i syklusen, score beregnes ved slutt.
#### Tre-nivå skala
| Nivå | Farge | Betydning | Handling |
|------|-------|-----------|----------|
| **On Track** | 🟢 Grønn | >70% sannsynlighet for å nå target | Fortsett som planlagt |
| **At Risk** | 🟡 Gul | 30-70% sannsynlighet | Identifiser blokkere, vurder tiltak |
| **Off Track** | 🔴 Rød | <30% sannsynlighet | Umiddelbar handling kreves |
#### Vurdering av confidence mid-syklus
Ved hver check-in, still følgende spørsmål:
1. **Progresjon vs forventet:** Er vi der vi burde være gitt tid brukt?
2. **Trend:** Akselererer vi, holder vi fart, eller bremser vi?
3. **Blokkere:** Finnes det kjente hindringer som ikke er løst?
4. **Ressurser:** Har vi det vi trenger for å fullføre?
5. **Eksterne faktorer:** Har noe endret seg i omgivelsene?
**Tommelfingerregel for tidsjustering:**
| Tidspunkt i syklus | Forventet progresjon (lineær) |
|-------------------|-------------------------------|
| 25% av tiden (måned 1) | ~25% av target |
| 50% av tiden (måned 2) | ~50% av target |
| 75% av tiden (måned 3) | ~75% av target |
| 100% av tiden (måned 4) | 100% av target |
**Eksempel:**
```
KR: Øke NPS fra 30 til 50 (4-måneders syklus)
Ved slutten av måned 2: NPS = 35
Forventet ved 50%: 30 + (50-30) × 0.5 = 40
Faktisk: 35
Gap: 5 poeng under forventet → At Risk 🟡
```
#### Starter på 50%
Ved syklusstart bør confidence-scoren være rundt 50% (0.5). Dette reflekterer usikkerhet - vi vet ennå ikke om vi vil lykkes. Etter hvert som vi implementerer tiltak og ser resultater, bør confidence bevege seg:
- **Oppover mot grønn:** Tiltak virker, vi er på vei mot målet
- **Nedover mot rød:** Blokkere oppstår, progresjon stopper opp
Hvis confidence alltid starter og forblir på 90%+, setter dere sannsynligvis ikke ambisiøse nok mål.
### Prognosering
#### Lineær projeksjon
Den enkleste metoden for å forutsi sluttresultat:
```
Prognose = Baseline + (Nåværende progresjon / Tid brukt) × Total tid
Eksempel:
KR: Øke konvertering fra 10% til 20%
Tid: 2 av 4 måneder brukt (50%)
Nåværende: 14%
Progresjon: (14-10) / (20-10) = 0.4 (40%)
Rate = 40% progresjon / 50% tid = 0.8
Prognose ved syklusslutt: 10 + (0.8 × 100% × 10) = 18%
```
#### Tidsjustert forventning
Beregn om du er foran eller bak skjema:
```
Forventet verdi = Baseline + (Target - Baseline) × (Tid brukt / Total tid)
Eksempel:
KR: Redusere ventetid fra 60 til 30 minutter
Ved måned 2 av 4 (50% tid):
Forventet = 60 + (30-60) × 0.5 = 60 - 15 = 45 minutter
Faktisk = 50 minutter
Status: 5 minutter bak skjema
```
#### Når justere target vs øke innsats
| Situasjon | Anbefaling |
|-----------|------------|
| Konsekvent under forventet, men innenfor kontroll | Øk innsats, legg til ressurser |
| Blokkert av eksterne faktorer utenfor kontroll | Juster target med dokumentert begrunnelse |
| Forutsetninger viste seg feil | Juster KR til mer meningsfullt mål |
| Markedet/konteksten har endret seg fundamentalt | Revurder hele Objective |
**Prinsipp:** Juster target kun når det ikke lenger er et meningsfullt mål, ikke fordi det er vanskelig å nå.
### Standardisert rapporteringsformat
Bruk følgende format for konsistent rapportering i check-ins og reviews:
```
┌─────────────────────────────────────────────────────────────┐
│ KR: [Beskrivelse med baseline → target] │
├─────────────────────────────────────────────────────────────┤
│ Status: [Nåværende] / [Target] ([Score]) │
│ Confidence: [On Track 🟢 | At Risk 🟡 | Off Track 🔴] │
│ Prognose: [Forventet verdi ved syklusslutt] │
│ Tiltak: [Neste konkrete handling + tidsfrist] │
└─────────────────────────────────────────────────────────────┘
```
**Eksempel utfylt:**
```
┌─────────────────────────────────────────────────────────────┐
│ KR: Øke NPS fra 30 til 50 │
├─────────────────────────────────────────────────────────────┤
│ Status: 40/50 (0.5) │
│ Confidence: At Risk 🟡 │
│ Prognose: 45 ved syklusslutt │
│ Tiltak: Lansere feedback-loop innen uke 8 │
└─────────────────────────────────────────────────────────────┘
```
#### Aggregert teamrapport
For team-nivå rapportering:
```
┌─────────────────────────────────────────────────────────────┐
│ TEAM: [Teamnavn] Syklus: [X] 20XX │
├─────────────────────────────────────────────────────────────┤
│ Samlet score: 0.XX (XX%) │
│ On Track: X av Y OKR-er │
│ At Risk: X av Y OKR-er │
│ Off Track: X av Y OKR-er │
├─────────────────────────────────────────────────────────────┤
│ Highlights: [Største fremgang denne perioden] │
│ Risiko: [Største utfordring som trenger fokus] │
│ Behov: [Evt. eskalering eller støtte] │
└─────────────────────────────────────────────────────────────┘
```
#### Kilder og beste praksis
Metodikken over er basert på etablert OKR-praksis fra:
- Mooncamp OKR Scoring Guide
- Atlassian OKR Play
- Businessmap/Kanbanize OKR-beregninger
- OKR International skalering
## Vanlige feil og løsninger
### 1. For mange OKR
**Problem**: Team med 10 objectives mister fokus.
**Løsning**: Maksimalt 3-5 Objectives per team per syklus.
### 2. Business-as-usual som OKR
**Problem**: "Vedlikeholde nåværende tjenester" er ikke et mål.
**Løsning**: OKR skal drive forbedring. Spør: "Hva kan vi forbedre utover dagens nivå?"
### 3. Aktivitetsorienterte KR
**Problem**: "Holde 5 møter", "Lage en rapport"
**Løsning**: Fokuser på outcome av aktiviteten. "Øke X med Y% via rapport-innsikter"
### 4. Vage eller ikke-målbare KR
**Problem**: "Øke stakeholder happiness"
**Løsning**: Definer hvordan det måles: "Stakeholder satisfaction score øker fra 3.5 til 4.5 (skala 1-5)"
### 5. Mangel på alignment
**Problem**: Team setter mål i siloer uten å se helheten.
**Løsning**: Cascading-prosess (se under) og åpne OKR for alle.
### 6. "Set and forget"
**Problem**: Skriver OKR i januar, glemmer dem til april.
**Løsning**: Månedlige check-ins, synlig tracking i Oboard, kultur for progress-oppdatering.
## Cascading og alignment
### Prosess
1. **Topp-nivå**: Ledelsen setter organisasjonens OKR (årlig eller per syklus)
2. **Avdelingsnivå**: Hver avdeling utleder sine OKR som støtter topp-nivå
3. **Teamnivå**: Team lager egne OKR som bidrar til avdelings-OKR
4. **Kryssvalidering**: Sjekk at ingen team jobber mot hverandre
### Alignment-sjekk
Hvert team skal kunne svare:
- "Hvilket overordnet mål støtter vår OKR?"
- "Hvis vi lykkes, hvordan påvirker det organisasjonen?"
### Verktøy for alignment
- **Oboard**: Link team OKR til parent OKR
- **Alignment workshops**: Quarterly møter mellom team for å koordinere
- **Transparency**: Alle OKR er synlige på Oboard/intranett
## Håndtering av kvalitative mål
Offentlig sektor har mange kvalitative mål (f.eks. "øke tillit", "forbedre sikkerhet").
**Tilnærming**:
- **Surveys/undersøkelser**: Tilfredshet, tillit, opplevelse (før/etter måling)
- **Kriterier-basert**: "3 av 5 kriterier for X er oppfylt"
- **Ekspertbedømmelse**: "Godkjent av uavhengig revisor"
- **Milepæler**: "Policy X vedtatt av Stortinget innen Q3"
Selv kvalitative mål bør ha en definert måte å verifisere suksess på.
## Copilot Studio/Oboard integrasjon
- **Oboard** er vår primære OKR-plattform
- Input OKR: Objective, KR, owner, baseline, target, current progress
- Check-ins: Logg progress regelmessig
- Rapportering: Generer dashboards for reviews
**PowerPoint**: Brukes til presentasjoner av OKR i møter
## Nøkkelprinsipper å huske
1. **Focus**: Færre, sterkere mål
2. **Alignment**: Alle bidrar til samme retning
3. **Ambition**: 0.7 er suksess, ikke 1.0
4. **Transparency**: OKR er åpne
5. **Continuous Tracking**: Følg opp månedlig
6. **Learning over Punishment**: Scorer brukes til forbedring, ikke straff