Vanliga faser TDP029 Systemutveckling Annika Silvervarg COIN/HCCS/IDA Analys Vad är problemet? Uppgift Vad är det för arbetsuppgifter och hur utförs de? Användarbehov Vad behöver användaren/användarna? Information Vilken information ska hanteras? Användbarhet Vad är viktigt för användarna? Vision och Mål Vad ska åstadkommas? Vilka krav stalls på säkerhet, prestanda, hållbarhet? Design Hur ska problemet lösas? Implementation Realisering av lösningen! 3 Fler faser Code and fix (Cowboy programming) Insäljning, marknadsundersökning Analys Design Implementation Test Leverans Utbildning Support Avveckling Code Fix 4 6 Codeand fix Codeand fix Den mest primitiva/enkla modellen Ingen eller väldigt lite planering, inga faser Kan fungera för små eller korta projekt som inte ska vidareutvecklas, för protyputveckling Inget att rekommendera för medel- till stora projekt eller projekt som involverar flera utvecklingsteam 7 8 Linköpings universitet 1
Traditionell vattenfallsmodell Vattenfallsmodellen The origin of the term "waterfall" is often cited to (Royce 1970) although Royce did not use the term "waterfall" in this article. Ironically, Royce was presenting this model as an example of a flawed, nonworking model 9 10 Vattenfallsmodellen Iterativ utveckling Strikta steg som vart och ett avslutas innan man påbörjar nästa Väldigt svårt att gå tillbaka och göra om Om man hittar brister i kraven under testerna, kostar det stora resurser att rätta till detta, det finns risk för att stora delar av systemet måste skrivas om för att komma tillrätta med feltänket Dessutom är vattenfallsmodellen okänslig mot förändringar i omvärlden som oundvikligen sker under projektets gång 11 12 Problem/Utmaningar Svårt att veta exakt vad systemet ska göra Svårt att förutspå framtida användning Dyrt att göra ändringar Missnöjda kunder och programmerare 13 15 Linköpings universitet 2
Agila metoder En familj av systemutvecklingsmetoder, t ex: Scrum extreme Programming Kanban Lean extreme Programming(XP) En av de första, Kent Beck på 90-talet på Chrysler Utgår från värden och principer som omsätts i praktiker 16 17 extreme Programming(XP) User story och Acceptance test Praktikerna täcker projektstyrning: Planering Kundinvolvering och tillgänglighet Testning (acceptance test) Små releaser Kommunikation och arbetssätt för utvecklarna: Parprogrammering Enkel design Testning (unit test) Gemensamt ägandeskap Kodstandard Refactoring Kontinuerlig integrering Hållbar arbetstakt 18 19 Arbetsflöde Choose metaphor/vocabulary (Common vocabulary) Release and Iteration planning (Planning game) Write acceptance tests (Test-driven development) Pair up (Pair programming) Write unit test (Test-driven development) Code (Code and Design Simply, Coding Standards) Ask user for clarification (On-site customer) Clean up (Refactoring, Collective code ownership) Check in test and code (Continuous integration, Test) Go home after 8 hours (Sustainable pace) Release (Small releases) 20 21 Linköpings universitet 3
Scrum Ursprungling fokus på projektstyrning för agila projekt Ken Schwaber och Jeff Sutherland, 1995 Accrediterad scrum master utbildning sedan 2001 Scrum Scrum fokuserar på projektstyrning genom: Sprint planering Dagliga scrum möten Sprint reviews Sprint retrospectives Scrum verktyg: Product backlog Sprint backlog Burndown chat Scrum team består av: Utvecklare Scrum master Produkt ägare 22 23 Product backlog, Sprint backlog och Scrum board Burn-down chart 24 25 Scrum-möten Retrospective Igårgjordejag Idagskajag Jag harproblem med. 26 27 Linköpings universitet 4
Lean Eliminate waste Kommer från tillverkningsindustrin (Toyota) på 50-talet Mary och Tom Poppendieck applicerade det på systemutveckling på 2000-talet Fokuserar på att uppnå kvalitet och värde genom att eliminera allt som inte bidrar till detta Har fokus på att skapa en bra process för utveckling snarare än att skapa en bra produkt 28 30 Kanban Ursprungligen ett verktyg inom Lean för stödja produktion inom just-in-time tillverkning Använder en inom systemutveckling för att: Visualisera arbetsflöde och kapacitet Begränsa work in progress Mäta och optimera flödet Ett mer flexibelt alternativ till scrum som tillåter Förändringar under pågående iteration Uppgifter som sträcker sig över flera iterationer Specialiserade delteam 31 32 33 34 Linköpings universitet 5