Validering av krav. Agile utveckling. Christin Lindholm. ETSF30 Requirements Engineering L6: Agile Prioritisation. Anpassa kravarbetet till projektet

Relevanta dokument
Validering av krav. Agile utveckling. Christin Lindholm. ETS672 Requirements Engineering L6: Agile Prioritisation. Anpassa kravarbetet till projektet

produkters egenskaper och innehåll

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

Skriftlig tentamen den 25 oktober 2014 Kravhantering, ETS672, 7,5 hp

Anledning: Generellt så undviker QUPER att göra fullständiga förutsägelser för relationerna mellan ett systems fördelar, kostnad och kvalitet.

Inlämning 1 - Tentafrågor. Projektgrupp A

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

Tentafrågor Grupp C. Fråga 1

Inspel till dagens diskussioner

Tentafrågor 1. Grupp. B

Skriftlig tentamen den 16 januari 2015 Kravhantering, ETS672, 7,5 hp

Linköpings universitet 1

Inlämning 2 - Tentamensfrågor

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

Rätt ifylld bokstav ger 0.5 poäng och fel ifylld bokstav ger 0.5 poäng i avdrag. Rätt svar: Alternativ A, C, D, A, C uppifrån.

Fråga 1. A) Domain-requirement analysis B) Questionaires C) Focus groups D) Design workshop C) Stakeholder analysis. Svar: C, D

BESKRIVNING AV PROCESSMETODEN SCRUM

Innehåll. Kravhantering. Kravhantering TDDD06 Introduktion till kravhantering. Vad är kravhantering?

Problem 1-1,5p Två av följande metoder för kravspecifikation är ej lämpade att använda vid ett COTSprojekt,

men borde vi inte också testa kraven?

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

Agila Metoder. Nils Ehrenberg

Skriftlig tentamen den 21 oktober 2008 Kravhantering, ETS672, 7,5 hp

Martin Völcker, SLL & Suit

Varje rätt svar ger 0.5 poäng. (max 3p)

CREATING VALUE BY SHARING KNOWLEDGE

Frågor och svar till tentamen i Kravhantering. Del 2. Kravhantering (ETS170), LTH Grupp B

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

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

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

Användarcentrerad systemdesign

Scrum i praktiken Tillämpning inom Gripen demonstrator. Fredrik Lorentzon & Marcus Frejd SESAM

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

Fungerar Agila principer i alla typer av projekt?

1) Kravhantering varför? (1.5p)

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

För varje par av påstående/anledning svara med ett av följande alternativ (½ p per rätt svar):

Exercise 1b: Requirements evaluation

men borde vi inte också testa kraven? Robert Bornelind

Vad är agilt? Agile Islands Andreas Björk

Kurser och seminarier från AddQ Consulting

Krav. Kravhantering Christin Lindholm

QC i en organisation SAST

Exercise 1b: Requirements evaluation

Kurs: ETS 170 Kravhantering. Tentauppgifter. Grupp G Christian Andersson Jacob Gradén Björn Nilsson. Lund,

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

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

En snabbare väg till framgång Ett agilt angreppssätt för BI Johan Petersson

Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel

SCRUM på Riksarkivet. Magnus Welander /

Agil programutveckling

Inlämning 2 - Tentafrågor. Projektgrupp A 1 december 2010

Projektmetodik II. HF1005, Informationsteknik och ingenjörsmetodik för Datateknik. Projektarbete

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

RUP - Rational Unified Process

Övningstenta, Examinationsfrågor

Användarcentrerad systemdesign

Frågor och svar till tentamen i Kravhantering

Samarbetsstrukturer för att självorganisera inom givna ramar.

App analytics TDP028

12 principer of agile practice (rörlig)

Skriv namn på varje inlämnat papper!

Förslag till tentamensuppgifter

TDDD78 Att välja och genomföra ett projekt

Enligt IEEE Std har en bra kravspecifikation en mängd fordringar att uppfylla. Kravspecifikationen skall vara;

Agil Projektledning. En introduktion

Concept Selection Chaper 7

Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16

HÖSTTERMINEN. Scrum STF INGENJÖRSUTBILDNING AB. Vi vidareutbildar ingenjörer och tekniker. Din partner för livslångt lärande

Agile-metoder, XP och ACSD

Design och krav. Design Definition. enkelt Det ska vara möjligt att. Henrik Artman

Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning

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

Design och konstruktion av grafiska gränssnitt

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

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

Projektplan. LiTH Segmentering av MR-bilder med ITK Anders Eklund. Version 1.0. Status. Bilder och grafik projektkurs, CDIO MCIV LIPs

CHANGE WITH THE BRAIN IN MIND. Frukostseminarium 11 oktober 2018

Projekt- och kvalitetsstyrning på Frontec

Lyckade projekt - finns det?

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

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

Swedbank CI Cross Functional Team

Så säkerställer du affärsnyttan för dina produkter

Utveckling av ett grafiskt användargränssnitt

Användarcentrerad Systemutveckling

Effek%va(App+projekt(

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

Rätt svar och poängsättning: 0,5p per rätt svar, max 2,5p A. 2 B. 5 C. 3 D. 6 E. 4

Agila arbetsformer. Gemensamma värderingar

Problemet. Beställarkompetens och kravhantering. Användbarhetsboom Internet som motor. Beställarproblemet. Användarnytta = verksamhetsnytta.

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

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Webbinarium AHP-metoden ett sätt att välja. Lars Olsson. Geostatistik AB

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

INNOVATIVT FRÅGANDE. En metodik att skaffa förstahandskunskap om kundbehov och hitta lösningar tillsammans med kunder. Webinar 15 september 2015

Exercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15

Fråga 1 Skriv in vilken kravnivå kravet tillhör i rutan under varje krav.

Eventuella felaktiga svar kanselerar motsvarande mängd rätta svar

Att välja och planera ett projekt

Transkript:

ETSF30 Requirements Engineering L6: Agile Prioritisation Christin Lindholm Validering av krav Syfte Att säkerställa att vi har eliciterat och dokumenterat rätt krav Kommer vi att bygga rätt system med dessa krav? Metoder Granskningar Tester Modellbaserad simulering Härledning med matematiska modeller Validering av kravspecifikationen Anpassa kravarbetet till projektet Alla i projekt måste ha förståelse för: Projektet omfattning Krav och bakomliggande behov Agile utveckling Grundtanke Utkast av system som testas snabbt Syfte Göra kunden nöjd leverera fungerande programvara under hela processen Krav på kundens engagemang Agile Manifesto http://agilemanifesto.org

Underliggande antagande Antagande om Förändring av krav Krav utvecklas över tid beroende av förändringar i teknologi, kundbehov och verksamhet -> krav uppkommer under utvecklingsprocessen, vilket innebär att lite tid läggs på initial kravelicitering Dokumentation Omfattande dokumentation och modeller är kontraproduktivt -> ingen detaljerad kravdokumentation i förväg Underliggande antagande forts Antagande om Interaktion med kund Kunden är frekvent tillgänglig för utvecklarna Agile utveckling vilar på denna tillgänglighet för elicitering och validering av krav Förändringskostnader Kostnaden för att göra förändringar ökar inte med tiden -> krav som utvecklas över tid ökar inte kostanden. Kravhantering utförs iterativt och inkrementellt Scrum Kravhanteraren Daily Användare/Kund -> Kravhanterare -> Scrum team Time Box Användare/Kund -> Kravhanterare i Scrum team Stories Tasks

Spotify Henrik Kniberg

Krav vs User stories Traditionellt krav 1. Systemet ska tillhandahålla ett konfigurerbart gränssnitt för alla användarfunktioner 2. Användargränssnittet ska vara konfigurerbart på följande områden: a) Font b) Bakgrundsfärg User story Som systemanvändare vill jag kunna konfigurera användargränssnittets font, bakgrundsfärg. Så att jag kan använda systemet på effektivaste sätt User-Story 6.2.3: (Avklarad) Prioritet: H Som spelare vill jag, med så få knapptryck som möjligt, kunna bekräfta mina inställningar och börja spela. Acceptanskriterier: a. På alternativskärmen skall det finnas en bekräfta-knapp. b. När spelaren trycker på knappen skall följande ske: 1. Inställningarna som gjorts skall sparas i appens interna databas. 2. Spelplanen skall visas. Förslag på implementation: Alla alternativ skall sparas i den lokala databasen vid ett knapptryck på bekräfta-knappen. Kommentarer: Scrum och Kanban Utvecklarna upplevde kraven i backlog: Kravet för vagt definierat eller För specifikt, lösning presenterades Face-to-face Upplevda fördelar Kunden kan styra i oväntade riktningar Eliminerar behovet av tidskonsumerande dokumentation och processer för godkännande Upplevda utmaningar Risk för felaktiga eller otillräckliga krav om intensiv interaktion med kund inte finns Få kund att vara onsite Att få koncensus vid mer än en kundgrupp Få förståelse eller tillit från kund som är van vid traditionella utvecklingsprocesser

Iterativ kravhantering Upplevda fördelar Upplevda utmaningar Extrem prioritering Upplevda fördelar Upplevda utmaningar Skapar mer tillfredställande relation med kunden Omedelbara tillgången till kunden ger klarare och mer förståeliga krav Svårt att skapa kostnads och tidsestimeringar för hela projektet Om kommunikationen upphör så skapar bristen på dokumentation problem Negligerar kvalitetskrav Kunden kan ge affärsmässiga skäl för krav -> lättare att förstå kundens prioriteringar och hjälper utvecklarna at bättre möta kundens behov Ger många tillfällen till omprioriteringar Att använda affärsvärde (time-tomarket) som enda prioriteringskriterie kan orsaka stora problem på längre sikt Ständiga omprioriteringar kan leda till instabilitet Konstant planering Upplevda fördelar Tidig och konstant validering -> minimerar till stor del behovet av stora förändringar Kostanden vid ändring minska dramatiskt jämfört med traditionell utveckling Upplevda utmaningar Kravförändringar gör att tidig arkitektur blir inadekvat och redesign av arkitektur ökar kostnaderna betydligt Behovet för refactoring är inte alltid uppenbart och förmågan beror på erfarenhet hos utvecklarna. Löser inte alltid problemet med otillräcklig arkitektur. Prototyping Upplevda fördelar Bra för att validera krav Upplevda utmaningar Kan vara svårt att underhålla och utveckla prototyper Problem med skalbarhet, säkerhet och robusthet Kan skapa orealistiska förväntningar från kunder

Test-driven utveckling Upplevda fördelar Tester kan användas för att skapa spårbarhet. Denna spårbarhet gör det lättare att infoga förändringar Upplevda utmaningar Stor utmaning att utvecklare inte är vana vid att skriva tester innan kodning Kräver förståelse av kraven och omfattande samarbete mellan utvecklare och kund eftersom det involverar förfining av låg-nivå specifikationer iterativt Granskningar (Reviews) och Acceptanstester Upplevda fördelar Granskningsmöten möjliggör: Förvissning att projektet är på rätt väg Ökar kundens tillit och förtroende identifierar problem tidigt Granskningsmöten hjälper ofta till att erhålla ledningsstöd (projekt status och progress till projekt sponsorer) Upplevda utmaningar Har ingen formell modellering av detaljerade krav -> formell verifiering Consistency checks (konsistens kontroll) eller formella inspektioner har man sällan Brist på tillgång till kund kan skapa problem vid acceptanstest då kunden ska utveckla testerna. Ofta används QA-personal för att hjälpa kunden utveckla dessa tester. Öppen källkod open source Öppen programvara Tillgänglig att använda, läsa, modifiera och vidareutveckla Inga licensavgifter Ej immaterialrätt Motprestation opensource.com Licenser Användning av öppen källkod styrs med hjälp av olika typer av licenser Copyleft - fritt distribuera (även sälja) och modifiera. Samma licens vid vidare spridning Permissive ( BSD-style ) krav på fortsatt spridning

Används Android TODO Talk Openly, Develop Openly Grupp företag Jenkins Garrit... Samarbete Projekt Program Verktyg Arbetssätt http://todogroup.org Kravprocessen Diskussion Prioritering Planering Elicitering Planering Elicitering Diskutera följande frågor: Informell Distribuerad Transparant Samarbete Realisering Scoping Realisering Specificering Planering Specificering Elicitering Realisering Scoping Specificering Validering Validering Prioritering Prioritering Scoping Validering Prioritering Varför behövs prioritering? När ska man göra prioriteringar? Vem (vilka roller) är lämpliga att göra prioriteringar?

Definition Prioritisation = to list or rate in order of priority Priority = 1 a (1) : the quality or state of being prior (2) : precedence in date or position of publication b (1) : superiority in rank, position, or privilege (2) : legal precedence in exercise of rights over the same subject matter Viktiga frågor kring prioritering Varför prioritera? När ska man prioritera? Hur ska man prioritera? Vem ska prioritera? Vad ska prioriteras? 2 : a preferential rating; especially : one that allocates rights to goods and services usually in limited supply that project has top priority 3 : something given or meriting attention before competing alternatives Varför prioritera? Vi måste höja systemets prestanda! Vi måste uppfylla nya krav! Vi har inte nog med pengar! Tiden rinner iväg! Nyttan med att prioritera Fokusera på det viktigaste Hitta hög- & låg-prioriterade krav Implementation av rätt krav i rätt ordning Spara tid och pengar Vi måste fixa alla felrapporter! Vi är ont om folk!

Hur ofta används olika funktioner egentligen? Exempel på hur det kan vara: Ibland, ofta eller alltid 36% Sällan 19% Aldrig 45% 80-20-regeln Pareto-principen (vital few, trivial many) 20% av kraven står för 80% av värdet 20% av kraven står för 80% av kostnaden 20% av kraven står för 80% av risken Några krav har Högt värde och låg kostnad, andra har Lågt värde och hög kostnad [Butler Group] Exempel från industriprojekt 13 The requirements value for customer 1 2 4 5 6 3 7 8 9 10 14 11 12 The requirements cost of implementation

Utmaningar med prioritering Abstraktionsnivå på prioriteringsobjekt Kombinatorisk explosion Beroenden Inte lätt att prediktera framtiden Vad behöver göras? Välja vad som ska värderas: è prioriteringskriterier Välja vad som ska prioriteras: è prioriteringsobjekt Strukturera och gruppera: på lagom nivå och rimligt antal Gör själva prioriteringen: prioriteter för varje objekt och kriterium Visualisera, diskutera, iterera, Objekt & kriterier Objekten är ofta produktegenskaper eller högnivåkrav som står för sig själv Kriterierna kan vara t.ex. Kundvärde Utvecklingskostnad Utvecklingstid Teknisk risk Passar säljtidpunkten Passar varumärket Maximera / Minimera På vilken nivå ska vi prioritera?

När prioritera? På vilken skala ska vi ange prioriteter? Inför beslutspunkter, t.ex. Projektstart Konstruktionsstart Releaseplanering Inkrementplanering Vid stora förändringar Upprepade gånger med lagom intervall Kategorisering ex: måste-krav, tvetydiga, ändringsbenägna Dela in i grupper utan inbördes ordning Ordinal skala ex: dyrare, större risk, högre värde Rankad lista A>B Ratioskala ex: $, h, % (relativ) Numeriska relationer A=2*B Olika principer för prioritering Kategorisering Exempel: Stabila, Ändringsbenägna, Oumbärliga, Uteslutna Ger olika högar med krav Sortering på ordinal-skala Parvis jämförelse < mer eller mindre Ger rangordnad lista Estimering på ratio-skala Parvis jämförelse på graderad skala Ger estimat för varje krav som ger relationer # Antal timmar $ Pengar % Relativt Olika tekniker för prioritering Analytical Hierarchy Process (AHP) Ratio-skala, parvisa jämförelser, kräver verktygsstöd, ger mått på graden av konsekvens (consistency) Ranking (sortering) Ordinal skala, parvisa jämförelser, enkel Numeriska betyg Ordinal skala; snabb och enkel; risk att allt blir lika viktigt då kraven inte ställs mot varandra; risk att folk tolkar som ratio-skala (även om betyget 4 inte nödvändigtvis är dubbelt så mycket som betyget 2 ) Top-ten Ordinal skala, snabb och enkel, ger grov uppskattning av en begränsad del av kraven

Vanlig industriell praxis Kraven kategoriseras på skala 1-4 [Lau:7.4] Problem: Kraven ställs aldrig mot varandra Vilket ska bort när viktigt krav tillkommer? Allt tenderar bli viktigast; ger beslutskramp Hur sker prioriteringen? Arbetsgrupper eller individuellt? Gruppdynamik kan påverka Viktigt skapa konsensus? Distribuerat i tid och rum? Parvisa jämförelser: värde Which requirement has the higher value for customer? Parvisa jämförelser: kostnad Which requirement has the higher cost of implementation? Normal papers Very much more More Equal More Very much more Image enhancement Normal papers Very much more More Equal More Very much more Image enhancement Image enhancement Memory buffer Image enhancement Memory buffer Voice control Address book Voice control Address book

Hur lång tid tar det? Kategorisering snabbast men ger minst Jämförelserna går snabbare med tiden Parvisa jämförelser: Minst en jämförelse per krav Om fler görs kan man upptäcka inkonsekvenser Maximal redundant: n*(n-1)/2 Visualisering - värde Visualisering - kostnad

Kostnad-värde-diagram Inkrementell prioritering När nya krav tillkommer: Infoga i strukturen Jämför med befintliga krav Visualisera, diskutera, revidera Ändringshantering Analytical Hierarchy Process Utvecklad av Thomas L. Saaty på 80-talet Allmän teknik inom beslutsteori Parvisjämförelse av alla möjliga par på ratioskalan: 1 Of equal value 3 Small difference 5 Essential or strong value 7 Very large difference 9 Extreme difference 2, 4, 6, 8 Intermediate values Matrisberäkningar ger prioriteter och mått på graden av inkonsekventa jämförelser

Consistency Releaseplanering Konsekvent Att välja ut en mängd krav som skall implementeras i nästa utgåva. Inkonsekvent AHP föreslår 0.1 som övre gräns för hanterbar inkonsekvensgrad, men det är för restriktivt i kravsammanhang då osäkerheterna ofta är stora Releaseplanering Att välja ut en mängd krav som skall implementeras i nästa utgåva. Mest risk först? Det som konkurrenterna inte har först? Få arkitekturen på plats? Nödvändigaste funktionerna först? Funktion före tillförlitlighet? Release-tema? Krav som är beroende?

Summering Nytta av prioritering Fokusera på det viktigaste Hitta hög- & låg-prioriterade krav Implementation av rätt krav i rätt ordning Spara tid och pengar Prioritera i era projekt! Inlärningsmål: Kunskap och förståelse För godkänd kurs skall studenten kunna: definiera grundläggande begrepp och principer inom kravhantering redogöra för ett flertal olika typer av krav redogöra för och värdera ett flertal olika metoder och tekniker för kravhantering beskriva och relatera olika delprocesser inom kravhantering beskriva kravhanteringsprocessens relation till övriga processer i produktlivscykeln 64

Inlärningsmål: Färdighet och förmåga För godkänd kurs skall studenten kunna: välja lämplig kravhanteringsteknik för sammanhanget använda flera olika tekniker för att identifiera krav använda flera olika tekniker för att specificera krav använda flera olika tekniker för att validera krav använda flera olika tekniker för att prioritera krav Inlärningsmål: Värderingsförmåga och förhållningssätt För godkänd kurs skall studenten kunna medvetet kunna välja arbetssätt efter hur kravbilden ser ut på ett adekvat sätt kunna involvera användare i kravprocessen visa ett prov på ett systematiskt och långsiktikt arbetssätt medvetet kunna problematisera över kravkvalitetens påverkan på slutproduktens kvalitet 65 66 Vad händer nu? Sista övningen tisdag och onsdag Labb 4 oktober 13-15, 15-17 Glöm inte förberedelse uppgiften!! Tenta måndagen den 23 oktober kl. 14-19 Tips skriv mycket på den sista delen! Handledning Handledning 21 november utkast kravspec Handledning 14 december färdig kravspec Fram till 21 november?