2016 02-11 teknisk gjeld - sw2016
TRANSCRIPT
NAV, 28.02.2016 Side 2
Innhold
Hva er teknisk gjeld?
NAVs tilnærming
Dokumentasjon av teknisk gjeld
Oppsummering
NAV, 28.02.2016 Side 3
Hvordan definere vi...
Teknisk gjeld er en metafor som viser til
konsekvensene av dårlig programvareutvikling
(Cunningham, 1992)
NAVs tilnærming til teknisk gjeld er i stor grad basert på artikkelen
An exploration of technical debt av Edith Tom, Aybüke Aurum,Richard Vidgen i
The Journal of Systems and Software 21. januar 2013.
Artikkelen oppsummerer en metastudie av litteratur om teknisk gjeld
NAV, 28.02.2016 Side 4
Hvordan oppstår teknisk gjeld?
Bevisst – Tar et bevisst valg, og er dermed
klar over at det oppstår teknisk
gjeld (Forsvarlig/uforsvarlig)
Ubevisst – Læring underveis finner ut at man
skulle gjort ting annerledes
(Forsvarlig)
– Mangel på kunnskap, uviten om
at det oppstår teknisk gjeld
(Uforsvarlig) UFORSVALIG
(Reckless)
FORSVARLIG (Prudent)
BE
VIS
ST
(D
elib
era
te)
UB
EV
ISS
T
(Ina
dve
rten
t)
«Vi har ikke tid
for....»
«Vi må la det
være og
håndtere det
senere...»
«Nå vet vi
hvordan vi
skulle ha gjort
det...»
«Hva er
lagdeling...»
Teknisk gjeld kvadranten
TechnicalDebtQuadrant / Martin Fowler / 2009
NAV, 28.02.2016 Side 5
Vi kategoriserer teknisk gjeld i følgende dimensjoner
Dimensjoner Beskrivelse Stikkord
Kode Skapes av dårlig skrevet kildekode. Teknisk gjeld i
kode vil også øke når mengden kode øker
uavhengig av kvalitet.
• Duplisering
• Kompleksitet
• Lesbarhet
• Struktur
Design og
arkitektur
Mangler i design og arkitektur. Avvik fra prinsipper,
krav og målbilder.
• Avvik fra prinsipper
• Avvik fra design og
arkitekturkrav
• Avvik fra målbilder
Teknisk miljø Kan oppstå i det tekniske miljøet til en løsning, i
tillegg til utviklingsrelaterte prosesser. Utdatert
komponenter, kjøretidsmiljø og/eller
operativsystem er inkludert her.
• Hardware
• Infrastruktur
• OS, plattformer, rammeverk
• Støttesystemer
• Utviklingsprosesser (f.eks.:
manuelle prosesser som kan
automatiseres)
Dokumentasjon Mangelfull og/eller lav kvalitet på dokumentasjon.
Dette kan være designdokumentasjon,
dokumentasjon av kode og systemdokumentasjon.
• Mangel på dokumentasjon
• Dokumentasjon med lav
kvalitet
Testing Mangelfull testdekning av en løsning og/eller
manuell testing som kan automatiseres.
• Mangelfull testdekning
• Manuelle vs. automatiserte
tester
NAV, 28.02.2016 Side 6
Sentralt for å identifisere teknisk gjeld er krav til produktkvalitet
NAV har etablert en modell med 10 kvalitetsegenskaper
Modellen er basert på ISO 25010, og tilpasset til NAV
Modellen består av 3 nivåer
Kvalitetskrav knyttes til kvalitetsegenskapene
NAV, 28.02.2016 Side 7
Teknisk gjeld er avvik fra kvalitetskrav
NAV har utarbeidet en fast
kravliste
Alle krav er knyttet opp
mot en eller flere
kvalitetsegenskaper
Kravene gjelder i
utgangspunktet for alle
våre IT-løsninger
Avvik fra kvalitetskravene
anses som teknisk gjeld
NAV, 28.02.2016 Side 8
Innhold
Hva er teknisk gjeld?
NAVs tilnærming
Dokumentasjon av teknisk gjeld
Oppsummering
NAV, 28.02.2016 Side 10
FORVALTNINGS-
KONTOR IT-avdelingen
PROSJEKT UTVIKLINGSAVDELINGEN
LØSNINGS-
BESKRIVELSE
TEKNISK
GJELD
ENDRINGS-
PROSESSEN
TEKNISK
GJELD
ARKITEKTUR-
BESLUTNINGER
UTVIKLINGS-
MØTET
STYRINGS-
GRUPPE
RAPPORTERING
8
1 2
10
7
3
6
5
A B C
D
4
9 RAPPORTERING
Prinsipper for håndtering og forvaltning av teknisk gjeld
NAV, 28.02.2016 Side 11
Innhold
Hva er teknisk gjeld?
NAVs tilnærming
Dokumentasjon av teknisk gjeld
Oppsummering
NAV, 28.02.2016 Side 12
Hvordan vi beskriver teknisk gjeld
Kvalitetskrav
Teknisk gjeld
Beskrivelse
Løsningsbeskrivelse
Konsekvensvurdering
Årsak Kostnad
Estimat
Kvalitets-egenskap
Kraveier
Dimensjon (av teknisk
gjeld)
Status
Målbilde
Eier (system-
team)
Verdikjede/ komponent
Oppstått
NAV, 28.02.2016 Side 13
Teknisk gjeld dokumenteres som vanlige epos, men med noe tilleggsinformasjon
Ny fane opprettet i
Jira for informasjon
knyttet til teknisk
gjeld
Angi «Konsekvenser»
av den teknisk gjelden
Angi «Gevinst og 5
år» fra
gevinstberegningen
Angi «Estimat»
Angi «Ekstra
kostnader»
(F.eks. lisenser etc.)
Angi «Dimensjon» av
teknisk gjeld dette
eposet omhandler
Angi
«Kvalitetsegenskap(er)»
som påvirkes av den
tekniske gjelden
NAV, 28.02.2016 Side 17
Innhold
Hva er teknisk gjeld?
NAVs tilnærming
Dokumentasjon av teknisk gjeld
Oppsummering
NAV, 28.02.2016 Side 18
Ønsker vi alltid å unngå teknisk gjeld?
Teknisk gjeld er ikke nødvendig dårlig – bevist midlertidig
forenkling av løsning kan gi tidligere leveranse (men
medfører rydding senere)
Null teknisk gjeld = «gold plating», det vil si alt for dyre
løsninger – tenk 80/20 eller 90/10
Brudd på kvaliteskrav medfører teknisk gjeld – Men beviste og godkjente varige avvik er ikke teknisk gjeld
NAV, 28.02.2016 Side 19
Oppsummering teknisk gjeld i NAV Stegvis modning og innføring
– Arbeidet startet i 2012 med bevisstgjøring rundt ikke-funksjonelle
krav og mange krav ble utarbeidet
– ISO 25010 ble etter hvert valgt som modell og regime for å forvalte
kravene kom på plass i 2014
– I 2014 ble budsjett og produktkøarbeid for tekniske forbedringer
samlet
– Verktøystøtte for registrering av teknisk gjeld i produktkøen ble
etablert i 2015
Bevisstgjøring har effekt både hos forretningssiden, IT og
prosjektene
Forvaltningsbudsjett og produktkø gir incitament
Etablert produktkø gjør det enklere å utbedre teknisk gjeld
når prosjekter gjennomføres og erfaringstall for senere
prosjekter