Agile-metoder, XP och ACSD



Relevanta dokument
Användarcentrerad systemdesign

Användarcentrerad systemdesign

Kravsammanställning. Förstudie verksamhetsstödjande. Drift & Förvaltning. Affärs-/ processutveckling. Analys & Design. Konstruktion Test Införande

Agile. Frågor. Lyckade/misslyckade IT-projekt

Agile. Frågor. Lyckade/misslyckade IT-projekt

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

Automation Region. Affärsdriven systemutveckling genom agila metoder. Stefan Paulsson Thomas Öberg

Användarcentrerad Systemutveckling

Agil programutveckling

Övning / handledning Användningsfall

Fungerar Agila principer i alla typer av projekt?

SCRUM. Vattenfallsmodellen. Analys. Design. Kod. Test. Rational Unified Process Agile. Kallas också linjär sekventiell modell.

Användarcentrerad systemdesign

Linköpings universitet 1

Projektmetodik. Översikt. Lektion 1: Metodiker. Metodiker.

12 principer of agile practice (rörlig)

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH

Människa-datorinteraktion 1MD016, hösten 2011 Användarcentrerad systemdesign september 2011

Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel.

XP-projekt: En fördjupning

Chaos om datorprojekt..

Modern utvecklingsmetodik. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH

Du fulländar mig! Om synergierna mellan agila metoder och UX. Joakim Holm Adaptiv AB. Erik Hammarström Antrop AB

Chaos om IT-projekt..

Användningscentrering i agila utvecklingsprojekt. johanna.sarna@valtech.com Valtech

Användbarhet i sitt sammanhang

Design för användbarhet Användarcentrerad utvecklingsprocess

Användarcentrerad systemdesign introduktion till begrepp, processer och arbetssätt

RUP - Rational Unified Process

Presentation. Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban

Användarcentrerad systemdesign

Design för användbarhet

Projektarbete. Grunder

BESKRIVNING AV PROCESSMETODEN SCRUM

Note to programmers. Embrace Change! Extreme Programming? Fyra basaktiviteter. 12 Practices / sedvanor. Vad är Extreme Programming

Användarcentrerad systemdesign

Föreläsning 1. Kursinformation. Utvecklingsprocessen. Kravspecifikation. Gruppindelning.

Agil projektmetodik Varför och vad är det?

F7 Agila metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

Föreläsning 4: Designprocessen

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

SCRUM och agil utveckling

F7 Agila metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

Användarcentrerad systemdesign

Användbarhet och användarcentrerad systemdesign. Innehåll

AGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive

SCRUM vs. XP en jämförelse mellan två lättviktsmetodiker

Agila metoder. Idag skall vi vända på steken... Agil Ledning av IT-projekt

TDDD26 Individuell projektrapport

SCRUM och mycket mer

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Inspel till dagens diskussioner

Kursen handlar om. Var används datorer och andra IT-stöd? T ex: Människa-datorinteraktion (MDI) Inst. för informationsteknologi

Informationshantering vid systemutveckling styrd av CM

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Symptom på problemen vid programvaruutveckling

Översikt. Fö: Projekt: Interaktivt system. Projekt. Mål. Coachning. Praktiker att använda

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

Agile Enterprise Architecture

Agil mjukvaruutveckling. 1DV404, Jesper Andersson

RUP Rational Unified Process. 17 november 2004

E-val. Användningscentrerad systemdesign enligt Constantine & Lockwood. UPPSALA UNIVERSITET Uppsala

Projektarbete DAVC20

Therese Hansson & Magnus Jonsson. Motivationsfaktorer - Test inom Agila utvecklingsprojekt

Användbarhet och användarcentrerad systemdesign. Innehåll

Användarcentrerad systemdesign

Agile Software Development - Vad betyder det i verkligheten?

AGILA METODER. (för oss som inte kodar) Nina Berlin

Scrum + XP samt konsekvensanalys

Testbara krav. SAST Syd Ställ gärna frågor under presentationen eller efteråt Åhörarkopior distribueras efteråt

Lyckade projekt - finns det?

Projektuppgift i Användarcentrerad Systemdesign, ht 04

OOA Objektorienterad Analys. Exempel på informell kravspecifikation. DD2385 Programutvecklingsteknik Några bilder till föreläsning 11 13/5 2013

SCRUM. på fem minuter

TDP023 Projekt: Agil systemutveckling

Effekter av införande av agila metoder. Daniel Sundmark Mälardalens högskola

Agila metoder en kartläggning av teori och praktik

In-flight Information System utveckling med ett användningscentrerat synsätt

Agil testning i SCRUM

extreme Programming refactored - recension och analys av Kent Becks senaste definition av XP

Agil användbarhetsutveckling. handhållna enheter* TNM082. Martin Karlsson * Dagens kortaste kursnamn

SYSTEMUTVECKLING METODER & MODELLER. Suzana Ramadani

Agil utveckling ställer nya krav på upphandling. Roland Bäcklin, Jaybis Konsult AB

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 1. Kursinformation Vad är Software Engineering? Hur går ett projekt till?


Jämförelse mellan Extreme. Programming och andra. lättviktsprocessser. Av : Fredrik Scheja (d98fsc) Måns Holmstedt Jönsson (d99mhj)

TDP023 Projekt: Agil systemutveckling

Alla rättigheter till materialet reserverade Easec

CREATING VALUE BY SHARING KNOWLEDGE

Innehåll. Användbarhet och användarcentrerad systemdesign. Användbarhet - ACSD. Användbarhet? Vad är det? ISO 9241 Part 11. Andra definitioner

Programmeringsstil 18/3-2002

TDDI02. Programmeringsprojekt, Föreläsning 1. Filip Strömbäck. Med utgångspunkt i tidigare slides av Jonas Lindgren

Agilt arbetssätt i komplexa organisationer. Välkomna! Anna Picetti, IT-HUSET

Den agila utvecklingen

IT och funk0onshinder

Hur hanterar vi risk? Vad är TKO? Skillnad på agil och trad? Agil/Lean: Defer Commitment, Build knowledge, Fail fast

Möjligheter och svårigheter att arbeta användarcentrerat i en agil systemutvecklingsprocess

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Transkript:

Användarcentrerad systemdesign. Föreläsning 12 Agile-metoder, XP och ACSD Stefan Blomkvist MDI / IT, stefan.blomkvist@it.uu.se & Profdoc AB www.profdoc.se www.it.uu.se/edu/course /homepage/acsd/s04 XP Dagens föreläsning Agile, XP & ACSD Agile översikt Vad är agile software development Problem som agile försöker lösa extrem Programming XP en agile-process i detalj ACSD och Agile. Är Agile och XP användarcentrerade? Informationsteknologi 2004-12-09 #2 CHAOS-rapporten. Lyckade/misslyckade ITprojekt 1994 1996 1998 2000 16 27 26 28 31 28 23 40 0% 20% 40% 60% 80% 100% Lyckade Nedlagda Delvis misslyckade 53 46 49 33 Vad går fel i systemutvecklingsprojekt? Dålig användbarhet Annat: Levereras aldrig eller för sent Dyrare än beräknat Låg kvalitet Saknar funktioner eller har onödiga funktioner Vad beror det på? Informationsteknologi 2004-12-09 #3 Informationsteknologi 2004-12-09 #4 2004 Stefan Blomkvist, Inst. för Informationsteknologi / MDI 1

Förändring. Allting förändras Verksamhet Önskemål / Krav Teknik Kostnaden för ändringar Andra problem i systemutveckling Mjukvara är komplex och ogripbar (intangible) Trög process och brist på återkoppling För mycket fokus på processen För stora system/projekt försöker göra allt på en gång. Funktionsrika system för många / fel funktioner utan prioritet. Informationsteknologi 2004-12-09 #5 Informationsteknologi 2004-12-09 #6 Hur möter man problemen Olika angreppssätt genom tiderna Mode i metoder och processsor Trots detta misslyckas de flesta IT-projekt 1994 16 31 53 Koda & fixa Ingenjörsmässiga & formella metoder Vattenfall, strukturerad programmering OO, RUP Informationsteknologi 2004-12-09 #7 1996 1998 2000 27 26 28 28 23 40 0% 20% 40% 60% 80% 100% 46 49 33 Lyckade Nedlagda Delvis misslyckade Informationsteknologi 2004-12-09 #8 2004 Stefan Blomkvist, Inst. för Informationsteknologi / MDI 2

Hur möter man problemen Olika angreppssätt genom tiderna Mode i metoder och processsor Koda & fixa Ingenjörsmässiga & formella metoder Vattenfall, strukturerad programmering OO, RUP Agila metoder! Vad är Agila processer? Ramverk med värden och principer för SU som delas av olika metoder FDD AgileModeling (Ambler) Adaptive Software Development (Highsmith) Crystal (Cockburn) Scrum extreme Programming DSDM (Stapledon) (Beck) Informationsteknologi 2004-12-09 #9 Informationsteknologi 2004-12-09 #10 Agile nyckelprinciper Fungerande system före fullständig dokumentation Kundsamarbete före kontraktsförhandlingar Reagera på förändringar före att följa planer Individer och kommunikation före processer och verktyg The Agile Manifesto, 2000, www.agilemanifesto.org Kommunikation är effektivast interaktivt, ansikte-till-ansikte Communication Effectiveness Paper 2 people on email Videotape Richness of communication channel 2 people at whiteboard 2 people on phone Informationsteknologi 2004-12-09 #11 Informationsteknologi 2004-12-09 #12 2004 Stefan Blomkvist, Inst. för Informationsteknologi / MDI 3

Andra definitioner av Agile (Lindvall 2002) Iterative delivers a full system at the very beginning and then changes the functionality of each subsystem with each new release. XP Incremental the system as specified in the requirements is partitioned into small subsystems by functionality. New functionality is added with each new release. Self-organizing the team has the autonomy to organize itself to best complete the work items. Emergent technology and requirements are allowed to emerge through the product development cycle. Informationsteknologi 2004-12-09 #13 Informationsteknologi 2004-12-09 #14 Vad ingår i en process? Vad är extremeprogrammering? Rå hacking utan metod. Mer eller mindre kaotiskt. Strukturerad hacking med fokus på programmering och att leverera buggfria program. En avsiktlig och disciplinerad process för att utveckla fungerande system efter kundens önskemål. Informationsteknologi 2004-12-09 #15 Informationsteknologi 2004-12-09 #16 2004 Stefan Blomkvist, Inst. för Informationsteknologi / MDI 4

XP bakgrund Bygger på praxis och väletablerade metoder. Kent Beck (2000) Senaste trenden i software engineering Användbarhet och ACSD är ett frågetecken Mål med XP-processen Utveckla system som kunden vill ha, fungerar tekniskt och levereras när det behövs. Kan ändras efter nya och ändrade kundkrav även sent i projektet Dvs vi reducerar riskerna med en process som är Enkel & lätt, Snabbrörlig & anpassningsbar och rolig för projektgruppen Informationsteknologi 2004-12-09 #17 Informationsteknologi 2004-12-09 #18 Vad är extremt? Välkända arbetssätt praktiseras till det extrema Test är bra testa hela tiden, testa före kodning. Låt användarna testa (enhetstest, testa-först, funktionell test) Kodgranskning är bra granska kod hela tiden (parprogrammering) Iterativ utveckling är bra arbeta i korta iterationer Enkelhet är bra enklast möjliga lösningar, enkla artefakter, enkla metoder Prata med användare är bra låt användare och utvecklare dela rum. Grundläggande aktiviteter i processen Kodning Kod är den enda nödvändiga artefakten. Testning Det som inte kan bevisas fungera i tester fungerar inte heller. Lyssna programmerare vet inget om verksamheten. Design (teknisk) arkitektur och kod växer fram, och genom Refaktorering intern omstrukturering av kod utan att yttre beteende förändras Informationsteknologi 2004-12-09 #19 Informationsteknologi 2004-12-09 #20 2004 Stefan Blomkvist, Inst. för Informationsteknologi / MDI 5

XP-processen i praktiken Ett system utvecklas iterativt inkrementellt, dvs fungerande system levereras stegvis med mer och mer funktionalitet. Varje sådan fas i utvecklingen kallas en leveranscykel (release cycle) och pågår 3-4 månader. Utgår från användarberättelser (user stories) Användarberättelser (user stories) Kommunikationssätt utvecklare användare Något som kunden vill att systemet ska göra. Berättelser ska vara testbara (Beck 2000). Informationsteknologi 2004-12-09 #21 Informationsteknologi 2004-12-09 #22 User stories. Exempel godisautomat #1 Acceptera all sorts betalning Prioritera och splitta user stories #1.1 Acceptera mynt Färskt godis #2 #1.2 Ska bara sälja färskt godis Acceptera sedlar Kommunikation #3 Kommunicera med kunden för att undvika fel Acceptera kort #1.3 Lagerhantering Ska automatiskt begära ny leverans innan varan tar slut #4 Acceptera betalning med mobiltelefon #1.4 Informationsteknologi 2004-12-09 #23 Informationsteknologi 2004-12-09 #24 2004 Stefan Blomkvist, Inst. för Informationsteknologi / MDI 6

Planeringsspelet (the planning game) Beräkna arbetsinsats & prioritera användarberättelser Story card Informationsteknologi 2004-12-09 #25 Informationsteknologi 2004-12-09 #26 Kontinuerlig integration och nästa iteration Informationsteknologi 2004-12-09 #27 Informationsteknologi 2004-12-09 #28 2004 Stefan Blomkvist, Inst. för Informationsteknologi / MDI 7

Är Agile / XP en användarcentrerad process? Var är användaren? For me, UCD is an iterative process whose goal is the development of usable systems, achieved through involvement of potential users of a system in system design. Karat, J. (1996) Informationsteknologi 2004-12-09 #29 Informationsteknologi 2004-12-09 #30 Är Agile användarcentrerat? Nej? Nackdelar: Är Agile användarcentrerat? Ja, kanske? Fördelar: Fokus på kodning, teknik och att leverera program, men saknar tydligt fokus på användbarhet och ACSD. Involverar kunder, inte nödvändigtvis representativa användare Svårt för användarna att formulera krav Användarna i en gisslansituation Små inkrement - ingen helhetssyn på design av interaktionen Krav i användarberättelser, skrivs och testas av användare Direkt kommunikation med användare Prototyper & enkla designrepresentationer Iterativt & inkrementell utveckling Kontinuerlig test & utvärdering av riktiga system av utvecklare och riktiga användare Förändring är möjligt & naturligt Anpassningsbar process Fokus på människor, inte processer Informationsteknologi 2004-12-09 #31 Informationsteknologi 2004-12-09 #32 2004 Stefan Blomkvist, Inst. för Informationsteknologi / MDI 8

Integrera Agile och ACSD Fokus på användbara och tekniskt fungerande systems som levereras i tid (system som inte är i drift, är inte användbara system) Fokus på människor inte processen Involvera de verkliga användarna Involvera kunniga användbarhetsdesigners Arbete i par förbättrar kommunikationen Prioritera funktionaliteten. Integrera Agile och ACSD Iterativ + Inkrementell utveckling i kombination med tidig och koordinerad användbarhetsdesign Använda enkla modeller t.ex. scenarier och pappersprototyper. Utvärdera användbarheten i olika steg: från prototyper till levererade inkrement. Informationsteknologi 2004-12-09 #33 Informationsteknologi 2004-12-09 #34 Lästips Agile och XP Lästips ACSD Agile Manifesto for Agile Software Development. www.agilealliance.org Cockburn, A. (2002) Agile Software Development. Beck, K. (2000). Extreme Programming Explained: Embrace Change. Ambler, S. (2002) Agile Modeling. Effective Practices for Extreme Programming and the Unified Process. William Hudson: Adopting UCD within an agile process www.syntagm.co.uk/design/articles/ ucd-xp03.pdf Larry Constantine: Process Agility and Software Usability www.foruse.com/articles/agiledesign.pdf Armitage: Are Agile Methods Good for Design? se kursens länksida. Informationsteknologi 2004-12-09 #35 Informationsteknologi 2004-12-09 #36 2004 Stefan Blomkvist, Inst. för Informationsteknologi / MDI 9