Agila metoder Ledning av IT-projekt Idag skall vi vända på steken... Nästan allt vad vi pratat om tidigare glömmer vi ett tag Det kan finnas anledningar att kunna se projektvärlden och projektvärden på fler än ett (mera traditionellt) sätt... inte minst när man läser om alla projekt som misslyckas, trots sina resurser, metoder, modeller, kompetens...osv... Agil Smidig, följsam, vig Förändringsbenägen Snabba reaktioner Används både för Systemutveckling Projektledning 1
Agila metoder: systemutv Agila systemutvecklingsmetoder är ett samlingsnamn för ett antal metoder som bryter med traditionella arbetssätt inom systemutveckling Förenklat handlar det om att planera och bedriva arbetet utifrån hur systemutvecklarna själva skulle vilja ha det: mer programmering med mindre projektadministration och möten Exempel på metoder Extreme Programming (XP) Test-Driven Development (TDD) Feature-Driven Design (FDD) Lean Software Development (LSD) Dynamic System Development Method (DSDM) Scrum (inte en förkortning...) Gemensamt för dem alla Insikt om att krav förändras över tiden Iterativ ansats, ofta med små steg Leverera kundnytta i varje cykel (även från version 0.1) Grundläggande skillnader Traditionellt (vattenfall) Agil ansats Metaforer Produktion Organisk, framväxande Fokus Dynamisk struktur Planering och dokumentation Orsak/verkan, förebyggande Människor och tydliga resultat Charordic (ordnat kaos) 2
Metoder med olika fokus (XP) XP: en metod som först och främst handlar om hur man arbetar (i ett projekt) Basen är 12 s.k. förfaranden (practises), bl.a. produktion av testfall före kodning samt parprogrammering Lean (software) Development Lean Development har rötterna i Just-In-Time och Lean Production från tillverkningsindustrin Lean Development har sitt fokus på hur man organiserar företagets utvecklingsarbete på managementnivå (t. ex. systemutveckling) Scrum Från rugby: den täta axel-mot-axel-formation lagen bildar när de gemensamt skall pressa bollen framåt Scrum handlar främst om hur projekten planläggs och organiseras Små team (5 9 pers) delar upp sitt arbete i miniprojekt på ca en månad där man löser ett begränsat antal detaljerade arbetstsuppgifter Där traditionella metoder fokuserar på att hålla planen, inriktar sig scrum på att hela tiden leverera affärsvärde 3
Scrum (och liknande metoder) Scrum hör till det som kallas lättrörliga utvecklingsmetoder eller agile development en samling arbetssätt och verktygslådor vars syfte bl.a. är att Förbättra förmågan till att ge snabb respons på behov och önskemål från marknaden Reducera spill- och väntetid Minska stressen hos personalen och samtidigt öka produktiviteten Scrum en reaktion http://agilemanifesto.org De lättrörliga metoderna är en reaktion mot de processer som ser bra ut i teorin men som inte visar sig hålla i praktiken. Agile-metoderna betecknas ofta empiriska de bygger helt och hållet på praktiska erfarenheter/arbetssätt som visat sig fungera Viktigt Processer/verktyg Detaljerad dokumentation Kontraktsförhandling Att följa en plan Ännu viktigare Individer/interaktion Fungerande mjukvara Samarbete m kunden Att anpassa sig efter förändringar Scrum som ramverk/process Det finns tre roller Produktägare, Team, Scrum-master Det finns tre dokument (artefacts) Product och sprint backlog, burndown chart Det finns fyra mötestyper (ceremonies) Sprint planning meeting, scrum, sprint review samt sprint retrospective En sprint är (i princip) en iterationscykel 4
Produktägaren Kompetenser Branschkunskap, verksamhetens behov Beskriver önskad funktionalitet Kan leveransgodkänna Är kundens röst till teamet Kan ha en komplex intressentgrupp att representera (men ÄR representanten) Team (utvecklare) Kompetenser Kan skapa och demonstrera lösningar Kostnadsuppskattning, förklara alternativ Skapa funktionalitet som motsvarar kraven Idealgruppen är erfarna generalister Dock troligt att specialister ingår Så helst: specialister med generalisterfarenhet... Ledning (coach, scrum-master) Kompetenser Definierar teamets övergripande mål Är kontaktytan mot omvärlden Genomförandestöd (lokaler, utrustning) Kulturstöd (organisationens värderingar) Personalhantering (rekrytering, samtal) Administrativ hantering (ekonomi, budget) Huvudsaklig uppgift: att möjliggöra, snarare än att direkt leda... 5
Roller och dokument (1) Produktägare Sammanställer alla förändringar som produkten skall genomgå och prioriterar bland möjlig funktionalitet (äger vision/produkt) Product backlog (i ständig förändring) Inför varje sprint överförs de högst prioriterade målen till Sprint backlog Team (5-9 personer samt användare) Tillsammans med produktägaren bestäms målen för sprinten och prioriterad funktionaliteten bryts ner i detaljerade moment Teamet är självorganiserande och man har ett gemensamt ansvar för resultatet Roller och dokument (2) Scrum-teamet (forts) Bestämmer själv hur arbetet skall läggas upp och fördelas Fasta projektroller saknas alla ska kunna byta uppgifter med varandra Detta hindrar förstås inte att man inom gruppen kan ha olika (specialist)kunskap Scrum-master Coachar utvecklingsteamet och ser till att projektet hela tiden drivs framåt mot de uppsatta målen Scrum, rent grafiskt T-shirt modell för omfattning och prioritet S M L XL Basen för scrum är det som kallas sprint: fokuserat arbete mot fasta mål under en period om ca 30 dagar ca 1000 timmar En scrum är ett dagligt möte med en fast ceremoni Dagligt kvartssamtal, alltid på samma tid/plats Tre frågor Vad har färdigställts sedan förra mötet? Vad kommer att vara klart till nästa möte? Vad behöver du hjälp med? Avstämning: evt beslut att fatta? Varje sprint ökar produktens marknadsvärde och ger nya funktioner och förbättringar som kan levereras till kund 6
Burndown chart - tidsåtgång Ofta används begreppet VELOCITY för att beskriva team/produkt utveckling (skapat värde/tidsenhet) Sprint - avslutning Varje sprint avslutas med en demonstration där fungerande programvara körs inför en större grupp som förutom produktägaren omfattar t.ex. användare och representanter för företagsledningen. Detta ligger till grund för ett utvärderingsmöte som i sin tur ger avstamp för nästa sprint Från scrum till färdig produkt 7
Agila projektmetoder Från produktägare till projektägare Produkten i vårt fall ofta ett system (hårdvaru- och/eller mjukvarumässigt) har i de flesta fall sin start i ett projekt Förändring i funktionalitet/prioriteringar Förändringar i teknik och verktyg Personförändringar (i något led) Förändringar som uppkommer genom systemets (ökande) komplexitet Förändringar i funktionalitet Användarna (kunden) lär sig från det de ser (aktuell lösning/iteration) Inser vad de egentligen behöver Blir bättre på att kommunicera behoven Externa förutsättningar förändras Affärsprocesser definieras om...och därmed de system som skall stödja dem... Förändringar i teknik/verktyg Nya versioner av utvecklingsverktyg ger möjligheter till ny funktionalitet eller annorlunda arbetssätt Flera tekniker ihop ger (inte sällan) kompatibilitetsproblem Det (på bästa plats) tekniskt möjliga är inte nödvändigtvis lokalt möjligt Förväntningar kanske inte uppfylls 8
Person(al)förändringar Över ett projekts levnadstid är det inte ovanligt att sammansättningen förändras Hos kund, team, ledning Pga nya jobb, utbildning, sjukdom, befordran, barnledighet Interaktionen mellan alla inblandade är komplex Nya förutsättningar kan förändra krav Systemets ökande komplexitet Beroenden mellan olika komponenter teknik, mjukvara, kommunikation, information, användare ökar i takt med systemets utveckling/projektet Trots alla metoder kan det vara svårt att uppskatta vad som skall göras om 158 dagar, och hur stor tidsåtgången blir... Nätverket av beroenden och länkar mellan dem blir en oöverskådlig soppa Vad syftar agila processer till? Hantera förändring och hantera den bättre... Leverera kundnytta Minska leveranstider Öka produktivitet Skapa kvalitativt bättre lösningar Skapa en allt bättre utvecklings/projektkultur 9
Agilt kontra traditionellt Iterativ och inkrementell ansats Parallella och ständiga flöden/processer Fokuserar VAD som skall leveras mer än HUR det kommer till Projektet balanseras genom att ständigt anpassa målbilden (scope) Samverkan och samarbete centralt Ledning genom coachning (facilitating) Iterativt och inkrementellt Processcykeln (t ex en sprint) upprepas gång på gång och möjliggör avstämning och synkronisering av insatser + feedback Systemet byggs i progressiva steg, där varje iteration stäms av mot förväntad resursanvändning Varje cykel kan ses som färdig produkt (och färdigt projekt) Traditionell planering Vi försöker spå om framtiden, trots att vi redan från början vet att det förändras Alla aktiviteter bestäms och tidplaneras redan vid projektstart Projektledaren har bl a som en av sina viktigaste uppgifter att kontrollera om/att/hur väl planen följs 10
Agil ansats: värderingar Individer och interaktion Fungerande produkter Samverkan med kunden Förändringsberedskap Anpassning av produkt Minskad tidsåtgång Pålitliga resultat Metoder Värden APM Principer Agil ansats: metoder/practices Självstyrande grupper med väldefinierade mål och daglig avstämning Anpassning av målbild utifrån verklig situation Avstämning mot totalt tillgänglig tid via (t ex) burndown Metoder Värden APM Principer Agil ansats: principer Skapa funktionellt tydliga och väldefinierade paket Vi tummar INTE på tid eller funktionalitet men vi kan omprioritera arbetet Förenkla överallt där det är möjligt Metoder Uppmuntra utforskning av nya arbetssätt och ansatser Värden APM Principer 11
Agil projektledning Skapa vision, för kund och projektteam Både världsbild och scope (syften/begränsningar) Spekulera System krav, resursåtgång, tidplan, projektkostnader, riskanalys (tillsammans med team) Utforska För team: produkt, för coach: team/intressenter Ta till sig (adapt) Stäm av, förändra vid behov aktuella mål Ta erfarenheter med in in nästa iterationscykel Avslutning Både en fas och en ritual Vid slutet av varje iteration Mindre tillbakablick Lärandeprocesser inom teamet Gruppdynamik (utveckling) Projektavslut FEST!!! (Kick-out) Avsluta eftersläntare Projekttillbakablick Dela med er av lärande processer till andra delar av organisationen APM Framework Envision Speculate Explore Vision Release Plan Adapt Completed Features Feature List Final Product Close 12