Distribuerad mjukvaruutveckling med extreme Programming

Storlek: px
Starta visningen från sidan:

Download "Distribuerad mjukvaruutveckling med extreme Programming"

Transkript

1 Distribuerad mjukvaruutveckling med extreme Programming Jörgen Nilsson, February 22, 2005 Sammanfattning Denna artikel är en djupstudie skriven under en kurs i coaching av XPteam, på Lunds Tekniska Högskola. Den riktar sig primärt till de coacher som går, och kommer att gå, kursen och är menad att skapa en mer nyanserad syn på extreme Programming. Artikeln diskuterar Distributed Software Development (DSD) med paralleller mot XP. Ett ertal experiment från olika artiklar har studerats och har sammanställts för att ge en introduktion till de fördelar och nackdelar som DSD har, samt hur man löser problemen som uppstår när man inte har utvecklingsteamet på samma plats. Som exempel på en metodik för DSD tas bl.a. Distributed extreme Programming upp (DXP). Detta eftersom den har störst relevans för de coacher som artikeln är riktad till. På slutet presenteras även exempel på verktyg man kan ha nytta av när man ska köra DXP.

2 Innehåll 1 Introduktion 3 2 Mjukvaruutveckling över två kontinenter med hjälp av XP och Scrum 3 3 Distributed extreme Programming (DXP) 5 4 XP's practices i DXP Virtuell parprogrammering Planning Game Shared Vision (Metaphor) Continuous Integration On-Site Customer Moomba - ett verktyg för DXP Webbportalen HyperStackXP Moomba's Collaborative Integrated Development Environment (MCIDE) Slutsaster och vidare läsning 11 7 Acknowledgments 12 2

3 1 Introduktion Historiskt sett har mjukvaruutveckling i skett i team placerade på samma plats, men i och med explosionen av nätverkförbindelser som Internet medfört så är det nu fullt möjligt för geograskt distribuerade utvecklingsteam att forma virtuella team. Global Software Development (GSD) är en practice för mjukvaruutveckling som kommer mer och mer. Redan under 90-talet dök ett ertal organisationer för virtuell mjukvaruutveckling upp. Virtuella mjukvaruutvecklingsteam är namnet på geograskt distribuerade utvecklare arbetande på samma projekt där kommunikation, koordination och samarbete sköts via Internet eller intranet. Att vara separerade under utvecklingsprocessen innebär ett stort hinder för projektmedlemmarna. De ekonomiska fördelarna måste vägas mot de nackdelar i kommunikation som Distributed Software Development (DSD) medför. Det krävs mycket mer av den kommunikation som sker mellan utvecklarna för lyckad koordination av arbetet, vilket ökar risken för missförstånd, som i sin tur kan leda till förseningar och därmed högre kostnader. Däremot kan fördelar som minskade utvecklingskostnader, ökad mobilitet och exibilitet för utvecklarna, lättillgänglig kompetent personal, och ökad bekvämlighet för kunden väga upp nackdelarna. Som exempel på DSD kan tas de många Open Source projekt som är igång idag. Linux och Apache Web Server är två av de största Open Source projekt någonsin. Man kan dra paralleller mellan Open Source Communityn's och XP's syn på programkod - alla äger koden och alla får ändra i den. Detta ger oss tanken att XP mycket väl skulle kunna vara lämpat för DSD. För göra extreme Programming (XP) möjligt i ett distribuerat projekt krävs att man har rätt förutsättningar, annars kommer inte alla alla XP's tolv practices att fungera. Vidare följer ett exempel där XP användes i en distribuerad miljö. 2 Mjukvaruutveckling över två kontinenter med hjälp av XP och Scrum Att utveckla mjukvara i projekt där teamet är distribuerat över två kontinenter innebär många svårigheter. Förutom de vanliga svårigheterna man stöter på vid mjukvaruutveckling måste man även ta hänsyn till att teamen benner sig i olika tidszoner. I Danmark, närmare bestämt i Köpenhamn, på SAS Institute - ett multinationellt företag med huvudkontor Cary North Carolina USA - har man under många år utvecklat mjukvara i samarbete med de team företaget har i USA. I en artikel skriven av två utvecklare från kontoret i Köpenhamn får vi följa hur teamet först anammar XP för att sedan plocka in practices från Scrum. Scrum är en agil metod för programvaruutveckling som i stort skiljer sig från XP i sitt sätt att deniera dagliga möten (Scrums) som en del av metodiken, samt genom sitt sätt att följa upp projektförloppet med en Project Backlog och en Sprint Backlog (sprint är det samma som iteration i XP). Scrum har helt enkelt ett annat sätt för kravhantering än XP's Planning Game. I Scrum nns det en ägare av produkten kallad Scrum Master, som har hand om Project Backlog - en lista med det inneliggande arbetet. Ordningen för implementation av programmet följer listan från topp till botten. En delmängd av punkterna i 3

4 listan yttas inför varje sprint över till Sprint Backlog där de delas upp i mindre tasks som sedan estimeras i enlighet med tillgängliga resurser. Estimeringarna uppdateras sedan kontinuerligt under en sprint för att få en inblick i om teamet ligger i fas eller ej. Uppgiften för Scrum Master är även att se till så att arbetet i teamet yter på utan problem. Han ska hjälpa till där det behövs samt försöka förebygga att problem uppstår. I projektet från artikeln bestod teamet av 80+ utvecklare, där 10+ var placerade i just Köpenhamn och majoriteten av de övriga på huvudkontoret i USA. Projektet bestod i att implementera en redan bentlig desktop-mjukvara som webbapplikation, så någon egentlig kund fanns det inte. Teamet på SAS Institute i Köpenhamn hade redan utvecklat mjukvara under många år och kände att mer erfarenhet inte skulle leda till bättre resultat. Kvalitén på slutprodukten berodde rent för mycket på den individuella programmeraren och rent för mycket tid slösades på att rätta buggar istället för att producera kod. Vad som behövdes var ett formellt sätt att granska koden och de bestämde sig därför för att prova XP där granskning sker kontinuerligt genom parprogrammering. De inledde en evalueringsfas innan de bestämde sig för att implementera XP fullt ut. Det hela gjordes i tre iterationer där parprogrammering, enhetstester och dagliga möten ingick i första, kodstandard och kollektivt ägande i andra, och stories, tidsuppskattning och hastighet i den sista. Det var inga problem för dem att implementera XP. Däremot tyckte de inte att XP hjälpte dem att koordinera och prioritera arbete mellan dem och huvudteamet. Efter att ha använt XP under två år bestämde de sig för att prova använda Scrum. På baksidan till boken om Scrum av Ken Schwaber står det Learn how to simplify XP implementation through a Scrum wrapper. Det lät som en bra idé, men problemet var att det inte någonstans i boken nämndes XP. Det var dock inga problem att med bokens hjälp tillämpa Scrum som en slags management del för XP team. Samtidigt som de började använda Scrum, började de även föra dagliga videokonferenser med teamet på huvudkontoret i USA. Eftersom det skiljer sex tidszoner mellan arbetsplatserna ck mötet ske mellan det att amerikanarna började och danskarna slutförde sin dag. Scrum underlättade för teamet att planera, estimera och tracka samtidigt som det genererade samma slutresultat. Scrum's backlog system, tillsammans med de dagliga mötena (The Scrum of Scrums), verkar vara en mer strukturerad och specik metod för kravhantering än XP s Planning Game. Hastighetsmåttet från XP kan tyckas en aning missvisande. Det är svårt att få en överblick av hur mycket som verkligen händer under en dags programmering om arbetet består av många stora stories - det händer inget i trackinglistan förrän en story är klar. Det går naturligtvis att bryta ner större stories i mindre i vissa fall, men inte alltid. De övriga teamen använde en något annorlunda metodik än det i Köpenhamn. Av det kan man dra slutsatsen att det går att utveckla mjukvara i virtuella team utan att följa samma metodik. Dock borde det underlätta om man kunde tala i samma termer, som tex Planning Game, Stories, Tasks etc., vid koordination och planering mellan teamen. Därför är det intressant om en renodlad version av XP kunde köras bland alla teamen. Vidare följer en metodik som föreslogs på XP 2001 konference i en artikel som heter Distributed extreme Programming"[7]. 4

5 3 Distributed extreme Programming (DXP) För att XP ska fungera som metodik vid mjukvaruutveckling ställs det höga krav på kommunikationen inom teamet. Detta menar traditionell XP kräver att teamet är placerat på samma plats. I många situationer är detta inte möjligt eller ens något man vill. Ett företag eller ett projekt kan enligt [7] vara i följande situationer som kräver DXP: Globalt distribuerat företag: Ett företag kan vara multinationellt eller helt enkelt ha kontor på era ställen. Ibland behövs kanske kompetens som endast nns inom en annan del av företaget än den där huvudteamet benner sig. Individuella begränsningar: En person kan ha svårt att arbeta på samma plats som huvudteamet under delar av projekttiden. Det är då viktigt att inte denna person utesluts från teamet under perioden för sin frånvaro. Det nns även vissa fördelar som kan locka ett företag att köra DXP: Kostnadsbesparingar: Om man kollar på industrin idag så är trenden tydlig. Outsourcing av delar av verksamheten i ett företag som kräver speciell kompetens till marknader med billigare arbetskraft blir allt vanligare. Indien och Kina har formligen exploderat de senaste åren och mycket ITverksamhet yttas nu från västvärlden och dit. Kundens inblandning: Traditionell XP kräver att kunden ska nnas på plats tillsammans med utvecklingsteamet. Med DXP blir det lättare att integrera kunden utan att den är On-Site. Detta medför att kunden inte längre behöver klippas av från sitt vanliga arbete. Mobilitet: Mobilitet blir allt viktigare idag när vi reser mycket mer än förr, men fortfarande måste klara av våra dagliga uppgifter. En person från utvecklingsteamet kan behöva åka på möte eller konferens, men måste ändå hållas integrerad med teamet. Denna person kan då hålla kontakten med huvudteamet genom att ha en laptop med uppkoppling mot Internet, och kanske även en liten webbkamera för att kunna hålla videokonferens. 4 XP's practices i DXP Kravet i XP är att utvecklingsteamet benner sig på samma plats för att kommunikationen inom teamet ska vara tillräcklig. XP kräver ingen omfattande dokumentation, utan tanken är att kunskapen ska spridas från huvud till huvud genom att kommunicera extremt mycket. Därmed behöver DXP något sätt att kompensera för bristen i kommunikation som avståndet mellan teammedlemmarna medför. Vanliga sätt att kommunicera över långa avstånd är idag bland annat e-post, Instant Messenger program och chat. Dessa medium för kommunikation saknar dock en del viktiga kanaler, och dessa är i huvudsak ansiktsuttryck, kroppsspråk och röstläge. Genom att inte kunna bedöma en annan persons reaktioner från dessa kommunikationskanaler kan missförstånd lätt uppstå. Arbetet mellan i synnerhet parprogrammerare kan hämmas betydligt. Utvecklarna behöver 5

6 därför en del kommunikationsverktyg för att kompensera för avståndet mellan dem. Förutom e-post och chat så kan teamet behöva använda videotelefoni eller någon form av videokonferensmjukvara. Detta skulle kunna underlätta något för parprogrammering. Men för att kunna köra parprogrammering distribuerat krävs mer än att man kan se ansiktet på sin partner, man måste även ha mjukvara som stödjer att man kan samarbeta på samma arbetsyta (se virtuell parprogrammering). Om utvecklarna benner sig i olika tidszoner kommer de att arbeta på olika tider. Det kan även vara så att någon av utvecklarna är involverade i era projekt samtidigt. Någon annan utvecklare kan t ex få personliga förhinder under en tid. För att synkronisera arbetet mellan utvecklare i DXP krävs alltså någon form av formell schemaläggning. Man skulle kunna tänka sig att samtliga utvecklare utväxlade dag- eller veckoschema med varandra via e-post, och att det i dessa scheman stod vilka tider de var tillgängliga och vad de planerar att jobba med. Utefter detta kan utvecklare sedan hitta partner för parprogrammering. Dock vore en bättre lösning något slags gemensamt verktyg för informationsutväxling tillgängligt över webben, t ex en wiki-wiki eller någon form av portalapplikation. I stora team ökar kravet på formalisering av schemaläggning och något specialbyggt verktyg kan vara av nytta. Förslag på ett sådant är HyperStackXP i Moomba-modellen, vilket beskrivs i kapitel 6. I ett virtuellt team så är det inte säkert att projektledaren nns på plats, i synnerhet inte när det gäller Open Source utveckling där de esta medlemmarna ur teamet faktiskt inte benner sig på samma plats. När det gäller kommersiell mjukvaruutveckling måste det nnas ett oerhört förtroende mellan de olika parterna i teamet. Projektledning över stora avstånd kräver någon slags strategi för att fungera. T.ex. skulle det kunna vara krav på veckorapporter från utvecklarna, och att projektledaren hela tiden gav feedback på utfört arbete. Ytterligare stöd för att öka medvetenheten inom teamet skulle skapa en högre närvarokänsla mellan utvecklarna och därmed stärka teamkänslan. Videotelefoni eller videokonferens är extremt behändigt för att skapa en slags större närhetskänsla. Moomba-modellen stödjer medvetenhet på ett ertal olika plan och är ett utmärkt verktyg för DXP (kapitel 6). För att DXP över huvudtaget ska kunna fungera ställs höga krav på infrastrukturen, både i form av nätverkskopplingar men även på den mjukvara och hårdvara som används. En dålig infrastruktur kan göra det omöjligt att kompensera för de svårigheter i kommunikation som en distribuera miljö medför. Teammedlemmarna måste under alla omständigheter ha möjlighet att koppla upp sig mot varandra genom Internet eller företagets intranet. Vidare måste det nnas stöd för kongurationshantering, vilket för visso redan är ett krav i XP, men i DXP ställs det större krav på åtkomlighet. I en globalt distribuerad miljö där kanske några utvecklare hindras av brandväggar eller proxys. För att kunna realisera DXP krävs alltså att en mängd villkor är uppfyllda, men även att rätt verktyg nns tillgängliga. Givet detta är det endast fem av XP's tolv practices som behöver tas hänsyn till. Dessa är parprogrammering, Planning Game, Customer On-Site, Contuinuos Integration och Shared Vision (Metaphor). 6

7 4.1 Virtuell parprogrammering För att på ett eektivt sätt kunna köra virtuell (distribuerad) parprogrammering, krävs att utvecklingsmiljön har stöd för delad arbetsyta. Brian Hanks på University of California, Santa Cruz, har i en studie [5] undersökt möjligheterna att köra distribuerad parprogrammering i en introduktionskurs för programmering. Erfarenheter från hans arbete kan komma målgruppen för denna artikel väl till pass. Att kunna arbeta tillsammans på programmeringsprojekt utan att behöva färdas långa sträckor för att träas, för att sedan ändå bara sitta och stirra på skärmen, kan tyckas användbart och önskvärt. Verktyget för virtuell parprogrammering som B har använt är en egenutvecklad modikation av Virtual Network Computing (VNC). Som underlag för sin studie har han använt följande observationer: Vid parprogrammering byter man driver ofta men utan några särskilda formaliteter. Ibland tar co-drivern helt enkelt bara över. Paren pratar väldigt mycket under parprogrammering, men de spenderar inte mycket tid med att titta på varandra. Deras fokus är på skärmen. Man pekar ofta mot skärmen för att poängtera vad man syftar på när man vill anmärka på eller fråga om något. För att klarlägga vad VNC är för den oupplysta så är det ett verktyg som används för att koppla upp sig mot en annan dator där man sedermera kan arbeta som om man satt på plats. De modikationer B har gjort tillåter två simultana uppkopplingar mot samma VNC server. Vidare antar de båda uppkopplade användarna rollerna som driver och co-driver genom att en tilldelas muspekare som endast kan ytta runder medan den andra kan använda musen som vanligt. Dessutom fungerar det så att endast den som är driver kan ge input från tangentbordet. Co-drivern kan när som helst ta över rollen som driver, vilket i någon mån kan liknas vid vanlig parprogrammering. Utöver den modierade versionen av VNC använde testgruppen ett program för Voice Over IP (VoIP) för att skapa en närhetskänsla som kan liknas vid den för vanlig parprogrammering. Studenterna som deltog i experimentet var mycket nöjda och tyckte att parprogrammeringsmiljön fungerade bra. Virtuell parprogrammering är intressant för det möjliggör XP för distanskurser, samt för de studenter som av olika anledningar har svårt att närvara fysiskt vid en utbildning. Det kan röra sig om funktionshindrade eller helt enkelt folk som bor långt bort. I ett större perspektiv skulle virtuell parprogrammering kunna verka som ett eektivt sätt att driva samman organisationer över gränserna för att kunna nå de resurser som man kan tänka sig behöva i ett projekt för mjukvaruutveckling. I Moomba-modellen har man tagit fram en utvecklingsmiljö väldigt lik Eclipse 1 som tillåter att två till åtta simultana utvecklare samarbetar. 4.2 Planning Game För att utöva XP's Planning Game distribuerat är det nästan ett krav att videokonferensverktyg och applikationsdelning nns tillgängligt. På något sätt måste 1http:// 7

8 man kunna samarbeta för att skriva stories, tidsbestämma och tilldela uppgifter. Planning Game kräver medverkan från så många projektdeltagare som möjligt. I större projekt gäller det i stort sett bara de projektledare som nns samt naturligtvis kunden. Det är viktigt att så många som möjligt deltar så att en gemensam vision kan förmedlas bland alla projektdeltagare. Videokonferensverktyg förenklar kommunikationen under de diskussioner som naturligt följer med Planning Game. Deltagarna kan se varandras ansikten och misstolkningar kan i större omfattning undvikas vilket snabbar upp processen. Moomba-modellen har stöd för att arbeta fram stories från dess delade utvecklingsmiljö, vilka sedan hamnar sedan på den gemensamma portalen (Hyper- StackXP), där utvecklarna kan teckna sig för dem efter hand. Moomba-modellen har inga krav på videosamtal, men det skulle förmodligen eektivisera hela processen. 4.3 Shared Vision (Metaphor) Utan en strategi för att förmedla en gemensam vision får ett distribuerat projekt av större omfattning en mängd olika krafter dragandes på sitt eget håll. Detta kan bara sluta i missförstånd och i förlängningen många arga ord. I [1] berättas skräckhistorier om hur managementdelen av projektet började gå bakom ryggen på varandra för att de var oense om det sätt på vilket de skulle angripa programmeringsproblemen. Det hela slutade med att produktiviteten gick ner till nära noll. Allt pga att de saknade, eller snarare vägrade anta, en gemensam vision. 4.4 Continuous Integration Utvecklarna måste kunna integrera sitt arbete i en gemensam repository, förslagsvis CVS. Det ända kravet utöver de XP redan har, är att alla måste ha tillgång till CVS:en var de än må benna sig i världen. Detta ställer väldigt höga krav på tillgänglighet och tillförlitlighet. Utan CVS blir Continuous Integration ett mycket omfattande arbete där de distribuerade utvecklarna t.ex skickar sin kod till koordinator som får integrera den med programmet. Med större delen av teamet på en och samma plats skulle denna modell kanske hålla. Åtminstone om det rör sig om korta perioder. 4.5 On-Site Customer I ett distribuerat team är det omöjligt att ha en kund On-Site. Han kan inte längre kallas On-Site utan får ta namnet Virtual On-Site Customer. För att integrera en kund är det nästan krav på videokonferensstöd för att åtminstone någon gång under dagen få tala ansikte mot ansikte. Det ställs väldigt höga krav på tillgängligheten hos en virtuell kund som inte är On-Site för någon del av teamet. Han måste vara tillgänglig under alla av utvecklarnas arbetstimmar. Skiljer det i tidszon mellan utvecklarna och kunden, dyker det upp ytterliggare komplikationer som kan vara svåra att komma förbi. Unika lösningar för varje scenario kan behöva skapas, t ex kan det behövas en ställföreträdare till kunden som kan ta över när denne inte är tillgänglig. 8

9 5 Moomba - ett verktyg för DXP Moomba är ett verktyg för sammarbete i ett distribuerat team. Det är byggt för att realisera DXP i en global utvecklingsmiljö. Moomba är fortfarande under utveckling på The University of Queensland, Australia, men kommer slutligen att släppas som Open Source. På XP 2004 conference presenterades för första gången materialet om Moomba [6]. Målet med verktyget är att skapa en slags community på Internet för ett distribuerat utvecklingsteam. Moomba är uppbyggt i en trelagersmodell, vilken i sin tur är utökning av en bentlig modell kallad TUKAN's medvetandemodell. I TUKAN nns det tre olika samband mellan artefakter (eg. klasser, stories): Strukturella: Samband så som ärvning och liknande Användande: Samband så som metodanrop. Version: Samband mellan artefakter med samma version. Baserat på dessa samband används en slags avståndsfunktion för att beskriva hur nära två artefakter är varandra. Ett färgschema används sedan för att visualisera avståndet till närmaste teammedlem utifrån användarens aktuella position i arbetsytan. På detta sätt kan man få information om användare som arbetar på samma eller liknande artefakter, vilket kan uppmuntra till parprogrammering. Samma avståndsfunktion kan användas för att identiera möjliga konikter rörande kongurationshantering (eg. mergekonikter). Utbyggnaden av TUKAN i Moomba består i stort sett av stöd för kunskap om arbetsytor och ökad medvetenhet rörande gruppstrukturer och sociala samband. Detta är saker som är mycket viktiga för DXP. Moomba består alltså av en trelagermodell: Processlagret, Användarlagret och Artefaktlagret. Modellen presenteras bäst i form av kuben i Figur 1. Figur 1: Moomba's trelagersmodell Processlagret består av allt som rör medvetande kring gruppstrukturer och sociala samband. Inkluderat i detta lager är sådana saker som vilka ansvarsområde olika personer har, vilka användare som nns på samma arbetsplats och 9

10 kunskap om vilka användare som delar arbetsyta. Man kan få information när en potentiell partner för parprogrammering gått online eller när en domänexpert blivit tillgänglig. Det går även att få information när en task som matchar en utvecklares skicklighetsnivå blivit tillgänglig samt mycket mer. Användarlagret innehåller allt som rör medvetande kring interagering och samarbete användare emellan. Man kan säga att lagret är en förenkling av TUKAN's modell. Moomba ger information om användares interaktion med mjukvaruartefakter. På så sätt kan användare undvika potentiella kongurationskonikter. Om en användare upptäcker att någon annan manipulerar en artefakt som berör det den håller på med så kan de båda samarbeta för att lösa upp eventuella konikter. Kunskap om användare som arbetar på samma eller nära besläktade artefakter uppmuntrar till parprogrammering. Artefaktlagret lägger fokus på interaktion mellan mjukvaruartefakter. I lagret inkluderas sådana händelser som ligger närmast varje enskild artefakt - exempelvis att en användare modierar en artefakt i den delade workspace. Moomba-modellen realiseras med i huvudsak två verktyg: HyperStackXP: En webbportal för koordination av arbete och tracking. Moomba Collaborative Integrated Development Environment (MCIDE): En utvecklingsmiljö som stödjer parprogrammering. Både webbportalen och samarbetsmiljön är integrerat med CVS, som lagrar inte bara programkod utan även storykort. Det nns även en server som har hand om att koordinera manipulering och handhavande av delade artefakter. Moombas arkitektur illustreras i Figur 2. Figur 2: Arkitekturen för Moomba Collaborative Environment. 5.1 Webbportalen HyperStackXP Denna delen av miljön används för tracking och Planning Game. I trackingdelen hittas information rörande aktuell release och iteration. Stories och tasks är i sin tur knutna till en specik release och iteration. Detta är viktigt för att nya användare snabbt ska kunna sätta sig in i projektet. De stories och tasks som inte blivit tilldelade någon iteration listas i en speciell del för releaseplannering. Här kan användare välja att lägga in stories och tasks i aktuell eller en framtida iteration. Användare kan också se vilka stories och tasks de blivit tilldelade. När en story med stark anknytning till en aktuell story läggs in i portalen meddelas de användare som håller på med den aktuella storyn om att en ny story, med hög relevans för användaren, har anlänt. Detta är användbart i projekt där användarna själva tecknar sig för stories. 10

11 Varje person i teamet har en egen användarprol i portalen. Under prolen nns information rörande användarens programmeringsintressen, ambitioner, tillgänglighet, projektschema, tidszon, prestationsbedömning från andra användare, samt vilka stories och tasks som den färdigställt. I portalen nns även en sökmotor för att hitta parprogrammerare. Denna har i sin tur väldigt stark koppling till användarprolen. Man kan använda sökmotorn för att hitta en användare med annan kompetensnivå, programmeringsroll eller andra programmeringsintressen. Detta är oerhört användbart när en ny utvecklare ska integreras i teamet - man kan då para ihop denna med en mera erfaren utvecklare. Detta ser i sin tur till att balansera kunskapen som bärs i huvudet av utvecklarna i teamet. 5.2 Moomba's Collaborative Integrated Development Environment (MCIDE) Editorn i Moomba ser ut som vilken annan modern utvecklingsmiljö - eg. Eclipse. Den stora skillnaden är dock att den har stöd för era simultana användare, eller närmare bestämt mellan två och åtta. Detta skapar möjlighet för parprogrammering men ger även stöd för distribuerad Planning Game. Utvecklingsmiljön är baserad på modellen WYSIWIS (What You See Is What I See). Input från en användare distribueras omgående till alla deltagare. De som deltar kan arbeta på olika ställen samtidigt. En person kan alltså scrolla runder för att kolla någon metod i en annan klass medan en annan kodar. På så sätt kan arbetet eektiviseras. Detta kan tyckas ta bort fokus från parprogrammering, men det nns en bra funktion för att öka uppmärksamheten. Man kan nämligen välja att färga användarnas input med olika bakgrundsfärg och kan på så sätt lätt checka av vad som skrivits av vem. Miljön har dessutom ett välutvecklat stöd för att köra debugging tillsammans. Varje deltagare har möjlighet att kontrollera programmets exekvering. Detta kan vara ett mycket användbart verktyg som ytterligare ökar möjligheten för att lyckas med virtuell parprogrammering. 6 Slutsaster och vidare läsning Svårigheten med att driva ett mjukvaruutvecklingsprojekt i en distribuerad miljö ligger i hur man ska lösa det tomrom i kommunikationskanaler som uppstår när inte längre hela utvecklingsteamet sitter bredvid varandra. Ju er utvecklare som deltar i projektet och ju större avstånd, både geogrask och kulturmässigt, det är mellan dem, desto svårare blir projektet att administrera. Stora krav ställs på hur managementdelen av gruppen sköter sitt jobb. Det gäller att i så stor mån som möjligt sprida en gemensam vision och få teamet att känna en slags virtuell teamkänsla. Dessutom krävs det maximalt utnyttjande av de hjälpmedel för kommunikation som nns till hands. Det nns mycket att tjäna ekonomiskt sett, om man kan lyckas med distribuerad mjukvaruutveckling. Outsourcing till länder med billigare arbetskraft erbjuder stora kostnadsbesparingar. Detta skapar också en oro hos utvecklare i västvärlden; att bli utkonkurrerade av utvecklare från Indien och Kina. Detta är naturligtvis ett problem men inte en del av denna artikel. 11

12 Förutom outsourcing kan företag göra kostnadsbesparingar på DSD genom en eektivare resurshantering. Rätt kompetens nns kanske på en annan geogra- sk plats inom företaget och man kan på så sätt slippa hyra in eller nyrekrytera personal. Det nns ingen anledning att tro DSD endast är lämpat för Open Sourceliknande utveckling. Kan de så kan minsann kommersiella företag göra detsamma. DSD är här för att stanna och DXP är bara en metodik i mängden som på inga sätt är den kompletta lösningen. Varje distribuerat projekt har sina specika behov och behöver noggrann planering för att lyckas. Denna artikel har i huvudsak behandlat problem som uppstår vid distribuerad mjukvaruutveckling mha DXP. För vidare läsning om hur man skalar XP till stora projekt kan den intresserade läsaren titta i [9]. 7 Acknowledgments Bilderna i beskrivningen av Moomba-miljön är tagna från [6]. Tack för synpunkter från granskare Josef Granqvist, Mats Wilson, Lina Hallmér samt Görel Hedin. Referenser [1] Distributed Product Development Using Extreme Programming, Charles J. Poole, XP 2004, LNCS 3092, pp [3] Maurer F., Supporting Distributed Extreme Programming, in Proceedings of Extreme Programming and Agile Methods - XP/Agile Universe 2002, Lecture Notes in Computer Science Chicago, IL, USA: Springer-Verlag Heidelberg, pp [4] Bent Jensen and Alex Zilmer, Cross-Continent Development Using Scrum and XP, SAS Institute A/S Denmark [5] Brian F. Hanks, Virtual Pair Programming, University of California, Santa Cruz, brianh/ [6] Michael Reeves and Jihan Zhu, Moomba - A Collaborative Environment for Supporting Distributed extreme Programming in Global Software Development, School of Information Technology and Electrical Engineering, The University of Queensland, Australia [7] Kircher M., et al, Distributed extreme Programming, in Proceedings of Second International Conference on extreme Programming and Agile Processes in Software Engineering (XP2001)", Cagliari, Sardinia, Italy: Addison Wesley, pp. pages [8] Beck K.,Extreme Programming Explained: Embrace Change, Addison- Wesley Publishing Company, [9] Agila processer och storskalig programvaruutveckling, Frida Boström & Per Skarin 12

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

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

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

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

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

BESKRIVNING AV PROCESSMETODEN SCRUM

BESKRIVNING AV PROCESSMETODEN SCRUM NORDSCRUM BESKRIVNING AV PROCESSMETODEN SCRUM NORDSCRUM BESKRIVNING AV PROCESSMETODEN SCRUM INNEHÅLLSFÖRTECKNING inledning... 3 SCRUM... 3 Bakgrund... 3 Faser... 3 Ramverket... 3 Nordscrum... 4 StudentProjekt...

Läs mer

Linköpings universitet 1

Linköpings universitet 1 Vanliga faser TDP029 Systemutveckling Annika Silvervarg COIN/HCCS/IDA Analys Vad är problemet? Uppgift Vad är det för arbetsuppgifter och hur utförs de? Användarbehov Vad behöver användaren/användarna?

Läs mer

TDP023 Projekt: Agil systemutveckling

TDP023 Projekt: Agil systemutveckling TDP023 Projekt: Agil systemutveckling Johan Åberg johan.aberg@liu.se Tre moment Projekt 8hp Marknadsföring av produkt 2hp Kopplat till projektarbetet Individuell rapport 2hp Kopplat till projektarbetet

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

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

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

SCRUM och agil utveckling

SCRUM och agil utveckling SCRUM och agil utveckling Johan Åberg johan.aberg@liu.se Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

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

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

Therese Hansson & Magnus Jonsson. Motivationsfaktorer - Test inom Agila utvecklingsprojekt Motivationsfaktorer - Test inom Agila utvecklingsprojekt Magnus Jonsson & Therese Hansson Flerårig erfarenhet från ett globalt utvecklingsprojekt där vi införde Agile & Scrum metodik i hela organisationen

Läs mer

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

Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel. Page 1 (5) Hemuppgift 1DV404 150115-150118 Deluppgift 1 Processmodeller a) (4p) Alla mjukvaruutvecklare följer någon form av utvecklingsprocess i sitt arbete. Diskutera vad organisationer brukar ange som

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

Scrums användning i Extreme Programming projekt. Lunds Tekniska Högskola D07 Lars-Olof Rydgren EDA270 2011-03-01

Scrums användning i Extreme Programming projekt. Lunds Tekniska Högskola D07 Lars-Olof Rydgren EDA270 2011-03-01 Scrums användning i Extreme Programming projekt Lunds Tekniska Högskola D07 Lars-Olof Rydgren EDA270 2011-03-01 1 Sammanfattning I denna djupstudie givet av kursen Coaching i Programvaruutveckling på Lunds

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

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 - FDD Agila metoder: Vad innehåller SCRUM Hur skiljer sig XP och SCRUM?

Läs mer

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

Användningscentrering i agila utvecklingsprojekt. johanna.sarna@valtech.com Valtech Användningscentrering i agila utvecklingsprojekt johanna.sarna@valtech.com Valtech Vem är jag? Johanna Särnå Jobbar på Valtech sedan 3 år tillbaka Jobbar där med användbarhet och projektledning Certifierad

Läs mer

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions Testdriven utveckling Magnus Jonsson Siemens Medical Solutions 2 Soarian Stort projekt, ca 400 personer i projektet Distribuerad utveckling i USA, Indien och Sverige Web baserat lösning med admin client

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

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

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

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

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

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

CREATING VALUE BY SHARING KNOWLEDGE

CREATING VALUE BY SHARING KNOWLEDGE CREATING VALUE BY SHARING KNOWLEDGE PROJEKTLEDNING 101 Nidzara Dellien, Lund September 2017 PROJEKT En formell definition på projekt är följande (enligt Wikipedia): En temporär satsning för att framställa

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

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

Pavel Denisov D01, Lunds Tekniska Högskola 21:e februari 2006

Pavel Denisov D01, Lunds Tekniska Högskola 21:e februari 2006 Hur ett XP-projekt påverkas av ett webbaserad projekthanteringsverktyg Pavel Denisov D01, Lunds Tekniska Högskola d01pd@efd.lth.se 21:e februari 2006 Abstrakt XP är bra att organisera små exibla grupper

Läs mer

Filöverföring i Windowsmiljö

Filöverföring i Windowsmiljö Linnéuniversitetet Projektrapport Grundläggande Operativsystem 1DV415 Filöverföring i Windowsmiljö Erik Ljungqvist, Viktor Hjertman 10 januari 2014 Sammanfattning I detta projekt undersöks skillnaden i

Läs mer

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

SCRUM. En agil projektmetod baserad på empiri - vad fungerar och vad fungerar inte? SCRUM En agil projektmetod baserad på empiri - vad fungerar och vad fungerar inte? Grundprinciper Projektgruppen organiserar och planerar sitt eget arbete Fokus på verksamhetsnytta Alla krav prioriteras

Läs mer

Självorganiserande team och coachens anpassade roll

Självorganiserande team och coachens anpassade roll Självorganiserande team och coachens anpassade roll Författare: Jakub Gorski, D07, (dt07jg8@student.lth.se) Jakob Svemar, D07, (dt07js6@student.lth.se) Kursansvarig för EDA270: Lars Bendix Inlämningsdatum:

Läs mer

Praktikrapport. Sofia Larsson MKVA12, HT12

Praktikrapport. Sofia Larsson MKVA12, HT12 Praktikrapport Facetime Media är en byrå belägen i Lund som hjälper företag att marknadsföra sig via sociala medier. I nuläget är det främst Facebook som är aktuellt men tanken är att företaget i framtiden

Läs mer

Projektplan, Cykelgarage

Projektplan, Cykelgarage Projektplan, Cykelgarage Johan Anderholm, (dt08ja5@student.lth.se) Jon Andersen (dt08ja8@student.lth.se) Marcus Carlberg (dt08mc4@student.lth.se) Simon Ekvy (dt08se2@student.lth.se) Stefan Johansson (dt08sj7@student.lth.se)

Läs mer

Slutrapport för Internetfonden

Slutrapport för Internetfonden Slutrapport för Internetfonden Webbprogrammering i matematik och fysikundervisning Mikael Tylmad mikael@roboro.se Fredrik Atmer fredrik.atmer@gmail.com Ella Kai-Larsen e@k-l.se 10 april 2014 http://www.profyma.se/

Läs mer

ALM Live: Scrum + VSTS

ALM Live: Scrum + VSTS ALM Live: Scrum + VSTS Explained and distilled for Everyone! Micael Herkommer micael.herkommer@inexor.se Introduktion Micael Herkommer Developer Coach & Solutions Architect INEXOR EPiServer Professional

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

HAND TRACKING MED DJUPKAMERA

HAND TRACKING MED DJUPKAMERA HAND TRACKING MED DJUPKAMERA ETT PROJEKT I TNM090 - SOFTWARE ENGINEERING Rasmus KARLSSON Per JOHANSSON Erik HAMMARLUND raska293@student.liu.se perjo020@student.liu.se eriha891@student.liu.se 2014-01-14

Läs mer

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

Agile-metoder, XP och ACSD

Agile-metoder, XP och ACSD Användarcentrerad systemdesign. Föreläsning 12 Agile-metoder, XP och ACSD Stefan Blomkvist MDI / IT, stefan.blomkvist@it.uu.se & Profdoc AB www.profdoc.se www.it.uu.se/edu/course /homepage/acsd/s04 XP

Läs mer

Djupstudie - Datorbaserade system för tracking

Djupstudie - Datorbaserade system för tracking Djupstudie - Datorbaserade system för tracking Torbjörn Lundberg, dt05tl3 Joakim Svensson, dt05js8 18 februari 2008 Sammanfattning Tracking är ett hjälpmedel inom projekt för att hålla reda på information

Läs mer

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

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDI02 Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Verifikation, Validering och Testning XP Extreme Programming Vad är ett fel? I engelskan

Läs mer

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

Projektmetodik II. HF1005, Informationsteknik och ingenjörsmetodik för Datateknik. Projektarbete Projektmetodik II HF1005, Informationsteknik och ingenjörsmetodik för Datateknik Projektarbete Förväntade resultatet är t.ex. en produkt Vi behöver arbeta med Analys Faktainsamling Genomförande Rapportering

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

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

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

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

Presentation. Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban Presentation Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban Om AddQ Mission Vi skapar affärsnytta för kunden genom specialisttjänster inom test, kvalitetssäkring och effektivisering Tjänsteområden

Läs mer

Priskamp. En prisjämförelsesite Björn Larsson 130609

Priskamp. En prisjämförelsesite Björn Larsson 130609 Priskamp En prisjämförelsesite Björn Larsson 130609 Abstrakt Detta är en post-mortem slutrapport om mitt projekt "Priskamp" inom ramen för kursen Individuellt Mjukvaruutvecklingsprojekt VT 2013. Projektets

Läs mer

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen 20150613, kl. 9.00-12.00

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen 20150613, kl. 9.00-12.00 Skolan för datavetenskap och kommunikation Objektorienterad Programkonstruktion, DD1346 FACIT Tentamen 20150613, kl. 9.00-12.00 Tillåtna hjälpmedel: Papper, penna och radergummi. Notera: Frågorna i del

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

Agilt arbetssätt i komplexa organisationer. Välkomna! Anna Picetti, IT-HUSET 2011-10-27. www.it-huset.se

Agilt arbetssätt i komplexa organisationer. Välkomna! Anna Picetti, IT-HUSET 2011-10-27. www.it-huset.se Agilt arbetssätt i komplexa organisationer Välkomna! Anna Picetti, IT-HUSET 2011-10-27 Ord från en företagsledare Ett bra genomförande är 90 procent av framgången och strategin 10, varav magkänslan är

Läs mer

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

Kanban. Marcus Hammarberg. torsdag den 15 september 2011 (v.) Kanban Marcus Hammarberg Kanban? Vad sjutton är Kanban för något? Jag brukar beställa yakiniku... http://blog.huddle.net/wp-content/uploads/2009/08/team-building-exercises-improving-teamwork.jpg Kanban

Läs mer

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

Scrum i praktiken Tillämpning inom Gripen demonstrator. Fredrik Lorentzon & Marcus Frejd 2010-11-11 SESAM Scrum i praktiken Tillämpning inom Gripen demonstrator Fredrik Lorentzon & Marcus Frejd 2010-11-11 SESAM Agenda Vilka är Fredrik och Marcus? Gripen demonstratorprogram i korthet Varför och hur införde

Läs mer

Supportsamtal ett coachande samtal medarbetare emellan

Supportsamtal ett coachande samtal medarbetare emellan Utdrag 1 Supportsamtal ett coachande samtal medarbetare emellan Nackdelen med det konventionella utvecklingssamtalet är att det lägger all tonvikt på relationen chef medarbetare. Det är inte ovanligt att

Läs mer

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

Note to programmers. Embrace Change! Extreme Programming? Fyra basaktiviteter. 12 Practices / sedvanor. Vad är Extreme Programming Embrace Change! Note to programmers Extreme programming Even programmers can be whole people in the real world. Extreme Programming is an opportunity to test yourself, to be yourself, to realize that maybe

Läs mer

Tentamen, delkurs Projektstyrning Webbutvecklare SU13, Malmö

Tentamen, delkurs Projektstyrning Webbutvecklare SU13, Malmö Sida 1/14 Tentamen Projektstyrning, Webbutvecklare, WU13, Malmö Tentamen, delkurs Projektstyrning Webbutvecklare SU13, Malmö Plats: Plushögskolan Malmö Tid: fredag 29 november 2013, kl. 9.00-12.00 Tillåtna

Läs mer

Internet och sociala medier. Anne-Marie Eklund Löwinder Kvalitets- och säkerhetschef,.se amel@iis.se

Internet och sociala medier. Anne-Marie Eklund Löwinder Kvalitets- och säkerhetschef,.se amel@iis.se Internet och sociala medier Anne-Marie Eklund Löwinder Kvalitets- och säkerhetschef,.se amel@iis.se Min agenda Lite om.se Sociala medier vad är det vi pratar om? Vad är nyttan? Vilka är riskerna? Några

Läs mer

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

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH F2 XP Extrem Programmering översikt EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH Vad är XP? En metod för hur man utvecklar programvara i grupp i nära samspel

Läs mer

SCRUM på Riksarkivet. Magnus Welander / 2011-05-26

SCRUM på Riksarkivet. Magnus Welander / 2011-05-26 SCRUM på Riksarkivet Magnus Welander / 2011-05-26 Agenda Metoden SCRUM Erfarenheter från Riksarkivet Sverige Metoden SCRUM Varför agile? Källa: Standish Group Önskedrömmar Kunden vet vad de vill ha Utvecklarna

Läs mer

SLUTRAPPORT WEBBPROJEKT 1

SLUTRAPPORT WEBBPROJEKT 1 SLUTRAPPORT WEBBPROJEKT 1 Kostregistrering 30 mars 2012 Webbprojekt 1 1DV411 Institutionen för datavetenskap, fysik och matematik Linnéuniversitetet Ella Källman - ella@kallman.se Martin Kuoppa - martin@duofy.com

Läs mer

NÄR NOTERINGEN STÅR FÖR DÖRREN

NÄR NOTERINGEN STÅR FÖR DÖRREN { ir } NÄR NOTERINGEN STÅR FÖR DÖRREN Med planering blir börsnoteringsprocessen såväl bättre som roligare. Här är några råd till dig som funderar på en börsintroduktion. D et finns naturligtvis många olika

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

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

Användarcentrerad systemdesign

Användarcentrerad systemdesign Användarcentrerad systemdesign Föreläsning 9: Agile-metoder, XP och ACSD Stefan Blomkvist MDI / IT, Uppsala Universitet, stefan.blomkvist@it.uu.se XP www.it.uu.se/edu/course /homepage/acsd/s04 Dagens föreläsning

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

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

Malmö StadsAtlas. Ulf Minör Anna-Stina Munsin Johan Lahti GIT-utvecklare Malmö Stad

Malmö StadsAtlas. Ulf Minör Anna-Stina Munsin Johan Lahti GIT-utvecklare Malmö Stad Ulf Minör Anna-Stina Munsin Johan Lahti GIT-utvecklare Stad Disposition Inledning om våra webbkartor - Verksamhetsstöd Stadskarta på malmo.se Webbkartor på väg. smap Samarbete -Lund-Helsingborg Kartor

Läs mer

ICQ - EN SOCIAL GIMMICK ELLER ETT SAMARBETSVERKTYG?

ICQ - EN SOCIAL GIMMICK ELLER ETT SAMARBETSVERKTYG? ICQ - EN SOCIAL GIMMICK ELLER ETT SAMARBETSVERKTYG? Denna rapport avser att betrakta programmet ICQ ur ett samarbetsperspektiv. ICQ är ett program för internet. ICQ används för att skicka bl.a. korta textmeddelanden,

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

Hi-Fi Prototyping + laborationsgenomgång & verktyg

Hi-Fi Prototyping + laborationsgenomgång & verktyg Hi-Fi Prototyping + laborationsgenomgång & verktyg Karin Fahlquist 2015 Frågor att besvara Vad innebär prototyping? Vad är speciellt med hi-fi prototyping? Hur kan man använda dem? Hur väljer man nivå

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

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

Föreläsning 4: Designprocessen

Föreläsning 4: Designprocessen Föreläsning 4: Designprocessen FSR: 2, 3, (6), 7 Att läsa: Kapitel 9 och 12 i Rogers et al.: Interaction design 4/e 150911 Designprocessen 2 Designprocessenöversikt Introduktion Att involvera användare

Läs mer

Preliminär specifikation av projekt

Preliminär specifikation av projekt Preliminär specifikation av projekt Projektets namn: Infraröd Minneslåda (numera omdöpt till FastSync) Uppdragsgivare: Alex Olwal aolwal@cs.columbia.edu Deltagare: Johan Ullberg Nils

Läs mer

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI NG STRESS LUNDS TEKNISKA HÖGSKOLA - 2013-05-22 Projektmedlemmar: Emil Apelgren adi10eap@student.lu.se Fredrik Helander gda10fhe@student.lu.se Jonathan Klingberg

Läs mer

SCRUM. på fem minuter

SCRUM. på fem minuter SCRUM på fem minuter DET TALAS MYCKET OM SCRUM OCH LÄTTRÖRLIGA METODER JUST NU A simple framework for managing complex projects Traditionella metoder fokuserar på att hålla planen, Scrum inriktar sig på

Läs mer

PROJEKTLEDNING inom produktutveckling. Individuell inlämningsuppgift KPP039 Produktutvekling 3 Boris Mrden 2010-01-10

PROJEKTLEDNING inom produktutveckling. Individuell inlämningsuppgift KPP039 Produktutvekling 3 Boris Mrden 2010-01-10 PROJEKTLEDNING inom produktutveckling Individuell inlämningsuppgift KPP039 Produktutvekling 3 Boris Mrden 2010-01-10 Innehållsförteckning Inledning... 3 Projektarbete... 4 Projektledning & Ledarskap...

Läs mer

TDP023 Projekt: Agil systemutveckling

TDP023 Projekt: Agil systemutveckling TDP023 Projekt: Agil systemutveckling Johan Åberg johan.aberg@liu.se Tre moment Projekt 8hp Marknadsföring av produkt 2hp Kopplat till projektarbetet Individuell rapport 2hp Kopplad till projektarbetet

Läs mer

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

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH F2 XP Extrem Programmering översikt EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH Syfte & Mål Ge en helhet av vad XP är Mål & syfte med XP - varför ser metoden

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

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

Kevin Lane Kungliga Tekniska Högskolan Introduktionskurs i Datateknik (II1310) TIEDB0. [NXT Legorobot] [Programmering och felsökning]

Kevin Lane Kungliga Tekniska Högskolan Introduktionskurs i Datateknik (II1310) TIEDB0. [NXT Legorobot] [Programmering och felsökning] [NXT Legorobot] [Programmering och felsökning] Kevin Lane 28/8-12 klane@kth.se Introduktionskurs i datateknik II1310 1 Sammanfattning I denna laboration så fick vi programmera och felsöka en LEGO-robot.

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

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

Coachning som ett HR-verktyg Miniguide

Coachning som ett HR-verktyg Miniguide Coachning som ett HR-verktyg Miniguide Varför coachning? Enkelt. Det hjälper din personal att växa, gör dina kollegor gladare och har en enormt positiv inverkan på din organisations prestation genom bättre

Läs mer

Vad är molnet?... 2. Vad är NAV i molnet?... 3. Vem passar NAV i molnet för?... 4. Fördelar med NAV i molnet... 5. Kom igång snabbt...

Vad är molnet?... 2. Vad är NAV i molnet?... 3. Vem passar NAV i molnet för?... 4. Fördelar med NAV i molnet... 5. Kom igång snabbt... Produktblad för NAV i molnet Innehåll Vad är molnet?... 2 Vad är NAV i molnet?... 3 Vem passar NAV i molnet för?... 4 Fördelar med NAV i molnet... 5 Kom igång snabbt... 5 Bli kostnadseffektiv... 5 Enkelt

Läs mer

KUNG. TEKNISKA HÖGSKOLAN. Laboration. Programmering av LEGO-robot

KUNG. TEKNISKA HÖGSKOLAN. Laboration. Programmering av LEGO-robot KUNG. TEKNISKA HÖGSKOLAN Laboration Programmering av LEGO-robot 2012-09-01 E-post: Maxwin@KTH.se Introduktionskurs i datateknik (II1310) Medlaborant: Andreas Bergstrand Sammanfattning I den här rapporten

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

Integrerat ingenjörsprojekt

Integrerat ingenjörsprojekt 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

Läs mer

Min syn på optimal kommunikation i en PU-process

Min syn på optimal kommunikation i en PU-process Min syn på optimal kommunikation i en PU-process KN3060 Produktutveckling med formgivning Mälardalens högskola Anders Lindin Inledning Denna essä beskriver min syn på optimal kommunikation i en produktutvecklingsprocess.

Läs mer

Innehåll. Material Ordförandeguide Uppdaterad: 2015-02- 18 Sida 2 av 7

Innehåll. Material Ordförandeguide Uppdaterad: 2015-02- 18 Sida 2 av 7 Sida 2 av 7 Innehåll... 1 Ordförandeposten... 3 Presidiet... 3 Styrelsen... 3 Styrelsemötet... 4 Ledarskapet... 4 Vad är ledarskap?... 4 Ledarskap i projekt... 5 Att utveckla sitt ledarskap... 6 Kommunikation...

Läs mer

Lean software development och lättrörlig utveckling

Lean software development och lättrörlig utveckling Lean software development och lättrörlig utveckling TOBIAS FORS & MIKAEL LUNDGREN Agenda Vi vill visa: Ett pågående paradigmskifte i mjukvaruvärlden Nämligen: Lean: en teoribas för lättrörlig utveckling

Läs mer

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

HÖSTTERMINEN. Scrum STF INGENJÖRSUTBILDNING AB. Vi vidareutbildar ingenjörer och tekniker. Din partner för livslångt lärande STF INGENJÖRSUTBILDNING Vi vidareutbildar ingenjörer och tekniker Scrum STF KOMPETENSINFO NR 63/2011 HÖSTTERMINEN STF INGENJÖRSUTBILDNING AB Din partner för livslångt lärande WWW.STF.SE Scrum i praktiken

Läs mer

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

AGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive AGIL KRAVHANTERING Hitta behoven bakom kraven!!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive KRAVSTÄLL EN PRODUKT! Skriv ner tre krav som ni ställer på produkten INNOVATIONSDRIVNA PRODUKTER...

Läs mer

Agila Metoder. Nils Ehrenberg nils.ehrenberg@mah.se

Agila Metoder. Nils Ehrenberg nils.ehrenberg@mah.se Agila Metoder Nils Ehrenberg nils.ehrenberg@mah.se Agenda Agila Metoder: Scrum och sprints Lean och Design Workshops Kravställning Agil Utveckling Individer och interaktioner istället för processer Fungerande

Läs mer

En praktisk studie i estimeringstekniker inom extreme Programming EDA270. Fredrik Åkerberg Tommy Kvant March 5, 2013

En praktisk studie i estimeringstekniker inom extreme Programming EDA270. Fredrik Åkerberg Tommy Kvant March 5, 2013 En praktisk studie i estimeringstekniker inom extreme Programming EDA270 Fredrik Åkerberg Tommy Kvant March 5, 2013 Contents 1 Introduktion 1 2 Bakgrund 2 2.1 Tracker programmet.........................

Läs mer

Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén 2010-03-18

Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén 2010-03-18 Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén 2010-03-18 Innehåll Inledning... 3 Fakta... 4 Innehåll... 4 Texthantering... 4 Granskning och versionshantering...

Läs mer