Kravfångst? Bra kravarbete handlar om att ställa rätt frågor och att ge rätt svar i rätt form Gästföreläsning Datavetenskap 2012-02-12 Lars Hansson och Jan Bidner (ITS)
ITS - IT-stöd och systemutveckling Verksamhetsområden Kunder Roller 3
Utgångspunkter Projektform Utvecklingsmetoder påverkar kravhanteringen Agilt* angreppssätt Spårbarhet *) Agilt = Lättrörligt, Iterativt 4
Vilken typ av projekt? Helt ny produkt? Förändring av befintlig produkt? (bilden lånad från: http://3.bp.blogspot.com/_puw8yan26hk/rrm7wb5eavi/aaaaaaaaab0/rprrrfafqw0/s1600-h/idea.jpg) 5
Befintliga krav? Bakgrundsmaterial Några rader i ett projektdirektiv Förstudie Verksamhetskrav Processkartläggning/modellering (?) Befintlig produktdokumentation Standard & Guidelines 6
Roller i kravarbete Kravställare Kravfångare Utvecklare, DBA och IT-arkitekter Testare (bilden lånad från: http://blog.mozilla.com/metrics/2009/07/13/does-mozilla-champion-the-voice-of-firefox-users/) 8
Olika typer av krav Funktionella krav (verksamhetskrav) Icke-funktionella krav (tekniska krav) 9
Kravkategorisering - FURPS+ 10
The primary measure of success of a software system is the degree to which it meets the purpose for which it was intended. (Nuseibeh&Easterbrook 00) Vikten av tydliga krav Vad analysen kom fram till Hur systemet designades Hur systemet programmerades Vad användarna ville ha Hur det Fungerar.. (Bilderna lånade från: businessballs.com) 11
Kombination av olika tekniker En säger mer än tusen http://www.brygghusetarkitekter.se/bilder/bygga_tak/byggatak_3.jpg 12
IT-system från scratch
Exempel på processkartläggning/ modellering av process Verksamhetsprocessen är grunden i kravförståelsen i nyutvecklingsprojekt Utgå ifrån hur man jobbar. Inte de begränsningar man tror kommer att finnas i det kommande IT-stödet. Det befintliga systemet IRL Processkartläggning 14
Exempel: Kraschdatabas Crosscompetenceperspektiv på olyckor Chalmers KTH Traffic Safety Centre North (TSCN) Investigation Network and Traffic Accident Collection Techniques (INTACT) Flera olika delsystem innan Önskemål: Ett sammanhängande system (Väg, olycksplats, Människa och fordon) Önskemål: Bättre teknik Verksamhetsexperter 15
Exempel: Kraschdatabas När man börjar från Noll Var börjar det? Vad händer sen? Vi får ett larm. Är det inom 2 mils radie åker vi dit Vi samlar in data om 1) Olycksplatsen 2) Fordonen 3) Människorna Vi åker hem och efterarbetar datat Vi åker till skroten och kompletterar data om fordon Vi intervjuar inblandade och tar del av journaler Vi analyserar samband, enstaka fall och tar fram statistik 16
Exempel: Kraschdatabas Experter och användare Crasch Office On Scene Retrospective Case Analysis 17
Exempel: Kraschdatabas Processen Detaljerar flöden Överblick/ transparens Modellera stort Post-it flexibelt 18
Exempel: Kraschdatabas Scenarios / User stories Exempel Man skall kunna mata in fordonsuppgifter Det skall gå att koppla ihop valfritt antal fordon som varit inblandade i en olycka Man skall bara kunna koppla ihop fordon som har varit med om olycka på samma dag och plats Ett fordon måste ha minst en passagerare etc 19
Exempel: Kraschdatabas Typer av kravdokumentation Efter processkartläggning Kravspecifikation och detaljering i iterativ dialog Bilder (t.ex. Powerpointskiss) Kravdokumentation Funktionella prototyper Flödesbeskrivningar Implementationsanalys Arkitektur och databasdesign 20
Exempel: Kraschdatabas Funktionella prototyper 21
Exempel: Kursanmälan UPC Ett mini-studera.nu På www.umu.se i nya profilen Olika kurstyper etc 22
Exempel: Kursanmälan UPC Förstudie och Kravprojekt Kravprojekt som förstudie Systembehov? Vad tjänar man - ROI? 23
Exempel: Kursanmälan UPC Processer, användningsfall och avgränsningar Kärnprocesser Skapa kurs > Publicera kurs > Urval > Efterhantering Skapa konto > Anmäla sig > Antas Generera statistik
Exempel: Kursanmälan UPC Användningsfall Skapa Kurs Workflow för skapande avsökandekonton Skapa/hantera administratörskonton CAS och uppgifter från Koncernkatalogen Mina kurser Anmälan till kurs Urvalshantering/Antagning/ reservhantering/återbud Exportera listor över antagna på kurs (kurslistor) Tillstyrka behörighet Visa Statistik Exportera till CSV (Ett antal fördefinierade listor) Språkhantering Hantera stilmall/ramverk Hantera katalog med fakulteter/institutioner Hantera kurstyper och tillgängliga ansökningsformulär Hantera regelmotor för urval 25
Exempel: Kursanmälan UPC Avgränsningar Systemet skall inte hantera kursregistrering eller närvarohantering under kurs. (Däremot skall avslutad kurs kunna registreras för en sökande) Systemet skall ej hantera jämförelse mellan avklarade kurser. Systemet skall ej hantera import av avklarade utbildningspoäng från Ladok vid anmälan. 26
Exempel: Kursanmälan UPC Mockup Funktionell prototyp liknar färdig produkt 27
Vidareutveckling IT-system från av scratch IT-system
Befintliga system - skillnader? Underhåll, buggrättning Givet system Givna förutsättningar Ny funktionalitet eller anpassningar? Förändringar i verksamheten eller förändringar i systemet? Mindre behov av detaljering på kraven? Risker med att ta saker för givet. 29
Systemet är skit säger kunden för att Det går inte att göra a) Som det står i manualen b) Som jag gjorde i det förra systemet c) Som jag gjorde i Word d) som jag fått för mig att man ska göra för att jag inte orkade läsa manualen e) nånting eftersom ingenting funkar just nu, jag hittar inte ens menyalternativet etc etc trots att a) Det står fel i manualen b) Det förra systemet var ett helt annat system med ett helt annat sätt att göra saker på som inte nödvändigtvis alltid var bättre c) Detta inte är Word d) Det står på sidan tre i manualen exakt hur du gör e) du är i helt fel system 30
Ärendehanteringssystem för att prioritera och hantera krav JIRA/Atlassian Typer av ärenden Priority/severity 31
Förvaltningsfällan: Faran med att beställa funktionella krav icke-funktionellt Det skall läggas till en kolumn som heter soktforut i tabellen oldstudent av typ boolean som inte får vara NULL Hur skall man testa det? 32
Kravställa teknik eller funktionalitet? Bilden lånad från: http://www.flickr.com/photos/young_rainey/4522206112/ 33
Exempel: Projekt studieavgifter Riksdag och regering har beslutat att anmälnings- och studieavgifter skall tas ut av sökande och antagna från tredje land från och med höstterminen 2011. Anpassningar ska ske i befintliga system för studiedokumentation 34
Exempel: Projekt studieavgifter Ett projektteam ska lösa uppgiften Budget för 2011 och 2012 Ett tiotal personer med olika roller Krav, utveckling och test Krav 2 personer från verksamheten (kund) 2 personer från tekniksidan (oss) 35
Exempel: Projekt studieavgifter Kravarbete på tre nivåer 1. Beställare 2. Kravställare verksamheten 3. Kravfångare tekniksidan 36
Fallstudie: Projekt studieavgifter Nivå 1. Beställare Innan projektet Verksamhetsutredning Workshop Direktiv Principiella beslut för kraven Ramar som projektet måste hålla sig inom 37
Exempel: Projekt studieavgifter Nivå 2. Kravställare i projektet Verksamhetsrepresentanter Förmedlar och sammanställer krav Förankrar med högskolor/beställare Referensgrupp Nyhetsbrev Prioriterar! Timeboxing 38
Exempel: Projekt studieavgifter Nivå 3. Kravfångare i projektet Från tekniksidan Strukturerar och detaljerar kraven Ansvarar för att riktlinjer följs Ansvarar för att nå samförstånd mellan utvecklare, testare och kravställare Utredningar, lösningsförslag och prototyper Dokumentation Granskningsmöte 39
Fallstudie: Projekt studieavgifter Status för projektet Första leveranser gjorda under 2011 Grundläggande funktionalitet är på plats Ett problem har varit sena kravändringar och synpunkter Tungrott att komma överens med externa aktörer om kraven, ex Migrationsverket Fortskrider under 2012 40
Om tekniken är svaret vad är då frågan? Frågor? Jan Bidner (jan.bidner@adm.umu.se) Lars Hansson (lars.hansson@adm.umu.s) 42