Lean programvareutvikling Kombinér teknologisk ekspertise med systemtenkning - få jobben gjort på tid og budsjett The complexity of software is an essential property, not an accidental one. … The classic problems of developing software products derive from this essential complexity and its nonlinear increase with size. Fred Brooks Om Anders Haugeto - Siv.ing. Datateknikk NTNU - Med-grunnlegger av Iterate Bakgrunn med systemutvikling Nå rådgiver innen IT-strategi og metodikk Deltar i Forskningsrådets ekspertpanel, DIFI sin Smidig møtegruppe, Oslo Lean Meetup, XP2010, Smidig 2010 3 Iterate - Konsulentselskap med tjenester innen lean programvareutvikling Systemutvikling, rådgivning, bedriftsopplæring 26 ansatte i Oslo og Wroclaw (Polen) Pågående oppdrag for blant annet Det Norske Veritas, Statistisk Sentralbyrå, Eiendomsmegler 1, Veidekke, Color Line, Gyldendal og Miljøverndepartementet 4 Agenda - - Lean og programvareutvikling - Historikk Lean software development Krasjkurs i verdistrømanalyse Forholdet mellom kunde og leverandør - Utfordringer Styringsmekanismer Noen avsluttende råd 5 Del I Lean og programvareutvikling 6 Hva er lean? - Fortløpende øk verdien du leverer til dine kunder Samtidig som du kontinuerlig reduserer egen innsats På kortest mulig tid Med høyest mulig kvalitet Historien Familien Toyoda, veving og andre besettelser 8 Etter andre verdenskrig: Japan i krise - Toyoda Automatic Loom Works - 1945: Kiichiro Toyodas utfordring - Taiichi Ohno: The Toyota production system is a system for the absolute elimination of waste 9 Toyotas definisjon av sløsing: Alt som ikke tilfører kunden verdi 10 Toyotas 7 former for sløsing: 1. In process inventory 2. Over-production 3. Extra processing 4. Transportation 5. Motion 6. Waiting 7. Defects 11 Toyotas produksjonssystem - Just-in-time Flow: Kanban - Stop the line: ”Autonomation” - Zero inspection Continuous improvement 12 Lean - Lean er en generisk term for Toyota sin tankegang i andre bedrifter - Lean kan oversettes til slank - Dell, Zara, Southwest Airlines, Wal-Mart, 3M ... 1990: ”The machine that changed the world” (James Womack m.f.) 13 Case: Zara - Lokal produksjon - Klær sendes på hengere med fly - Mål: Lynrask respons på markedets behov - Nesten ingen klær selges på tilbud ... 14 Lean: Bruksområder Lean Masseproduksjon Produktutvikling Bil Bil Klær Flyreiser Kontorutstyr Datautstyr Programvare 15 Slank IT-utvikling Lean Software Development Lean i et nøtteskall* - Alt som ikke gir kunden verdi er sløsing - Du har fokus på kundens behov Du får kvalitet gjennom konstruksjon - ikke testing - Du er i teten på teknologi Slaget er viktigere enn planene - Du måler flyt Å lære er en høyverdig kunstform - Du driver systematisk forbedring * Fra Mary Poppendieck 17 Sløsing 18 Sløsing: Produksjon vs programvare Halvprodusert inventar Overproduksjon Ekstra prosessering Halvferdig arbeid Ekstra funksjonalitet Å lære gamle ting på nytt Transport Overleveringer Bevegelse Oppgavebytting Venting Defekter Alt det kontrakten krevde, men kunden ikke trengte Forsinkelser Defekter Hvilke barrierer har din organisasjon? Ekstra funksjonalitet - Tommelfingerregel: - 20 prosent av programvaren gir 80 prosent av verdien - La oss lage de 20 prosentene best mulig - Spesielt med tanke på at kompleksiteten øker eksponensielt med funksjonaliteten - Faresignal: Når kunden skal “sikre seg” funksjonalitet 20 Plans are useless.. - .. planning is everything! - “No plan survives contact with the enemy” - (…) the main task of military leaders [is] to consist in the extensive preparation of all possible outcomes Helmuth Karl Bernhard von Moltke 21 Den iterative prosess - Hyppige leveranser direkte til produksjon - Ingen overleveringer mellom - Hva som skal gjøres Hvordan det skal gjøres Å faktisk gjøre det som skal gjøres Å lære av resultatene 22 Nedbryting av arbeid Presentasjon Forretningslogikk og integrasjon Data 23 m o s g nt n i e j p k ap å s M g O am e r t S e u Val Krasjkurs Lean-verktøy: Verdistrømanalyse 24 Hva skjer? Kundeforespørsel - Hensikt: Identifiser din egen sløsing Fra konsept til leveranse ? Eksempler: - Lever et middels stort prosjekt et eksisterende system med en høyt prioritert - Utvid funksjon Leveranse Metode 1. Bestem hvilken strøm 2. Velg startpunkt 3. Velg sluttpunkt: Den endelige leveranse 4. Identifiser eieren av strømmen 5. Noter alle aktiviteter og køer fra start til slutt 26 Eksempel Request Form sent to queue 20 min Approve & prioritize Form sent to queue 2 min 1/2 week Technical assessment Form sent to queue 15 min 2 weeks Code & test To verification 2 hours 2 weeks Verify & fix To operations 4 hours 1 week Deploy 3 min 1/2 week Eksempel Request Form sent to queue 20 5 min min 15 min Approve & prioritize Form sent to queue 2 min 1/2 week Technical assessment Form sent to queue 15 min 2 weeks Code & test To verification 2 hours 2 weeks Verify & fix To operations 415hours min 1 week 3h 45m Deploy 3 min 1/2 week Eksempel Request Form sent to queue 5 min 15 min Approve & prioritize Form sent to queue 2 min 1/2 week Technical assessment Form sent to queue 15 min 2 weeks Code & test To verification 2 hours 2 weeks SLØSING Verify & fix To operations 15 min 1 week 3h 45m Deploy 3 min 1/2 week Eksempel 5 min 2 min 15 min 2 hours 15 min 3 min 2 hours 40 min 15 min 6 weeks + 4 hrs 1/2 week 2 weeks 2 weeks 1 week 3h 45m 1/2 week 1% Efficiency Eksempel 2 Request Email supervisor 5 min Approve Email tech lead 2 min 2 hours Technical assessment Assign developer 15 min 2 hours Code & test To verification 2 hours 1 hour Verify To operations 15 min 15 min 160 min 325 min Deploy 3 min 10 min 33% Efficiency Hva er poenget? - Se organisasjonen din med kundens øyne - Utfordre etablerte sannheter om “hvordan ting fungerer hos oss” - Se helheten og verdsette systemet 32 Lean vs smidig Lean Agile Scrum XP 33 Lean vs smidig Lean Agile XP Scrum 34 Del II Lean og forholdet mellom kunde/leverandør 35 Hva når eieren lar noen andre utvikle? - Konsulentselskapene sin forretningsmodell - Fordel: - Kunden kan prioritere opp og ned bruken av nødvendig kompetanse - Ulempe: - En organisasjonell barriere blir introdusert 36 Kundens utfordringer - Forventninger i organisasjonen - Intern politikk - Kunnskap om hva som er mulig - Forestillinger om hva som ikke er mulig Leverandørens utfordringer - Få eierskap til ideen - Forvalte forventninger til sluttproduktet - Finne smarte løsninger - Fokus på forretningsmessig gevinst Forutsetninger kunde - Du vet hvorfor du investerer - Hvilke forretningsmessige mål har du? - Hvem tar de vanskelige beslutningene? - Hvor ofte involverer du sluttbrukerne i utviklingen? - Du er i stand til å prioritere ned - Du har kunnskapen, og den er tilgjengelig 39 Forutsetninger leverandør - Du klarer å omsette kundens behov til å bygge en løsning - inkrementelt - Du har institusjonalisert den læring du får fra hver inkrementelle leveranse - Du investerer i å bygge hyperproduktive team - - Samkjørt fagmiljø med felles grunnverdier innen teknologi, metodikk og læring Fravær av mekanismer som forleder deg til å velge løsning for tidlig 40 Måleparametere Strategi Finansielt Kunde Internt Læring Få mer ut av saksbehandlings-‐ budsjettet Økt kundemasse/ omsetning Tilby en brukervennlig løsning bedre arbeidshverdag for saksbehandlere kontinuerlig forbedre søknads-‐ prosessene Antall saker behandlet per saksbehandler Økning i antall kunder Mål ? Rate papirbasert vs. nettbasert ? Reduksjon i sykefravær ? Gjennomsnittlig tid for utfylling av søknader ? Balansert målstyring på 60 s Oppsummering - Flyten fra bestilling til leveranse sier mye om din utviklingsorganisasjon - Lean dreier seg om å fjerne hindringer i denne flyten Metodikk kan både fjerne og introdusere barrierer Det samme gjelder kunde / leverandør-forhold - Fokuser på overordnede mål, og finn prosessen ut fra den mest hensiktsmessige flyten - Bruk kontrakt til å regulere prosess 42 Spørsmål? [email protected] iterate.no codecamp09.tekniskblogg.no billigereogbedre.no
© Copyright 2024