Kontraktsregulering av programvareutvikling
Kontraktsregulering av programvareutvikling
Xxxxx X. Xxxxx
"En kontrakt er en avtale som mellom partene etablerer en bindende forpliktelse til å gjøre eller å unnlate å gjøre noe"
Avtale
Aksept
Tilbud
+ =
Ingen formkrav til de fleste typer kontrakter
• Muntlig
• Skriftlig
• Konkludent adferd
• Pre-kontraktuelt ansvar
• Partene
• Leveransen
– Bistandsforpliktelse
– Spesifisert resultat
– Definert tjenestenivå eller kvalitet
• Fremdriftsplan
• Prismodell
– Variabel pris
– Fastpris
– Målpris
– Ytelsesbasert pris
"One time off" kontrakter
Rammeavtaler
Løpende tjenestekontrakter
Samarbeidsavtaler
"Garantier"
Kjøp av ”hyllevare”
Lisensiering av en begrenset rett til å bruke Programvareutvikling
Leveranse / Prosjekt Konsulentbistand / -oppdrag Vedlikehold / Support
Drift / Outsourcing
Tjenester
- F eks Skytjenester; IaaS / PaaS / SaaS
Kompleksitet
Utvikling av noe nytt Sosiotekniske systemer
• Skal brukes av mennesker og kan innebære endringer i arbeidsprosesser og organisering
Abstrakte og usynlige systemer
• I alle fall for brukeren...
Mangel på modenhet
• IT bransjen er enda ung...
• Uklar målsetting og manglende avgrensning
• Udefinerte suksesskriterier
• Usikkerhet håndteres ikke underveis
• Mange endringer underveis i gjennomføringen
• Systeminnføring blir undervurdert – ofte betydelige krav til omstilling i organisasjonen
• Manglende kompetanse og prosjekterfaring hos deltagerne
• Dårlig kommunikasjon mellom kunde og leverandør
• Prosjektene blir for store og komplekse
• Erfaringer underveis blir ikke tilstrekkelig hensyntatt
Xxxxxxx Xxxxxx, 1809 - 1882
"It’s not the strongest species that survive, nor the most intelligent, but the most responsive to change"
Kontrakter for programvareutvikling
Resultatansvar/ "Fossefall"
• Spesifisert resultat
• Fast pris
• Høy grad av forutberegnelighet, men begrenset fleksibilitet
Iterativgjennomføring smodell / "Serie- fossefall"
• Definert gjennomføringsmodell og løpende spesifisering av delleveranser
• Målpris / Estimeringsmodell
• Forutberegneligheten øker og fleksibiliteten reduseres underveis i gjennomføringen
Bistandsforpliktelse / "Ressurskjøp"
• Avtalt hvilke ressurser og omfang de skal arbeide, men uten spesifisert resultat
• Betaling etter medgått tid og kostnader
• Høy grad av fleksibilitet, men begrenset forutberegnelighet
"Avoid the tail wagging the dog"
Det som skal leveres bør bestemme kontraktvalget, ikke motsatt…
Hva skal leveres? Hvordan skal det leveres?
Hvilket ansvar skal leverandøren påta seg?
Hvilken usikkerhet skal plasseres hos leverandøren?
Prismodell?
Valg av kontraktstype
Behov / Krav
Løsning
Utvikling
Verifisering
11
Forvaltning
Personer og
samspill fremfor prosesser og verktøy
Programvare som
virker fremfor omfattende dokumentasjon
Samarbeid med kunden fremfor kontraktsforhandlinger
Å reagere på
endringer fremfor å følge en plan
• Forretningsverdi som viktigste kvalitetsmål
• Kontinuerlig prioritering av funksjonalitet ut fra kost/nytte
• Tett dialog mellom fagpersoner og utviklere
• Autonomi: Selvorganiserte tverrfaglige team
• Korte iterasjoner
• Hyppige leveranser til produksjon
• Beslutninger tas så sent som mulig ("Rolling Wave Planning")
• Evaluering, læring og forbedring underveis
Xxxxxxxx og ulemper med "Smidig"
Xxxxxxxx
• Rask igangsetting
• Lite ressursbruk på kravspesifikasjon og endringshåndtering
• Fleksibilitet
• Brukerinvolvering
• Absorberer læring underveis
• Løpende, gradvis ferdigstillelse
• Kompetanseoverføring
• Effektivitet
Ulemper
• Begrenset ansvarliggjøring av leverandør for resultat og budsjett
Kontrakt
Etablerings- prosjekt
Sprint = Samling av brukerhistorier
Produktkø
Brukerhistorie 1
Brukerhistorie 2
Brukerhistorie 3
Brukerhistorie 4
Brukerhistorie 5
Brukerhistorie 6 Brukerhistorie7
Definition of Done
Forutsigbarhet
Fleksibilitet
Mange kunder erkjenner ikke hva som er konsekvensene av å velge smidige prosesser…
• Kvalitet / Scope
• Kostnader
• Tid
...og inkluderer spesifikasjon av funksjonelle krav i kontrakten
• …men endringshåndtering avvises, fordi dette underminerer smidigheten
• …og avvik mellom avtalt og levert scope utgjør mislighold av kontrakten
Tradisjonell prosess
• Kravs- og løsningsspesifikasjon
• Tilbudsinvitasjon
• Tilbud
• Evaluering / Forhandlinger
• Kontraktsinngåelse
• Kontraktforvaltning
• Avslutning
Smidig prosess
• Tilbudsinvitasjon
• Tilbud
• Evaluering / Forhandlinger
• Kontraktsinngåelse
• Kravs- og løsningsspesifikasjon
• Kontraktforvaltning
• Avslutning
"Fossefall" m/spesifisert resultat og fastpris
"Seriefossefall" m/gradvis spesifisert resultat og "fastpris"
"Body hire" m/bistand betalt etter medgått tid
SSA-T
PS2000 PS2000SOL SSA-B
SSA-S
IKT-Norge Systemutvikling / Systemutviklingsprosjekt
IKT-Norge Konsulentbistand
"Den perfekte kontrakten for programvareutvikling"
…avhenger av bruksområde, men vil kunne være:
"Fossefall"; når resultatet er klart spesifisert, og omfang og kompleksitet er begrenset
"Seriefossefall"; når resultatet kan defineres på overordnet nivå og partene er enige om å følge en avtalt gjennomføringsmodell hvor resultatet i hver delleveranse spesifiseres underveis
"Ressurskjøp"; når det skal utvikles etter smidig metode eller resultatet av andre grunner ikke er klart definert
Eller kanskje en smidig kontraktmodell hvor leverandøren aldri overtar det kontraktsansvaret for funksjonaliteten, men likevel er ansvarlig for ressurser, å følge avtalt gjennomføringsmodell og definerte ikke-funksjonelle krav
Takk for oppmerksomheten!
Xxxxx X. Xxxxx
Partner, advokat
x00 000 00 000