Att införa Extreme Programming genom processförbättring

Storlek: px
Starta visningen från sidan:

Download "Att införa Extreme Programming genom processförbättring"

Transkript

1 Att införa Extreme Programming genom processförbättring Johan Thiborg-Ericson Vahagn Baghomian Sammanfattning Syftet med denna studie är att studera hur agila metoder uppkommer som en naturlig följd av processförbättringen i ett projekt. Studieobjektet är tio teknologer som implementerar ett program inom ramarna för en kurs i XP. Utvecklingen av gruppens arbetsmetoder undersöktes för att observera detta fenomen. Studien visar att gruppen själv uppfann ett fåtal av teknikerna, men att vissa tekniker var för avancerade för att de skulle tycka att de behövdes. 1.0 Bakgrund Under de senaste två decennierna har många företag gått över från utveckling av programvara enligt vattenfallsmodellen till mer agila metoder. En anledning till detta är att de vill sänka de kostnader som inte är direkt kopplade till programmeringen samt att minska osäkerhet i kostnadsbedömningar. I företaget som beskrivs av James Grenning [2] var själva utvecklarna duktiga och gjorde ett bra arbete, men de stötte på problem. Ledningen på företaget ansåg att för stora mängder administrativt arbete medförde att utvecklingen av mjukvara tog onödigt lång tid, vilket ledde till för höga utvecklingskostnader. Dess utom fanns buggarna kvar och utvecklarna hade problem med att starta nya projekt. När James Grenning [2] skulle introducera XP i detta företag möttes han till en början av skeptisism från utvecklarnas håll. De undrade om koden verkligen kunde vara designen och om man kunde utveckla mjukvara utan att designa allting först med mera. Dessa tillvägagångsätt i XP är inte helt nya utan är snarare en sammanfattning av ackumulerad kunskap från projekten i industrin, lösryckta goda idéer. Många programmeringsprojekt arbetade enligt dessa principer långt innan begreppet agil utveckling formulerats. Ett exempel på detta beskrivs av Martin i [5]. Därför borde det rent logiskt gå att införa något som liknar XP genom att bara låta gruppen hitta på egna best practices. Det skulle dock ta väldigt lång tid och därför behöver gruppen provoceras att identifiera problemen och formulera lösningar.

2 1.1 Problem som kan uppstå när man inför XP Även om XP är ett bra tillvägagångssätt vid programvaruutveckling, finns det diverse risker som dess utövare kan utsättas för. En av dessa är att utvecklare som tidigare skrivit program på ett annat sätt, inte följer reglerna för XP och återgår till sina föregående arbetssätt. Ett exempel på detta är att de inte skriver testfall innan de implementerar kod, utan implementerar koden direkt. En anledning till detta kan vara tidsbrist. Till exempel kan det ta ganska lång tid att skriva testfall till metoder som är komplexa och vid tidsbrist kan det hända att utvecklarna väljer att implementera koden direkt utan att skriva något testfall först.[2] En mycket informativ text om parprogrammering finns i Martin [4]. Där kan man hitta råd om när man ska byta plats, hur programmeringsparet kan hitta till en enkel design, när det är lämpligt att refaktorisera, i vilken ordning man ska skriva test osv. Processen som projektet resulterar i kommer att jämföras med denna text. Den kommer även användas som expertråd i de diskussioner gällande XP som uppkommer under projektets gång. 1.2 Kursen PVG och ordförklaringar I denna studie används en grupp studenter som går kursen Programvaru-utvecklig i grupp (PVG) där de lär sig om hur man skriver program på ett agilt sätt [12]. Deras kurs är uppdelad i en teoretisk del, som inte är relevant i detta arbete, och en praktisk del. I den senare delen implementerar alla elever i grupper om ca tio personer ett program för tidtagning av en sport. Gruppen som den här studien avser kommer nedan att kallas gruppen. Implementeringen sker under hela måndagen i sex veckors tid på så kallade långlabbar. För att utvärdera hur mycket de lärt sig så får de skriva ner i slutet på varje långlabb vad som gått bra, vad som gått mindre bra och vad de blivit förvånade av under dagen. Under kommande onsdag ägnas det två timmar åt att tillsammans komma på hur tidigare problem ska undvikas i framtiden. Detta möte kallas planeringsmöte, eftersom det också innefattar Planing Game enligt XP. 1.3 Planerat tillvägagångssätt I det här projektet planerades att XP skulle införas genom någon form av processförbättring. Ett utmärkt exempel för uppslag är Humphrey [3], där det står om hur ett företags processmognad kan mätas. Insikten kan delas upp i fem steg: 1. Att förstå den nuvarande processen 2. Att skapa en bild av den process man önskar 3. Att identifiera och prioritera stegen som behövs för att nå den önskade processen 4. Att skapa en plan för att införa den nya processen 5. Att tillföra resurser för att genomföra förändringen En annan modell som formulerats av den amerikanske affärsmogulen Robert Pozen är att varje

3 gång ett problem upptäcks så formulerar gruppen hur de ska förbättra processen för att undvika problemet [10]. Modellen formulerar även hur det ska gå att mäta hur väl förbättringen införts. Den här modellen kan vara lämplig i PVG eftersom den skapar en känsla av att gruppen har ansvaret för att lösa problemet, eftersom de själva formulerat lösningen. Det kan vara lämpligt att formulera lösningarna i form av mönster, utökat med en extra sektion för hur man ska mäta att mönstret införts i vår process. Fokus i den här rapporten är inte menat att ligga på processförbättring, men det är ändå en viktig del eftersom det kommer användas som ett verktyg i införandet av XP. Hur ska vi få gruppmedlemmarna att skriva programmet test-first? En lösning kan vara att projektledarna föregår med gott exempel och lär ut test-first programmering till resten av gruppen. Förmodligen kommer gruppen då, eftersom de ser upp till ledarna, förhoppningsvis att följa deras exempel och vara mindre benägna att gå tillbaka till sina föregående sätt att programmera. En annan lösning kan vara att få gruppmedlemmarna att förklara sig inför projektledarna varför de tänker låta bli att skriva tester. Detta kommer att leda till att de verkligen måste ha goda skäl och få klartecken från projektledarna innan de får skriva kod utan testfall. Det gör även att det höjer tröskeln för att paret struntar i att testa först, då det kanske känns mindre omständigt för dem att skriva testfallen än att argumentera med oss. I vissa fall kan det förstås hända att det blir svårt att skriva testfall till en viss funktionalitet och de som implementerar kodsnittet kör fast. Då blir det projektledarnas ansvar att rycka in och hjälpa till efter bästa förmåga och se till att hitta en lösning på problemet. Till exempel kan de be någon annan i gruppen som är bra på att skriva testfall att hjälpa de som kört fast. Detta kommer att motivera gruppmedlemmarna att skriva testfall även om de kör fast och ta hjälp av varandra när det behövs. 1.4 Spelplanen Som en del av utförandet av undersökningen som denna rapport beskriver fick gruppen som gick PVG-kursen använda ett slags flödesschema och en spelpjäs då de programmerade. Dessa kommer att kallas Spelplanen nedan. Tanken med spelplanen var att varje väsentlig aktivitet under parprogrammeringen skulle representeras av en ruta. Rutorna var i sin tur förbundna med pilar som motsvarade ordningen i vilken dessa aktiviteter skulle utföras. Den i programmeringsparet som inte skrev kod för tillfället skulle vara ansvarig för att flytta pjäsen till den ruta som motsvarade den aktivitet de just då utförde. 1.5 Dokumentets struktur Beskrivningen under varje rubrik framgår av rubriken eller underrubriken. Sektioner med rubriken iteration är uppdelade i tre delar som beskriver vilken metod som användes just under den iterationen och hur den utfördes, resultaten, analys av resultaten samt jämförelse med andra gruppers arbete. De slutsatser som dras efter dessa sammanställs i slutet av dokumentet under rubriken slutsatser. Sektionen med rubiken projektstartmöte beskriver vad som gjordes och förberedes inför den

4 första planeringsmötet samt hur denna möte gick till. 2.0 Frågeställningar Skulle man kunna få projektdeltagarna att själva komma fram till XP praktikerna för att lösa sina problem och ta sig fram genom projektet? Genom den här studien hoppas vi kunna se vilka fördelar och problem som finns med XP:s praktiker i PVG-sammanhanget genom att sammanfatta lärdomarna från hur spelplanen utvecklas. Vi ska även ta reda på om modellen med en spelplan är ett lämpligt sätt att införa XP:s utvecklingsstil på. Förutom dessa kommer vi att intervjua projektdeltagarna för att hjälpa dem att formulera hur projektet ska förbättras och hur vi som coacher kan förbättra våra riktlinjer. Med andra ord ta emot förslag på hur vi kan hjälpa dem att införa förändringarna. Resultatet kommer jämföras med litteraturen på området. 3.0 Iteration 0 Innan den första iterationen hade coacherna till uppgift att implementera några stories att ha som mall och för att göra det lättare för projektgruppen att komma igång. Två olika designer togs fram. Den ena designades helt och hållet enligt XP teknikerna, skrevs med test first och utvecklades i enlighet med testfallen. Kodlukter eliminerades så gott det gick. Totalt blev det sju klasser. Den andra implementerades med betydligt färre klasser, bara 3 stycken. Båda uppfyllde samma funktionalitet och tanken var att få projektgruppen att titta igenom de två designerna och välja den som de ville ha. Om de valde den som var implementerad på ett grovt sätt, skulle de få refaktorisera och förenkla den för att lära sig grunderna i XP. Om de å andra sidan skulle välja det andra alternativet, skulle de ha en bra grund och klar bild på hur det är tänkt att utvecklingen ska gå till, men inte få särskilt mycket praktiskt erfarenhet. De valde det alternativet som hade fler klasser. Detta sågs som en nackdel eftersom det fanns risk att de skulle hålla fast vid denna design för länge. Om de hade valt den minimala designen så hade de på ett tidigt stadium tvingats att refaktorisera och på så sätt få känna hur det kändes och inte vara rädda för det. Den initiala spelplanen bestod av tre rutor, ihopkopplade med pilar, som tillsammans bildade en cirkel. Tanken var att, under projektstartsmötet, få projektgruppen att utveckla denna spelplan och sätta in commit och update rutor och på så sätt få dem tänka till om hur de skulle arbeta.

5 Figur 1: Den initiala spelplanen 4.0 Projektstartmöte Inför projektstartmötet hade planerats att samla in data på ett annat tillvägagångssätt än den metod som slutligen valdes. Tanken var att låta projektdeltagarna formulera mönster, som de beskrivs av Rising [11], två gånger per Iteration. För att stävja häftiga diskussioner hade det tänkts att separera formuleringen av problemet och formuleringen av lösningen. Med lösningen menas den lösning de kommit överens om över lunchen eller från slutet av en labb till början av en annan. De fick även i uppgift att formulera mönster under uppstartsmötet. För att de skulle ha en tydlig bild av vad som förväntades av dem, fick de veta att de skulle formulera mönster som uppfyllde frågeställningen Hur kan vi producera kundvärde smartare? Formuleringen av mönster gick tyvärr så segt att det beslutades att inte använda denna metod mer. Gruppmedlemmarna upplevde mönstren som abstrakta och kunde inte relatera till frågeställningen. Dessutom visade det sig att deras kurs ändå innehöll ett liknande moment (enskild- och gruppreflektion), så därför kändes vår idé överflödig. Under detta möte utvecklades även den initiala spelplanen med flera rutor innehållande nya utvecklingsfaser som projektmedlemmarna själva tagit fram. Figur 2: Spelplanen efter projektstartmötet

6 5.0 Iteration Metod Under första Iterationen tilläts labbdeltagarna att bara följa spelplanen i den mån de ville för att de skulle få en uppfattning om hur det kändes att arbeta fritt och för att de senare skulle ha något att jämföra med när de senare använde spelplanen. 5.2 Resultat Flera personer tyckte att paren behövde bytas oftare. De andra var inte villiga att införa parbyte som en ruta på planen eftersom de inte ville bli tvingade att byta. Många var dessutom motvilliga att byta par eftersom de ansåg att de skulle störa de andra i gruppen. Därför beslutade vi coacher att tillfälligt hjälpa dem som ville byta par genom att regelbundet fråga om de ville byta par. Många, om inte alla, var även ovana vid Test-first principen och hade därför svårt att skriva kod enligt testfallen och ibland glömde de att skriva testfall först. Därför fortskred utvecklingen ganska segt i början. Detta gjorde att större delen av första halvan av Iterationen gick åt till att skriva testfall istället för kod. Men allt eftersom de lärde sig gick utvecklingen allt snabbare framåt och på eftermiddagen hann gruppen med att implementera de flesta stories. Någon tyckte att vi testar för lite. Dock framgick det inte om han menade att vi testade för lite i förhållande till vad vi borde enligt XP eller i förhållande till vad som skulle vara bra för gruppen. Tre personer upplevde problem med merge konflikter varav två beskrev problemen som stora. En trodde att problemen berodde på att han och hans partner hade uppdaterat för sällan. En av gruppens medlemmar föreslog att vi skulle skaffa ett stort papper för att rita på eftersom white-board:en inte räckte till och för att den satt otillgängligt. Det som alla var överens om var att kommunikationen i gruppen fungerade bra. Det hände att vissa inte vände sig från skärmen när någon i ett annat par tilltallade hela gruppen, men för övrigt fungerade kommunikationen bra. På labben visade det sig att spelplanen saknade väsentliga pilar och detta gjorde att gruppmedlemmarna inte kunde fortsätta med utvecklingen. På grund av detta modifierades spelplanen något.

7 Spelplanen upptaderades med rutorna Skriv test, Skriv kod, Grönt och Refaktorisera. Som uppgift fick projektdeltagarna lägga in rutor för Update, Commit och Kör test. Medvetet valdes att styra dem mot att integrera kod för varje test eftersom det ansågs att det skulle öka möjligheten för parallellt kodskrivande och minska risken för merge-konflikter. Figur 3: Spelplanen efter modifiering under labb Analys En glad överraskning var att det var så pass många som ville byta par ofta. Enligt oss hade det varit troligare att de hellre skulle vilja sitta i samma par och vara fokuserade hela labben. Anledningen var kanske att parbytena under första labben huvudsakligen drevs av att personer med expertkunskap behövde flyttas runt. Det gjorde att par som inte hade specialkunskaper och inte behövde experthjälp undvek att byta par. Det var mest sådana par som kände för fler parbyten, men de kände att de skulle förstöra för det par de bytte in sig i. Gruppen valde att pröva att byta par oftare, huvudsakligen för att de som ville det skulle bli gladare. Det är förståeligt att test-first principen kunde ställa till med svårigheter. Innan PVG-kursen hade många implementerat kod direkt och inte brytt sig om att skriva testfall och övergången till testbaserad kodutveckling var svårt för dem, eftersom det inte är lätt att byta vanor. Det är intressant att det kan uppkomma merge-konflikter i ett så här litet program där beroendet mellan klasserna är lågt. En förklaring till detta kan vara att gruppenmedlemmarna inte uppdaterade ofta nog eller ändrade i kod de inte skulle ha ändrat i. En intressant fråga som dök upp är om merge-konflikter och mer test-first kan lösas med hjälp av spelplanen. Förslaget om ett extra papper att rita på är extra intressant eftersom det går under praktiken Informative Workspace som formulerades av Kent Beck [1] långt efter att deras kurslitteratur skrivits. Detta kan faktiskt ses som det första riktiga exemplet vi funnit på att XP kan växa fram

8 av sig självt. 5.4 Övriga gruppers reflektioner Fem av åtta grupper upplevde merge-konflikter under den här dagen och vår grupp var en av dem. Två av dem som upplevde problem samt två som inte gjorde det tyckte att paren behövde vänta på andra par när de ville skriva i samma kod. Två grupper hade problem med att koden duplicerades. Två av grupperna som hade problem, föreslog lösningen att uppdatera och integrera oftare. Två andra föreslog att lösa problemet med mer kommunikation. Det första förslaget är extra intressant eftersom litteraturen ger olika riktlinjer på hur ofta kod ska integreras. Enligt Chromatic [7] så ska kod integreras när en story är färdig. Detta stod uppenbarligen i konflikt med gruppernas behov av att få andras kod till sin kodbas så fort som möjligt. Dessutom föreslår Bendix m fl [8] att alla refaktoriseringar ska integreras genast och helst i små steg. Vissa använder tidsangivelser för att indikera hur ofta integration ska ske, t ex Beck och Andres [1]. I den speciella miljön med extremt många programmerare per tusen rader kod anser vi att det är lämpligt att integrera ännu oftare. 6.0 Iteration Metod Under Iteration två formulerades en intervju vars syfte var att se om gruppen skulle återuppfinna XP som det hade antagits. Under Iteration 1 hade en av gruppmedlemmarna uttryckt att han kände sig mycket upprymd över gruppens framgångar. Då resonerades det fram att om det går bra för gruppen, så kommer paren att uppleva just en sådan upprymdhetskänsla. I ett försök att göra intervjun generell så bestämdes att helt enkelt fråga hur glad den intervjuade var. Sedan skulle eventuella hinder identifieras genom att fråga hur personen skulle kunna bli gladare. Vi utgick från att om en person samtidigt kände att han producerade programkod snabbt, att kunden skulle ha nytta av funktionaliteten och att koden producerades på ett långsiktigt hållbart sätt, så skulle han uppleva det som roligt. Genom att identifiera störande moment för glädjen så skulle hinder i processen kunna identifieras och elimineras. 6.2 Resultat Det visade sig att denna intervju knappast gav någonting, då svaren var likartade och ofta speglade det vi uppmanat dem att fokusera på inför labben. De var oförmögna att komma på egna förslag på hur processen skulle förbättras. Det är också möjligt att närvaron av resten av gruppen gjorde att de formulerade sig försiktigt. Så gott som alla svarade åtta på en skala på ett till tio när de blev tillfrågade hur glada de var.

9 Gruppen tyckte att spelplanen hjälpte dem att komma ihåg att testa och att uppdatera och release:a koden när de arbetade med avancerade uppgifter. Däremot var planen mest i vägen vid enklare uppgifter. Problemen med merge-konflikter hade minskat markant i förhållande till förra gången, enligt gruppens reflektioner. När paren tillfrågades vilken ruta de var på så hände det ofta att de sa att de bara pratade. Vid närmare efterfrågningar så visade det sig att de oftast diskuterade vad nästa test skulle vara. Därför ändrade vi rutan Skriv test till Skriv test och prata. Figur 4: Spelplanens utseende efter labb Analys Syftet med den första intervjun var att få dem att fundera på hur de skulle kunna arbeta på ett långsiktigt sätt, men de flesta kunde inte komma på något svar. Detta pga att de inte visste vilka problem som skulle dyka upp. Iteration 2 karaktäriserades av lågt tempo. Det var svårt att sätta fingret på vad som sinkade oss. Det kunde ha varit att vi uppmanat dem att fokusera mycket på design. Det låga tempot ledde oss dock fram till idén att låta intervjun fråga efter hur fort det gick istället för att fråga hur roligt de hade. Denna fråga hoppades kunna ge en bättre bild över hur projektet framskred. Intervjuns syfte var att få gruppen att reflektera över hur deras handlande skulle påverka deras framtida produktivitet Det visade sig att många hade svårt att föreställa sig det. Därför valdes att fokusera på dagens problem istället(genom att fråga om hur fort det gick just då) och där i efterhand analysera vad de gjort fel tidigare. Utifrån detta skulle de sedan komma fram till hur de skulle undvika att göra om samma misstag.

10 Det minskade antalet merge-konflikter skulle kunna bero på en ökad användning av spelplanen, men det kan också ha berott på den lägre produktiviteten Dock borde det uppvägas av att de gjorde många stora refaktoriseringar. En intressant händelse var när ett par skadeglatt sa efter en integrering: nu kommer ni få merge-konflikter! Ändå var det ingen som fick det. 6.4 Övriga gruppers reflektioner Vår grupp borträknat så hade alla grupper utom en större uppdaterings- och integrationsrelaterade problem denna veckan än förra. Detta kan bero på att de olika delarna i programmet behövde kommunicera mer andra labben. 7.0 Iteration Metod Eftersom intervjun som formulerades under lab 2 inte gav något resultat, formulerades en ny, där det väsentliga handlade om vad den intervjuade arbetade med, hur fort det gick, vad som tog längst tid att göra, varför det gjorde det och vad som skulle kunna göras för att göra processen snabbare i framtiden. Vi gick från person till person och frågade. Beroende på vad personen ifråga håll på med, blev svaren annorlunda. 7.2 Resultat Även under denna labb utfördes mycket refaktoriseringar. Gruppen kom överens om att det inte var hållbart att göra så kallade Big Bang refaktoriseringar, utan att vi behövde mindre sådana i slutet av varje uppgift. För att kunna refaktorisera, var gruppmedlemmarna tvungna att förstå samt sätta sig i koden. Refaktorisering ledde till att designen förbättrades och gjorde det lättare att se hur allt i programmet hänger ihop, vilket i sin tur gjorde det enklare att förenkla designen och ta bort onödigt kod. För att se till att refaktoriseringen går till så smidigt som möjligt ska man avsluta det man håller på med innan man börjar med något nytt. Refaktoriseringen försvårades av att testerna var svåra att tolka. För att paret skulle hitta felet de infört var det ofta nödvändigt att följa långa stack trace. Enkel design tog en bra tag att genomföra. Ibland fick man göra en och samma sak flera gånger eftersom det simpla inte alltid fungerade när man skulle ha med mer komplexa saker och man spenderade mer tid på att ändra i gammal kod än skriva ny. Tyvärr så finns det inte något konkret sätt på vilket man kan komma underfund med enkel design, utan man får anpassa varje simplifiering efter behov.

11 Efter parbyten, refaktoriseringar och förenklingar, hände det att man spenderade ganska mycket tid på att sätta sig i kod som andra skrivit. Det förslag som de flesta kom upp med för att i framtiden slippa spendera tid på att läsa kod istället för att skriva, var helt enkelt att man bör fråga personen som skrivit koden om vad den gör. Några hade även problem med att komma underfund med inbyggda klasser, särskilt de som hade med det grafiska att göra, nämligen SWING. Deras förslag på hur man kan åtgärda detta kunde sammanfattas i att man bör sätta sig in i hur SWING fungerar innan man börjar koda. Under denna labb undergick spelplanen stora förändringar. Många nya moment och pilar lades till. Det var gruppmedlemmarna som kände att planen behövde utvecklas yterliggare, vilket tyder på mognad från XP perspektiv. Under förra labben hade det utförts många stora refaktoriseringar. Eftersom den vanliga planen inte kunde användas under refaktoriseringar, bads gruppen att utforma en speciell refaktoriserings-loop, se figur 5 och 6. Gruppen hade vid ett tidigare tillfälle kommit fram till att det var svårt att själv se om kod var enkel. Därför beslutade de att det skulle ske ett obligatoriskt parbyte innan refaktoriseringsfasen. Figur 5: Nya moment i spelplanen Figur 6: Spelplanen efter modifieringar under labb 3

12 7.3 Analys Metoden att göra en medelstor refaktorisering i slutet av varje task är ett utmärkt exempel på hur Klar klar kan användas [9]. Det stämmer även bra överens med hur parprogrammering beskrivs av Martin i [4] där det tar nästan en tredjedel av programmeringstiden att refaktorisera efter att en task är färdig. Problemet med test som hittar fel efter många metodanrop lokaliserades även i Martin och Newkirk [5], men där löstes problemet med att skriva enhetstest direkt för den trasiga metoden. De i gruppen som har stött på problemet har inte tyckt att detta hade varit nödvändigt. Det kan bero på att de var trötta på att refaktorisera och ville komma vidare, men det kan också vara ett uttryck för i hur stor utsträckning programmering är ett hantverk. De hade kanske inte tillräcklig med erfarenhet för att inse fördelarna med att snabbt kunna förstå varför ett test blivit rött. 7.4 Övriga gruppers reflektioner Tre av tio grupper la den stora refaktoriseringen som vi påbörjade förra veckan i den här veckan. En refaktoriserade ungefär lika mycket och övriga uttryckte inga problem med refaktoriseringar. Det är svårt att avgöra om vår grupp uppmärksammade problemen så tidigt för att vi coacher hade skrämt dem så mycket med problemen de annars skulle få, eller om det berodde på att vårt team var extra intresserade av objektorienterad design. 8.0 Iteration Metod Under denna labb utfördes inga intervjuer, endast planen utvecklades. Som tur var, bestod en story av att göra UML-diagram, så gruppen fick äntligen den chans till överblick som vi coacher hoppats på. 8.2 Resultat Eftersom flera par tyckte att det gått långsamt när de funderade över vad som skulle implementeras och under själva implementationen så beslutade vi att lägga in frivilliga parbytesrutor vid dessa rutor (Skriv test och Grönt->nej efter Skriv kod). På förmiddagen föreslog ett par att lägga till en Grönt-ruta innan skriv kod för att man skulle märka snabbt om röd kod fanns i repositoriet.

13 Figur 7: Spelplanens utseende vid början av labb 4 Figur 8: Extra Grönt ruta innan Skriv kod Tyvärr fick inte UML-diagrammet det genomslag som vi hoppats på. Upplevde teamet att designen blev tydligare ändå, på grund av alla refaktoriseringar. 8.3 Analys Innan kursen hade börjat så hade coacherna gjort en egen version av planen. Den innehöll Grönt-ruta precis innan Skriv kod, men av helt annan anledning (som visat sig felaktig) 8.4 Övriga gruppers reflektioner 9.0 Slutsatser 9.1 Parprogrammering Parprogrammeringen i detta projekt var ganska påtvingad och gruppmedlemmarna var vana vid att programera i par sedan tidigare. Vad de däremot inte kunde sedan tidigare var att byta par. Det var därför glädjande att se hur många som aktivt förespråkade fler parbyten. I början var det huvudsakligen gruppmedlemmar med mindre programmeringserfarenhet som förespråkade detta, då de upplevde det som svårt att själva initiera parbyten. Senare förespråkade även vissa mer erfarna programmerare detta, dock inte alla. De identifierade att kunskapen om kodens design skulle bli bättre då, helt i linje med vad XP förutsäger.

14 9.2 Refaktorisering Gruppen har verkligen ansträngt sig för att refaktorisera så mycket det går och att hålla designen enkelt. De hade lite svårt att komma igång med dessa practices, men allt efterhand började det gå allt bättre. Vid vissa fall var det svårt att förenkla designen pga. att det ställde till problem när man senare skulle ha med mer komplexa saker med i systemet. 9.3 Test First Vid projektets början var det svårt för projektdeltagarna att skriva kod baserad på test-first. Det största orsaken till detta var att de inte var van vid detta sätt att utveckla kod. Detta ledde till att projektets skred fram ganska segt i början och gruppen hann inte med att utveckla alla stories enligt planering. Denna modell ställde även till med en hel del besvär när någorlunda komplicerade uppgifter skulle implementeras. Men allteftersom utvecklingen gick framåt, blev gruppen bättre på att utveckla kod baserad på test-first modellen. 9.4 Spelplanen Det finns många olika sätt att lära ut XP och i detta projekt valde vi att göra det med en spelplan. Vissa gruppmedlemmar hade det lätt att följa spelplanen och andra hade det svårare. Vissa följde den inte alls. De som inte följde den, gjorde det pga att de blev för fokuserade på själva implementeringen och glömde bort planen helt. När gruppmedlemmarna följde spelplanen och upptäckte att det saknades pilar eller rutor som de ansåg behövdes, lade de dit dem själva. 9.5 Framtida arbete I det här arbetet har vi fokuserat huvudsakligen på hur spelplanen påverkar i hur stor utsträckning parprogrammerarna kommer ihåg att följa XP:s praktiker tidigt i inlärningsprocessen. En framtida studie skulle kunna undersöka i vilken grad de som använt planen blir beroende av den, dvs om en grupp som inte använt planen blir bättre på att komma ihåg praktikerna utan hjälp än de som använt den. Referenslitteratur 1: Kent Beck, Cynthia Andres. Extreme Programming Explained 2nd Edition - Embrace Change, ADDISON-WESLEY, : James Grenning. Launching Extreme Programming at a Process-Intensive Company, IEEE Software, : Watts S. Humphrey. Characterizing the Software Process: A Maturity Framework, IEEE

15 Software, : Robert C. Martin. Agile Software Development: Principles, Patterns, and Practices, Prentice Hall, : Robert C. Martin, James Newkirk. Extreme Programming in Practice, Addison Wesley, : D. Roberts & R. Johnson. Evolving Frameworks. A pattern language for developing objectoriented frameworks. Pattern Languages of Program Design 3, Addison-Wesley, : Chromatic. Extreme Programming Pocket Guide, O Reilly Media, : L. Bendix, T. Ekman. Software Configuration Management in Agile Development. Agile Software Development Quality Assurance, Information Science Reference, Feb : J. Shore, S. Warden. The Art of Agile Development, O'Reilly, : Elisabeth Vene. Ny Teknik, Gör-det-INTE-själv ett vinnande koncept. 22 november : Linda Rising: Design Patterns, Elements of Reusable Architectures risingl1/articles/architectures.html åtkommet : Programvaruutveckling i grupp Projekt, Kursplan för läsåret 2010/2011, Lunds Tekniska Högskola, åtkommet

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson Rapport grupp 4 Software Engineering Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson 2009-10-29 Processer Sprinter Scrum har varit till stor hjälp för oss för att nå våra mål,

Läs mer

Kritik av Extrem Programmering

Kritik av Extrem Programmering Kritik av Extrem Programmering Markus Borggren d01mbo@efd.lth.se Martin Persson d01mp@efd.lth.se D01, Lunds Tekniska Högskola 15 februari, 2004 Abstract I denna djupstudie kommer vi att försöka, på ett

Läs mer

Agil programutveckling

Agil programutveckling Agil programutveckling Pontus Evertsson D00, Lunds Tekniska Högskola d00pe@efd.lth.se Anna Jennerheim D00, Lunds Tekniska Högskola d00aj@efd.lth.se 2003-05-15 1 1. Inledning 3 2. Extreme Programming (XP)

Läs mer

Labrapport över Rumbokningssytemet Grupp:1

Labrapport över Rumbokningssytemet Grupp:1 Fakulteten för ekonomi, kommunikation, IT & data Labrapport över Rumbokningssytemet Grupp:1 Kurskod: DVGC18 Kursnamn: Software Engineering Inlämningsdatum: 2009 10 28 Scrummaster: Martin Blom Projektmedlemmar:

Läs mer

Filhanterare med AngularJS

Filhanterare med AngularJS Filhanterare med AngularJS Författare: Filip Johansson Peter Emilsson Oskar Georgsson Christian Nilsson Datum: 2014-03-26 1 Sammanfattning Filhanterare med AngularJS är en filhanterare skapad för Sigma

Läs mer

En studie om parprogrammering i praktiken

En studie om parprogrammering i praktiken En studie om parprogrammering i praktiken Mia Nyström Karin Wanhainen Johan Rix 29 maj 2002 Sammanfattning Parprogrammering är en av de mest omdiskuterade grundstenarna i Extreme Programming (XP). All

Läs mer

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS Individuellt Mjukvaruutvecklingsprojekt (Utvecklare av digitala tjänster) Den 1 juni 2011 ABSTRAKT Rapporten tar upp positiva och negativa erfarenheter som jag erhållit

Läs mer

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling Rune Tennesmed Oskar Norling Individuellt Mjukvaruutvecklingsprojekt Webbprogrammerare H12 Oskar Norling 2012-05-30 Abstrakt Denna rapport handlar om mitt mjukvaruutecklingsprojekt som jag och en klasskompis

Läs mer

Gruppdynamik och gruppsykologi i Extremet Programming

Gruppdynamik och gruppsykologi i Extremet Programming Gruppdynamik och gruppsykologi i Extremet Programming Jerry Malm, d02jm@efd.lth.se Gustav Olsson, d02og@efd.lth.se Lunds Tekniska Högskola Lund, den 22 februari 2005 Sammanfattning Denna djupstudie kan

Läs mer

Ett spel skapat av Albin Wahlstrand

Ett spel skapat av Albin Wahlstrand Viking vs. Demons Ett spel skapat av Albin Wahlstrand 2012-06-03 1 Abstrakt Denna rapport kommer att handla om mina positiva och negativa erfarenheter inom projektet jag jobbat på de senaste 10 veckorna.

Läs mer

Nyttomaximering av spikes

Nyttomaximering av spikes Nyttomaximering av spikes Johan Hedin Sånemyr D11, LTH dat11jh1@student.lu.se Victor Shu-Ming Lam D11, LTH dat11vla@student.lu.se 2016-03-07 Sammanfattning Som projektledare av ett team programmerare så

Läs mer

BG306A Strukturmekanik, bärverksanalys MT129A Finita elementmetoden

BG306A Strukturmekanik, bärverksanalys MT129A Finita elementmetoden BG306A Strukturmekanik, bärverksanalys MT129A Finita elementmetoden Antal svar: 16 (14+28) 1. Flervalsfråga Andel Allmänt Hur tycker du kursen har varit? 1. Dålig 0% 2. Ganska bra 12,5% 3. Bra 50% 4. Mycket

Läs mer

Laboration i datateknik

Laboration i datateknik KUNGLIGA TEKNISKA HÖGSKOLAN Laboration i datateknik Felsökning och programmering av LEGO NXT robot Daniel Willén 2012 09 06 dwill@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Syftet med

Läs mer

Introduktion till programmering med hjälp av Lego Mindstorm

Introduktion till programmering med hjälp av Lego Mindstorm Kungliga Tekniska Högskolan Introduktion till programmering med hjälp av Lego Mindstorm Laborationsrapport gällande programmering inom NXC Simon Jansson 31 08 2014 simonjan@kth.se Introduktionskurs i datateknik

Läs mer

Scrum + XP samt konsekvensanalys

Scrum + XP samt konsekvensanalys Scrum + XP samt konsekvensanalys Daniel Nimren dt05dn8 Douglas Frisk dt05df1 Dept. of Computer Science, Lunds Tekniska Högskola, Sweden {dt05dn8 dt05df1}@student.lth.se 1 mars 2010 Sammanfattning Denna

Läs mer

Process- och metodreflektion Grupp 5

Process- och metodreflektion Grupp 5 Process- och metodreflektion Grupp 5 IDM Grupp 5 Anders Fougstedt, Anders Green, Lay Truong, Anna Sjödin, Tobias Kask Val av metoder Det första steget i vår designprocess var att bestämma vilka metoder

Läs mer

12 principer of agile practice (rörlig)

12 principer of agile practice (rörlig) X-treme programming 12 principer of agile practice (rörlig) Ge nöjd kund genom tidig och kontinuerliga leveranser Den viktigaste punkten som betyder att min vill ha kontinuerlig feedback Välkomna sena

Läs mer

Objektorienterad programmering och Java

Objektorienterad programmering och Java Objektorienterad programmering och Java Sändlista Inger Klein Jonas Detterfelt Siv Söderlund Johan Högdahl Jonas Kvarnström Peter Dalenius Kurskod Examinator TDDC69 Jonas Kvarnström Kursen gavs Årskurs

Läs mer

XP-projekt: En fördjupning

XP-projekt: En fördjupning XP-projekt: En fördjupning Extreme Programming Martin Karlsson marka@itn.liu.se K7522 011 36 34 63 Fem värden Kommunikation Var öppna Var ärliga Ta konflikter Diskutera Tag beslut Tag ansvar Kräver feedback,

Läs mer

Programmera Lego Mindstormsrobotar

Programmera Lego Mindstormsrobotar KUNGLIGA TEKNISKA HÖGSKOLAN Programmera Lego Mindstormsrobotar En introduktion till programmering Oskar Rosén 28/08-12 oros@kth.se Introduktion i datateknik (II1310) Sammanfattning Denna laboration gav

Läs mer

Utvärdering av laboration i genteknik. för kemiingenjörer, VT 2002

Utvärdering av laboration i genteknik. för kemiingenjörer, VT 2002 Miniprojekt, pedagogisk kurs för universitetslärare II, ht 2002. Maria Andrén och Anna Lindkvist, Inst för genetik och patologi Utvärdering av laboration i genteknik för kemiingenjörer, VT 2002 Introduktion

Läs mer

Upprepade mönster (fortsättning från del 1)

Upprepade mönster (fortsättning från del 1) Modul: Algebra Del 2: Resonemangsförmåga Upprepade mönster (fortsättning från del 1) Anna-Lena Ekdahl och Robert Gunnarsson, Högskolan i Jönköping Ett viktigt syfte med att arbeta med upprepade mönster

Läs mer

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

Djupstudie Code smells / Refaktorisering. Martin Larsson dt08ml5 Stefan Johansson, dt08sj7 Djupstudie Code smells / Refaktorisering Martin Larsson dt08ml5 Stefan Johansson, dt08sj7 27 februari 2012 Innehåll 1 Inledning 1 2 Bakgrund 1 2.1 extreme programming....................... 1 2.2 Programvaruutveckling

Läs mer

Felsökande av en Lego Mindstorm robot

Felsökande av en Lego Mindstorm robot KTH Felsökande av en Lego Mindstorm robot Med hjälp av NXC Hampus Liljedahl 3/9-12 hliljed@kth.se Introduction to Computer Studies II1310 Sammanfattning Jag har gjort en labb där jag felsökte en färdigskriven

Läs mer

Att införa XP. Daniel Nilsson och Mattias Nordahl Lunds Tekniska Högskola. 27 februari Abstrakt

Att införa XP. Daniel Nilsson och Mattias Nordahl Lunds Tekniska Högskola. 27 februari Abstrakt Att införa XP Daniel Nilsson och Mattias Nordahl Lunds Tekniska Högskola 27 februari 2012 Abstrakt Genom analys och sammanfattning av tidigare publikationer samt diskussion och reflektion av en högskolekurs

Läs mer

TDDD26 Individuell projektrapport

TDDD26 Individuell projektrapport TDDD26 Individuell projektrapport Kort beskrivning av projektet Vi hade som projekt att utveckla en digital media servicer som skulle hjälpa filmentusiasten att organisera sitt filmbibliotek. Programmet

Läs mer

Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot

Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot KUNGLIGA TEKNISKA HÖGSKOLAN Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot Josef Karlsson Malik 2015-09- 02 jkmalik@kth.se Introduktionskurs i datateknik (II0310) Sammanfattning

Läs mer

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

Scrum + XP = sant. Kristian Björk D06, Lunds Tekniska Högskola dt05kb1@student.lth.se. Frederik Blauenfeldt Jeppsson. dt06fb8@student.lth. Scrum + XP = sant Kristian Björk D06, Lunds Tekniska Högskola dt05kb1@student.lth.se Frederik Blauenfeldt Jeppsson D06, Lunds Tekniska Högskola dt06fb8@student.lth.se 2010-03-02 1 Abstract Scrum och XP

Läs mer

Robotar i NXc. En laboration med Mindstormrobotar. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

Robotar i NXc. En laboration med Mindstormrobotar. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN KUNGLIGA TEKNISKA HÖGSKOLAN Robotar i NXc En laboration med Mindstormrobotar Anton Gyllenhammar 7/30/12 antongy@kth.se II1310 Introduktionskurs i datateknik Sammanfattning Denna rapport beskriver NXc-

Läs mer

Labbrapport - LEGO NXT Robot

Labbrapport - LEGO NXT Robot KUNGLIGA TEKNISKA HÖGSKOLAN Labbrapport - LEGO NXT Robot Programmering och felsökning Stefan Sarkis 2014-09-02 ssarkis@kth.se Introduktionskurs i datateknik (II1310) Sammanfattning Denna rapport handlar

Läs mer

Inledning SÅ HÄR GÅR ÖVNINGEN TILL:

Inledning SÅ HÄR GÅR ÖVNINGEN TILL: T I L L V Ä X T Inledning Ekonomisk tillväxt är något vi nästan kommit att ta för givet. Vi är vana vid att lönerna stiger, att arbetsmarknaden hela tiden skapar nya typer av jobb och att företagen utvecklar

Läs mer

Agil projektmetodik Varför och vad är det?

Agil projektmetodik Varför och vad är det? Agil projektmetodik Varför och vad är det? Boris Magnusson Datavetenskap LTH 2016-02-08 Lite större projekt Sträcker sig över tid Involverar många deltagare som behöver arbeta parallellt Planeras - delas

Läs mer

Slutrapport för Pacman

Slutrapport för Pacman Slutrapport för Pacman Datum: 2011-05-30 Författare: cb222bj Christoffer Bengtsson 1 Abstrakt Jag har under våren arbetat med ett projekt i kursen Individuellt Mjukvaruutvecklingsprojekt. Målet med mitt

Läs mer

PlantPuppy Räddaren för den som inte kan hålla växterna vid liv

PlantPuppy Räddaren för den som inte kan hålla växterna vid liv Lunds Tekniska Högskola Elektro- och informationsteknik Digitala Projekt PlantPuppy Räddaren för den som inte kan hålla växterna vid liv Gerda Sidwall Thygesen Sofia Sundbom Zoë Wyon ine14gth@student.lu.se

Läs mer

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

SLUTRAPPORT RUNE TENNESMED WEBBSHOP SLUTRAPPORT RUNE TENNESMED WEBBSHOP -05-30 Abstrakt Under 10 veckor har jag och Oskar Norling arbetat med att ta fram en webbshop-applikation till företaget Rune Tennesmed i Kalmar. I denna rapport tänker

Läs mer

Coaching av programvaruteam EDA270, djupstudie: Praktisk SCM användning i XP-projekt

Coaching av programvaruteam EDA270, djupstudie: Praktisk SCM användning i XP-projekt Coaching av programvaruteam EDA270, djupstudie: Praktisk SCM användning i XP-projekt Martin Malek Anders Hellström Lunds Tekniska Högskola 22 februari 2005 Version 1.0 Sammanfattning Som utgångspunkt för

Läs mer

Proj-Iteration1. Arkitektur alt. 1

Proj-Iteration1. Arkitektur alt. 1 Proj-Iteration1 PVG/Coaching Boris Magnusson Datavetenskap LTH Proj-Iter1-1 Registrering Registrering Arkitektur alt. 1 Personuppgifter Starttid Sorterare Måltid Efterbehandling Resultat Tre program som

Läs mer

Planeringsspelets mysterier, del 1

Planeringsspelets mysterier, del 1 Peter Lindberg Computer Programmer, Oops AB mailto:peter@oops.se http://oops.se/ 28 februari 2002 Planeringsspelets mysterier, del 1 Om jag ska spela ett sällskapsspel för första gången så vill jag att

Läs mer

TDDC74 - Projektspecifikation

TDDC74 - Projektspecifikation TDDC74 - Projektspecifikation Projektmedlemmar: Namn Efternamn abcde123@student.liu.se Namn Efternamn abcde123@student.liu.se Handledare: Handledare handledare@ida.liu.se eller handledare@student.liu.se

Läs mer

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN) Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061) HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN) Dagens agenda Admin Tentatid och plats Tillåtet på tentan EDAF10 Föreläsning inför XL-projektet

Läs mer

Kanban i Extreme Programming

Kanban i Extreme Programming Kanban i Extreme Programming N. Fors och N. Hansson D06, Lunds Tekniska Högskola [niklas.fors niklas.hansson.06]@gmail.com 2mars2010 Abstract Kanban is a scheduling approach from the work philosophy just-intime

Läs mer

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

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning PMM (Process Maturity Metrics) PMM är en metod för att mäta processmognad i utvecklingsprojekt. I korthet går metoden ut på att man utvärderar sin utvecklingsprocess med avseende på ett antal framgångsfaktorer

Läs mer

Synkronisering av kalenderdata

Synkronisering av kalenderdata Datavetenskap Jonas Lindelöw, Richard Löfberg Sten Hansson Bjerke, Anders Friberg Synkronisering av kalenderdata Oppositionsrapport, C/D-nivå 2006:07 1 Sammanfattat omdöme av examensarbetet Vi tycker att

Läs mer

Att effektivt strukturera, utföra och utvärdera spikes

Att effektivt strukturera, utföra och utvärdera spikes Att effektivt strukturera, utföra och utvärdera spikes Oscar Rydh - psy13ory@student.lu.se, Axel Rosén - mas11ar1@student.lu.se, and Joel Klint - dat13jkl@student.lu.se Lunds Tekniska Högskola Table of

Läs mer

SCRUM och mycket mer

SCRUM och mycket mer Typ av dokument Anvisning Skapad Senaste uppdatering 2008-01-27 2008-11-13 1 (5) Sida 1 Det minsta möjliga? SCRUM och mycket mer Om man nu vill vara agile och inte har allt tid i världen, vad skall man

Läs mer

Mina listor. En Android-applikation. Rickard Karlsson 2013-06-09. Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Mina listor. En Android-applikation. Rickard Karlsson 2013-06-09. Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu. Mina listor En Android-applikation Rickard Karlsson 2013-06-09 Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.se Innehållsförteckning 2. Innehållsförteckning 3. Abstrakt 4. Inledning/bakgrund

Läs mer

Behåll, utveckla, avveckla, övrigt

Behåll, utveckla, avveckla, övrigt Avsluta Oavsett om det är en kort aktivitet eller en verksamhet som pågår under en längre tid så är det viktigt att regelbundet stämma av vad deltagarna tycker och koppla tillbaka till de syftet, mål och

Läs mer

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10 Projekt Rapport RaidPlanner Jeanette Karlsson UD10 Abstrakt: Denna rapport handlar om mitt projekt i kursen Individuellt Mjukvaruutvecklings projekt. Rapporten kommer att ta upp hur jag gått tillväga,

Läs mer

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

2010-12-27 SCRUM. Vattenfallsmodellen. Analys. Design. Kod. Test. Rational Unified Process Agile. Kallas också linjär sekventiell modell. Vattenfallsmodellen SCRUM Analys Kallas också linjär sekventiell modell Introduktion Design Kod Test Rational Unified Process Agile DSDM Adaptive Software Development Crystal Feature-Driven Development

Läs mer

B. Vad skulle man göra för att vara bättre förberedd inför en lektion i det här ämnet?

B. Vad skulle man göra för att vara bättre förberedd inför en lektion i det här ämnet? Studieteknik STUDIEHANDLEDNING Syftet med dessa övningar är att eleverna själva ska fördjupa sig i olika aspekter som kan förbättra deras egen inlärning. arna görs med fördel i grupp eller parvis, och

Läs mer

2014-2015 Alla rättigheter till materialet reserverade Easec

2014-2015 Alla rättigheter till materialet reserverade Easec 1 2 Innehåll Introduktion... 4 Standarder... 5 Översikt: Standarder... 6 1058.1-1987 IEEE Standard för Software Project Management Plans... 7 Ingående dokument... 8 Syfte och struktur... 9 ITIL... 10 ITIL

Läs mer

KUNGLIGA TEKNISKA HÖGSKOLAN. Laboration II1310. Programmera Lego Mindstorm robot i NXC

KUNGLIGA TEKNISKA HÖGSKOLAN. Laboration II1310. Programmera Lego Mindstorm robot i NXC KUNGLIGA TEKNISKA HÖGSKOLAN Laboration II1310 Programmera Lego Mindstorm robot i NXC Johnny Vu 120904 Jvu@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Vi har genomfört en laboration för

Läs mer

F9 del B Organisatoriskt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH

F9 del B Organisatoriskt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH F9 del B Organisatoriskt EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH 1 Projektet - moment Projektstartsmöte 6 Iterationer (en per vecka) - 10-12 team - 12-14 personer

Läs mer

DD2458-224344 - 2014-12-19

DD2458-224344 - 2014-12-19 KTH / KURSWEBB / PROBLEMLÖSNING OCH PROGRAMMERING UNDER PRESS DD2458-224344 - 2014-12-19 Antal respondenter: 26 Antal svar: 18 Svarsfrekvens: 69,23 % RESPONDENTERNAS PROFIL (Jag är: Man) Det var typ en

Läs mer

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt 2004. Kursprogram

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt 2004. Kursprogram Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt 2004 Kursprogram Kursens mål är att ge dig kunskaper om begreppen och principerna inom objektorienterad programmering och design

Läs mer

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

SCRUM. Marcus Bendtsen Institutionen för datavetenskap SCRUM Marcus Bendtsen Institutionen för datavetenskap 2 Metodik Systematiskt tillvägagångssätt för att garantera utfallet Metodiken behöver passa kontexten och tillgängliga resurser Verifiering av metodiken

Läs mer

Djupstudie i parprogrammering

Djupstudie i parprogrammering Djupstudie i parprogrammering Abstrakt P. Abrahamsson D05, Lunds Tekniska Högskola dt05pa1@student.lth.se P. Norlander D07, Lunds Tekniska Högskola dt07pn3@student.lth.se 2011-02-25 Denna studie handlar

Läs mer

Crossmedia design. Crossmedia design (27311VT14) Results of survey. Startade: den 21 juni Avslutad: den 22 augusti 2014

Crossmedia design. Crossmedia design (27311VT14) Results of survey. Startade: den 21 juni Avslutad: den 22 augusti 2014 Crossmedia design Crossmedia design (27311VT14) Results of survey Startade: den 21 juni 2014 Avslutad: den 22 augusti 2014 Svarsfrekvens: 26 ( 8 / 31 ) Elektroniskt utvärderingssystem Crossmedia*design*

Läs mer

Verktyget FindBugs. Djupstudie i kursen EDA 270 Coachning av programvaruteam. Christofer Bach dt05cb6 Daniel Nilsson dt05dn4. Lunds Tekniska Högskola

Verktyget FindBugs. Djupstudie i kursen EDA 270 Coachning av programvaruteam. Christofer Bach dt05cb6 Daniel Nilsson dt05dn4. Lunds Tekniska Högskola Verktyget FindBugs Djupstudie i kursen EDA 270 Coachning av programvaruteam Christofer Bach dt05cb6 Daniel Nilsson dt05dn4 Lunds Tekniska Högskola 15 feb 08 1. Sammanfattning Denna djupstudie kommer att

Läs mer

ST16-1DV432-7,5hp. Antal svar: 26

ST16-1DV432-7,5hp. Antal svar: 26 ST16-1DV432-7,5hp : Vilket sammanfattande omdöme ger du kursen? Vilket sammanfattande omdöme ger du kursen? Mycket bra 18 (69,2%) Ganska bra 8 (30,8%) Ganska dålig 0 (0,0%) Mycket dålig 0 (0,0%) Kan ej

Läs mer

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

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod Systemutveckling TDP029 Systemutveckling Annika Silvervarg COIN/HCCS/IDA Systemutveckling kallas processen att ta emot en beställning på ett datorsystem, skriva en strukturerad kravspecifikation på systemet,

Läs mer

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

I detta avsnitt beskrivs vart parprogrammering appliceras, hur det ska fungera och även i vilket projekt det introduceras i. PARPROGRAMMERING Mikael Möller, dt07mm5@student.lth.se 2011-02-28 Abstrakt Parprogrammering är ett arbetssätt där två programmerare arbetar tillsammans vid en dator med en uppgift. Studien behandlar frågor

Läs mer

Någonting står i vägen

Någonting står i vägen Det här vänder sig till dig som driver ett företag, eller precis är på gång att starta upp Någonting står i vägen Om allting hade gått precis så som du tänkt dig och så som det utlovades på säljsidorna

Läs mer

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson Minesweeper Individuellt Mjukvaruprojekt Joakim Jonsson 08 06 2013 Abstrakt Nedan följer en slutrapport för projektet inom kursen Individuellt Mjukvaru utvecklingsprojekt. Jag har under dessa 10 veckor

Läs mer

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

F7 Agila metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH F7 Agila metoder EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH 1 XP - Scrum - Kanban Agila metoder Vad innehåller SCRUM Hur skiljer sig XP och SCRUM KANBAN

Läs mer

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language Ett modelleringsspråk : Exempel Fönster Klassnamn Unified Modelling Language Av Booch, Jacobson, Rumbaugh Exempel: En klass position storlek Attribut (instansvariaböe) Resultatet av en sammanslagning av

Läs mer

Laboration i datateknik

Laboration i datateknik KUNGLIGA TEKNISKA HÖGSKOLAN Laboration i datateknik Programmering av LEGO-robot Rickard Eriksson 2012-09-06 rieri@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Denna rapport är till följd

Läs mer

RAM FÖR LEKTIONSPLAN RESULTAT OCH BEDÖMNING LÄRARENS FÖRBEREDELSER. ÖVERBLICK: Lektionsplan 3

RAM FÖR LEKTIONSPLAN RESULTAT OCH BEDÖMNING LÄRARENS FÖRBEREDELSER. ÖVERBLICK: Lektionsplan 3 ÖVERBLICK: Lektionsplan 3 SUBRUTINER Betyg: K-2 Gruppstorlek: Par Uppläggningstid: 5 minuter Total tid: 100 minuter Aktiviteter: 4 RAM FÖR LEKTIONSPLAN Aktivitet 1: KUBO åker på utflykt 25 minuter 2 uppgifter

Läs mer

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

Testdriven utveckling. Teorin bakom testdriven utveckling. Bakgrund. Januari 2009, KTH. Alexander Tarnowski Testdriven utveckling Januari 2009, KTH Alexander Tarnowski Teorin bakom testdriven utveckling Bakgrund Testdriven utveckling började nämnas kring 1999-2000 av Kent Beck I praktiken implementationen av

Läs mer

Användarcentrerad systemdesign

Användarcentrerad systemdesign Användarcentrerad systemdesign Föreläsning 11: Agile-processer och ACSD Stefan Blomkvist Avdelningen för MDI/IT, Uppsala Universitet, Stefan.Blomkvist@hci.uu.se www.it.uu.se/edu/course /homepage/acsd/

Läs mer

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall Sammanfattning I denna rapport behandlas ett projekt inom kursen Digitala Projekt, EITF11, vid Lunds Tekniska högskola. Syftet med projektet är att konstruera en enkel digital prototyp samt programmera

Läs mer

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

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Vad gör vi här? Programmeringsteknik fördjupningskurs (EDAA01; 7,5hp) Valfri för F, N & BME (kan läsas från åk 2 eller i sommar!) Avancerad

Läs mer

Mälardalens högskola

Mälardalens högskola Teknisk rapportskrivning - en kortfattad handledning (Version 1.2) Mälardalens högskola Institutionen för datateknik (IDt) Thomas Larsson 10 september 1998 Västerås Sammanfattning En mycket viktig del

Läs mer

KUNGLIGA TEKNISKA HÖGSKOLAN KISTA. Lego Linefollower. Få en robot att följa linjen på golvet!

KUNGLIGA TEKNISKA HÖGSKOLAN KISTA. Lego Linefollower. Få en robot att följa linjen på golvet! KUNGLIGA TEKNISKA HÖGSKOLAN KISTA Lego Linefollower Få en robot att följa linjen på golvet! Felix Ringberg 2012-08-09 felixri@kth.se Introduktionskurs i datateknik II1310 Sammanfattning I den här laborationen

Läs mer

Frågor och svar till tentamen i Kravhantering

Frågor och svar till tentamen i Kravhantering Frågor och svar till tentamen i Kravhantering Del 1 Frågor & svar Frågor&svar till tentamen 1 Datamodeller (0.5p) När man tar fram data krav skriver Lausen i sin bok, gällande data modeller, att det finns

Läs mer

Digitala Minnen. Luleå kommun

Digitala Minnen. Luleå kommun Digitala Minnen Vi har valt att skriva vår redovisning som en berättelse, eftersom vårt projekt har handlat om just berättelser, historier och minnen. Här kan vi också visa på hur projektet har växt fram,

Läs mer

NÄRMARE VARANDRA. Övningshäfte till NIO VECKOR TILL EN STARKARE PARRELATION. Natur & Kultur

NÄRMARE VARANDRA. Övningshäfte till NIO VECKOR TILL EN STARKARE PARRELATION. Natur & Kultur MARIA BURMAN ANNA-KARIN NORLANDER PER CARLBRING GERHARD ANDERSSON Övningshäfte till NÄRMARE VARANDRA NIO VECKOR TILL EN STARKARE PARRELATION Natur & Kultur VALENTINSKALAN 1. Jag kan samarbeta väl och lösa

Läs mer

Dagbok Mikael Lyck 810717-0071

Dagbok Mikael Lyck 810717-0071 Dagbok Mikael Lyck 810717-0071 2/6 Slutredovisning, redovisningen gick bra vi hade ju redan byggt ihop spelet så vi var inte särskilt oroliga. Allt som allt är jag väldigt nöjd med slutprodukten. 11/5

Läs mer

Hållbar utveckling A, Ht. 2014

Hållbar utveckling A, Ht. 2014 Hållbar utveckling A, Ht. 2014 Kommunikation och projektledning för hållbar utveckling Projektplan Bakgrund Som ett stöd i ert projekt kommer ni att arbeta utifrån en projektplan i tre delar, varje ny

Läs mer

Matematiklektionen i fokus. Några klassrum öppnar dörren

Matematiklektionen i fokus. Några klassrum öppnar dörren Matematiklektionen i fokus Några klassrum öppnar dörren Brister i matematikundervisningen Lusten att lära med fokus på matematik (Skolverkets rapport nr 221) Den dominerande undervisningen är genomgång

Läs mer

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion Algoritmer och datastrukturer HI1029 8,0 hp Introduktion Lärandemål Efter kursen ska studenten: Ha kunskaper om de vanligaste algoritmteknikerna och datastrukturerna I viss mån kunna utvärdera algoritmers

Läs mer

MYCKET BRA (14/48) BRA (30/48) GANSKA BRA (3/48) INTE BRA (1/48)

MYCKET BRA (14/48) BRA (30/48) GANSKA BRA (3/48) INTE BRA (1/48) Kursutvärdering moment 1, IH1200, ht -12 1. Vad tycker du om kursens upplägg? MYCKET BRA (14/48) BRA (30/48) GANSKA BRA (3/48) INTE BRA Enkelt att komma igång och bra tempo Intressant och lärorikt Bra

Läs mer

Mental träning termin 2 HT-10 Sida 1 av 1

Mental träning termin 2 HT-10 Sida 1 av 1 1 av 11 2010-12-13 16:22 Mental träning termin 2 HT-10 Sida 1 av 1 Antal besvarade enkäter: 15 1 Hur tycker du att målen för momentet har uppfyllts? Vi har väl uppfyllt de delarna bra. Jag tycker det känns

Läs mer

När vi läste Skolverkets rapport Svenska elevers matematikkunskaper

När vi läste Skolverkets rapport Svenska elevers matematikkunskaper Florenda Gallos Cronberg & Truls Cronberg Två perspektiv på att utveckla algebraiska uttryck Svenska elever påstås ha svårt med mönstertänkande. Eller är det så att de inte får lärarledd undervisning i

Läs mer

Projektarbete DAVC20

Projektarbete DAVC20 Projektarbete DAVC20 DAVC20, Per Strömgren 2002-10-28 Make a plan. Then follow the plan. Watts Humphrey 2 DAVC20, Per Strömgren, 1 Vad handlar detta om?! 3 DAVC20, Per Strömgren Examination För godkänt

Läs mer

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

extreme Programming refactored - recension och analys av Kent Becks senaste definition av XP extreme Programming refactored - recension och analys av Kent Becks senaste definition av XP Måns Gunnarsson d01mg@efd.lth.se Sammanfattning Denna djupstudie består av en recension av andra upplagan av

Läs mer

Öjersjö Storegård, Partille Kommun, vt-07

Öjersjö Storegård, Partille Kommun, vt-07 Öjersjö Storegård, Partille Kommun, vt-07 Lärandeobjekt: Förmågan att urskilja och tillämpa pronomen i direkt objektsform. Eleverna skulle klara av att översätta från svenska till spanska och tvärtom.

Läs mer

ENKEL Programmering 3

ENKEL Programmering 3 ENKEL Programmering 3 Figurer i långa rader Titta på de olika figurerna i de olika raderna. Kan du se att de olika figurerna i varje rad är placerade enligt ett visst mönster? Kan du lista ut vilken figur

Läs mer

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN KUNGLIGA TEKNISKA HÖGSKOLAN PROGRAMMERING I NXC Namn: Michel Bitar 2012-08- 25 E- post: mbitar@kth.se Introduktionskurs i datateknik, II1310 Sammanfattning Intressant och lärorik laboration om att programmera

Läs mer

Syfte Syftet med den här laborationen är att du ska lära dig använda några grundfunktioner i Microsoft Excel.

Syfte Syftet med den här laborationen är att du ska lära dig använda några grundfunktioner i Microsoft Excel. Excel-guide Introduktion I denna laboration kommer ni få använda några grundfunktioner i Microsoft Excel. Laborationen utgår ifrån Excel 2010 och Excel 2013, men om ni vill använda ett annat program för

Läs mer

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

SCRUM vs. XP en jämförelse mellan två lättviktsmetodiker SCRUM vs. XP en jämförelse mellan två lättviktsmetodiker Phut Tran D01, Lund Tekniska Högskola d01pt@efd.lth.se 21 februari 2006 Innehållsförteckning ABSTRACT... 3 1 INLEDNING... 4 2 VAD ÄR EN LÄTTVIKTSMETODIK?

Läs mer

1DV434 VT14. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

1DV434 VT14. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål? DV44 VT4 Antal : I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål? Förstå grundläggande begrepp och principer inom objektorienterad

Läs mer

MYCKET BRA (7/44) BRA (34/44) GANSKA BRA (4/44) INTE BRA (1/44)

MYCKET BRA (7/44) BRA (34/44) GANSKA BRA (4/44) INTE BRA (1/44) Kursutvärdering moment 4, IH1200, ht -12 1. Vad tycker du om kursens upplägg? BRA (34/44) GANSKA BRA (4/44) Intressant Detta var det intressantaste kursmomentet Den sammanfattande föreläsningen i slutet

Läs mer

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola, Snake Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola, 2015-05-18 Oskar Petersen, I-12 Handledare: Bertil Lindvall Abstract Denna rapport beskriver ett projekt där ett klassiskt

Läs mer

Elevernas uppfattningar om alltmer digitaliserad undervisning

Elevernas uppfattningar om alltmer digitaliserad undervisning Resultat Elevernas uppfattningar om alltmer digitaliserad undervisning Fråga 1 Mycket inspirerande (6) till mycket tråkigt (1) att arbeta med etologisidan Uppfattas som mycket inspirerande eller inspirerande

Läs mer

Simon Boström Introduktionskurs i Datateknik

Simon Boström Introduktionskurs i Datateknik KTH KISTA Linefollower Med parprogrammering i NXC Simon Boström 2014-09-04 simbos@kth.se Introduktionskurs i Datateknik Sammanfattning Laborationstillfället var till för att man som ny på KTH skulle lära

Läs mer

LEGO Mindstorm-robot

LEGO Mindstorm-robot KUNGLIGA TEKNISKA HÖGSKOLAN LEGO Mindstorm-robot Programmering av LEGO Mindstorm-robot i språket NXC Kim Hammar 2/6-2013 Kimham@kth.se Introduktionskurs i Datateknik 1311 Sammanfattning En viktig del av

Läs mer

Välkomna till DIT012 IPGO

Välkomna till DIT012 IPGO Välkomna till DIT012 IPGO 1 Lärare och Handledare Kursansvariga, examinatorer, föreläsare och handledare Joachim von Hacht, hajo@chalmers.se, 772 1003 Handledare (se även kurssida) Alexander Sjösten, sjosten@chalmers.se

Läs mer

Föreningstränare - Ledarskap

Föreningstränare - Ledarskap 1. Ledarskap Du tillhör säkert en del olika grupper: Jobbet, familjen, skytteföreningen, konstklubben mm. Det är säkert så att de grupper du tillhör har kommit olika långt i sin utveckling. De fungerar

Läs mer