Monday, August 20, 2007

Lättrörliga kontrakt

Vi IT-leverantörer pressar ofta pris, leveranstid och är överoptimistiska i våra tidsuppskattningar. Våra uppskattningar blir snabbt till löften och vi spikar slutleverans innan ens första raden kod är producerad. Kort sagt skriver vi usla avtal med våra beställare, våra kunder. Det här är i princip praxis i branschen. Man kan luras att tro att det bara är vi leverantörer som är förlorarna, men det tror inte jag. Hur många gånger har du läst om eller hört beställare som är nöjda med sina IT-produkter? Fasta priser är lika med brutna löften.

Varför gör vi så här?

Jag tror att vi gör det för att vi är rädda för att förlora kunder och uppdrag till konkurrenter. Förlorar vi uppdrag får vi konsulter sitta på bänken och det gillar vi inte alls.

Vad blir resultatet?

Ofta ett stort antal timmars övertid, trötta medarbetare och en produkt som pressats fram. Kan pressade konsulter verkligen leverera kvalitetsprodukter? Vad brukar man strunta i när tid saknas och timmen är sen? Test, dokumentation och utbildning.

Ett fastpriskontrakt brukar också tvinga oss producenter att vara noga med omfattningen - "the scope" - och vi försvarar den i sten ristade kravspecifikationen. Allt som är ett avsteg från spec:en får stämpeln "ny funktionalitet", som vi endast kan utveckla efter leveransen (då vi också ser en chans att salta priset på den nya funktionaliteten, som kompensation för all obetald övertid).

Hur ska vi göra då?

Tänk om man kunde erbjuda ett lättrörligt (agile) alternativ, en lättrörlig offert? Ett kontrakt som innebär att beställaren får insyn och mycket mer kontroll och styrning över projektet, samtidigt som vi får möjlighet leverera kvalitetsprodukter i tid. Och få betalt för den tid vi lagt ned. Faktum är att även vi leverantörer får betydligt bättre möjligheter till styrning av projektet, lättrörliga metoder innebär just detta.

Vi tar ett exempel:
Det ska utvecklas mjukvara som kunden X behöver. Tillsammans skapar vi en lista med krav och denna lista prioriteras av kunden. Vi ska utveckla det viktigaste först. En första uppskattning är att det tar cirka fyra kalendermånader att utveckla mjukvaran.

Ett lättrörligt kontrakt ger kunden leverans varje månad: en produkt som vid varje delleverans är testad, utvecklad, dokumenterad och faktiskt redo för driftsättning. Beställaren får en produkt med den funktionalitet som vi tillsammans kommit överens om.

Beställaren får en leverans med de allra viktigaste kraven uppfyllda och det redan efter en månad! Nästa månad levereras produkten med mer funktionalitet. Och så vidare. Varje dag, under hela projektets gång, har beställaren möjlighet att ta del av våra dagliga framsteg. Vi gömmer inget och beställaren behöver inte oroa sig för obehagliga överraskningar två dagar innan slutleverans.

För att undvika fastprisfällan har kunden vid varje leverans möjlighet att dra i handbromsen och avsluta kontraktet om denne inte är nöjd med våra prestationer, eller låta oss fortsätta med utvecklingen. Kunden kan nu också fritt ändra i prioriteringen av det som är kvar att utveckla, lägga till eller ta bort krav. Allt enligt principen viktigast först. Och vi leverantörer välkomnar det! Vi levererar fortfarande månadsvis, det är antalet leveranser som blir fler eller färre. Och det är kunden som bestämmer.

Ett lättrörligt kontrakt betyder samarbete mellan beställare och leverantör. Det är så moderna företag borde jobba.