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 5078712f0e
42 changed files with 7341 additions and 0 deletions

View file

@ -0,0 +1,597 @@
# OKR-integrasjoner: Agile, Prosjektportefølje og Verktøy
Hvordan OKR fungerer sammen med andre rammeverk og verktøy i offentlig sektor.
## Innhold
1. [OKR + Scrum](#okr--scrum)
2. [OKR + Kanban](#okr--kanban)
3. [OKR + Prosjektportefølje](#okr--prosjektportefølje)
4. [OKR + SAFe](#okr--safe-skalert-agile)
5. [Verktøyintegrasjon](#verktøyintegrasjon)
---
## OKR + Scrum
### Hvorfor kombinere?
OKR og Scrum utfyller hverandre:
| OKR | Scrum |
|-----|-------|
| **Hvorfor** Strategisk retning | **Hvordan** Operasjonell utførelse |
| Kvartalsvis syklus | 2-ukers sprinter |
| Outcome-fokus (resultater) | Output-fokus (leveranser) |
| Definerer suksess | Strukturerer arbeidet |
**Nøkkelinnsikt**: OKR alene gir ikke struktur for daglig arbeid. Scrum alene gir ikke strategisk retning. Sammen skaper de en komplett arbeidsmodell.
### Timing og synkronisering
```
OKR-syklus (4 måneder i SVV)
├── Sprint 1 (2 uker)
├── Sprint 2 (2 uker)
├── Sprint 3 (2 uker)
├── Sprint 4 (2 uker)
├── Sprint 5 (2 uker)
├── Sprint 6 (2 uker)
├── Sprint 7 (2 uker)
└── Sprint 8 (2 uker) + OKR review/retro
```
**Praktisk tidslinje**:
| Tidspunkt | Aktivitet |
|-----------|-----------|
| 2-4 uker før syklus | OKR-planlegging på organisasjons-/avdelingsnivå |
| 1 uke før syklus | Team-OKR ferdigstilles |
| Syklusstart | Første sprint planning kobles til OKR |
| Midtveis (uke 8-9) | Mid-cycle OKR review |
| Syklusslutt | OKR scoring + retrospektiv |
### Sprint Goals som støtter Key Results
Sprint goals bør eksplisitt kobles til Key Results:
**Eksempel**:
```
Quarterly OKR:
Objective: Redusere saksbehandlingstid for førerkortfornyelse
KR1: Redusere gjennomsnittlig behandlingstid fra 10 til 5 dager
KR2: 95% av saker ferdigbehandlet innen SLA
KR3: Redusere manuell håndtering fra 60% til 20%
Sprint 1 Goal:
"Implementere automatisk dokumentvalidering for å redusere manuell håndtering"
→ Støtter KR3
Sprint 2 Goal:
"Lansere selvbetjeningsportal for statussjekk for å redusere henvendelser"
→ Støtter KR1 og KR2
Sprint 3 Goal:
"Integrere med Folkeregisteret for automatisk datahenting"
→ Støtter KR1 og KR3
```
### OKR i Scrum-seremonier
#### Sprint Planning
- Vis team-OKR før backlog-prioritering
- Still spørsmålet: "Hvilke backlog-items vil best drive våre Key Results?"
- Definer sprint goal som eksplisitt støtter et eller flere KR
#### Daily Standup
Legg til OKR-perspektiv:
- Standard: "Hva gjorde jeg i går? Hva gjør jeg i dag? Blokkere?"
- **Med OKR**: "Hvordan påvirker dagens arbeid våre Key Results?"
#### Sprint Review
- Vis ikke bare hva som ble levert, men **hvordan det påvirker KR-progress**
- "Vi lanserte feature X → dette har redusert behandlingstid med 1.5 dager → vi er nå på 7.5 dager (target: 5)"
#### Sprint Retrospective
Legg til OKR-refleksjon:
- "Flytter arbeidet vårt oss mot Key Results?"
- "Er sprint goals godt nok koblet til OKR?"
- "Bør vi justere OKR basert på læring?"
### Praktisk eksempel: Komplett 4-måneders syklus
**Kontekst**: Vegtrafikksentralen skal forbedre informasjon til trafikanter
```
SYKLUS Q1 (Januar-April)
Uke -2 til 0 (Desember):
├── Avdelingsmøte: Definerer OKR basert på etats-OKR
├── Team-workshop: Bryter ned til team-OKR
└── OKR publiseres i Oboard
Team-OKR:
Objective: Gi trafikanter raskere og mer presis informasjon
KR1: Redusere tid fra hendelse til varsling fra 15 til 5 min
KR2: Øke nøyaktighet på estimert forsinkelse til 90%
KR3: 80% av trafikanter vurderer informasjon som "nyttig"
Sprint 1-2 (Januar):
├── Sprint 1 Goal: "Implementere sanntidsintegrasjon med kameradata"
│ → Støtter KR1
├── Sprint 2 Goal: "Utvikle ML-modell for forsinkelsesestimering"
│ → Støtter KR2
└── Check-in: KR1 på 0.3, KR2 på 0.2, KR3 baseline etablert
Sprint 3-4 (Februar):
├── Sprint 3 Goal: "Lansere automatisk varslingsrute til radio/app"
│ → Støtter KR1
├── Sprint 4 Goal: "Teste og kalibrere forsinkelsesmodell"
│ → Støtter KR2
└── Check-in: KR1 på 0.6, KR2 på 0.5, KR3 på 0.4
Mid-cycle review (Uke 9):
├── Progress: KR1 god, KR2 på sporet, KR3 trenger fokus
├── Beslutning: Prioriter brukerundersøkelse i neste sprint
└── Ingen OKR-justering nødvendig
Sprint 5-6 (Mars):
├── Sprint 5 Goal: "Implementere push-varsler med forbedret UX"
│ → Støtter KR3
├── Sprint 6 Goal: "Gjennomføre brukertest og iterere"
│ → Støtter KR3
└── Check-in: KR1 på 0.8, KR2 på 0.7, KR3 på 0.6
Sprint 7-8 (April):
├── Sprint 7 Goal: "Optimalisere varslingspipeline end-to-end"
│ → Støtter KR1 og KR2
├── Sprint 8 Goal: "Stabilisering og dokumentasjon"
└── Sluttscoring: KR1: 0.9, KR2: 0.8, KR3: 0.75
OKR Retrospektiv:
├── Hva fungerte: Sprint goals koblet til KR ga fokus
├── Forbedring: Start brukerundersøkelse tidligere
└── Læring til neste syklus dokumentert
```
---
## OKR + Kanban
### Når Kanban passer bedre enn Scrum
Kanban egner seg for:
- Driftsteam med kontinuerlig arbeid (support, vedlikehold)
- Team som håndterer uforutsigbar innkommende mengde
- Arbeid som ikke passer i faste tidsrammer
### Flowmetriker som Key Results
Kanban-metriker kan bli kraftige Key Results:
| Metrikk | Beskrivelse | KR-eksempel |
|---------|-------------|-------------|
| **Lead time** | Total tid fra forespørsel til levert | "Redusere lead time for byggesøknader fra 45 til 25 dager" |
| **Cycle time** | Aktiv arbeidstid (ekskl. venting) | "Redusere cycle time for klagesaker fra 8 til 4 dager" |
| **Throughput** | Antall saker ferdigstilt per periode | "Øke throughput til 200 saker/måned" |
| **WIP** | Arbeid under utførelse | "Maksimalt 5 parallelle saker per saksbehandler" |
**Eksempel OKR med flowmetriker**:
```
Objective: Levere raskere og mer forutsigbar saksbehandling
KR1: Redusere lead time for standard søknader fra 30 til 15 dager
KR2: Oppnå 85% av saker ferdigbehandlet innen 20 dager
KR3: Redusere cycle time variasjon (standardavvik fra 10 til 5 dager)
```
### WIP-grenser og OKR-fokus
WIP-grenser (Work In Progress) tvinger fokus:
```
Kanban-tavle med OKR-swimlanes:
┌─────────────────────────────────────────────────────────┐
│ OKR: Raskere saksbehandling (WIP: 8) │
├────────────┬────────────┬────────────┬────────────────┤
│ Kø (∞) │ Analyse(3) │ Beslut.(3) │ Ferdig │
├────────────┼────────────┼────────────┼────────────────┤
│ ████ │ ██ │ █ │ ██████████ │
│ ████ │ █ │ ██ │ │
│ ██ │ │ │ │
└────────────┴────────────┴────────────┴────────────────┘
┌─────────────────────────────────────────────────────────┐
│ Operasjonelt/vedlikehold (WIP: 4) │
├────────────┬────────────┬────────────┬────────────────┤
│ Kø (∞) │ Pågår (2) │ Review (2) │ Ferdig │
├────────────┼────────────┼────────────┼────────────────┤
│ ██ │ █ │ █ │ ████ │
└────────────┴────────────┴────────────┴────────────────┘
```
**Poeng**: OKR-arbeid får dedikert kapasitet gjennom egen swimlane med egen WIP-grense.
### Kanban-kadenser for OKR-oppfølging
| Kadense | Frekvens | OKR-relevans |
|---------|----------|--------------|
| **Replenishment** | Ukentlig | Prioriter arbeid som driver KR |
| **Daily standup** | Daglig | Sjekk flow mot OKR-mål |
| **Delivery review** | Annenhver uke | Vis KR-progress til stakeholders |
| **Service review** | Månedlig | Er vi på sporet til å nå KR? |
| **Strategy review** | Kvartalsvis | OKR retrospektiv |
### Kontinuerlig flow vs. syklusbasert OKR
**Utfordring**: Kanban er kontinuerlig, OKR er syklusbasert.
**Løsning**: Behold kvartalsvise OKR, men la arbeidet flyte kontinuerlig:
1. **Sett OKR ved syklusstart** definerer retning
2. **Replenishment-møter** prioriter alltid arbeid som støtter KR
3. **Mid-cycle review** juster kapasitetsallokering om nødvendig
4. **Syklusslutt** scorer OKR, men ingen "sprint-slutt" for arbeid
---
## OKR + Prosjektportefølje
### Tre typer OKR
| Type | Fokus | Typisk eier | Tidshorisont |
|------|-------|-------------|--------------|
| **Prosjekt-OKR** | Business outcome fra spesifikt prosjekt | Prosjektleder | Prosjektets varighet |
| **Produkt-OKR** | Langsiktig produktverdi | Produkteier | Kvartalsvis/årlig |
| **Team-OKR** | Teamets bidrag til felles mål | Teamleder | Kvartalsvis |
**Eksempel på forskjellen**:
```
PROSJEKT-OKR (nytt saksbehandlingssystem):
Objective: Modernisere saksbehandling med nytt system
KR1: 100% av saker håndteres i nytt system innen juni
KR2: Redusere opplæringstid for nye saksbehandlere med 50%
KR3: Oppnå brukertilfredshet (NPS) på +40
PRODUKT-OKR (saksbehandlingssystemet som produkt):
Objective: Bli det foretrukne saksbehandlingsverktøyet
KR1: 90% av brukere logger inn daglig
KR2: Redusere support-henvendelser med 30%
KR3: 3 nye etater tar i bruk systemet
TEAM-OKR (utviklingsteamet):
Objective: Levere høy kvalitet med god hastighet
KR1: Redusere produksjonsfeil med 40%
KR2: Øke deployment-frekvens til 2x per uke
KR3: Teknisk gjeld under 15% av backlog
```
### Porteføljeprioritering basert på OKR
Bruk OKR-alignment som prioriteringskriterium:
**Prioriteringsmatrise**:
| Prosjekt | Strategisk OKR-alignment | Business value | Kostnad | Prioritet |
|----------|-------------------------|----------------|---------|-----------|
| Prosjekt A | Høy (støtter 2 KR) | Høy | Medium | 1 |
| Prosjekt B | Medium (støtter 1 KR) | Høy | Lav | 2 |
| Prosjekt C | Høy (støtter 2 KR) | Medium | Høy | 3 |
| Prosjekt D | Lav | Medium | Lav | 4 |
**Praktisk prosess**:
1. **Definer portefølje-OKR** Hva skal porteføljen oppnå?
2. **Koble prosjekter til OKR** Hvilke KR støtter hvert prosjekt?
3. **Vekt etter impact** Hvor mye bidrar prosjektet til KR?
4. **Prioriter ressurser** Alloker til høyest OKR-impact først
### Store prosjekter over flere sykluser
Prosjekter som varer 12-36 måneder krever spesiell håndtering:
**Fasebasert tilnærming**:
```
PROSJEKT: Ny nasjonal vegdatabase (18 måneder)
Årlig strategisk OKR:
Objective: Etablere nasjonal vegdatabase som autoritativ kilde
Syklus 1 (Jan-Apr):
Objective: Etablere dataarkitektur og governance
KR1: Datamodell godkjent av alle interessenter
KR2: Governance-struktur implementert
KR3: 3 pilotbrukere integrert
Syklus 2 (Mai-Aug):
Objective: Migrere data fra eksisterende systemer
KR1: 80% av vegdata migrert og validert
KR2: Datakvalitet på 95% for migrerte data
KR3: Nedetid under 4 timer totalt
Syklus 3 (Sep-Des):
Objective: Skalere til nasjonal bruk
KR1: Alle 11 regioner koblet på
KR2: Responstid under 200ms for 95% av spørringer
KR3: 500 aktive brukere
[Fortsetter inn i neste år...]
```
**Nøkkelprinsipper**:
- Årlig OKR gir strategisk stabilitet
- Syklus-OKR gir taktisk fleksibilitet
- Hver syklus har målbare outcomes, ikke bare milepæler
- Mid-cycle reviews vurderer om neste syklus-OKR er riktig
### Milepæler vs. Key Results
| Milepæl | Key Result |
|---------|------------|
| "Lansere system i juni" | "80% av brukere aktivt bruker systemet innen august" |
| "Fullføre integrasjon" | "Integrasjonen reduserer manuelt arbeid med 60%" |
| "Levere rapport" | "Rapporten fører til 3 konkrete beslutninger" |
**Regel**: Milepæler beskriver **hva vi gjør**. Key Results beskriver **hvilken effekt det har**.
**Når bruke milepæler som KR?**
Unntaksvis OK når:
- Capability ikke eksisterer ennå (kan ikke måle effekt)
- Veldig tidlig fase av transformasjon
- Compliance-krav krever spesifikk leveranse
Men: Følg opp med outcome-basert KR i neste syklus.
---
## OKR + SAFe (Skalert agile)
### PI Objectives vs. OKR
| Aspekt | OKR | PI Objectives |
|--------|-----|---------------|
| **Når settes de** | Før PI Planning | Under PI Planning |
| **Hvem setter** | Ledelse + team | Team under planlegging |
| **Fokus** | Strategisk outcome | Leveranse i PI |
| **Tidshorisont** | Kvartal/år | 8-12 uker (PI) |
| **Fleksibilitet** | Kan justeres | Commitment |
**Nøkkelinnsikt**: OKR er **input** til PI Planning. PI Objectives er **output**.
### Hvordan kombinere
```
PROSESSFLYT:
1. Organisasjons-OKR defineres (4-6 uker før PI)
2. Program-OKR avledes (2-3 uker før PI)
3. PI Planning gjennomføres
├── Business context presenteres (inkl. OKR)
├── Team planlegger sprinter
└── PI Objectives formuleres (støtter OKR)
4. PI gjennomføres
├── Sprint goals støtter PI Objectives
└── PI Objectives driver OKR-progress
5. Inspect & Adapt
├── PI Objectives evalueres
└── OKR-progress vurderes
```
### Praktisk eksempel
**Kontekst**: Storprosjekt med 5 team (ART) i Statens vegvesen
```
ORGANISASJONS-OKR (Årlig):
Objective: Øke trafikksikkerhet gjennom bedre varsling
KR1: 50% reduksjon i sekundærhendelser
KR2: 90% av trafikanter varslet innen 5 min
PROGRAM-OKR (Kvartalsvis):
Objective: Lansere integrert varslingssystem v1.0
KR1: System i produksjon med 99.5% uptime
KR2: Integrasjon med 5 trafikksentre
KR3: Positiv feedback fra 80% av operatører
PI PLANNING (PI 4):
Team Alpha (Backend):
PI Objective 1: "Levere API for sanntids trafikkhendelser"
PI Objective 2: "Implementere failover for kritiske tjenester"
Team Beta (Frontend):
PI Objective 1: "Lansere operatør-dashboard v1"
PI Objective 2: "Implementere varslings-workflow"
Team Gamma (Integrasjon):
PI Objective 1: "Koble 3 trafikksentre til plattform"
PI Objective 2: "Etablere datasynk med eksisterende systemer"
ALIGNMENT-SJEKK:
✓ Alle PI Objectives bidrar til Program-OKR
✓ Program-OKR støtter Organisasjons-OKR
✓ Avhengigheter mellom team identifisert
```
### Når bruke OKR vs. PI Objectives
| Situasjon | Bruk |
|-----------|------|
| Definere strategisk retning | OKR |
| Planlegge konkret leveranse | PI Objectives |
| Måle business outcome | OKR (Key Results) |
| Måle team commitment | PI Objectives |
| Kommunisere til ledelse | OKR |
| Koordinere mellom team | PI Objectives |
---
## Verktøyintegrasjon
### OKR i Jira
**Alternativ 1: Native Jira-struktur**
Bruk Jira's eksisterende hierarki:
- **Epic** = Objective
- **Story/Task** = Arbeid som støtter KR
- **Labels** = Koble til spesifikk KR (f.eks. "KR1-saksbehandling")
```
Epic: "Raskere saksbehandling" (Objective)
├── Story: "Automatisere dokumentvalidering" [KR1]
├── Story: "Implementere selvbetjening" [KR1, KR2]
├── Story: "Integrere med Folkeregisteret" [KR3]
└── Story: "Forbedre søkefunksjon" [KR2]
```
**Alternativ 2: OKR Board for Jira (anbefalt for større team)**
Plugin fra Oboard som gir:
- Dedikert OKR-visning
- Automatisk progress-beregning fra issues
- Vekting av issues mot KR
- Dashboard og rapporter
- Confluence-integrasjon
**Oppsett**:
1. Installer OKR Board fra Atlassian Marketplace
2. Definer OKR-intervaller (matcher våre sykluser)
3. Sett opp organisasjonsstruktur (etater → avdelinger → team)
4. Lag OKR og koble til Jira issues
5. Progress oppdateres automatisk når issues lukkes
### OKR i Azure DevOps
**Alternativ 1: Native work item hierarki**
```
Epic: "Objective: Forbedre digital selvbetjening"
├── Feature: "KR1: Øke selvbetjeningsgrad til 70%"
│ ├── User Story: "Som bruker vil jeg..."
│ └── User Story: "Som bruker vil jeg..."
├── Feature: "KR2: Redusere henvendelser med 40%"
│ └── User Story: "..."
└── Feature: "KR3: NPS over 50"
└── User Story: "..."
```
**Alternativ 2: Microsoft Viva Goals**
Enterprise OKR-løsning som integrerer med Azure DevOps:
- Kobler OKR til work items eller shared queries
- Automatisk progress fra work item status
- Integrert med Microsoft 365
**Oppsett for Azure DevOps-integrasjon**:
1. Aktiver Azure DevOps-kobling i Viva Goals
2. Velg koblingmetode:
- **Work items**: Velg spesifikke items som driver KR
- **Shared query**: Definer query som filtrerer relevante items
3. Velg progress-metrikk (% complete, story points, osv.)
4. Progress synkes automatisk hver time
### Oboard + Jira-integrasjon
For organisasjoner som bruker både Jira og ikke-Jira team:
```
┌─────────────────────────────────────────────────┐
│ Oboard OKR App │
│ (Sentralt OKR-dashboard) │
├─────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Jira │ │ Azure │ │ Annet │ │
│ │ (Dev) │ │ DevOps │ │ (via │ │
│ │ │ │ (Ops) │ │ API) │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ │
│ │ │ │ │
│ └──────────────┼──────────────┘ │
│ ↓ │
│ Automatisk progress-sync │
└─────────────────────────────────────────────────┘
```
**Bruksscenario**:
- Utviklingsteam bruker Jira → Progress synkes til Oboard
- Driftsteam bruker Azure DevOps → Progress synkes til Oboard
- Ledelse ser samlet OKR-progress i Oboard
### Automatisk KR-oppdatering: Best practices
**Hva kan automatiseres**:
- Issue/work item completion → KR progress
- Story points ferdig → Prosentvis fremgang
- Query-resultater → Metrikk-KR (f.eks. antall bugs)
**Hva bør IKKE automatiseres fullt ut**:
- Kvalitative vurderinger
- Customer satisfaction (krever faktiske målinger)
- Business outcomes (lag = effekten kommer senere)
**Anbefalt modell**:
```
KR-type | Automatisering
-------------------------|------------------
Leveranse-KR | Automatisk fra issues
Aktivitets-KR | Automatisk fra issues
Metrikk-KR (intern) | Semi-automatisk (dashboard)
Metrikk-KR (ekstern) | Manuell oppdatering
Outcome-KR | Manuell med kilde
```
### Oppsett-sjekkliste
**For Jira-basert OKR**:
- [ ] Bestem struktur: Native epics eller OKR Board plugin?
- [ ] Lag konsistent labeling-konvensjon (f.eks. "S1-KR1")
- [ ] Sett opp Confluence-side for OKR-oversikt
- [ ] Definer workflow for OKR-oppdatering (hvem, når)
- [ ] Integrer med Sprint Planning-prosess
**For Azure DevOps-basert OKR**:
- [ ] Vurder Viva Goals vs. native work items
- [ ] Sett opp shared queries for KR-tracking
- [ ] Lag dashboard-widgets for OKR-visibility
- [ ] Koble til Power BI for avansert rapportering
**For multi-tool organisasjoner**:
- [ ] Vurder sentralt OKR-verktøy (Oboard, Viva Goals, e.l.)
- [ ] Definer integrasjoner per team/verktøy
- [ ] Etabler felles oppdaterings-kadense
- [ ] Lag "single source of truth" for ledelsesrapportering
---
## Ressurser
### Kilder brukt i dette dokumentet
- OKR Institute: [OKR and Scrum Integration](https://okrinstitute.org/unlocking-synergy-how-to-align-okrs-and-scrum-for-maximum-impact/)
- Scrum.org: [How OKRs and Scrum Work Together](https://www.scrum.org/resources/blog/how-okrs-and-scrum-work-together-drive-strategic-execution)
- Mooncamp: [OKR and Agile](https://mooncamp.com/blog/okr-and-agile)
- Martin Fowler: [Team OKRs](https://martinfowler.com/articles/team-okr.html)
- Atlassian: [OKR in Jira and Confluence](https://www.atlassian.com/blog/add-ons/okr-jira-confluence)
- Microsoft Learn: [Viva Goals Azure DevOps Integration](https://learn.microsoft.com/en-us/viva/goals/azure-devops-integration)
- Oboard: [OKR Board for Jira](https://oboard.io/okr-board-for-jira)
- SAFe: [PI Objectives](https://scaledagileframework.com/pi-objectives/)
- The Burn Down: [OKRs vs PI Objectives in SAFe](https://theburndown.com/okrs-vs-pi-objectives-in-safe/)
### Relaterte ressurser i denne skillen
- `okr-framework.md` Grunnleggende OKR-metodikk
- `meeting-guides.md` Agendaer for OKR-møter (inkl. sprint planning med OKR)
- `okr-implementation.md` Innføringsguide
- `okr-offentlig-governance.md` Kobling til tildelingsbrev og politisk styring