Cult of Code Quality

Storlek: px
Starta visningen från sidan:

Download "Cult of Code Quality"

Transkript

1 Jakob Schyberg (d00jsc) Coaching av Programvaruteam Josef Granqvist (d00jgr) LTH Institutionen för Datavetenskap Cult of Code Quality Vad kan en coach göra? Denna djupstudie handlar om kodkvalitet. Vad det är, varför det är bra och sist men inte minst hur man kan åstadkomma vad vi kallar en Cult of Code Quality i ett programvaruteam. Djupstudien är skriven i samband med ett Extreme Programming-projekt i kursen Coaching av Programvaruteam, och innehåller erfarenheter och resultat från våra experimentella försök i projektet. 1

2 Cult of Code Quality Inledning Vad och varför? Vad är kodkvalitet? Varför högkvalitativ kod? Varför inte? Snygg kod kostar funktionalitet Stilkrockar Lathet Hur får man ett team att skapa högkvalitativ kod? Cult of Code Quality Gruppens Motivation Coaching Practices Samla ambitionerna Diskutera tidigt Motivera Berätta historier Sprid medvetenheten Redovisa JCC Redovisa Simple Design Redovisa arkitektur Växla mitt i Refaktorisera smart Refaktorisera varandras kod Refaktorisera mellan iterationer Kulten kräver offer Resultat och slutsatser Effektivitet Cult of Code Quality? Medvetenhet och ambitioner Referenser

3 1 Inledning Syftet med denna djupstudie är att finna dels betydelsen av högkvalitativ kod i ett programvaruprojekt och dels hur man främjar sådan kod inom Extreme Programming (XP). Studien består av en teoretisk och en praktisk del. I det teoretiska avsnittet ämnar vi utreda vad högkvalitativ kod är och vad det innebär i ett XP-projekt. Det praktiska avsnittet innefattar dokumentering av våra erfarenheter och slutsatser från ett experiment att skapa en så kallad Cult of Code Quality. Vi har vid ett tillfälle använt frågeformulär för att samla in erfarenheter och åsikter om vad en coach kan göra för kodkvaliteten i teamet. Det har varit intressant att mellan coacher och utvecklare jämföra uppfattningar om problem och insatser. 2 Vad och varför? Vi börjar med att reda ut vad kodkvalitet är och varför det är viktigt i ett XP-team. 2.1 Vad är kodkvalitet? Vi bör förtydliga att vi skiljer på kodkvalitet och programvarukvalitet. I denna studie pratar vi till exempel inte om arkitektur, design, stabilitet eller testbarhet, som vanligtvis förknippas med en högkvalitativ programvara. Istället ser vi på koden som en separat företeelse - vi intresserar oss för vad den har för egenskaper när man försöker förstå den, när man utnyttjar den som dokumentation och när man vidareutvecklar den. Vi intresserar oss för hur en människa tolkar den, inte hur en dator tolkar den. Från början hade vi en egen uppfattning om vad kodkvalitet var, utan att kunna sätta fingret på den exakta definitionen. Vi sökte efter en allmän definition och fann snabbt att det som skrivits av andra bekräftade vår egen uppfattning. Här följer ett försök att beskriva vad den allmänna uppfattningen innebär, sammanfattat från både våra egna och andras tankar. Kod med hög kvalitet är: 1 Läsbar: o tillgänglig att förstå både snabbt och grundligt o namn som är läsbara och ger information om det namngivna Snygg och ren : o rätt indenterad o enhetlig och likformig o tydlig Överskådlig: o välstrukturerad o välavgränsad o rätt paketerad 1 Styrkt av [2]. 3

4 Nu när begreppet kodkvalitet är definierat för denna studie, kan vi gå vidare med att utreda varför det behövs och vad dess roll är i programmeringsteamet. 2.2 Varför högkvalitativ kod? Utseendet på den källkod som en programvara består av spelar en avgörande roll för hur begriplig den är för en människa att förstå. Dåligt skriven kod är inte bara svårtolkad för andra personer utan även för författaren själv, exempelvis när minnet sviker. Därför bör man fundera på om man tänker utnyttja eller förändra källkoden i framtiden. I så fall bör man skriva kod av hög kvalitet. En mycket stor del av den mjukvara som utvecklas inom industrin idag, designas av grupper i varierande storlek. Detta innebär att projektet inte kan vara beroende av en viss person. Arbetet som var och en har uträttat måste kunna återupptas av en ersättare, eftersom gruppmedlemmar kan bli sjuka, bli omplacerade eller sluta arbeta på företaget. Detta kräver högkvalitativ kod eftersom ersättaren måste kunna sätta sig in i arbetet som den ersatte har presterat. När en mjukvara har kommit ut på marknaden är den långt ifrån färdig. Enligt Sun Microsystems återstår då fortfarande 80 % av mjukvarans slutgiltiga totalkostnad 2. Denna kostnad går exempelvis åt till underhåll i form av säkerhetsuppdateringar, nya efterfrågade funktioner och rättning av buggar. Högkvalitativ kod kan dock sänka denna kostnad ordentligt, här är två exempel: 3 Högkvalitativ kod innebär att fler buggar kan hindras att komma med i en release. Högkvalitativ kod innebär att underhåll blir lättare att genomföra, tack vare att det blir lättare att förstå och ändra koden. I Extreme Programming ska hela teamet ha möjlighet förstå all kod, hela tiden, då Collective Code Ownership 4 tillämpas. Ska utvecklarna kunna ändra i de delar av koden som de inte skrivit själva, förutsätts att all kod är högkvalitativ hela tiden. Arbete för att hålla koden ren måste utföras kontinuerligt under hela projektets gång. Vana programmerare vet att ju mer programmet växer under projektets gång och ju mer rader det består av, desto större blir behovet av kodkvalitet. Om inte arbetskraft avsätts för att hålla koden på en begriplig nivå är det troligt att teamet så småningom kommer att gå vilse i djungeln av duplicerade funktioner, missvisande variabelnamn, oanvända kodstycken, inaktuella kommentarer, med mera. En fördel som kommer på köpet när man håller kodkvaliteten hög är att det blir betydligt lättare att se hur implementeringen av en ny story 5 kommer att påverka koden. Detta eftersom programmets struktur blir mer tydlig, det blir lättare att veta var förändringarna behöver göras och veta vad som kan gå fel. Tack vare detta blir det också lättare att estimera hur lång tid det kommer att ta att integrera denna nya story i systemet. Hög kodkvalitet underlättar alltså även trackingarbetet. 2 Exempel taget från [2]. 3 Ibid. 4 XP, [1]. 5 Ibid. 4

5 2.3 Varför inte? Trots att allt kan verka hur bra som helst när man tittar på ovanstående argument så finns det fortfarande många motkrafter i ett arbetslag när det gäller att lägga ner arbete på kodkvalitet. Den absolut hetaste frågan är nog: kan man lägga ner arbete på kodkvalitet utan bekostnad av funktionalitet?. Här följer några motkrafter som man ofta möter i en arbetsmiljö där man sysslar med programvaruutveckling Snygg kod kostar funktionalitet Att skriva snygg kod är bara slöseri med tid, man förlorar stories. Den typiska kunden ser oftast inte några direkta fördelar med högkvalitativ kod, varför då betala för det? Kunden bryr ju sig trots allt först och främst om att få med alla funktioner han vill ha till ett så lågt pris som möjligt, och vad kan då vara bättre än att implementera alla features rakt upp och ner, så fort som möjligt? Den här kunden är alltså inte tillräckligt insatt i utvecklingsprocessen för att förstå att de fördelar vi tittat på tidigare gör utvecklingen pålitligare i längden. Här gäller det att sätta tillräckliga gränser gentemot kunden för att kunna ge tid åt det underhåll koden kräver för en effektiv och hållbar programutveckling. Även en utvecklare kan ha denna attityd. Ofta beror det på att de ser det som ett besvär att till exempel refaktorisera 7, och att det inte är en lika tillfredsställande arbetsuppgift som det är att implementera en ny funktion. En utvecklare med denna åsikt inser förhoppningsvis snart hur kvalitativ kod hjälper till med programmets utveckling. Förslag och erfarenheter på om hur man kan bekämpa denna negativa inställning kommer vi att diskutera i avsnitt Stilkrockar Alla har olika standarder utom jag. Ett team som är fullt upplyst med kodkvalitetens fördelar kan fortfarande stöta på problem. Folk kan vara fullt medvetna om att de måste tänka på kodens utseende, men ha alltför olika uppfattning om vad snygg kod egentligen är. Sättet att programmera på kan vara djupt präglat i en persons sätt att arbeta. Att få denne att ändra sig för att uppnå enighet med övriga utvecklare kan vara mycket svårt. Det kan till exempel röra sig om: Olika sätt att sätta parenteser, mellanslag och radbrytningar. Olika synpunkter på hur metod- och variabelnamn ska väljas. Olika sätt att kommentera och dokumentera. Olika uppfattning om mjukvarudesign, om vad som är bra objektorientering, fula lösningar etc. 6 Dessa motkrafter följer av våra erfarenheter från många programvaruprojekt, bland annat kurserna Programvaruutveckling i Grupp och Coaching av Programvaruteam. 7 Från XP:s practice Refactoring, [1]. 5

6 Att arbeta i ett team innebär att man måste anpassa sig. Denna inställning måste alla teammedlemmar visa att de har tagit till sig för att kunna platsa i laget. I våra undersökningar av olika team under projektens gång framgick märkbara problem med personliga stilar, anpassningar till konventioner samt svårigheter att förstå varandras kod. Mer om hur man löser problem av denna typ berättar vi längre fram i denna djupstudie Lathet Äsch, jag diskar senare. Det nämndes tidigare att ett XP-projekt ofta är i behov av kontinuerligt underhåll av kodens kvalitet. En tydlig kraft som uppdagar sig här är inställningen att det är okej att skjuta upp förbättrandet av kodens kvalitet till ett senare tillfälle. Det kan jämföras med att diska: Man vet att om man diskar direkt efter maten så kommer det aldrig att bli särskilt mycket disk som ligger i vägen i köket. Det är dessutom mycket lättare att diska när det inte är fullt på diskbänken. Ändå sparar man ofta arbetet till senare med resultatet att det blir svårare att laga mat nästa gång. I ett programvaruprojekt läggs det ner mycket jobb på att städa upp denna röra. Om man skjuter arbetet på hög framför sig blir det större än om man delar upp det och tar hand om det i mindre delar kontinuerligt under utvecklingen. Vi har i våra undersökningar märkt att de flesta utvecklare tidigt inser vikten av att följa de practices som ingår i XP. Samtidigt intygar deras coacher ändå att många practices inte följs. Vi ska längre fram ge förslag på hur man motiverar ett kontinuerligt arbete för god kodkvalitet. 3 Hur får man ett team att skapa högkvalitativ kod? Nu har vi räknat upp några krafter för och emot kvalitet i koden. Nästa steg är att reda ut vad man kan göra för att styra processen åt det positiva hållet. 3.1 Cult of Code Quality De berömda coacherna DeMarco & Lister beskriver ett fenomen de kallar Cult of Quality. Med detta menas ett teams överenskommelse att endast det bästa duger. Något som är förödande för en grupps lagkänsla är nämligen att kämpa efter ett mål tillsammans, för att sedan konstatera att det bara nästan uppnåddes. Det är också viktigt att teammedlemmarna strävar efter samma mål, och att alla i gruppen arbetar för att uppnå det. Den som känner sig ensam i sina ansträngningar att alltid göra sitt bästa kommer förmodligen snart att sluta anstränga sig också. 8 Ovan nämnda fenomen känner vi igen från det oändliga arbetet med att hålla koden snygg. En lösning på detta skulle alltså vara att aldrig nöja sig med något sämre än perfekt. Genom inspiration av konceptet Cult of Quality finner vi ett intressant angreppssätt på problemet att utvecklare sällan mäktar att hålla koden snygg i längden: Om vi från start försöker skapa en Cult of Code Quality borde förutsättningarna för att hålla koden ren bli mycket bättre. Med begreppet Cult of Code Quality menar vi följaktligen att gruppen har en överenskommelse om att huvudmålet är att skriva snygg och högkvalitativ kod efter 8 DeMarco & Lister, [5]. 6

7 konstens alla regler. Här nöjer man sig aldrig med någon sämre än det bästa, för det är det enda sättet man vill ha det på. Motiveringarna för detta är inte svåra att inse och kommer att tas upp under avsnittet Samla ambitionerna. 3.2 Gruppens Motivation Coaching Practices Det viktigaste för att uppnå ett visst mål inom teamet är att individerna tar till sig detta mål som sitt eget. Detta kan nog vara lika svårt att få att hända som det är effektivt när det väl händer. Hur förklarar man för en grupp utvecklare att de måste lägga ner tid på kodkvalitet? Hur får man dem att bli motiverade att arbeta med att göra koden enkel och lättbegriplig, istället för att se det som ett hinder för att fortsätta implementera ny funktionalitet? Genomgående för vad man kan göra för kodkvaliteten är att allting handlar om gruppen som helhet. Kodkvaliteten är inte en fristående enhet, utan något som genomsyrar alla områden av projektet. Collective Code Ownership och andra Extreme Programmingpractices gör att teamet måste agera som ett team på den här punkten, annars motarbetar det sig självt. Det är svårt att utse en kodkvalitetsexpert i gruppen som sköter frågor om kodkvalitet utan att övriga behöver tänka på det. Istället måste alla utvecklare sköta om kodkvaliteten, hela tiden. Därför är vi intresserade av några sätt att samla ambitionen i teamet. Inte heller blir resultatet tillfredsställande om de olika utvecklarna har olika syn på vad kodkvalitet är, eller hur man uppnår det. För minsta möjliga friktion och största möjliga kvalitet krävs det föga överraskande en stor gemensam medvetenhet i teamet för att nå detta gemensamma mål. Detta kan man eftersträva på olika sätt. Slutligen finns det en practice som är ytterst vital för kodkvaliteten. XP:s practice Refactoring 9 innebär att snygga upp koden utan att ändra dess externa funktionalitet. Exakt hur man gör det är oftast specifikt för varje tillfälle, men vi har tagit vara på några ganska allmänna refaktoriseringstrategier som en coach kan införa i teamet. I de följande tre avsnitten tänker vi redogöra för metoder vi experimenterat med i vårt team och sammanfatta våra erfarenheter från det. 3.3 Samla ambitionerna Oavsett vad det är för mål teamet strävar efter är det riktigt effektivt med en samlad ambition för att nå dit. Om vi vill skapa en Cult of Code Quality med målet att producera kod av hög kvalitet något som verkligen ska omfatta alla delar av både teamet och projektet är ambitionerna för detta det första vi måste ta itu med. Att samla ambitionen är av erfarenhet något som verkligen äter tid under mötena i allmänhet och under det första planeringsmötet i synnerhet. I våra experiment med detta som coacher för ett utvecklingsteam såg vi till att ta god tid på oss och därmed visa att detta är något vi tycker är värt teamets tid och uppmärksamhet. Inkörningsperioden var ganska trög och det märktes att det stora fokus vi lade på kodkvalitet var oväntat för teammedlemmarna. När teamet hade accepterat att vi satte värde på kodkvaliteten började 9 XP, [1]. Vi kallar detta för refaktorisering på svenska. 7

8 de emellertid själva göra det. Detta visade sig i form av att de uttryckte sina egna viljor angående ämnet, men också genom att försöka tillfredställa andras. Något att tänka på här är att inte klistra fast en hög ambition på teamet. Om man ska kunna upprätta en samlad ambition är det viktigt att den inte är påtvingad. Individerna måste själva känna att de har gjort detta val frivilligt. En coach har emellertid goda möjligheter att obemärkt styra teamet mot särskilt utvalda mål eller ambitioner. Från svaren på våra frågeformulär har vi kunnat skönja ett mönster av att utvecklarna inte fäster någon större uppmärksamhet vid att coacherna försöker påverka dem. Coacherna själva anser dock att de aktivt försöker påverka teamets mål gällande kodkvalitet. Detta fenomen kan tolkas som att arbetet med att hålla koden ren inte känns särskilt konkret eller uppmärksammat. Kanske har coacherna i dessa team fått arbetet med kodkvaliteten att kännas som ett självklart inslag i projektet. En annan tolkning av fenomenet kan vara att teammedlemmar i allmänhet omedvetet accepterar de mål som coacherna sätter upp. Det behöver då inte nödvändigtvis vara kodkvalitetsrelaterade practices. Man kan i så fall fråga sig var gränsen går för vad som är acceptabelt för teamet att samla sin ambition kring. När den samlade ambitionen väl är upprättad inför ett mål (högt eller lågt) som hela teamet tagit till sig, är den svår att störta Diskutera tidigt Bjud upp till diskussion om ämnet tidigt i projektet. Om man vill att teamet ska acceptera ett gemensamt mål är det viktigt att de känner sig delaktiga från början, att de har möjlighet att påverka. Red ut personliga tolkningar och gemensamma ambitioner. Låt alla komma till tals Motivera Sprid tankesättet att god kod lönar sig i längden. Motivera varför kvalitativ kod i längden underlättar på andra områden som exempelvis strävan efter funktionalitet och resultat: Förklara varför kvalitet effektiviserar: Visst kan det vara skönt att slippa tänka på just nu, men det skapar bättre förutsättningar för effektivt arbete i längden. Förklara varför kvalitet befriar: Du kan lättare underhålla andras kod utan deras hjälp och på samma vis binder du inte upp dig själv till att handha din egen kod utan kan dela med dig av arbetet Berätta historier Berätta historier om både bra och dåliga personliga erfarenheter inom ämnet. Detta ger utvecklarna en greppbar bild av vad de strävar efter eller undviker. Att be om underhållningsbar kod är bra. Att berätta en fasansfull historia om att bli uppringd för att få bakläxa på en bugg man var delaktig i för flera år sedan är mycket bättre. 8

9 3.4 Sprid medvetenheten Precis som att det krävs en samlad ambition och motivation för att vinna ett gemensamt mål, krävs det också en samlad medvetenhet om vad man håller på med inom projektet just nu. En genomgripande kraft mot att sprida kunskap och insyn inom olika områden är den naturliga metoden att tilldela en uppgift till den som bäst löser den. Detta märks tydligt i ett team när man fördelar stories. De som känner sig insatta i ett område angriper gärna problem inom sitt område hellre än utanför. Inget större fel med det, bara man inte låter det stagnera där. Problemen kommer att uppstå när alla snöat in sig på varsin del av projektet och inte förstår sig på varandras delar. Då är det långt till Collective Code Ownership och nära till att börja motarbeta varandra. Trots viss motvilja har vi gjort vårt bästa för att låta gruppmedlemmarna lära upp varandra, vilket vi ser som det enda sättet att i förlängningen upprätthålla både Cult of Code Quality, Simple Design 10 och Collective Code Ownership Redovisa JCC Låt någon av gruppmedlemmarna hålla en kort redovisning om Java Code Conventions på ett morgonmöte. Denna gruppmedlem får då en djupare kunskap inom ämnet när föredraget förbereds, samtidigt som hela gruppen får något att tänka på när de sedan sätter igång och arbetar. Det är mycket troligt att teamet kommer att framställa mycket mer kvalitativ kod denna dag Redovisa Simple Design Fortsätt enligt samma princip och låt någon annan gruppmedlem hålla en redovisning om Simple Design Redovisa arkitektur Är man speciellt ute efter att förbättra gruppmedlemmarnas kunskap om hela programvaran är det ett effektivt sätt att låta någon noga studera systemets arkitektur. Denna person kan sedan redovisa för gruppen för att på så sätt sprida kunskapen vidare. I XP är det lätt att då och då tappa greppet om hur programmets olika delar hänger ihop, eftersom alla har rätt att ändra överallt, och det är en god idé att återge dem denna kunskap Växla mitt i Växla paren när de är mitt uppe i något detta tvingar fram ömsesidig inlärning. Den person som arbetade med problemet innan kan lära den nyinbytte om hur denna del av programmet hänger ihop, för att han eller hon ska kunna få ett grepp om det aktuella problemet som ska lösas. Den nyinbytte i sin tur kommer med en ny fräsch syn på hur problemet ska lösas, och kan på så sätt lära den invande att tänka i andra banor, som dessutom kan ge erfarenhet inför framtida problemlösning. (Naturligtvis kan en coach hitta anledningar att inte växla par mitt i, till exempel om paret har väldigt bra flyt i arbetet.) 10 XP, [1]. 9

10 3.5 Refaktorisera smart Refaktorisering kan anses vara den i särklass mest betydelsefulla arbetsmetoden för att framställa högkvalitativ kod. Man kan se refaktorisering som det samlade namnet för att i efterhand snygga till kod som redan är skriven. Saken är alltså klar, vi ska refaktorisera. Några frågor som kvarstår för oss är: När ska vi refaktorisera? Vem ska genomföra refaktoriseringen? Hur mycket tid ska vi avsätta till refaktorisering? Om vi börjar med att titta tillbaka på metaforen att förbättra kod är som att diska, ser vi att vi vill refaktorisera i små iterationer, hellre för ofta än för sällan, för att undvika stora mängder arbete vid ett och samma tillfälle. På något sätt vill vi alltså integrera refaktoriseringen kontinuerligt med den övriga utvecklingen. Vi har också talat om att vi vill öka gruppens medvetenhet så mycket det går. Vi vill att alla i gruppen ska ha kunskap om programmets olika delar. Refaktoriseringen öppnar här en ypperlig möjlighet för teammedlemmar att sätta sig in i en del av koden som de inte tidigare känner till så väl. Dessutom är det bra att denna del granskas av en person som inte varit med och skrivit den, för att få en granskning från en ny synvinkel. Ingen kan säga exakt hur mycket tid man ska använda till refaktorisering, eftersom detta naturligtvis beror på en mängd faktorer, exempelvis programmets komplexitet, utvecklarnas skicklighet och erfarenhet vad gäller just refaktorisering eller hur mycket utvecklarna tänker på att skriva bra kod när de implementerar funktioner. Det vi däremot kan säga är att man bör avsätta en bestämd andel tid för refaktorisering. Denna andel bör anpassas för det aktuella projektet och för det aktuella teamet. Sedan bör man hitta ett sätt att effektivt utnyttja denna avsatta tid till just refaktorisering Refaktorisera varandras kod Växla par före refaktorisering. Byt ut en av utvecklarna i ett par till någon i teamet som aldrig sett den aktuella koden förut. Genom att refaktorisera varandras kod uppnår man direkt två stora mål: Dels blir den nya koden genast granskad, dels tvingas en tredje utvecklare att lära sig den nya koden Refaktorisera mellan iterationer Efter en iteration brukar det finnas mycket refaktorisering att göra som har känts svår att utföra under iterationen, på grund av att den berör hela projektet. I rädsla för att sabotera arbete för varandra brukar utvecklarna vänta med refaktoriseringen och samtidigt ängslas över refaktoriseringsskulden, som växer sig större alltmedan systemet växer. Låt därför utvecklarna också refaktorisera mellan iterationerna, som en spike 12. Ta hand om så mycket som möjligt av arbetet under iterationerna, gör sedan det som blir över mellan dem. Denna practice handlar alltså inte om att refaktorisera mellan iterationerna istället, utan att göra det då också. Undvik därför att planera refaktoriseringar mellan iterationerna, de är till för att arbeta undan det som oundvikligt blivit kvar efter iterationens slut. 11 Inspiration om refaktorisering hämtat från [3] och [4]. 12 XP, [1]. 10

11 3.5.3 Kulten kräver offer En utvecklare bryr sig om sin tidsplan. Innan varje iteration estimeras den tid man tror det kommer att ta för att implementera en story, och utvecklaren vill ofta visa att det klarades av på den tiden. Detta kan leda till att när en storys funktionalitet är klar och tiden är slut, skyndar utvecklaren vidare till nästa story. I vårt team uppskattades tiden en story skulle ta att implementera i enheten gummibjörnar. En sådan motsvarade till en början en arbetstimme för ett par, men så småningom skulle den komma att motsvara mer eller mindre tid, beroende på hur många gummibjörnar som hanns med under en iteration. Eftersom vi ville att utvecklarna trots tidsbrist ändå skulle dröja kvar och ägna lite omsorg och eftertanke åt den nyskrivna koden, offrade vi helt enkelt gummibjörnar till refaktorisering vid estimeringen för varje story, för att få med detta i tidsschemat. Vi skrev även upp denna nya refaktoriseringssiffra vid estimeringssiffran för hela storyn. På så sätt kunde utvecklaren fortfarande få kämpa för att hålla sin tidsplan för storyns funktionalitet, och sedan räkna refaktoriseringen av den nya koden som en ny tävling. 4 Resultat och slutsatser Som avslutning är vi nu redo att besvara några frågor vi ställt tidigare. Vi undrade tidigare om man kan lägga ner arbete på kodkvalitet utan bekostnad av funktionalitet. Hur gick det med funktionaliteten i vårt projekt? Lyckades vi med uppgiften att få gruppen fokuserad kring kodkvalitet? Kan vi säga att vårt team uppnådde en Cult of Code Quality? 4.1 Effektivitet Tyvärr är kursprojektet för kort för att se några giltiga resultat från att under en längre och mer verklig tidsrymd kämpa för en hög kodkvalitet. I skrivande stund ligger vårt team inte sämre till än något annat när det gäller antal implementerade stories. Men våra teammedlemmar anser att teamets kod är av högre kvalitet än de andra teamens. Med detta som underlag kan vi enligt våra teorier dra slutsatsen att projektet skulle ha en god chans vid en långsiktig vidareutveckling. 4.2 Cult of Code Quality? Utvecklarnas uppfattning om sin egen kods höga kvalitet är ett tydligt tecken på att de har tagit till sig kodkvaliteten som ett gemensamt mål. Vår studie gav tyvärr inte utrymme för att i efterhand utvärdera resultatet av deras ansträngningar. I skrivande stund vet utvecklarna inte någonting över huvud taget om våra explicita planer om Cult of Code Quality. Vi kan ändå konstatera att de metoder vi presenterat i denna studie lyckades väcka ett intresse för ämnet kodkvalitet, som faktiskt var större än vi förväntat oss till en början. Vi märke att utvecklarnas öga för snygg kod växte och vi tror och hoppas att vårt inflytande har med saken att göra. 11

12 4.3 Medvetenhet och ambitioner En slutsats från frågeformulären är att det inte finns några märkbara problem med att få utvecklarna i dessa team att inse vikten av XP:s practices. Inte heller är någon osäker på nyttan med hög kodkvalitet. Vi har ändå konstaterat problem med tillämpningarna av dessa practices. Detta beror förmodligen inte lika mycket på omedvetenhet som på ovilja och brist på motivation. Sviktande ambitioner är säkert ett beständigt problem i både studie- och arbetsmiljöer. Som coach för ett team kan man göra något åt det! Med hjälp av våra metoder har vi lyckats att höja ambitionsnivån när det gäller kodkvalitet. Tyvärr har vi lika stora problem som andra team när det gäller ambitioner att tillämpa flera andra practices som behövs inom teamet. 12

13 5 Referenser [1] Ron Jeffries. Extreme Programming Installed. Pearson Education Corporate Sales Division. New Jersey. [2] Sun Microsystems. Java Code Conventions. [3] Erik Norberg och Joakim Puusaari. Djupstudie: Refaktorisering i ett XP-projekt. [4] Aron Kornhall. Djupstudie: Refaktorisering i praktiken. [5] De Marco, Tom, Lister, Timothy, Peopleware. Productive Projects and Teams. 2 nd ed. Dorset House Publishing Co. New York. 13

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

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

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

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

Djupstudie Collective Documentation Ownerhip - Wiki. Jakob Nilsson-Ehle

Djupstudie Collective Documentation Ownerhip - Wiki. Jakob Nilsson-Ehle Djupstudie Collective Documentation Ownerhip - Wiki Jakob Nilsson-Ehle (d02jn@efd.lth.se) 1 1 Innehåll 1 Inledning............................... 3 1.1 Vad är en wiki?............................ 3 1.1.1

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

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

Nyckeln till framgång

Nyckeln till framgång Nyckeln till framgång 1 2 En liten bok om Industrilås värderingar att bära nära hjärtat. 3 När vi på Industrilås ville formulera vilka vi är och vad vi står för skapade vi begreppet En filosofi, många

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

Rapport för Andrew Jones

Rapport för Andrew Jones Rapport för Andrew Jones Datum för ifyllande 0/0/0 RAPPORT FÖR Andrew Jones DATUM FÖR IFYLLANDE 0/0/0 PÅLITLIGHET - 99.% Svaren var mycket sannolikt noggranna och sanningsenliga ORGANISATION Harrison Assessments

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

Så kan du arbeta med medarbetarenkäten. Guide för chefer i Göteborgs Stad

Så kan du arbeta med medarbetarenkäten. Guide för chefer i Göteborgs Stad Så kan du arbeta med medarbetarenkäten Guide för chefer i Göteborgs Stad Till dig som är chef i Göteborgs Stad Medarbetarenkäten är ett redskap för dig som chef. Resultaten levererar förstås inte hela

Läs mer

Min forskning handlar om:

Min forskning handlar om: Min forskning handlar om: Hur ssk-studenter lär sig vårda under VFU Hur patienter upplever att vårdas av studenter Hur ssk upplever att handleda studenter PSYK-UVA 2 st. avdelningar Patienter med förstämningssyndrom

Läs mer

XP vs. Tillverkningsindustrin

XP vs. Tillverkningsindustrin Djupstudie i Coaching av programvaruteam Lunds Tekniska Högskola 2006-02-20 XP vs. Tillverkningsindustrin Hur behandlar man The FIVE dysfunctions of a TEAM? Emil Svärdh D02, Lunds Tekniska Högskola d02es@efd.lth.se

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

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

Refaktorisering i ett XP-projekt

Refaktorisering i ett XP-projekt Författare: Erik Norberg, Joakim Puusaari E-post: {d00en, d00jpu@efdlthse Datum: 2004-02-22 Refaktorisering i ett XP-projekt Sammanfattning I denna djupstudie delar vi med oss av våra erfarenheter av refaktoriseringar,

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

D J U P S T U D I E I E D A S I M P L E C O D E A N D D E S I G N

D J U P S T U D I E I E D A S I M P L E C O D E A N D D E S I G N D J U P S T U D I E I E D A 2 7 0 S I M P L E C O D E A N D D E S I G N S. Marcus Jacobsson D03, Lunds Tekniska Högskola d03mj@efd.lth.se S. Magnus Weinberg D03, Lunds Tekniska Högskola d03mw@efd.lth.se

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

F6 Arkitektur, Planering

F6 Arkitektur, Planering F6 Arkitektur, Planering EDA260 Programvaruutveckling i grupp Projekt Ulf Asklund, Boris Magnusson Datavetenskap, LTH PVG, 2013 F6-1 Mjukvaruarkitektur? Enkel Design och Refaktorisering handlar i första

Läs mer

Om man googlar på coachande

Om man googlar på coachande Coachande ledarskap Låt medarbetaren Att coacha sina medarbetare är inte alltid lätt. Men det allra viktigaste är att låta medarbetaren finna lösningen själv, att inte ta över och utföra den åt denne.

Läs mer

Utforskandeperspektivet

Utforskandeperspektivet fördjupning Utforskandeperspektivet 1. Vad kännetecknar perspektivet Utforskande? Utforskandeperspektivet handlar om att söka information, lyssna och ta till vara gruppens kunnande. Utforskandeperspektivet

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

Att lyssna är en konst. Del 1.

Att lyssna är en konst. Del 1. Inte sällan lyssnar vi på andra, men hur ofta hör vi vad de verkligen säger? Vi lyssnar mera på vår åsikt om det som sägs än på det personen faktiskt säger, vilket innebär att vi lyssnar mera på oss själva

Läs mer

kan kämpa ett helt liv i ständig uppförsbacke utan att uppnå de resultat som de önskar. Man försöker ofta förklara den här skillnaden med att vissa

kan kämpa ett helt liv i ständig uppförsbacke utan att uppnå de resultat som de önskar. Man försöker ofta förklara den här skillnaden med att vissa Förord Det här är en speciell bok, med ett annorlunda och unikt budskap. Dess syfte är att inspirera dig som läsare, till att förstå hur fantastisk du är, hur fantastisk världen är och vilka oändliga möjligheter

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

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

Tre misstag som äter upp din tid och hur kan göra någonting åt dem

Tre misstag som äter upp din tid och hur kan göra någonting åt dem Tre misstag som äter upp din tid och hur kan göra någonting åt dem En rapport från PersonligEffektivitet.com Innehåll Inledning... 3 Misstag #1: Önskelistan... 4 Misstag #2: Parkinsons lag... 7 Misstag

Läs mer

Konflikter och konflikhantering

Konflikter och konflikhantering Konflikter och konflikhantering Fem konflikthanteringsstilar Det finns fem huvudsakliga stilar vid behandling av konflikter. Ingen av dessa fem kan sägas vara den enda rätta vid alla tillfällen. De passar

Läs mer

Demokratiskt ledarskap kontra låt-gå-ledarskap

Demokratiskt ledarskap kontra låt-gå-ledarskap www.byggledarskap.se Ledarskapsmodeller 1(5) Ledarskapsmodeller Kravet på ledarskapet varierar mellan olika organisationer. Kraven kan också variera över tid inom ett och samma företag. Ledarskapet i en

Läs mer

Proj-Iteration 5B. Plan för återstående iterationer

Proj-Iteration 5B. Plan för återstående iterationer Proj-Iteration 5B PVG/Coaching Boris Magnusson Datavetenskap LTH PVG/Coach 2009. Proj-Iter5B : 1 Plan för återstående iterationer Förutom att arbeta vidare på stories skall release göras både under iteration

Läs mer

Bestäm vilket av, eller vilken kombination av övertygande tillvägagångssätt (känsla, logik, förtroende) som du avser att använda i din presentation.

Bestäm vilket av, eller vilken kombination av övertygande tillvägagångssätt (känsla, logik, förtroende) som du avser att använda i din presentation. Mål Få en enkel överblick över vad du behöver tänka på före och under din presentation. Fungera som praktiska verktyg. Fungera som en tydlig sammanfattning av de absolut viktigaste punkterna. Före presentationen

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Designmönster Adapter, Factory, Iterator,

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

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

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

BOKSAMMANFATTNING MOTIVATION.SE

BOKSAMMANFATTNING MOTIVATION.SE BOKSAMMANFATTNING MOTIVATION.SE 150 ledningsgrupper senare - vår bild av en dold potential Detaljerade fallstudier av verkliga ledningsgruppssituationer och typiska problem såväl som konkreta tips för

Läs mer

Inledning TEKNISK RAPPORT 1(6) 2C1224 PROJEKTSTYRNING. 2002-10-31 Version 2. Inlämningsuppgift 4, Grupp 36 Magnus Jansson, Svante Rohlin

Inledning TEKNISK RAPPORT 1(6) 2C1224 PROJEKTSTYRNING. 2002-10-31 Version 2. Inlämningsuppgift 4, Grupp 36 Magnus Jansson, Svante Rohlin TEKNISK RAPPORT 1(6) Inledning Denna rapport är en del av examinationen i kursen 2C1224 Projektstyrning. Rapporten är resultatet av en intervju med projektledaren Henry Frödesjö på Fortum Generation AB.

Läs mer

PROJEKT ALBYLEN. Datum: 25 mars 2011. AV: Magnus Lindgren, Mattias Jonsson, Alexander Paskota, Jimmie Yngvesson, Erik Nilsson

PROJEKT ALBYLEN. Datum: 25 mars 2011. AV: Magnus Lindgren, Mattias Jonsson, Alexander Paskota, Jimmie Yngvesson, Erik Nilsson PROJEKT ALBYLEN Datum: 25 mars 2011 AV: Magnus Lindgren, Mattias Jonsson, Alexander Paskota, Jimmie Yngvesson, Erik Nilsson 0 Sammanfattning: Föreningen Albylen som bedriver aktivitets- och friskvårdscentrum

Läs mer

F6 Arkitektur, Planering. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

F6 Arkitektur, Planering. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH F6 Arkitektur, Planering EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH 1 XP:s Deltekniker (Practices) 1. Planering Planeringsspelet Regelbundna releaser Hållbart

Läs mer

Ledarskapsutbildning CISV, kapitel 4, Grupputveckling och grupprocesser Hemsida: www.cisv.se, E-mail: info@se.cisv.org

Ledarskapsutbildning CISV, kapitel 4, Grupputveckling och grupprocesser Hemsida: www.cisv.se, E-mail: info@se.cisv.org Vad är en grupp? Vilka grupper är du med i? Vilka behov fyller en grupp? Vilka normer finns i en grupp? Vilka sorters grupper finns det? Vilka roller finns det i en grupp? Vad påverkar de roller man får

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

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

Eventuella kommentarer: Under kursens gång har 4 studenter hoppat av utbildningen.

Eventuella kommentarer: Under kursens gång har 4 studenter hoppat av utbildningen. Kursrapport Bakgrundsinformation Kursens namn: Bild och lärande: Visuella kulturer och kommunikation Termin: 1 Ladokkod: BL202C Kursansvarig: Bjørn Wangen Antal registrerade studenter: 26 Antal studenter

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

Fem steg för bästa utvecklingssamtalet

Fem steg för bästa utvecklingssamtalet Fem steg för bästa utvecklingssamtalet Hitta drivkraften, styrkan och nå målet! Gita Bolt 2013 Copyright: airyox AB Mångfaldigande av denna skrift, helt eller delvis, är enligt lagen om upphovsrättsskydd

Läs mer

Boksammanfattning. Konsten att få andra att prestera

Boksammanfattning. Konsten att få andra att prestera Boksammanfattning Konsten att få andra att prestera Konsten att få andra att prestera är framför allt ett användbart verktyg för dig som vill utveckla dig själv och dem du leder. Med hjälp av både skisser

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

Ledningssystem för kvalitet en introduktion

Ledningssystem för kvalitet en introduktion ISO 9001 Ledningssystem för kvalitet en introduktion Innehåll 3 Vad är ett ledningssystem för kvalitet? 3 ISO 9001 4 Varför ska man ha ett kvalitetsledningssystem? 5 Hur man börjar? 7 Vad betyder certifiering?

Läs mer

Välj affärssystem & partner i 5 steg. En guide för dig som ska välja, upphandla & implementera ett affärssystem

Välj affärssystem & partner i 5 steg. En guide för dig som ska välja, upphandla & implementera ett affärssystem Välj affärssystem & partner i 5 steg En guide för dig som ska välja, upphandla & implementera ett affärssystem Att byta affärssystem är en utmaning, men ofta ett nödvändigt steg för att lyfta verksamheten

Läs mer

KORT FÖR ATT LEDA DISKUSSIONEN

KORT FÖR ATT LEDA DISKUSSIONEN KORT FÖR ATT LEDA DISKUSSIONEN INNEHÅLL 1 Så här använder du diskussionskorten 2 Vad är dialog? 3 Förbättra din förmåga att lyssna 4 Förberedelser inför att föra en diskussion 5 Exempel ur manuset för

Läs mer

TropicBox INNEHÅLLSFÖRTECKNING. 1. Sammanfattning. 2. Innehållsförteckning. 3. Utgångspunkter. 4. Användarstudie. 5. Koncept och visualisering

TropicBox INNEHÅLLSFÖRTECKNING. 1. Sammanfattning. 2. Innehållsförteckning. 3. Utgångspunkter. 4. Användarstudie. 5. Koncept och visualisering är en applikation som gör det möjligt för dig att enkelt reglera värmen i huset. Därefter ska man kunna följa statistiken över sin elförbrukning och dess kostnader. Möjligheten att ställa värmen inom en

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

exma.se Företagspresentation Det svensktillverkade låssystemet

exma.se Företagspresentation Det svensktillverkade låssystemet exma.se Företagspresentation Det svensktillverkade låssystemet Naturligtvis ligger vår utvecklings- och produktionsenhet i låsstaden Eskilstuna. Var annars? Vi brinner för innovation som gör vardagen enklare

Läs mer

Sida. Säljteknik GRUND Invändningar

Sida. Säljteknik GRUND Invändningar Sida Säljteknik GRUND Sida 2 Invändingar Vad är det? är en fråga eller påstående från kunden,som oftast uppfattas negativt av säljaren. Vi vet att invändningar kommer förr eller senare,och vi ska därfö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

Arbetsplats- TRÄFFAR

Arbetsplats- TRÄFFAR Arbetsplats- TRÄFFAR HUR STÅR DET TILL MED arbetsplatsträffarna, APT? Har ni APT regelbundet? Har alla anställda möjlighet att deltaga och tycker de att det är viktigt att vara med på träffarna? Är alla

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

Barn kräver väldigt mycket, men de behöver inte lika mycket som de kräver! Det är ok att säga nej. Jesper Juul

Barn kräver väldigt mycket, men de behöver inte lika mycket som de kräver! Det är ok att säga nej. Jesper Juul Vi har en gammal föreställning om att vi föräldrar alltid måste vara överens med varandra. Men man måste inte säga samma sak, man måste inte alltid tycka samma sak. Barn kräver väldigt mycket, men de behöver

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

Många gånger förväxlar vi gränslöshet med vänlighet och är rädda för att personer som vi gillar inte skulle gilla oss om vi satte gränser.

Många gånger förväxlar vi gränslöshet med vänlighet och är rädda för att personer som vi gillar inte skulle gilla oss om vi satte gränser. Att sätta gränser på arbetet är en bra grund för att skapa en trivsam och effektiv arbetsmiljö. Vi, tillsammans med våra kollegor, har olika värderingar, behov och föreställningar om vad som är rätt. Otydliga

Läs mer

Kombinationer och banor i agilityträningen

Kombinationer och banor i agilityträningen Kombinationer och banor i agilityträningen av Emelie Johnson Vegh och Eva Bertilsson, publicerad i Canis 2012 En av de saker som gör agility så fantastiskt roligt är den ständiga variationen. Ingen tävlingsbana

Läs mer

1. När du talar med människor, har du då en känsla av att de inte förstår dig? 1 2 3 4 5 6 7

1. När du talar med människor, har du då en känsla av att de inte förstår dig? 1 2 3 4 5 6 7 KASAM frågeformulär 29 frågor Här är några frågor (29) som berör skilda områden i livet. Varje fråga har 7 möjliga svar. Var snäll och markera den siffra som bäst passar in på just dig. Siffrorna 1 och

Läs mer

NÖHRA MODELLEN Ö N. Återknyt Viktigast Handling. Aktiviteter. Ämne Mål med samtal. Resurser. Hinder

NÖHRA MODELLEN Ö N. Återknyt Viktigast Handling. Aktiviteter. Ämne Mål med samtal. Resurser. Hinder NÖHRA MODELLEN Ö N Start: Ämne Mål med samtal H R Resurser A Aktiviteter avslut: Återknyt Viktigast Handling Hinder NÖHRA I coaching utgår vi från en enkel och användbar sortering som vi kallar för NÖHRA.

Läs mer

Två decenniers perspektiv på förändring och utveckling

Två decenniers perspektiv på förändring och utveckling Två decenniers perspektiv på förändring och utveckling När vi i Rörelse & Utveckling startade 1996 var det med en stark drivkraft att vilja medverka till utveckling bland organisationer, grupper och verksamheter.

Läs mer

Resultatrapport. Exempel IOL TOOL. Framtagen till: Framtagen av: Sammanställd den 12 oktober, 2014

Resultatrapport. Exempel IOL TOOL. Framtagen till: Framtagen av: Sammanställd den 12 oktober, 2014 Resultatrapport Sammanställd den 12 oktober, 2014 Framtagen till: Exempel Framtagen av: IOL TOOL Kopieringsförbud Denna rapport är skyddad av upphovsrättslagen. Kopiering är förbjuden utöver vad som anges

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

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

Hur och varför ska brukare använda sig av öppna jämförelser? Maria Ottosson

Hur och varför ska brukare använda sig av öppna jämförelser? Maria Ottosson Hur och varför ska brukare använda sig av öppna jämförelser? Maria Ottosson maria.ottosson@grkom.se Målet med strategin [M]ed öppna jämförelser som underlag kan medborgare, patienter och brukare vara så

Läs mer

KVALITETSINDIKATOR FÖR FÖRSKOLANS VERKSAMHET 2013

KVALITETSINDIKATOR FÖR FÖRSKOLANS VERKSAMHET 2013 UTBILDNINGSFÖRVALTNINGEN TILLHANDAHÅLLARAVDEL NINGEN SID 1 (8) 2012-10-12 KVALITETSINDIKATOR FÖR FÖRSKOLANS VERKSAMHET 2013 Självvärdering av hur förskolan utifrån läroplanen skapar förutsättningar för

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

Coaching av programvaruteam, djupstudie: Coaching practices för XP-projekt på högskolenivå

Coaching av programvaruteam, djupstudie: Coaching practices för XP-projekt på högskolenivå Coaching av programvaruteam, djupstudie: Coaching practices för XP-projekt på högskolenivå Björn Pileryd Mikael Pehrsson D00, Lunds Tekniska Högskola d00bp@efd.lth.se d00mp@efd.lth.se 13. Maj 2003 Innehållsförteckning

Läs mer

PROJEKTSKOLA 1 STARTA ETT PROJEKT

PROJEKTSKOLA 1 STARTA ETT PROJEKT PROJEKTSKOLA I ett projekt har du möjlighet att pröva på det okända och spännande. Du får både lyckas och misslyckas. Det viktiga är att du av utvärdering och uppföljning lär dig av misstagen. Du kan då

Läs mer

Kompetens för teamarbete i palliativ vård

Kompetens för teamarbete i palliativ vård Kompetens för teamarbete i palliativ vård kunskap, färdighet och förhållningssätt Anna Klarare Fråga - roller På min arbetsplats: A. Sköter var och en sitt, och sina arbetsuppgifter. B. Uppmuntras vi arbeta

Läs mer

Den Kreativa Nervositeten

Den Kreativa Nervositeten Den Kreativa Nervositeten Jan Alpsjö www.lentos.se tel: 0705-120206 1 DEN KREATIVA NERVOSITETEN Den Kreativa Nervositeten riktar sig till personer som skall förbereda en presentation. Syftet är att kunna

Läs mer

Principer och verktyg för effektiva möten

Principer och verktyg för effektiva möten Principer och verktyg för effektiva möten Introduktion Agenda Vad är Principer för effektiva möten, och vad är dess värde? Så här gör du Viktigt att tänka på 1 Definitioner Principer och verktyg: Arbetssätt

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

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

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

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

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

Positiv Ridning Systemet Vad krävs för en lyckad undervisning Av Henrik Johansen

Positiv Ridning Systemet Vad krävs för en lyckad undervisning Av Henrik Johansen Positiv Ridning Systemet Vad krävs för en lyckad undervisning Av Henrik Johansen Det är viktigt som tränare att vi förstår vår uppgift fullständigt och på så sätt har de bästa möjliga förutsättningarna

Läs mer

IBSE Ett självreflekterande(självkritiskt) verktyg för lärare. Riktlinjer för lärare

IBSE Ett självreflekterande(självkritiskt) verktyg för lärare. Riktlinjer för lärare Fibonacci / översättning från engelska IBSE Ett självreflekterande(självkritiskt) verktyg för lärare Riktlinjer för lärare Vad är det? Detta verktyg för självutvärdering sätter upp kriterier som gör det

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

Handbok Produktionssystem NPS

Handbok Produktionssystem NPS Handbok Produktionssystem KUNDFOKUS INDIVID PRODUKTIVITET LEDARSKAP ORGANISATION Affärsidé Nimo förser marknaden med högkvalitativa, energieffektiva och innovativa produkter för klädvårdsrummet. Vision

Läs mer

Ha rätt sorts belöning. Åtta tips för bästa sätt hur du tränar din hund. Grunden till all träning:

Ha rätt sorts belöning. Åtta tips för bästa sätt hur du tränar din hund. Grunden till all träning: Åtta tips för bästa sätt hur du tränar din hund Grunden till all träning: Gör det lätt för hunden! Börja alltid på en nivå som är enkel för hunden och bygg på svårigheterna. På det sättet tycker hunden

Läs mer

Vi utvecklar kvalitet och effektivitet

Vi utvecklar kvalitet och effektivitet Vi utvecklar kvalitet och effektivitet Enkelt, handfast och jordnära utvecklar vi kvalitet och effektivitet i företagets vardag! Progress hjälper bostadsföretag att utveckla kvalitet och effektivitet i

Läs mer

KORT FÖR ATT LEDA DISKUSSIONEN

KORT FÖR ATT LEDA DISKUSSIONEN KORT FÖR ATT LEDA DISKUSSIONEN INNEHÅLL 1 Så här använder du diskussionskorten 2 Vad är dialog? 3 Förbättra din förmåga att lyssna 4 Förberedelser inför att föra en diskussion 5 Exempel ur manuset för

Läs mer

6 Lathund rikstäckande arrangemang

6 Lathund rikstäckande arrangemang LATHUND RIKSTÄCKANDE AR R A N G E M A N G SPÄNNANDE PROJEKT Att arrangera ett Rikstäckande Arrangemang är ett roligt men ganska stort och krävande arbete. Det behövs planering och mycket förberedelser

Läs mer

Holistics grundare berättar

Holistics grundare berättar Vår väg hela vägen Holistics grundare berättar När Holistic bildades hade vi en tydlig idé om vad vi ville åstadkomma genom företaget, nämligen att hjälpa människor bli friskare och samtidigt mer medvetna.

Läs mer

Resultat av kursvärdering

Resultat av kursvärdering DAT 501: Diskret matematik vt 2003 Resultat av kursvärdering Antal svar: 19 av 37. Kursvärderingsblanketter delades ut på tentan och kunde lämnas in separat då eller efteråt i kursskåpet. Tycker du att

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

Peopleware: Productive Projects and Teams

Peopleware: Productive Projects and Teams Peopleware: Productive Projects and Teams S. Jacob Rosberg D03, Lund Institute of Technology, Sweden D03jr@efd.lth.se 2006-02-21-1 - Innehållsförteckning 1. Abstrakt... 3 2. Inledning... 4 3. Sammanfattning

Läs mer

Chefens roll & betydelse vid förbättringsarbete. Förbättringsarbete med hjälp av BPSD-registret. Avsnitt

Chefens roll & betydelse vid förbättringsarbete. Förbättringsarbete med hjälp av BPSD-registret. Avsnitt Chefens roll & betydelse vid förbättringsarbete Förbättringsarbete med hjälp av BPSD-registret Avsnitt 1 Vilken roll & betydelse har chefen i ett förbättringsarbete? Att leda ett arbete är ingen enkel

Läs mer

Kunskapsspridning inom ett XP team

Kunskapsspridning inom ett XP team Kunskapsspridning inom ett XP team Simon Lindberg & Firas Dib {ada10sli, ada10fdi}@student.lu.se En djupstudie i hur kunskaper sprider sig inom ett parprogrammerande utvecklingsteam. Nyckelord: kunskapspridning,

Läs mer

Vad innebär för dig att vara lycklig? Hur var det när du var lycklig, beskriv situationen? Hur kändes det när du var lycklig, sätt ord på det?

Vad innebär för dig att vara lycklig? Hur var det när du var lycklig, beskriv situationen? Hur kändes det när du var lycklig, sätt ord på det? Vad innebär för dig att vara lycklig? Hur var det när du var lycklig, beskriv situationen? Hur kändes det när du var lycklig, sätt ord på det? Finns det grader av lycka? ICF s 11 färdigheter Etik och

Läs mer

Beräkningsvetenskap introduktion. Beräkningsvetenskap I

Beräkningsvetenskap introduktion. Beräkningsvetenskap I Beräkningsvetenskap introduktion Beräkningsvetenskap I Kursens mål För godkänt betyg ska studenten kunna redogöra för de grundläggande begreppen algoritm, numerisk metod, diskretisering maskinepsilon,

Läs mer

Utmaningar i ett svenskt perspektiv. Challenges in a Swedish perspective

Utmaningar i ett svenskt perspektiv. Challenges in a Swedish perspective Utmaningar i ett svenskt perspektiv Challenges in a Swedish perspective 2 aspekter Utmaningar i samband med OECD s Corporate Governance for Process Safety (Ledningsprinciper för processäkerhet) Att få

Läs mer