INF1050: Systemutvikling, 18. april 2017 Forskningsmetoder / Evaluering av systemutvikling Pensum: kap. 12 i lærebok + 3.5 (artikkel) + kap. 4.3.1 Professor Dag Sjøberg INF1050/ 18.4.2017 / Dag Sjøberg Slide 1 Plan Behovet for metodekunnskap Kvantitative versus kvalitative data Empiriske forskningsmetoder 1. Eksperiment 2. Case-studie 3. Etnografi 4. Spørreskjema-undersøkelse (survey) 5. Aksjonsforskning INF1050/ 18.4.2017 / Dag Sjøberg Slide 2 1
Forskningsmetode = Hvordan kunnskap dannes God metode Dårlig metode Pålitelig kunnskap Upålitelig kunnskap (mest ekstreme: Fake news) INF1050/ 18.4.2017 / Dag Sjøberg Slide 3 Valg av støtteteknologi (prosessmodeller, metoder, teknikker, praksiser, verktøy, språk) På hvilket grunnlag velger man teknologi som støtter systemutvikling? Ofte basert å moter/ hype og synsing fra guruer Velger ofte det man kjenner best Ideelt: Basert på empiriske undersøkelser (empirisk = erfaringsmessig, det som baserer seg på hva som fungerer i praksis) INF1050/ 18.4.2017 / Dag Sjøberg Slide 4 2
16/04/17 Nytteverdi Nyttig å kjenne til systematisk evaluering og forskningsmetoder Forstå og nyttiggjøre forskningsresultater Stille kritiske spørsmål til påstander Nyttig både i privat og offentlig sektor Nyttig i alle fag, ikke bare informatikk INF1050/ 18.4.2017 / Dag Sjøberg Slide 5 Er helikopter bedre enn sykkel? INF1050/ 18.4.2017 / Dag Sjøberg Slide 6 3
Man sier man vil velge det beste, men hva betyr det? Er par-programminering bedre enn solo-programmering? Er det lurt å bruke UML? Er Scrum bedre enn Kanban? Isolert sett er spørsmålene er meningsløse! INF1050/ 18.4.2017 / Dag Sjøberg Slide 7 Når er det bedre å bruke X? Spørsmålet er: For hvilke oppgaver på hvilke systemer for hvilke kategori av utviklere i hvilke typer organisasjoner i hvilke teknologiske omgivelser med hvilke ressurser er det gunstig (kost-nytte) å bruke X fremfor Y? Konkret for dere i en jobbsituasjon: Hvilke valg gjør vi og hvorfor? INF1050/ 18.4.2017 / Dag Sjøberg Slide 8 4
Stor risiko ved vilkårlig innføring av teknologi Innføring av ny teknologi i private og offentlige organisasjoner kan være svært dyrt Trenger derfor skikkelig kost/nytte-evalueringer opp mot alternativer Men hvordan gjennomføre slike evalueringer? Når kan vi stole på resultatene? INF1050/ 18.4.2017 / Dag Sjøberg Slide 9 Behov for kunnskap om empiriske metoder Systemutvikling menneskelig aktivitet i organisasjoner. Kan ikke bruke matematikk/logikk til å utlede hvordan utviklingen skal utføres Lytt til folk med erfaring, men ofte begrenset til spesielle kontekster ikke nødvendigvis gyldig i nye situasjoner Metode vektlegges mye i samfunnsfag og psykologi Nyttig kunnskap uansett hva man skal drive med Masteroppgave Rapporter i en organisasjon INF1050/ 18.4.2017 / Dag Sjøberg Slide 10 5
Mer om motivasjon for bruk av forskningsmetoder i systemutvikling: Tichy, W. Empirical software research: an interview with Dag Sjøberg, University of Oslo, Norway, Magazine Ubiquity, June 2011, Article No. 2, ACM New York, NY, USA http://ubiquity.acm.org/article.cfm?id=1998374 INF1050/ 18.4.2017 / Dag Sjøberg Slide 11 Plan Behovet for metodekunnskap Kvantitative versus kvalitative data Empiriske forskningsmetoder 1. Eksperiment 2. Case-studie 3. Etnografi 4. Spørreskjema-undersøkelse (survey) 5. Aksjonsforskning INF1050/ 18.4.2017 / Dag Sjøberg Slide 12 6
Kvantitative data Data representert som tall, uttrykker kvantitet. Brukes i statistikk Eks. Kahoot INF1050 V2017 versus V2016 INF1050/ 18.4.2017 / Dag Sjøberg Slide 13 Poeng hvor tid også teller (kortere tid -> flere poeng) Prosent poeng (100 % er alle poeng over alle år INF1050/ 18.4.2017 / Dag Sjøberg Slide 14 7
Gjennomsnitt over alle forelesninger Antall studenter INF1050/ 18.4.2017 / Dag Sjøberg Slide 15 Kvalitative data Data representert som tekst, bilder og figurer men ikke tall Kan ikke måles men kan observeres. Kan ikke brukes i statistikk Eks. tolkning av kvantitative data. Hva kan grunne være til at dere på INF1050 i år var raskere på Kahoot enn i fjor? INF1050/ 18.4.2017 / Dag Sjøberg Slide 16 8
Plan Behovet for metodekunnskap Kvantitative versus kvalitative data Empiriske forskningsmetoder 1. Eksperiment 2. Case-studie 3. Etnografi 4. Spørreskjema-undersøkelse (survey) 5. Aksjonsforskning INF1050/ 18.4.2017 / Dag Sjøberg Slide 17 (Kontrollert) eksperiment Et eksperiment undersøker årsak-virkning hva fører til hva? Manipulerer (endrer) det fenomenet man studerer, og så måler man virkningen Enkeltindivider eller team (deltakere) utfører systemutviklingsoppgaver der hensikten er å sammenligne ulike prosessmodeller, metoder, teknikker, praksiser, verktøy eller språk ( treatments ) INF1050/ 18.4.2017 / Dag Sjøberg Slide 18 9
Eksperiment Uavhengige variable (treatment) Teknologi Effekt Avhengige variable (resultat) Kvalitet, Tid & Kostnad Moderator variable (kontekst) INF1050/ 18.4.2017 / Dag Sjøberg Slide 19 Hypotesetesting Nullhypotese: en påstand vi ønsker å forkaste Hvis det er svært lite sannsynlig, f.eks. < 5 % (signifikansnivå), at vi hadde fått de resultatene vi faktisk fikk i eksperimentet hvis nullhypotesen er sann, da forkaster vi den. Dvs. antar at den alternative (motsatte) hypotesen er sann Hvis vi ikke kan forkaste nullhypotesen, anser vi den som gyldig INF1050/ 18.4.2017 / Dag Sjøberg Slide 20 10
Eks: Parprogrammering Delt eierskap og ansvar for kode, dvs. teamets ansvar, ikke den enkelte sitt alene Kunnskap om spesiell kode deles av flere (redundans) Folk kan steppe inn for hverandre Mindre problem at noen slutter Utviklerne bli bedre kjent ved stadig å endre parsammensetningen Forbedret kvalitet ved at koden gjennomgås av to personer INF1050/ 18.4.2017 / Dag Sjøberg Slide 21 Hva er kost-nytten ved parprogramming? Sommerville skriver (s. 68 i læreboka): However, studies with more experienced programmers (Arisholm et al., 2007*; Parish et al., 2004) did not replicate these results. They found that there was a significant loss of productivity compared with two programmers working alone. *E. Arisholm, H.E. Gallis, T. Dybå and D.I.K. Sjøberg. Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise, IEEE Transactions on Software Engineering 33(2): 65-86, 2007 INF1050/ 18.4.2017 / Dag Sjøberg Slide 22 11
Eksperiment om parprogrammering Par- vs enkeltprogrammering Effekt Moderator variable: Korrekthet, Varighet & Arbeidstimer Dyktighetsnivå, Vanskelighetsgrad på oppgave INF1050/ 18.4.2017 / Dag Sjøberg Slide 23 Eksperiment om parprogrammering: Nullhypotese Parprogrammering og solo-programmering gir like resultater med hensyn til kvalitet, tid og kostnader for ulike typer utviklere og oppgaver INF1050/ 18.4.2017 / Dag Sjøberg Slide 24 12
Deltakere og oppgaver 295 junior, mellomnivå og senior Java konsulenter fra 29 firmaer fra Norge, Sverige og Storbritannia deltok en arbeidsdag (kostet 1,5 mill.) 99 jobbet enkeltvis 98 i par Enkeltindividene og parene utførte de samme endringsoppgavene i Java på Et enkelt system med sentralisert kontrollstil og Et komplekst system med delegert kontrollstil INF1050/ 18.4.2017 / Dag Sjøberg Slide 25 Kontrollstil esponsibility riven Design ole Modelling e-case Driven Design Control Style Object-Oriented Design Method Object4 Object5 Message3 Message5 Delegated Control Style Centralized Control Style Object3 Message4 Message2 Message5 Object1 Object3 Object1 Message1 Message1 Message2 Message6 Message4 Object2 Object2 Delegert kontrollstil (DC) Sentralisert kontrollstil (CC) Driven Design Object5 Message3 Object4 INF1050/ 18.4.2017 / Dag Sjøberg Slide 26 13
160 % Total Effect of PP Difference from individuals 140 % 120 % 100 % 80 % 60 % 40 % 20 % 0 % 84 % 7 % -20 % -40 % -8 % Duration Effort Correctness Correctness = Prosent flere riktige løsninger enn hos individuelle programmerere INF1050/ 18.4.2017 / Dag Sjøberg Slide 27 160 % Moderating Effect of System Complexity on PP Difference from individuals 140 % 120 % 100 % 80 % 60 % 40 % 20 % 0 % CC (easy) DC (complex) 6 % 60 % 112 % 48 % -20 % -40 % -20 % -16 % Duration Effort Correctness INF1050/ 18.4.2017 / Dag Sjøberg Slide 28 14
160 % Effect of PP for Juniors 140 % Difference from individuals 120 % 100 % 80 % 60 % 40 % 20 % 0 % 5 % 111 % 73 % -20 % -40 % Duration Effort Correctness INF1050/ 18.4.2017 / Dag Sjøberg Slide 29 Difference from individuals 160 % 140 % 120 % 100 % 80 % 60 % 40 % 20 % 0 % Moderating Effect of System Complexity for Juniors CC (easy) DC (complex) 4 % 6 % 109 % 112 % 32 % 149 % -20 % -40 % Duration Effort Correctness INF1050/ 18.4.2017 / Dag Sjøberg Slide 30 15
160 % Effect of PP for Seniors Difference from individuals 140 % 120 % 100 % 80 % 60 % 40 % 20 % 0 % -20 % -9 % 83 % -8 % -40 % Duration Effort Correctness INF1050/ 18.4.2017 / Dag Sjøberg Slide 31 Difference from individuals 160 % 140 % 120 % 100 % 80 % 60 % 40 % 20 % 0 % -20 % -40 % Moderating Effect of System Complexity for Seniors CC (easy) DC (complex) -23 % 8 % 55 % 115 % -13 % -2 % Duration Effort Correctness INF1050/ 18.4.2017 / Dag Sjøberg Slide 32 16
Effekten av å bruke parprogrammering kommer an på Programmeringsekspertise Junior Mellomnivå Senior Oppgavekompleksitet Bruke PP? Kommentar Lett Ja Gitt at hovedmålet er god kvalitet Vanskelig Ja Gitt at hovedmålet er god kvalitet Lett Nei Vanskelig Ja Gitt at hovedmålet er god kvalitet Lett Vanskelig Nei Nei* * Med mindre oppgaven er svært for vanskelig, selv for en senior INF1050/ 18.4.2017 / Dag Sjøberg Slide 33 Når ønsker du å jobbe sammen med andre? 1. Alltid 2. Når oppgavene er enkle 3. Når oppgavene er vanskelige 4. Aldri INF1050/ 18.4.2017 / Dag Sjøberg Slide 34 17
Kommentarer til eksperimentet Utviklere med lang erfaring i parprogrammering vil kunne gi andre resultater Parprogrammering som ledd i opplæring? Dyrt! INF1050/ 18.4.2017 / Dag Sjøberg Slide 35 Plan Behovet for metodekunnskap Kvantitative versus kvalitative data Empiriske forskningsmetoder 1. Eksperiment 2. Case-studie 3. Etnografi 4. Spørreskjema-undersøkelse (survey) 5. Aksjonsforskning INF1050/ 18.4.2017 / Dag Sjøberg Slide 36 18
Case-studier Eksperimenter svarer på hva effekten er, casestudier mer på hvordan og hvorfor Case-studier legger vekt på å studere fenomener i sine naturlige omgivelser Case-studier har få datapunkter og mange variable. Derfor generalisering ved bruk av teori, ikke statistikk som i eksperimenter INF1050/ 18.4.2017 / Dag Sjøberg Slide 37 Eksempel på komparative (sammenlignende) case-studie A B Anbudspris C D INF1050/ 18.4.2017 / Dag Sjøberg Slide 38 19
Annet eksempel på case-studie (Læreboka seksjon 3.5) INF1050/ 18.4.2017 / Dag Sjøberg Slide 39 På hvilket grunnlag tas beslutninger: f. eks. velge Scrum eller Kanban? Mange påstander for/mot Scrum og Kanban Argument mot Kanban Mangler positiv deadline effekt (budsjett og tidspress) Lite struktur Argument mot Scrum Oppfattes av noen firmaer som rigid, lite egnet for vedlikeholdsoppgaver, tidsbokser basert på usikre estimater ga lengre lead-time og redusert produktivitet, og generelt mye waste (oppstartsmøter etc.) INF1050/ 18.4.2017 / Dag Sjøberg Slide 40 20
Overgang fra Scrum til Kanban i Software Innovation (SI) SI begynte med Scrum i 2007 og Kanban i 2010 Motiver for overgang til Kanban: Økt produksjonen Bedre systemkvalitet, bl.a. ved å redusere lead-time Har forventningene blitt møtt? Analyse av 12 000 utviklingsoppgaver (work items) over 3,5 år registrert i Team Foundation Server (TFS) Dag I.K. Sjøberg, Anders Johnsen and Jørgen Solberg: Quantifying the Effect of Using Kanban versus Scrum: A Case Study. IEEE Software, Vol. 29, Nr. 5, side 47 53, Sep./Oct. 2012 INF1050/ 18.4.2017 / Dag Sjøberg Slide 41 Måling av prosesskvalitet (Varighet) INF1050/ 18.4.2017 / Dag Sjøberg Slide 42 21
Ledetid INF1050/ 18.4.2017 / Dag Sjøberg Slide 43 Bugs (feil) INF1050/ 18.4.2017 / Dag Sjøberg Slide 44 22
Produktivitet INF1050/ 18.4.2017 / Dag Sjøberg Slide 45 Konklusjon på studien Ved å erstatte Scrum med Kanban, SI nesten halverte ledetiden reduserte antall feil med 10% forbedret produktiviteten SI ser derfor ut til å dra fordel av å bruke Kanban istedenfor Scrum Bør vurderes av andre som erfarer vanskeligheter med estimering avbrytelser pga. ad hoc-bug fiksing, support og vedlikeholdsoppgaver INF1050/ 18.4.2017 / Dag Sjøberg Slide 46 23
# utviklingsoppgaver per person per kvartal Realitet versus guru 66 Guru-estimat 42 Guru lovnad: Etter hans interne Scrum-kurs sommeren 2009: 500-800 % more productive in about a year INF1050/ 18.4.2017 / Dag Sjøberg Slide 47 Triangulering For å unngå subjektive vurderinger casestudier, bør man ha: Ø Data-triangulering: Data fra flere kilder bør beskrive de samme fenomenene vi undersøker Ø Undersøker/forsker-triangulering: Ulike personer bør undersøke det samme INF1050/ 18.4.2017 / Dag Sjøberg Slide 48 24
Intervjuer ofte brukt i case-studier (Læreboka seksjon 4.3.1.1) Strukturerte intervjuer Ø Spørsmålene definert på forhånd, veldefinerte svaralternativer. Kan kvantifisere (telle opp) hvor mange som svarer hva på hvert spørsmål Semistrukturerte intervjuer Ø Intervjuerne baserer seg på stikkord og spørsmål som evt. kan droppes underveis, og nye spørsmål kan stilles avhengig av hvordan intervjuet forløper Åpne (ustrukturerte) intervjuer Ø Forløper seg mer som en samtale mellom intervjuer og intervjuobjekt INF1050/ 18.4.2017 / Dag Sjøberg Slide 49 Plan Behovet for metodekunnskap Kvantitative versus kvalitative data Empiriske forskningsmetoder 1. Eksperiment 2. Case-studie 3. Etnografi 4. Spørreskjema-undersøkelse (survey) 5. Aksjonsforskning INF1050/ 18.4.2017 / Dag Sjøberg Slide 50 25
Etnografi/observasjon (Læreboka seksjon 4.3.1.2) INF1050/ 18.4.2017 / Dag Sjøberg Slide 51 Metode Dyp forståelse av folk, organisasjon og konteksten for arbeidet Forskeren observerer over lengre tid hva folk gjør og er mer involvert i gruppen som studeres enn i case-studier Personene som studeres trenger ikke å forklare hva de gjør Arbeidsoppgaver er ofte mer omfattende og komplekse enn hva arbeidsprosessmodeller indikerer Sommerville nevner etnografi som mulig metode for å identifisere krav til et datasystem INF1050/ 18.4.2017 / Dag Sjøberg Slide 52 26
Plan Behovet for metodekunnskap Kvantitative versus kvalitative data Empiriske forskningsmetoder 1. Eksperiment 2. Case-studie 3. Etnografi 4. Spørreskjema-undersøkelse (survey) 5. Aksjonsforskning INF1050/ 18.4.2017 / Dag Sjøberg Slide 53 Spørreskjemaundersøkelser (Surveys ) INF1050/ 18.4.2017 / Dag Sjøberg Slide 54 27
Vanlig i samfunnet Krever lite ressurser å nå ut til mange Lager statistikk og tester hypoteser over egenskaper ved gruppen som studeres (målpopulasjon) Man får svar på hva folk mener om hva, hvor mye, hvor mange, hvordan og hvorfor eller hva folk sier de gjør I motsetning til eksperimenter kontrollerer man ikke de uavhengige og avhengige variable I motsetning til case studier og etnografi observerer man ikke Vanligvis data fra et utvalg. Men hvis populasjonen er alle i et firma eller prosjekt, kan hele populasjonen undersøkes INF1050/ 18.4.2017 / Dag Sjøberg Slide 55 Eksempler på temaer Identifisere problematiske områder i systemutvikling Mange uklare kravspesifikasjoner? Overskridelser i systemutviklingsprosjekter? Identifisere faktorer som påvirker en egenskap eller en betingelse Hvilke faktorer må være tilstede for vellykket innføring av UML i en organisasjon? INF1050/ 18.4.2017 / Dag Sjøberg Slide 56 28
Egen spørreundersøkelse INF1050/ 18.4.2017 / Dag Sjøberg Slide 57 Resultater 477 besvarelser fra 71 smidige team i 26 firmaer Positiv sammenheng mellom kvaliteten i teamarbeidet* og prosjektsuksess når team-medlemmer og teamledere vurderte prosjektsuksess Fant liten effekt når produkteiere vurderte prosjektsuksess Kvaliteten i teamarbeidet og effekten på prosjektsuksess var omtrent den samme som i tilsvarende undersøkelse av tradisjonelle team Kvalitet i teamarbeid: communication, coordination, balance of member contribution, mutual support, effort, and cohesion INF1050/ 18.4.2017 / Dag Sjøberg Slide 58 29
Spørreskjemaer type spørsmål Numeriske verdier, for eksempel alder Svarkategorier, for eksempel stillingstype Ja/Nei-svar Ordinalskala som vanligvis er bedre for holdninger og preferanser. Tre typer Enighetsskalaer, f.eks. 5-nivå Likert-skala med kategoriene: sterkt uenig, uenig, verken uenig eller enig, enig, sterkt enig Frekvensskala, for eksempel aldri, sjelden, av og til, ofte, alltid Evalueringsskalaer: svært dårlig, dårlig, passe, god, veldig god Åpne spørsmål INF1050/ 18.4.2017 / Dag Sjøberg Slide 59 Fire typer skalaer Nominal Verdiene tilhører kategorier uten rangering (rekkefølge), f.eks. farger, kjønn Ordinal Som nominal skala, men kategoriene rangeres, f.eks. lite, middels, mye eller aldri, sjelden, av og til, ofte, alltid Intervall Som ordinal, men avstanden mellom verdiene har betydning, f.eks. temperatur i Celsius Ratio (forholdstalls) kontinuerlige skala med et absolutt nullpunkt. Forholdet mellom verdier kan beregnes, f.eks. temperatur i Kelvin ( kan si: en verdi dobbelt så stor som en annen ) INF1050/ 18.4.2017 / Dag Sjøberg Slide 60 30
Plan Behovet for metodekunnskap Kvantitative versus kvalitative data Empiriske forskningsmetoder 1. Eksperiment 2. Case-studie 3. Etnografi 4. Spørreskjema-undersøkelse (survey) 5. Aksjonsforskning INF1050/ 18.4.2017 / Dag Sjøberg Slide 61 Aksjonsforskning Praksis og teori tett integrert slik at både praksis og forskning lærer av hverandre Forskere og ansatte i organisasjoner erfarer sammen problemer og utfordringer, og lærer hvordan man takler dem Sammen utførere de aksjoner (tiltak for endring) for å forbedre situasjonen INF1050/ 18.4.2017 / Dag Sjøberg Slide 62 31
Aksjonsforskning prøver å oppnå praktisk nytte for organisasjonen samtidig med å fremskaffe ny teoretisk kunnskap INF1050/ 18.4.2017 / Dag Sjøberg Slide 63 Oppsummering Når noen påstår X, bør dere finne ut bakgrunnen for påstanden. Hvordan har man kommet fram til at X er gyldig (er sant)? Dvs. hvilken metode er brukt. Finnes mange metoder. De egner seg i mer eller mindre grad avhengig av hva man skal finne ut og konteksten (omgivelsene). Er metoden holdbar i dette tilfellet? INF1050/ 18.4.2017 / Dag Sjøberg Slide 64 32
Mer informasjon om ulike metoder INF1050/ 18.4.2017 / Dag Sjøberg Slide 65 33