# 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 DDT)
├── 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 tjenestefornyelse
  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 Direktoratet for digital tjenesteutvikling

```
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 (AVVIKLET)**

> **Merk:** Microsoft annonserte i september 2024 at Viva Goals avvikles.
> Produktet ble fullstendig faset ut i 2025. Opprinnelig Ally.io (kjøpt av
> Microsoft i 2021), ble det til Viva Goals, og er nå nedlagt.
>
> **For organisasjoner som brukte Viva Goals:**
> - **Oboard** — norskutviklet, Microsoft 365-integrasjon, GDPR-compliant EU-hosting
> - **Quantive Results** (tidl. Gtmhub) — enterprise OKR med AI-features
> - **Perdoo** — god balanse funksjon/pris for mellomstore organisasjoner
>
> Se seksjon "Andre OKR-plattformer" i `okr-sources.md` for full oversikt.

### 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 Oboard 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, Quantive, Perdoo, 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 er avviklet (2024). Se Oboard eller Quantive for Azure DevOps-integrasjon.
- 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
