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

Relevanta dokument
Agile-metoder, XP och ACSD

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

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

Användarcentrerad systemdesign

Användarcentrerad systemdesign

Agile Enterprise Architecture

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

Agil programutveckling

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

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

Fungerar Agila principer i alla typer av projekt?

Design för användbarhet Användarcentrerad utvecklingsprocess

Design för användbarhet

RUP - Rational Unified Process

12 principer of agile practice (rörlig)

Linköpings universitet 1

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

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

Inspel till dagens diskussioner

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

XP-projekt: En fördjupning

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

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

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

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

Användarcentrerad Systemutveckling

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

Mönster. Ulf Cederling Växjö University Slide 1

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

Övning / handledning Användningsfall

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

Användbarhet i sitt sammanhang

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

Platina och kvalité. Rasmus Staberg, Teknisk direktör,

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

Symptom på problemen vid programvaruutveckling

Användarcentrerad systemdesign

Användarcentrerad systemdesign

SCRUM och agil utveckling

Användarcentrerad systemdesign

Agile i ett större sammanhang. Thomas Nilsson CTO, Agile Developer, Coach & Mentor

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

RUP Rational Unified Process. 17 november 2004

Användarcentrerad systemdesign

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

Chaos om datorprojekt..

Att fastställa krav. Annakarin Nyberg

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

Användbarhet vs. utveckling. Ett utvecklarperspektiv. Tidsrelaterade problem. Konflikter. Formella hinder. Upphandling

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

On the Establishment of UCSD i n in Organisations Åsa Cajander Uppsala Universitet Universitet

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

Stad + Data = Makt. Kart/GIS-dag SamGIS Skåne 6 december 2017

Sara Skärhem Martin Jansson Dalarna Science Park

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

Agil mjukvaruutveckling. 1DV404, Jesper Andersson

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

BESKRIVNING AV PROCESSMETODEN SCRUM

När? Varför? För vem? Resultat? (Artefakter?)

Scrum + XP samt konsekvensanalys

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet

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

Projektarbete. Grunder

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

Chaos om IT-projekt..

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

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

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

Agil projektmetodik Varför och vad är det?

CM FORUM. Introduktion till. Configuration Management (CM) / Konfigurationsledning. Tobias Ljungkvist

Föreläsning 4: Designprocessen

Software Engineering. Agneta Nilsson, PhD MPA Software Engineering Master s Programme

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

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

Agile project management

SOA One Year Later and With a Business Perspective. BEA Education VNUG 2006

employee engagement concept (Eec) - a respectful work life designed around people -

Informationssystem och databasteknik, 2I-1100

PRODUCT MANAGEMENT. Klicka här för att ändra format. Klicka här för att ändra format på underrubrik i bakgrunden

CHANGE WITH THE BRAIN IN MIND. Frukostseminarium 11 oktober 2018

Configuration Management

Datavetenskap. Beteendevetenskap MDI. Design

Agenda. Plats och magkänsla. Presentation. - en pedagogisk fråga?

Faster time to action and more accurate pre-studies using Agile tooling

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Välkommen in på min hemsida. Som företagsnamnet antyder så sysslar jag med teknisk design och konstruktion i 3D cad.

Affärsmodellernas förändring inom handeln

Testning som beslutsstöd

Surfaces for sports areas Determination of vertical deformation. Golvmaterial Sportbeläggningar Bestämning av vertikal deformation

Användarcentrerad systemdesign

Testdriven utveckling. Teorin bakom testdriven utveckling. Bakgrund. Januari 2009, KTH. Alexander Tarnowski


Martin Völcker, SLL & Suit

Adding active and blended learning to an introductory mechanics course

Ett hållbart boende A sustainable living. Mikael Hassel. Handledare/ Supervisor. Examiner. Katarina Lundeberg/Fredric Benesch

Våra tjänster [Our services] UMS Group Inc., All Rights Reserved

Lärandemål. Kursupplägg. Hantverk. Roller. Projekt med extern kund TDP027. Projekt: Agil systemutveckling. Annika Silvervarg CiltLab/HCS/IDA

Föreläsning 11, Planera utvärdering. Att planera utvärdering. Vetenskapliga experiment. Kapitel i kursboken

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Transkript:

Erik Borälv Informationsteknologi Uppsala universitet Verksamhet Teknik Mål med verksamhet Förbättra verksamhet med hjälp av IT Leverera funktion till efterfrågad kvalitet inom budget och på tid Affärs-/ processutveckling Förstudie verksamhetsstödjande IT Kravsammanställning Analys & Design Konstruktion Test Införande Drift & Förvaltning»Att ge verksamheten ITverktyg så att målen kan uppnås. Se möjligheter till effektiviseringar och andra positiva effekter kvalitet i användningatt leverera ett IT-verktyg som uppfyller kraven«återkoppla 2005-12-01 #2 Business modeling Usability Design Requirements Analysis & design Implementation Test Deployment Configuration & Change Management: Overview Project Management Environment 2005-12-01 #3 1

Diskussion Egenskaper Vad menar vi med användarcentrering, i termer av kod och utveckling? Finns det? I så fall, hur kan vi nå det målet? Träffar utvecklare också användare? Metod Kan vi utveckla och producera kod enligt en annan metod som bättre passar oss? Hur ska man få utveckling och kodning till att bli visionärt, flexibelt och innovativt? Attityd Vad är bra system? Vad gör att system vi bygger är bra? 2005-12-01 #4 Lyckade/misslyckade IT-projekt 1994 16 31 53 1996 27 40 33 1998 26 28 46 2000 28 23 49 0% 20% 40% 60% 80% 100% Lyckade Nedlagda Delvis misslyckade 2005-12-01 #5 För vem utvecklar vi? Kvalité A Kvalité B Funktionalitet Funktionalitet 2005-12-01 #6 2

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å? 2005-12-01 #7 Andra problem i systemutveckling 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. 2005-12-01 #8 Metod kvalité? Är det metoder som ger bra system? säger nej - det är personerna i projektet som ger bra resultat. Alltså bör metoder göra andra saker än fokusera på resultatet! Alltså är det vår kompetens som avgör om det blir bra 2005-12-01 #9 3

Vad är Agila processer? Ramverk med värden och principer FDD Modeling (Ambler) Adaptive Software Development (Highsmith) Crystal (Cockburn) Scrum extreme Programming (Beck) DSDM (Stapledon) 2005-12-01 #10 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 Manifesto, 2000, www.agilemanifesto.org 2005-12-01 #11 http://agilemanifesto.org/ 2005-12-01 #12 4

Manifesto Principles Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity-the art of maximizing the amount of work not done-is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. 2005-12-01 #13 Kostnad för förändringar Kostnad Förr Nu Tid i projektet 2005-12-01 #14 Effektivast ansikte-till-ansikte Communication Effectiveness Paper 2 people on email Videotape 2 people at whiteboard 2 people on phone Richness of communication channel 2005-12-01 #15 5

Verktyg, välj rätt byggnad "Make sure there are whiteboards and coffee corners all over the building. (IBM) 2005-12-01 #16 Är detta en utvecklingsprocess? 2005-12-01 #17 Vad är extremeprogrammering? 1. Rå hacking utan metod. Mer eller mindre kaotiskt. 2. Strukturerad hacking med fokus på programmering och att leverera buggfria program. 3. En avsiktlig och disciplinerad process för att utveckla fungerande system efter kundens önskemål. 2005-12-01 #18 6

Bygger på praxis och väletablerade metoder. Kent Beck (2000) Senaste trenden i software engineering Användbarhet och ACSD är möjligen ett frågetecken XP bakgrund 2005-12-01 #19 extreme Programming (XP) Definition: A software methodology is the set of rules and practices used to create computer programs. A heavyweight methodology has many rules, practices, and documents. It requires discipline and time to follow correctly. A lightweight methodology has only a few rules and practices or ones which are easy to follow. 2005-12-01 #20 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 2005-12-01 #21 7

Vad är extremt? 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. 2005-12-01 #22 extreme Programming (XP) Förändringarna har förändrats Verksamhet förändras hela tiden, alltså bör även systemen göra det Ett nytt sätt att utveckla system Kontinuerliga förändringar! Testdriven process 2 x personer = 1 dator Inga dokument sparas Gemensamma ståmöten Långsiktig planering är osäker, alltså låter man bli sånt 2005-12-01 #23 Grundläggande aktiviteter Kodning Kod är den enda nödvändiga artefakten. Testning Det som inte kan bevisas fungera i tester fungerar inte heller. Lyssna utvecklare 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 2005-12-01 #24 8

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) 2005-12-01 #25 XP, del 1 + Få artefakter + Begriplig process + Enkelhet både hos system och utvecklingsmodell + Människor i projektet är viktigare än processen + Ingen övertid Enbart för systemutvecklare Okänd metod 2005-12-01 #26 XP, del 2 Att tänka efter ger bättre kvalité än att göra nu Fel: kvalité har med riktig användning att göra, inte planerad användning. T.ex. snabbast ta första tunnelbaneuppgången än den rätta Att göra rätt sak från början är billigare än att rätta i efterhand Fel: troligtvis behövs saken inte alls, om den sedan behövs gör man det då. Dokumentation är viktig att spara Fel: den är så dålig att den inte är värd något 2005-12-01 #27 9

XP, del 3 Planera noga för viktiga saker Fel: om framtiden är oklar, och du kan fixa saker i efterhand, varför införa något som man misstänker kan vara bra? Välj bästa lösningen Fel: välj enklaste lösningen, för den är ändå bra nog (och enklare att ändra) Se framåt Fel: gör endast vad du vet, inget mer 2005-12-01 #28 XP, del 4 Koda, testa sedan att det blev rätt Fel: gör test först, koda sedan Många rader kod/dag, och många funna fel i ett test är bra Fel: få rader går snabbare att skriva, noll antal fel vore bättre 2005-12-01 #29 Användarberättelser (user stories) Något som kunden vill att systemet ska göra. Berättelser ska vara testbara (Beck 2000). Kommunikationssätt utvecklare användare 2005-12-01 #30 10

Exempel godisautomat Betalning Acceptera all sorts betalning #1 Färskt godis Ska bara sälja färskt godis #2 Kommunikation #3 Kommunicera med kunden för att undvika fel Lagerhantering Ska automatiskt begära ny leverans innan varan tar slut #4 2005-12-01 #31 Prioritera och splitta user stories Betalning Acceptera mynt #1.1 Betalning Acceptera sedlar Betalning Acceptera kort Betalning Acceptera betalning med mobiltelefon #1.2 #1.3 #1.4 2005-12-01 #32 Planeringsspelet Story card 2005-12-01 #33 11

Vad jag tror på 1. Viktigast av allt är att hantera förändring Att välkomna förändring; kräver kunskap, förberedelse, lite mod, etc 2. Det är viktigare att göra rätt än allt 3. Allt hänger på de inblandade personerna 4. Det spelar ingen roll hur man gör så längre det blir bra 5. Fungerande kod är grunden till användbarhet Simplicity the art of maximizing the amount of work not done is essential. 2005-12-01 #34 Är användarcentrerad? 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) 2005-12-01 #35 Är användarcentrerat? Nej? Nackdelar: 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 2005-12-01 #36 12

Är användarcentrerat? Ja, kanske? Fördelar: 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 2005-12-01 #37 Lästips och XP Manifesto for Software Development. http://www.agilealliance.org/ Modeling and extreme Programming http://www.agilemodeling.com/essays/agilemodeli ngxp.htm Is Design Dead? Martin Fowler http://martinfowler.com/articles/designdead.html Beck, K. (2000). Extreme Programming Explained: Embrace Change. 2005-12-01 #38 Lästips ACSD William Hudson: Adopting UCD within an agile process http://www.syntagm.co.uk/design/articles/ucdxp03.pdf Larry Constantine: Process Agility and Software Usability http://www.foruse.com/articles/agiledesign.pdf Armitage: Are Methods Good for Design? se kursens länksida. 2005-12-01 #39 13