Agil utveckling ställer nya krav på upphandling Roland Bäcklin, Jaybis Konsult AB roland.backlin@jaybis.se
Roland Bäcklin Tidigare: Utvecklare, Systemarkitekt, Projektledare, CTO, CIO, Riksinstruktör, Generalsekreterare Just nu: Agil och LEAN mentor för implementering av värdedrivna metoder 25 års erfarenhet av mjukvaruprojekt 20 års erfarenhet av projektledning. Bland annat som Tävlingsledare för två VM, TC chef för 2008 års 10MILA
Mjukvaruutveckling - samma problem världen över Känsla av tröghet, ineffektivitet Produktiviteten har fallit när teamstorleken ökat För få stora releaser per år Kvalitetssäkringen fungerar dåligt - test och fix cykler - vi förhandlar med kvaliteten när vi sätts under tidspress Flaskhalsproblem, personberoenden Långa, oförutsägbara releasescheman Missade tid- och kostnadsramar Inaktuella, ej efterfrågade produkter når marknaden svårsålt, låg ROI Kompetenser åtskilda, letar syndabockar Utvecklarna oengagerade och uttröttade, ständig tidsnöd Personalen slutar, dyr kompetensuppbyggnad
Slöserier och risker hos traditionella metoder Statistik över mjukvara visar att 80% av värdet i de flesta system levereras av 20% av funktionerna. Och, upp till 2/3 av funktionerna används sällan eller aldrig. 7% 13% 45% Alltid 19% 16% Ofta Ibland Sällan Aldrig J Johnson 2002 Study of feature usage in software systems Vi måste sluta lägga tid på att specificera, designa, utveckla, testa, dokumentera och underhålla funktioner som inte kommer att användas.
Kunskapskurva för ett projekt Komplexitet Hur hanterar en Fördefinerad process komplexitet? Kontroll genom detaljerad planering och ledning Tvingar fram tidiga beslut och försöker frysa kraven Risker: - Spekulation Fel produkt och/eller massor av ändringar - Sena besked om förseningar Hur hanterar Agila metoder komplexitet? Empirisk process Utveckling i små steg för att lära sig mer IKIWISI ger feedback för intelligentare beslut Risker: - Vad är good enough? - Evighetsprojekt
Kunskapskurva för ett projekt Komplexitet Beslutskurva traditionellt Hur hanterar en Fördefinerad process komplexitet? Kontroll genom detaljerad planering och ledning Tvingar fram tidiga beslut och försöker frysa kraven Risker: - Spekulation Fel produkt och/eller massor av ändringar - Sena besked om förseningar Hur hanterar Agila metoder komplexitet? Empirisk process Utveckling i små steg för att lära sig mer IKIWISI ger feedback för intelligentare beslut Risker: - Vad är good enough? - Evighetsprojekt
Kunskapskurva för ett projekt Komplexitet Beslutskurva traditionellt Agilt beslutsfattande Just in Time Hur hanterar en Fördefinerad process komplexitet? Kontroll genom detaljerad planering och ledning Tvingar fram tidiga beslut och försöker frysa kraven Risker: - Spekulation Fel produkt och/eller massor av ändringar - Sena besked om förseningar Hur hanterar Agila metoder komplexitet? Empirisk process Utveckling i små steg för att lära sig mer IKIWISI ger feedback för intelligentare beslut Risker: - Vad är good enough? - Evighetsprojekt
Värdedrivna metoder Krav prioriteras baserat på värde Beställaren prioriterar och äger därmed affärsrisken Källa: DSDM Atern Förhandla ALDRIG med kvaliteten!
Iterativa och inkrementella metoder, levererar projektet i flera bitar Minskar risk och ger handlingsutrymme Återkoppling IKIWISI Lärande Bättre beslut 1 2 3 4 5
Framgångsfaktorer Rätt produkt Enkla beslutsvägar och dialog Transparens Samarbete ger förtroende Lär av framgång och misstag Kvalitet Kontinuerlig test Produktionsklara byggstenar Delleveranser Tidig utvärdering Hjälp till nästa steg Tidigt ut i produktion
Agila manifestet Individer och samspel framför metoder, processer och verktyg Körbar programvara framför omfattande dokumentation Kundsamarbete framför kontraktsförhandlingar Anpassning till förändring framför att följa en statisk projektplan Alla ovan nämnda saker är värdefulla, men de till vänster värderas högre än de till höger
Upphandling och kontrakt
Risk Fast pris? Löpande räkning Leverantör tar stor risk (?) Kund tar stor risk (?) Mkt svagt förtroende för leverantör Delad risk win-win lose-lose Mkt stort förtroende för leverantör
Projektformer och leveranskontrakt Traditionellt/Plandrivet Teoretiserar kring krav och genomförande Detaljer mkt långt innan utförande Kontrakt skrivs efter krav/spec-fas Kostnad för krav/spec ofta dold Kund upplever att leverantören tar största risken Gott utfall vid definierad process Lean och Agile/Värdedrivet Empirisk process Preference for action Utrymme för förändringar, lärande, ändrade förutsättningar genom hela projektet Just in Time beslut Kontrakt fokuserar på kvalitet, bemanning/kompetenser och måluppfyllelse mot produktvision ej detaljerade krav Mkt gott utfall vid okänd process innovativt arbete, utveckling av ny produkt
Projektformer och leveranskontrakt Lean och Agile/Värdedrivet Separat kontrakt för kort POC eller Prototyping Olika konstellationer för win-win lose-lose i kontrakt 3 + 1 vanligaste typerna: Fast pris Målpris kund/lev delar på underskott överskott Löpande med kort uppsägningstid för kund t ex 1 iteration Flerstegskontrakt avtala för ett fåtal iterationer åt gången (nytt delkontrakt föregås av kort releaseplanering) Fast kostnad (utveckling mot en pott värdeprioriterad utveckling tills pengarna slut)
Fördelar med Agila Kontrakt Högre ROI - betalar bara för högvärdesfunktioner Koden ej gisslan - produktionsklara byggstenar varje iteration Säkrar kvalitet Flexibilitet Kund kan ändra sig i takt med marknaden och ökad kunskap Kund kan avsluta när man anser sig uppnått good enough Time to market Nytta tidigt
Nackdelar/upplevda risker Vet inte vad det kommer kosta Vet inte vad vi får för pengarna Vad händer om vi får ett inkompetent team? Dessa frågor bör besvaras i kontraktstexten inte explicit kanske, men att adressera möjliga risker och ansvarsfördelning och hantering av dessa skapar trygghet. Frågeställningarna kan vara nya/annorlunda jfr med traditionella kontrakt
Kontaktuppgifter Jaybis Konsult AB Drottninggatan 7, Uppsala Kungsgatan 37, Stockholm 018-472 1000 http://www.jaybis.se roland.backlin@jaybis.se