Integrerat ingenjörsprojekt

Relevanta dokument
Linköpings universitet 1

12 principer of agile practice (rörlig)

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

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

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

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

BESKRIVNING AV PROCESSMETODEN SCRUM

SCRUM. En agil projektmetod baserad på empiri - vad fungerar och vad fungerar inte?

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

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

Scrum + XP samt konsekvensanalys

SCRUM och mycket mer

Inspel till dagens diskussioner

Agil programutveckling

Aktivitet ett: Kommunicera! Aktiviteter i praktiken. Parprogrammering. Aktiviteter. Parprogrammeringens sju myter. Parprogrammeringens sju myter

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

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

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

Agila Metoder. Nils Ehrenberg

SCRUM och agil utveckling

Agil mjukvaruutveckling. 1DV404, Jesper Andersson

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

XP-projekt: En fördjupning

Scrum + XP = sant. Kristian Björk D06, Lunds Tekniska Högskola dt05kb1@student.lth.se. Frederik Blauenfeldt Jeppsson. dt06fb8@student.lth.

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

ALM Live: Scrum + VSTS

SCRUM. på fem minuter

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

SCRUM på Riksarkivet. Magnus Welander /

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

Vad är agilt? Agile Islands Andreas Björk

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

Agil testning i SCRUM

Användarcentrerad systemdesign

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

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

Agile-metoder, XP och ACSD

Idag. Camilla Forsell TNM082 VT2014 TNM082, Camilla Forsell. Camilla Forsell TNM082 VT2014 TNM082, Camilla Forsell.

Scrum. på fem minuter

TDP023 Projekt: Agil systemutveckling

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

Scrum. på fem minuter

Användarcentrerad systemdesign

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

Agila arbetsformer. Gemensamma värderingar

CREATING VALUE BY SHARING KNOWLEDGE

TDP023 Projekt: Agil systemutveckling

Scrums användning i Extreme Programming projekt. Lunds Tekniska Högskola D07 Lars-Olof Rydgren EDA

Labrapport över Rumbokningssytemet Grupp:1

Tentamen, delkurs Projektstyrning Webbutvecklare SU13, Malmö

Användbarhet i sitt sammanhang

Agil projektmetodik Varför och vad är det?

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

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

TDDD26 Individuell projektrapport

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

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

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

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

Scrum Scrum. en beskrivning. a description. V Scrum Alliance,Inc 1

Projektarbete DAVC20

SCRUM. på fem minuter

Agil Projektledning. En introduktion

Fungerar Agila principer i alla typer av projekt?

Agil Projektledning. En introduktion

ALM Live. April 2008 Effektivare projektarbete med Visual Studio 2008

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

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

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

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

NordScrum Vattenblandare skapad: uppdaterad:

Agila metoder och motivation

Dagbok Mikael Lyck

Planering. Planning. Hur planerar vi? Hur planerar vi? XP Bill of Rights. XP Bill of Rights

Agil Projektledning. En introduktion

F4 Testning och Parprogrammering i XP. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson,Datavetenskap, LTH

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

Kanban. Marcus Hammarberg. torsdag den 15 september 2011 (v.)

Kursmål. Kursens delar. Obligatorisk närvaro

F4 Testning och Parprogrammering i XP EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson,Datavetenskap, LTH

XP vs. Tillverkningsindustrin

Djupstudie Code smells / Refaktorisering. Martin Larsson dt08ml5 Stefan Johansson, dt08sj7

I detta avsnitt beskrivs vart parprogrammering appliceras, hur det ska fungera och även i vilket projekt det introduceras i.

Arkitektur. Den Röda Tråden

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

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

Testning av applikationer

på ett stort spelföretag Andreas Ström

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

Systemutveckling i praktiken

Kursöversikt Certifierad Mjukvarutestare

Kvalitativa metoder. Amy Rankin

Kritik av Extrem Programmering

Kriterier för bedömning av examensarbete vid den farmaceutiska fakulteten

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

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

Systemet. Varför? Persiska viken 3 juli Resultat. Mitt under striden: USA befinner sig i konflikt med Irak och Iran. Mitt under striden, forts:

QC i en organisation SAST

Transkript:

Integrerat ingenjörsprojekt TNIU21

Kursmål Studenten skall efter genomgången kurs kunna arbeta efter en projektmodell i en autentisk situation medverka aktivt och väl fungerande i en projektgrupp utveckla initiativförmåga och visa på kreativa lösningar införskaffa tillräckliga kunskaper inför utförande av projektarbete anpassa projektmodellen och teknik till projektkontext redovisa delresultat muntligt och skriftligt inom givna tids- och projektramar reflektera över utfört projektarbete och föreslå förbättringar runt metod och resultat 2

Examination Exjobbsrapport Behandlar metod/process, fokuserar ej på produkt Struktur: Sammanfattning / Abstract Introduktion Teori Metod Resultat Diskussion Slutsats 3

Reliabilitet & Validitet Validitet ser till att det som mäts är relevant i sammanhanget Reliabilitet ser till att det mäts på ett tillförlitligt sätt Validitet handlar om att använda rätt sak vid rätt tillfälle. Att kunna ange i vilken situation och för vilken population resultaten är giltiga Reliabilitet handlar om pålitlighet. Vilka beslut kan fattas om de baseras på mätningar som man inte kan lita på? Exempel Om vi vill räkna ut BMI (Body Mass Index) för en person så behöver vi längd och vikt. Om vi då har mätt skostorlek mycket noggrant så har vi uppnått hög reliabilitet, men låg validitet, för vi kan ju inte avgöra BMI med bara skostorleken. Om vi istället tittar på personen och skattar längd och vikt så har vi låg reliabilitet, men validiteten är högre. 4

Kvantitativ validitet Innehållsvaliditet: Avgöra om metoden mäter vad den ska Samtidig validitet: Säkerställer att resultat stämmer överens med resultat från andra undersökningar gjorda av andra (med en annan metod) Konstruktionsvaliditet: Stämmer relaterade begrepp överens med våra mätningar? Kommunikativ validitet: Att kommunicera sin vandring genom forskningsprocessen, så att försöket kan generaliseras/upprepas Pragmatisk validitet: Är den kunskap man kommer fram till användbar? 5

Kvalitativ validitet Kommunikativ validitet (inre validitet) Beskrivning av förförståelse/fördomar som författaren har Beskrivning av metod Beskrivning av urval av deltagare Beskrivning av analysprocessen Triangulering (inre validitet) Intervjua deltagare med olika relation till problemet Analysera materialet enligt olika paradigm Överförbarhet (yttre validitet) Författaren presenterar vägen och undersöker om resultaten är tillämpbara (ej generaliserbarhet) 6

Reliabilitet Kvantitativ reliabilitet Är mätningen fri från bias (fördom/vinkling) av personen som mäter? Påverkas mätningen av tiden? Finns det en samstännighet i utfallet mellan olika delar i en enkät som tar upp samma fenomen? Kvalitativ reliabilitet Är mätinstrumenten pålitliga? Är forskarens kvalitet tillräcklig? Är forskaren objektiv (inre validitet)? 7

Frågor på examination? 8

Iterativ utveckling Genomföra Planera Utvärdera Förstå/Besluta 9

Inkrementell utveckling 10

Agil utvecklingsmetodik Inkrementell och iterativ utvecklingsmetod Agile Manifest Individer och samspel framför metoder, processer och verktyg Körbar programvara framför omfattande dokumentation Kundsamarbete framför kontraktsförhandlingar Anpassning till förändring framför att följa en statisk plan 11

Extreme Programming För de dagliga aktiviteterna i projektet Utvecklarna sätts i första rummet Bill of rights Sustainable pace Fyra värden (öh, nej, fem...) Kommunikation, enkelhet, feedback, mod, respekt Practices Kodstandard, Kontinuerlig integration, Parprogrammering, TDD, Refactoring, m.m. 12

Extreme Programming Bill of rights Kundens rättigheter Ledningen har rätt att bestämma kostnader Ledningen har rätt att bestämma prioriteter Ledningen har rätt att se hur långt arbetet har fortskridit Teamets rättigheter Teamet har rätt att uppskatta hur lång tid en viss uppgift kommer ta Teamet har rätt att få sin uppskattning respekterad Teamet har rätt att ärligt rapportera fortgång Teamet har rätt att få veta vad som är viktigast att göra härnäst Teamet har rätt att få stöd närhelst teamet behöver det 13

Parprogrammering Två programmerare jobbar sida vid sida En programmerare, föraren, har kontrollen över tangentbordet och implementerar aktivt. Den andre programmeraren, observatören, observerar kontinuerligt det som föraren kodar för att identifiera taktiska defekter Vid behov kan de två programmerarna brainstorma runt hinder de möter på vägen och eftersom de ibland byter roller, arbetar de jämlikt tillsammans. 14

Parprogrammering Parprogrammerare spenderar ungefär 15% mer tid än individuella programmerare på samma uppgift. Dock är denna extra tid inte statistiskt signifikant. Parprogrammerare får 15% färre fel i koden än individuella programmerare. Denna högre kvalitet är statistiskt signifikant. 95% av parprogrammerare säger att de trivs bättre med arbetet, är mer självsäkra och litar på att den kod de har producerat fungerar. I det långa loppet tjänar man alltså både moral och pengar, eftersom det tar mycket lång tid att rätta buggar 15

Parprogrammering 16

Refactoring Omfaktorisering (refactoring) Effektivisera, optimera och öka läsbarhet utan att ändra funktionalitet Förbereder för och förenklar återanvändbarhet Ökar flexibiliteten i arkitekturen, vilket bidrar till okomplicerad design och en enkelhet att lägga till eller ändra krav Ökar underhållbarheten Unken kod är skäl för omfaktorisering Duplicerad kod Långa metoder Stora klasser Utspridda ändringar Switch/Case-satser Onödig generalitet Primitiva tvångstankar Kommentarer 17

Testdriven utveckling (TDD) Ger direkt feedback på felaktigheter i kod Ju längre en defekt finns i systemet desto svårare och kostsamt är det att ta bort den Därmed kan man hitta defekter och dess orsaker med lätthet Använder sig av en testfall som samlas i en testbänk (scaffolding) Genom att kontinuerligt köra dessa automatiska testfall kan man lätt se om en förändring påverkar systemet negativt Den automatiska testbänken gör därmed att ny funktionalitet lätt integreras i koden TNM021 Programvaruutveckling 18

Testdriven utveckling Hur då? 1. Skriv en testmetod för din metod 2. Kompilera testet. Det ska fallera, eftersom du inte har skrivit koden som testet ska anropa och testa 3. Implementera precis tillräckligt i metoden för att kompileringen ska gå igenom 4. Kör testet och kolla om det fallerar 5. Implementera precis tillräckligt i metoden för att testet ska gå igenom 6. Kör testet och kolla så att det inte fallerar 7. Omfaktorisera för förtydligande och borttagning av duplicit kod i metoden TNM021 Programvaruutveckling (TDD) 19

Scrum Scrum sköter den omkringliggande verksamheten, specifikt planering Scrum ger teamet chans att organisera sig själva 20

Scrum Roller Produktägare Har tätast kontakt med kund eller är kund Tar hand om kravarbetet (backlog i Scrum) Måste vara en gris Scrummaster Är processägare och ansvarig för att teamet ska lyckas med Scrum Är teamledare, inte projektledare Skyddar teamet mot omvärldens höns Är utvecklare i teamet och således gris Team/Utvecklare Storlek - 7 +/- 2 Självorganiserande, är sina egna projektledare Grisar 21

Scrum 24 timmar (daily scrum) Product backlog Sprint backlog Sprint planning 1-4 veckor sprint SPRINT Sprint retrospective 22 Leveransobjekt

Scrum Product backlog En lista av prioriterade arbetsuppgifter i projektet Listan baseras på kundens vision/krav Sprint backlog En prioriterad och tidsestimerad lista över arbetsuppgifter från projektet att utföra i aktuell sprint Tar de viktigaste sakerna ur Product backlog först Sprint planning Prioritering och tidsestimering av en lagom mängd uppgifter från product backlog som räcker för att ge ett leveransobjekt Man väljer ut så mycket som man lämpligen kan hinna med under en sprint (säg 1 vecka för detta projektet) Tidsestimering görs så bra man kan, estimerar man fel så har man lärt sig det till nästa sprint planning 23

Scrum Product backlog innehåller stories ID - unik identifering (det räcker med ett löpnummer) Namn - kort och beskrivande, verb och substantiv, 2-10 ord Viktighetsgrad - Produktägarens viktning, 1-150 kanske, prioritet är ett dåligt ord. OBS! Olika viktning på alla delar! Ett första estimat - En enklare tidsuppskattning ifrån teamet Enheten är points och matchar något bra, i vårt fall ideala-ingenjörstimmar. Ta ett lagom stort antal personer (2-4), lås in er i ett rum där det finns mat och inga telefoner, hur många timmar skulle det ta att slutföra arbetet? Om svaret är 3 personer och 4 timmar, då är estimatet 12 points Det viktigaste är att estimatet används för att jämföra mot andra estimat... 2 points är dubbelt så mycket som 1, och matchar inte nödvändigtvis 2 timmar. Hur det ska testas/demas - gör det här, och sen det här, då borde det här inträffa. Ett användningsfall. (För TDD) Tillägg - annan info, referenser, m.m. 24

Scrum Product backlog ID Name Imp Est Demo Notes 1 Deposit 30 5 2 See your own transaction story 10 8 Log in, open deposit page, deposit 10, go to my balance and check that it has increased by 10. Log in, click on transactions. Do a deposit. Go back to transactions, check that the new deposit shows up Need an UML sequence diagram. No need to worry about encryption for now Use paging to avoid large DB queries. Design similar to view users page. 25

Scrum Leveransobjekt En tillräckligt stor delmängd av systemet för att ge direkt nytta En helhet som fungerar och bara innehåller det viktigaste just nu Ger chans till utvärdering innan hela produkten är färdig Daily Scrum Vad har du gjort sedan igår? Vad planerar du att göra idag? Vad hindrar dig från att nå ditt mål? Sprint retrospective Ett möte där alla gruppmedlemmar reflekterar över genomförd sprint. Diskussion om vad som gick bra och vad man kan göra bättre nästa sprint. 26

Product Owner Product Backlog Scrum Master Team TDD Whole team Collective Ownership Tracker Continuous Integration Metaphor SCRUM Coding Standard Daily Scrum Pair programming XP Sustainable Pace Small Releases Refactoring Simple Design Planning Game Sprint Backlog Burndown Chart Sprint Planning Sprint Review 27

Feedback cycles Sprint demo Daily Scrum Kontinuerlig integration TDD/Enhetstest Parprogrammering 28

Agile & Usability 29

Frågor så långt? 30

Backlogbygge Timeboxed, som allt i Scrum (30 min) Resultat, en lista i viktighetsordning ID Name Imp Est Demo Notes 1 Deposit 30 5 2 See your own transaction story 10 8 Log in, open deposit page, deposit 10, go to my balance and check that it has increased by 10. Log in, click on transactions. Do a deposit. Go back to transactions, check that the new deposit shows up Need an UML sequence diagram. No need to worry about encryption for now Use paging to avoid large DB queries. Design similar to view users page. 31

Sprint planning Vad krävs för sprint planning En product backlog! Att varje teammedlem vet hur mycket de kan lägga in i sprinten Vad kommer ur en sprint planning Ett sprint goal En lista på teammedlemmar och deras commitment Ett givet demodatum/tid En definierad plats och tid för daily scrum En sprint backlog En schysst plan som gör att teamet kan arbeta ostört en sprint Vilka deltar Kund / produktägare Alla andra grisar 32

Sprint planning Varför måste kund/produktägare delta? Fyra variabler Omfattning, estimat (tid), viktighetsgrad (kostnad), kvalitet Vem bestämmer vad? Extern kvalitet bestäms av användarna (en del av omfattning) Intern kvalitet är bestämd. Den tummar ingen på! Agenda Timeboxed! Produktägare bestämmer sprint goal (en helhet!) Teamet estimerar samt bryter ned stories tillsammans med kund/ produktägare Produktägare uppdaterar ev. viktighetsgrad Alla tillsammans bestämmer vilka stories som ska vara med Teamet sätter tid och plats för daily scrum 33

Sprint planning Vilka stories ska vara med? Om D ska få plats? Product backlog Product backlog Product backlog Product backlog A B C }Velocity D A B }Velocity A B C D }Velocity A1 B C D }Velocity D C E E E E A2 Alt. 1 Omprioritera Alt. 2 Ändra omfattning Alt. 3 Dela stories 34

Sprint planning Velocity Hur många story points är utförda? Focus factor Teamets effektivitet Available time Räknas i ideala-ingenjörstimmar/dagar Last sprint This Sprint 35 Focus factor = Actual Velocity Available time Estimated Velocity = Focus factor * Available time

Sprint planning Bryt ner stories i aktiviteter Det blir mycket diskussion och mycket ändringar i denna fas Smidigast att göra med post-it-lappar Produktägaren/kunden behöver inte delta Exempel: Storyn Query Users får aktiviteterna Clarify requirements, Write test code, Design GUI, Test GUI, Find reporting tool and do spike, Implement user list, Integration test, debug, refactor, Implement query form En story är färdig när den Är accepterad av produktägaren Håller tillräckligt hög kvalitet (dvs. är parprogrammerad, testad och omfaktoriserad enligt XP) Därmed bör test-first och omfaktorisering vara aktiviteter till en story (se ovan) 36

Sprint running Arbeta tillsammans och synliggör arbetet Sprint taskboard direkt efter sprint planning 37

Sprint running Ta från den översta storyn (viktighetsgrad 150) Sprint taskboard under dag 2 38

Sprint running Tydliggör oplanerade aktiviteter Sprint taskboard under dag 10 39

Sprint running Nya krav och förändrade krav som dyker upp mitt i sprinten? Placeras i product backlog av produktägaren, prioriteras/viktighetsgraderas av kund och estimeras (i mån av tid) av teamet Sätts upp som story under nästa sprint planning och utförs under den sprinten Om kravet är en rejäl förändring, stoppas sprinten och en ny sprint planning görs 40

Sprint tracking Burndown chart Om grafen glider över normalstrecket så är det läge att ta bort några planerade stories Om grafen glider under normalstrecket så lägger man till några ifrån backlog:en 41

Sprint retrospective Låt alla komma till tals Försök förklara estimated vs. actual velocity Dela upp i enkla kategorier, som good, could have been better, och improvements 42

Ert projekt Roller Flera produktägare Flera processägare (Scrum masters) Teamleaders Tisdagar demo / sprint planning Sista dagen Demo för examinator & kund Release Inlämning av rapport Kickout (lunch - boka bord! :) 43

Referenser Extreme programming explained, Kent Beck Agile Software Development with Scrum, Ken Schwaber/Mike Beedle Agile Project Management with Scrum, Ken Schwaber Scrum and XP from the Trenches, Henrik Kniberg http://www.infoq.com/minibooks/scrum-xp-from-the-trenches 44