Extreme programming (XP)

Storlek: px
Starta visningen från sidan:

Download "Extreme programming (XP)"

Transkript

1 Extreme programming (XP) Vad är extreme programming samt vilka krav ställs på utvecklare som arbetar med XP HÅKAN ANDERSSON Examensarbete Stockholm, Sverige 2005 TRITA-NA-E05186

2 Numerisk analys och datalogi Department of Numerical Analysis KTH and Computer Science Stockholm Royal Institute of Technology SE Stockholm, Sweden Extreme programming (XP) Vad är extreme programming samt vilka krav ställs på utvecklare som arbetar med XP HÅKAN ANDERSSON TRITA-NA-E05186 Examensarbete i datalogi om 20 poäng vid Programmet för datateknik, Kungliga Tekniska Högskolan år 2005 Handledare på Nada var Björn Eiderbäck Examinator var Yngve Sundblad

3 Extreme Programming Vad är Extreme Programming samt vilka krav ställs på utvecklare som arbetar med XP Sammanfattning Syftet med detta examensarbete är att få en bild av vad systemutvecklingsmetodiken Extreme Programming (XP) är samt att försöka utreda vilka krav som ställs på en systemutvecklare som arbetar med XP. Ett grundantagande inom XP är att det går att reducera risk genom att ha ett körbart system under hela projektet. För att alltid leverera maximalt värde i varje givet ögonblick utvecklas alltid det mest värdeskapande först i projektet. Vad som är mest värdeskapande bestämmer alltid kunden. Verkligheten är dock sällan lika enkel som teorin utan det finns komplexitet som måste hanteras. Ett exempel på detta är att XP förespråkar att kunden ska vara på plats genom hela projektet vilket ofta är svårt i konsultprojekt. Det var generellt enkelt att lära sig förstå hur och varför olika aktiviteter används inom XP. En fördel med att använda XP är dess fokus på effektivitet samt förmåga att hantera risk och förändring. Andra fördelar är att parprogrammeringen verkar kunna ha bra mentoreffekter på sikt, ett bra sätt att introducera nya systemutvecklare. I enlighet med teorin är den kanske viktigaste egenskapen för att lyckas med XP god kommunikationsförmåga. Det gäller bland annat att kunna förstå och översätta kundens behov i tekniska lösningar. Några av aktiviteterna, såsom refactoring, enkel design och testning, var svåra att använda i praktiken. Detta är dock viktiga aktiviteter för konsultföretag som arbetar med långa kundrelationer. Eftersom systemen utvecklas över lång tid är det nödvändigt att hela tiden jobba med att förenkla och hålla systemdesignen enkel.

4 Extreme Programming What is Extreme Programming and what is required from a developer trying to adapt XP Abstract The purpose of this thesis is to examine what the software methodology Extreme Programming (XP) is and also try determining what is required from a developer trying to adopt XP. A major assumption of XP is that it is possible to reduce risk by always having a system runnable. To maximize the value from the system the most valuable parts are always developed first in the project. The customer decides on what is most valuable. The reality however, is not as simple as theory and you have to be able to cope with the complexities that exist. An example of this is that XP proclaims that you should have the customer on site throughout the entire project; this is not always possible. The activities of XP are easy to learn and understand how to use. Focus on efficiency and risk reduction is important aspects on why to choose XP. Another positive effect of XP is that pair programming gives mentoring effect, a good way to introduce new employees. According to theory, one of the most important abilities is good communication skills. It is necessary to understand the client and to be able to translate business needs into technical solutions. Some of the activities, such as refactoring, simple design and testing are hard to use in practice. Still, the activities are very important for a consultancy firm having long customer relations. The activities are necessary to keep the system design simple enough to be maintainable.

5 Innehåll Inledning... 1 Metod... 3 Avgränsning... 4 Generaliserbarhet... 5 XP enligt teorin... 6 XP i ett större sammanhang XP i praktiken Analys Slutsatser Litteraturlista... 24

6 Inledning Vi lever i en föränderlig värld där globalisering och teknisk utveckling leder till ett allt högre tempo. Timing är en kritisk faktor för att IT ska kunna skapa verkliga konkurrensfördelar eller undvika konkurrensofördelar (Keen 1991). Därför är det viktigt att systemutvecklingen inte försenas och drar ut på tiden. System som utvecklas idag måste: utvecklas fort vara lätta att underhålla innehålla få buggar kunna vidareutvecklas till en låg kostnad Extreme Programming (nedan kallat XP) försöker adressera samtliga dessa krav. Jag vill med mitt exjobb reda ut vilka krav som finns för en utvecklare som arbetar med XP. Mål Målet med detta exjobb är att komma fram till några av de krav som ställs på en systemutvecklare som arbetar med XP samt få en bild av hur XP är att arbeta med. Viktiga frågeställningar som jag önskar besvara är: Vad är viktigt att tänka på för ett företag som funderar på att börja jobba med XP? Hur fungerar XP för att utveckla webbaserade verksamhetsnära system? Hur är XP anpassat för systemutveckling på konsultföretag? Vilka egenskaper och färdigheter är viktiga för att en systemutvecklare ska kunna arbeta effektivt med XP? Syfte Syftet med detta examensarbete är att få en bild av vad XP är samt att utreda vilka krav som ställs på en systemutvecklare som arbetar med XP. Fokus ligger på verksamhetsnära webbprojekt utvecklade på Mira Network där exjobbet utförs. Ett syfte med exjobbet är att sammanfatta viktiga erfarenheter utifrån arbetet med ett XP-baserat projekt. Detta ska resultera i generella slutsatser som förhoppningsvis är giltiga både för Mira Network men även för utvecklare som arbetar med XP under andra förutsättningar. Om Mira Network Mira Network AB (nedan kallat Mira) är ett konsultföretag med inriktning på IT- och verksamhetsutveckling. Företaget startades i augusti 1998 av Magnus Bratt och Johan Wennström. Företaget har idag drygt 10 anställda. Fokus ligger på uppdrag med systemutveckling som är starkt kopplad till företagets verksamhet, exempelvis införande av intranät, extranät och e-businesslösningar. Några av de större kunderna är Handelshögskolan i Stockholm Executive Education, Karolinska Institutet, Norges Handelshögskola, Helsingfors Tekniska Högskola, JKL och Folkpartiet. 1

7 Mira är också ett drivhus för internetrelaterade affärsidéer. Inom ramen för detta har bland annat en produkt för virtuella nätverk/alumninätverk utvecklats en kontaktbaserad nätverkstjänst som gör det lättare för högskolor och företag att hålla kontakten med sina tidigare studenter respektive medarbetare. Denna produkt är idag marknadsledande för den svenska marknaden och används idag av ett 20-tal universitet och högskolor i Norden. Mira Network har blivit prisbelönt i en amerikansk tävling, arrangerad av Jakob Nielsen, om världens 10 bäst designade intranät Mira Network var den enda svenska representanten bland de prisbelönta. Listan över de vinnande bidragen bestod i övrigt av bland annat Wal-Mart, Deloitte & Touche, Lonely Planet, Världsbanken och ABB. 2

8 Metod För att förstå XP och systemutvecklingsmetodik generellt genomfördes inledande en litteraturstudie. Utifrån teorierna genomfördes en del praktiskt arbete i form av ett större projekt. Efter projektet genomfördes intervjuer och diskussioner med de inblandade. Intervjuerna och diskussionerna har legat till grund för den analys som gjorts och mina slutsatser. Litteraturstudie Eftersom fokus ligger på system med stark koppling till företags verksamhet genomfördes en litteraturstudie med litteratur både om XP och systemutveckling generellt men också litteratur med mer verksamhetsinriktade frågor kring systemutveckling. Att arbeta med XP i praktiken Inom ramen för exjobbet har ett större helt XP-baserat projekt genomförts för att få praktiska erfarenheter. Delar av XP, främst user stories och parprogrammering, har också testats andra projekt på Mira. Intervju och diskussioner För att kunna förstå de krav som ställs på XP-utvecklare har intervjuer genomförts med olika inblandade personer i projekten. Jag har även vid ett antal olika tillfällen fört diskussioner kring systemutvecklingsfrågor. Analys Analysen baserar sig till största delen på det praktiska arbetet som genomförts men även på de intervjuer och diskussioner som förts kring dessa frågor. Min förhoppning är att analysen och slutsatserna kommer att kunna koppla tillbaka till teorin. 3

9 Avgränsning De avgränsningar jag gjort i detta arbete är bland annat att fokusera på verksamhetsnära webbaserade system. Karaktäristiskt för dessa system är att de är gränssnittsintensiva och ej speciellt beräkningstunga eller tekniskt komplicerade. Projekten har utvecklats med små projektgrupper vilket också påverkar hur en utvecklingsmetodik fungerar. Jag avser inte komma fram till om XP gör systemutveckling på Mira mer effektiv eftersom detta är ett alltför omfattande arbete för detta examensarbete. Det är dessutom svårt att definiera vad effektiv systemutveckling är eftersom det inbegriper så mycket mer än till exempel hur mycket kod en systemutvecklare kan producera per dag eller hur få buggar ett system innehåller. Under andra förutsättningar går det säkert att komma fram till andra slutsatser än vad jag gör i mitt arbete. XP handlar om samspelet mellan människor och det är naturligt att de enskilda individerna även påverkar hur XP fungerar. 4

10 Generaliserbarhet Då Mira är ett relativt litet företag och detta är ett begränsat arbete kan jag bara dra vissa avgränsade slutsatser utifrån det praktiska arbetet. Det kan också finnas specifika karaktäristiska av konsultverksamhet, såsom många parallella projekt, som påverkar hur XP fungerar och därmed även mina slutsatser. Det är också svårt att veta om det är objektiva eller subjektiva resultat, till exempel skulle det kunna vara så att det upplevs som mer effektivt att parprogrammera för att det är roligare att arbeta två än var och en enskilt. 5

11 XP enligt teorin Varför behövs en metodik? I en doktorsavhandling från Handelshögskolan sammanfattar Werr (1999) forskning inom området systemutvecklingsmetodik 1 för IT-konsulter. Bland annat tar han upp en studie av Rhenman som beskriver problemlösning som en intiutiv process och inte en strukturerad process. Systemutveckling beskrivs som en problemlösningsprocess där erfarenhet är den enskilt viktigaste faktorn. Även studier av Alvesson och Risling (sammanfattade av Werr 1999) pekar på att metoder inom systemutveckling inte är en linjär process som direkt stödjs av metoder utan snarare bygger på praktiskt arbete där erfarenhet och tyst kunskap 2 styr de underliggande besluten och arbetet. Metoden ses istället som ett sätt att stödja administration samt att styra hur olika processer ska ordnas. De pekar även på att metoder påverkar kultur, normer och värderingar i företaget. Lättviktsmetodiker Under senare år har det vuxit fram en ny kategori utvecklingsmetodiker, så kallade agile -metodiker 3. Fowler (2003) beskriver två skillnader mellan agile-metoder och traditionella metoder. Agile-metoder är anpassande snarare än förutsägande. Ingenjörsmetoder tenderar att försöka planera mycket i systemutvecklingsprocessen för en lång tid framåt, vilket fungerar bra tills förändring måste hanteras. Därför ligger det i deras natur att förhindra förändring. Agile-metoder däremot välkomnar förändring. De försöker vara processer som anpassar sig till förändring, även till den grad att de anpassar sig själva. Agile-metoder är även personorienterade snarare än processorienterade. Målet med ingenjörsmetoder är att definiera en process som kommer att fungera för vem som helst som ska använda den. Agile-metoder hävdar att ingen process kan mäta sig med skickligheten hos personerna som arbetar i projektet, därför blir rollen för processen att istället stödja personerna i deras arbete. XPs historia XP utvecklades i början av 90-talet av Kent Beck. Kent fokuserade på aktiviteter som drev utvecklingen av projekt framåt, dessa förenade han i en metodik han kallade Extreme Programming. En metafor han hade för detta var ett mixerbord där varje aktivitet var en spak som vreds upp till max, to the extreme (Beck, Fowler 2000). XPs fokus Enligt en studie från Standish Group genomförs endast 16% av alla projekt inom budget och fastställda tidsramar. 31% av projekten läggs helt ner och de resterande 53% av projekten går över budget med i genomsnitt 189% (Standish Group 1994). 1 Även om doktorsavhandlingen i huvudsak är inriktad på managementkonsultation använder sig Andreas Werr av systemutvecklingsmetodik som ett närliggande område till managementkonsultation och baserar därför en del av sin grund på just systemutvecklingsmetodik 2 Tacit knowledge är den engelska termen 3 En svensk översättning skulle kunna vara lättviktsmetodiker. 6

12 Dessa siffror bekräftar att utvecklingen av system är mycket riskfylld. En av XPs grundidéer är att reducera risk i projekten. Några av de riskelement (Beck 1999) tar upp är: försening av projektet projektet avbryts i förtid behov eller problem missförstås och systemet löser därför inte några problem kundens verksamhet utvecklas så att systemet som utvecklas inte längre tillför något värde för kunden systemen degenererar och blir till slut för dyra att underhålla och vidareutveckla XP hävdar att det går att reducera risk genom att alltid se till att ha ett körbart system som levererar ett visst värde till kunden. För att alltid leverera maximalt värde i varje givet ögonblick utvecklas alltid det mest värdeskapande först i projektet. Vad som är mest värdeskapande bestämmer alltid kunden (Beck 1999). Ett antagande som ofta görs är att kostnaden för att göra en förändring sent i ett projekt ökar exponentiellt, figur 1. Givet detta antagande är det viktigt att minimera antalet förändringar som behöver göras sent i projektet eftersom ändringar då är extremt kostsamma. Ett sätt att hantera detta brukar vara att försöka planera så mycket som möjligt i förväg. Kostnad för en förändring Projektets genomförande Figur 1 Cost of change enligt traditionell syn Enligt Beck går kurvan att plana ut genom att hela tiden använda sig av ett antal aktiviteter som minskar komplexiteten och garanterar kvaliten i systemet, figur 2 (Beck 1999). 7

13 Kostnad för en förändring Projektets genomförande Figur 2 Cost of change enligt XP Givet detta antagande får systemutvecklingsprocessen helt andra förutsättningar. Det är möjligt att hantera stora ändringar sent i projektet och göra designval sent i processen. Denna utplanade kostnadskurva leder också till att det inte behövs göras någon förstudie för att komma fram till en exakt systemspecifikation och design. Istället läggs tid på aktiviteter som för projektet framåt. Istället för att planera systemdesignen i förväg så utvecklas den evolutionärt under projektet. Problemet att försöka planera för en design i förväg är att det är svårt att veta var flexibilitet behövs i designen och var den inte behövs (Fowler 2002). Inom XP betonas hur pass viktig kommunikationen är för att lyckas i ett projekt. Utan kommunikation mellan programmerare, projektledare och kunder kan ett projekt aldrig lyckas. XP försöker stimulera kommunikation genom användandet av aktiviteter som inte fungerar utan kommunikation (Beck 1999). En annan grundpelare inom XP är feedback. Feedback från enhetstester talar om att systemet fungerar. Feedback från acceptanstester talar om att det gör rätt saker. Ju mer feedback, desto lättare är det att kommunicera (Beck 1999). För att kunna arbeta med XP krävs att designen av systemet hela tiden utvecklas krävs mod. Du måste våga kasta bort kod, ändra systemarkitektur eller testa nya idéer som kan reducera komplexitet i projekten (Beck 1999). En grundidé inom XP är att alltid utveckla det enklaste som löser problemet eller behovet. Du får inte planera framåt och försöka gissa vad du kommer att behöva imorgon. Det är svårt att inte försöka blicka framåt mot det du tror dig behöva implementera imorgon, i nästa vecka eller i nästa månad (Beck 1999). XP gör en chansning där du slår vad om det är bättre att göra en enkel sak idag och betala lite mer imorgon, om du kommer att behöva det, än att utveckla lite mer idag för något du kanske aldrig kommer att behöva (Beck, Fowler 2000). 8

14 XP-aktiviteter XP prioriterar de saker som driver projektet framåt. De aktiviteter som utförs kontinuerligt under hela projektet är 4 : Planeringsmöten Möten där kunden bestämmer vad som ska utvecklas och vad som ska prioriteras. Utvecklarna avgör hur omfattande en uppgift är samt hur den ska utvecklas. Testning All kod i ett system ska ha automatiska tester som garanterar att systemet fungerar som det ska, testerna skrivs innan koden utvecklas. Det skrivs även tester på en högre nivå som garanterar att systemet gör det som det förväntas göra, kunden skriver dessa tester. Allt som utvecklas måste vara testbart. Parprogrammering All kod skrivs i par om två utvecklare. Den ena tänker strategiskt hur problemen ska lösas och den andra skriver koden. Inom paren byts arbetsfunktion ofta. Refactoring För att konstant hålla nere komplexiteten i ett system krävs att utvecklaren arbetar med refactoring. Refactoring är att förenkla koden vilket till exempel kan vara att bryta ut gemensam kod i funktioner, omstrukturera kod eller förenkla funktioner. Enkel design Systemet ska alltid designas så enkelt som möjligt. Ingen onödig komplexitet får finnas i designen. Gemensamt ägande av kod Alla utvecklare äger all kod gemensamt och alla får ändra i all kod i ett system. Kontinuerlig integrering Alla utvecklare ska integrera den kod de skriver så fort som möjligt för att säkerställa att den nya koden fungerar med all annan redan skriven kod. Efter varje integrering av kod ska alla tester köras och det är utvecklarens ansvarar att rätta till kod som eventuellt inte längre fungerar. Kund på plats För att snabbt kunna få svar på frågor så krävs det att kunden alltid är på plats. Små lanseringar Nya versioner släpps ofta till användarna. 40-timmarsvecka Ingen ska jobba mer än 40 timmar per vecka eftersom detta påverkar kvaliteten på systemet. Regeln är att aldrig arbeta övertid två veckor i rad. Kodstandarder För att alla ska kunna jobba gemensamt med all kod så krävs att alla formaterar kod på samma sätt. Systemmetafor För att beskriva systemet försöker man finna en metafor från något annat välkänt område vilket underlättar att förklara systemet. Aktiviteterna är inte unika i sig men enligt XP uppkommer det synergieffekter 5 av att arbeta med aktiviteterna ihop då de förstärker varandra i många olika kombinationer. Detta ger effekten på riskkurvan så att den kan planas ut. Figur 3 visar hur de olika XP-aktiviteterna samverkar. 4 De engelska termerna är: planning meeting, testing, pair programming, refactoring, simple design, collective code ownership, continuous integration, on-site customer, small releases, 40-hour week, coding standards och system metaphor. 5 Den den totala nyttan av aktiviteterna ihop överstiger summan av nyttan för varje enskild aktivitetet. 9

15 KUND PÅ PLATS SYSTEMMETAFOR 40-TIMMARSVECKA PLANERINGSMÖTEN REFACTORING ENKEL DESIGN PARPROGRAMMERING TESTNING SMÅ LANSERINGAR GEMENSAMT ÄGANDE AV KOD KODSTANDARDER KONTINUERLIG INTEGRERING Figur 3 Hur de olika aktiviteterna i XP samverkar med varandra (från Extreme Programming Explained) XP-processen XP är egentligen inte en processmetodik i den bemärkelsen att den beskriver ett antal olika aktiviteter som ska utföras i en viss sekvens. Istället förespråkar XP att alla aktiviteter kontinuerligt utförs. Det finns dock ett visst processflöde även i XP, se figur 4 nedan. Processen utnyttjar feedback i en stor utsträckning vilket är nödvändigt i en iterativ metodik. I centrum finns processen iteration i vilken all utveckling sker. Testscenarior USER STORIES ARKITEKTUR- TEST Systemmetafor Behov Releaseplan RELEASE- PLANERING ITERATION Buggar Senaste versionen ACCEPTANS- TEST Godkänt av kund LITEN RELEASE Osäkra uppskattningar Säkra uppskattningar Nästa iteration TEST Figur 4 Schematisk bild över XP-processen (från Centralt i XP är user stories. En user story beskriver något som ska utvecklas i systemet som har ett värde för kunden, den möjliggör för systemutvecklaren och kunden att dela upp systemet så att det kan levereras i delar (Beck, Fowler 2000). User stories ska vara beskrivna med naturligt språk och inte vara någon teknisk specifikation. Alla user stories ska vara oberoende av varandra (Beck, Fowler 2000). Kunden äger rätten att välja ut vilka user stories som ska ingå i en iteration och programmerarna avgör storleken eller omfattningen på en user story (Beck 1999). En anledning till att user stories ska vara relativt små är att de ska vara enkla att bedöma omfattningen av. Ett problem när mer komplexa uppgifter bedöms är att vissa 10

16 aktiviteter utelämnas när omfattningen bedöms. De utelämnade aktiviteterna kan summera upp till 20-30% extra tid (McConnel 1996). XP hanterar problemet med att underskatta user stories genom att kontinuerligt följa upp alla uppskattningar. Projektledaren utvärderar kontinuerligt om någon under- eller övervärderar user stories. Beck skriver du kan ge vilka uppskattningar du vill, men om du aldrig mäter verkligheten mot dina uppskattningar kommer du aldrig att lära dig (Beck 1999). 11

17 XP i ett större sammanhang IT- och verksamhetsutveckling Det är viktigt att förstå att ett IT-system i sig sällan skapar något egentligt värde för ett företag. Bara om systemet kan stödja arbetet eller helt förändra hur företaget driver sin verksamhet kan verklig nytta skapas med IT. Davenport (1993) skriver bland annat att Beslutsfattare som försöker att maximera nyttan med IT-satsningar måste se förändringar i företagets processer som länken mellan IT och den ekonomiska avkastningen. Vi kan inte längre tro att en IT-investering i sig själv ska kunna skapa något värde. Vi måste förstå att rollen IT spelar är att stödja förändringsarbetet. Konsultverksamhet De flesta konsultföretag har liknande mål med sin verksamhet. Maister (1997) beskriver de flesta konsultföretags mission statement som Att leverera enatsående service till kunderna, att erbjuda karriärermöjligheter till de anställda samt att uppnå ett finansiellt resultat för att kunna växa. Maister (1997) beskriver två karaktäristika för konsultföretag; att kunna hantera specialanpassning i projekten och att i kundkontakten erbjuda överlägsen service gentemot kunderna. Det är viktigt att förstå att varor konsumeras medan tjänster upplevs. Ett konsultföretag måste hantera kundens upplevelse både vad gäller service och att hantera de tekniska problemen. Vidare skriver Maister: Eftersom teknisk kvalitet är något oklart för många kunder väljer de därför att fokusera mer på kvalitén på servicen än kvalitén på det tekniska hur ologiskt det än kan tyckas. Det finns enligt Maister (1997) tre olika inriktningar för konsultförtag: Brains: Hög specialanpassning och hög risk. Fokus ligger på att kunna hantera risk och förändringsprojekt. Grey hair: Fokus på att vara experter inom ett begränsat område och lösa liknande problem för många kunder inom samma bransch eller med samma problemområde. För denna typ av konsultföretag är det viktigt att sprida kunskap mellan medarbetare. Procedure: Lågkostnadsprojekt med fokus på effektiva interna processer. Automatisera och förbättra interna processer för att skapa ytterligare konkurrensfördelar. Det höga kravet på service för konsultföretag i kombination med vilken typ av projekt som genomförs ställer naturligtvis en del krav på den utvecklingsmetodik som används. För ett företag inom kategorin brains är det viktigt att kunna hantera mycket anpassning, förändring och osäkerhet medan det för ett företag inom procedure är mycket viktigare att utvecklingen är så effektiv som möjligt. Mycket av teorin kring XP handlar om avgränsade projekt som utvecklas internt i en dataavdelning eller som renodlade systemutvecklingsprojekt. Ett exempel som Keen (1991) tar upp är det är själva förmågan att förstå fördelarna med IT som skapar verkliga konkurrensfördelar med IT. XP betonar vikten av kommunikation mellan projektledare, programmerare och kund men tar helt bort affärsrelaterade beslut från systemutvecklarna. För att kunna se hur IT kan skapa konkurrensfördelar för kunden måste de som förstår IT även ha en förståelse för verksamheten. 12

18 Använt Kritik som ofta framförs mot XP handlar om usability och gränssnitt. Usability är något som knappt berörs av XP-litteraturen. En artikel av Adams (2003) sammanfattar den kritik som framförs mot XP. Adams menar att Beck har en ganska naiv inställning till usability i den bemärkelse att Kent anser att slutanvändaren är den person som bestämmer hur systemet ska fungera. I denna bemärkelse tillskriver Kent slutanvändaren expertkunskaper inom usability vilket ofta inte är fallet. Det är självklart viktigt att slutanvändaren får testa systemet och ge feedback på vad som fungerar bra och dåligt men sällan vet slutanvändaren själv vad som behöver ändras för att göra systemet mer lättanvänt. 13

19 XP i praktiken För att ge en bättre bild av hur XP passar in i Miras utvecklingsmetodik inleds detta kapitel med en kort beskrivning av den utvecklingsfilosofi som finns på Mira. Detta följs av en beskrivning hur XP har använts på Mira i detta arbete. Miras filosofi om systemutveckling Miras syn på hur system bör utvecklas visas i figur 5. Pilen symboliserar projektets genomförande med tre dimensioner som löper parallellt genom hela projektet, målet är positiva effekter på affärsnivå. Strategi rätt system utvecklas som motsvarar de behov som systemet ska uppfylla. Utveckling ett bra system måste utvecklas. Med bra menas att det är lättanvänt, lätt att underhålla, går lätt att vidareutveckla samt att det innehåller förhållandevis få buggar. Införande systemet måste bli använt för att det ska bidra till positiva effekter. Figur 5 illustrerar att strategi, utveckling och införande är aktiviteter som genomförs kontinuerligt genom hela projektet i varierande omfattning. Det går emot den traditionella synen att en förstudie först genomförs som ligger till grund för det system som utvecklas och som slutligen införs. Figur 5 Strategi, utveckling och införande genomförs parallellt genom hela projektet (Magnus Bratt, Johan Wennström 1999) Krav och behov förändras under projektets gång och det är viktigt att kunna ta hänsyn till och anpassa sig utifrån det. Utvecklingen och användning av systemet startar i princip dag ett. Användandet av ett system leder i sig till större förståelse för behov och krav vilket ökar chansen att utveckla det som skapar mest värde. Systemutvecklingen på Mira Network sker iterativt, oftast med små projektgrupper. Ett normalstort projekt består av en projektledare och en systemutvecklare som oftast även är systemansvarig. Varje större system som utvecklas har en systemansvarig samt en assisterande systemansvarig. Intensiteten i projekten är varierande under olika faser. Vissa perioder sker intensiv utveckling och under andra perioder i princip uteslutande förvaltning. För att kunna bidra till positiva effekter på affärsnivå är kundrelationerna oftast långa. Systemen utvecklas i takt med att kundernas verksamhet utvecklas. Viktigt är att 14

20 involvera många personer från kunden och helst någon eller några från högsta ledningen. För att införandet av system ska bli lyckat krävs att ledningen ser systemet som viktigt. För att ett system ska bli använt måste slutanvändarna förstå hur de ska använda systemet. För att skapa lättanvända system krävs att man prioriterar usability genomgående. De system som utvecklas ska vara enkla att använda och anpassade för målgruppen. Om detta misslyckas är chanserna små att systemen verkligen kommer att användas. XP-baserat projekt Inom ramen för exjobbet genomfördes ett XP-baserat projekt 6. I projektet användes de flesta centrala delarna av XP. Iterationsmöten med kunden hölls veckovis och projektet genomfördes under ett halvår varav fyra månader med intensiv systemutveckling. All utveckling i projektet skedde med parprogrammering. Iterationsmötena hölls regelbundet varje vecka och under varje iterationsmöte gick igenom revideringar från tidigare ej godkända user stories samt diskuterade de nya user stories som utvecklats under den senaste iterationen. Systemet som utvecklades var relativt databas och gränssnittsintensivt. De få problem som var av teknisk karaktär kunde lösas genom att applicera lösningar från andra system som utvecklats tidigare. Ett antal liknande system hade utvecklats tidigare och mycket erfarenhet från dessa utnyttjades i detta projekt. En central del av XP som inte användes i projektet var automatiserade enhetstester och acceptanstester då vi saknade bra program och verktyg för detta. Istället fick kunden varje vecka, inför varje iterationsmöte, gå igenom alla tidigare user stories som skulle revideras samt alla nya user stories som utvecklats under iterationen. All funktionalitet som utvecklades beskrevs i enkla user stories. Kunden valde i vilken ordning som olika funktioner skulle utvecklas. Detta ledde till att systemet utvecklades i en något annorlunda ordning och saker som form, navigering och säkerhet utvecklades först i slutet av projektet. 6 Utveckling av en CV och jobbdatabas 15

21 Analys Generellt fungerade XP bra som utvecklingsmetodik på Mira. En styrka med XP är enkelheten att kunna anpassa till situationen. Just behovet av anpassning är kanske extra viktigt för ett litet företag där alla projekt har olika karaktär beroende på storlek, målgrupp och funktionalitet. XP visade sig väl lämpat för konsultföretag eftersom det är naturligt att ha en tät och intensiv kundkontakt vilket är en förutsättning för att kunna erbjuda bra service och kontinuerligt lyssna efter nya behov. XP hanterar dessutom risk, kunskapsspridning och effektivitet bra varför det lämpar sig väl för alla tre kategorier av konsultföretag som beskrevs i teoridelen. Första delen av analysen är uppdelad utifrån de 12 olika aktiviteterna inom XP samt ett extra avsnitt om user stories, som inte är en XP-aktivitet men som motiverar ett eget avsnitt eftersom det är en central del av XP. Den andra delen av analysen återkopplar till Miras perspektiv Rätt, Bra och Använt. Planeringsmöten I avsaknad av automatiserade tester fick kunden gå igenom alla utvecklade user stories inför varje iterationsmöte. På iterationsmöten gick vi igenom alla förslag på förändringar och bedömde vad som skulle ingå som revideringar samt vad som var ny funktionalitet och som skulle brytas ut till nya user stories. Detta ledde till att mycket av tiden på möten ägnades åt att återkoppla till föregående iteration och inte så mycket tid på att prioritera och diskutera kommande utveckling. Det hade varit bra att kunna lägga mer tid på att diskutera vilken funktionalitet som skulle prioriteras i nästa iteration. I projektet lyckades vi inte riktigt att prioritera tiden på ett bra sätt och en slutsats är att det är viktigt att i förväg bestämma hur lång tid av mötet som ska ägnas åt respektive del. En aspekt av att träffa kunden så pass ofta och regelbundet är att man får hårda deadlines i projektet att följa. Det ger en kontinuerlig indikation om projektet ligger i fas eller ej, något som kan vara svårt om man bara har en deadline långt fram i tiden. Testning Eftersom testning är en av grundstenarna inom XP och den aktivitet som Beck anser står för sig själv så är det motiverat att förklara varför vi valde att inte arbeta med testning, det vill säga med testdriven utveckling och automatisering av acceptanstester. I enskilda konsultuppdrag är tekniska fel relativt enkla att rätta till eftersom spridningen av felet är begränsat till en instans av ett system. Varje system har automatiserad övervakning som fångar upp alla tekniska fel och loggar dessa. Det är inte de tekniska buggarna som är dyra att rätta till utan misstag i databasmodellen eller systemdesignen. Den typen av designfel är svåra att testa innan systemet verkligen börjar användas. Naturligtvis är det önskvärt att systemet innehåller så få fel och buggar som möjligt men det är viktigt att förstå varför tester valdes bort. 16

22 Ytterligare ett skäl till att vi inte valde att arbeta med testning var att vi inte hittade några bra testverktyg för den miljö som vi arbetade i 7. De flesta verktyg var anpassade för objektorienterade miljöer som Java eller.net. Acceptanstestning genomfördes däremot så att kunden fick testa all ny funktionalitet inför varje iterationsmöte. En anledning till att dessa inte automatiserades var att bibehålla en flexibilitet i testningen och att inte lägga allt för mycket av utvecklingstiden på att sätta upp tester av gränssnitt. Det var ganska få problem som var enkla att testa ur aspekten att de gjorde rätt saker. Istället handlade det mer om problem av karaktären kommer slutanvändarna att förstå hur detta moment genomförs. Denna typ av användbarhetsproblem är naturligtvis mer problematisk att automatisera. Ett problem med de automatiserade tester som XP förespråkar är att de är väldigt inriktade på beräkningsproblem. Givet att information X matas in i systemet så ska information Y returneras. I många verksamhetskritiska system automatiseras och omdesignas processer och det är mycket svårare att skapa tester som mäter om organisationen verkligen effektiviseras av en funktion. Gränssnittslösningar visade sig vara svårt att diskutera per telefon och det blev istället nödvändigt att utvärdera funktioner på varje iterationsmöte. Att hålla reda på vilka delar av systemet som var godkända var tidsödande och hade kunnat gjorts mer effektivt. Ett exempel hade kunna varit att skriva ut screenshots och markera dessa som godkända, vilket hade underlättat att hålla reda på vad som verkligen behövde testas inför varje iteration. Att behålla utskrifter på alla sidor i systemet går emot ett av XPs mål att ha så lite dokumentation som möjligt men kanske hade varit ett bra alternativ trots det extra arbetet. Parprogrammering Parprogrammeringen var något som inte använts tidigare annat än till att lösa enstaka problem gemensamt. Erfarenheterna från parprogrammering var generellt mycket positiva och det upplevdes inte som komplicerat att parprogrammera. Vi fann dock att alla uppgifter inte var effektiva att lösa i par. Detta gällde främst enklare uppgifter som att ändra copy, flytta eller ändra storlek på inmatningsfält. I utvecklingsarbetet av systemet arbetade bara två systemutvecklare varför det inte blev möjligt att rotera utvecklare mellan olika par. Något som minskade nyttan av parprogrammeringen var att det fanns skillnader i erfarenhet mellan dem som utvecklade. Det gjorde att det blev svårt att helt koncentrera sig bara på den ena uppgiften, att skriva kod eller att tänka strategiskt. Det märktes en viss skillnad i effektivitet beroende på vem som skrev kod och vem som tänkte på helheten. Detta är naturligtvis bara ett kortsiktigt problem eftersom mentorseffekten bör leda till att nivån jämnas ut snabbare än om parprogrammering inte använts. Den tekniska kvalitén blev hög eftersom vi behövde diskutera lösningarna, de blev automatiskt kommunikativa eftersom båda i paret var tvungna att förstå lösningen. 7 Den utvecklingsmiljö vi arbetade med var Microsoft Active Server Pages 3.0 och Microsoft SQL Server

23 Parprogrammeringen fungerade bäst till att designa gränssnitt i systemet. För systemdesign och systemutveckling blev effekterna ganska små på grund av skillnaden i erfarenhet. Vad gäller lösning av mer komplexa tekniska problem så ger parprogrammering troligen ännu mer om båda systemutvecklarna är erfarna eftersom båda då kan komma på fler lösningar. I mina intervjuer framkom att parprogrammering fungerat bra för att lära sig designmönster, systemdesign och utvecklingsmiljö. Då många av projekten på Mira normalt utvecklas i små grupper har det blivit ett begränsat utbyte av erfarenhet mellan olika systemutvecklare. Detta är något som förbättrades genom parprogrammering. Refactoring Refactoring var den XP-aktivitet som var svårast att arbeta med kontinuerligt. Det krävs mycket arbete för att fundera igenom hur designen kan hållas enkel och enhetlig genom hela projektet. Erfarenhet från tidigare system spelade en stor roll i detta arbete. Den utvecklingsmiljö vi arbetade med hade inte heller något bra stöd och det blev svårt att hinna göra större refactoring i projektet. Det är lätt att inse att en funktion eller ett system är tekniskt komplicerat men det är ofta svårt att reducera denna komplexitet. För att kunna förenkla krävs att den som systemutvecklar kan skapa sig en bild av en förenklad design samt förstå hur man kan nå dit. Det kräver att man kan skapa sig en strukturerad bild av systemdesignen. Råd som att kod inte ska upprepas är dock enkla att följa. Refactoring underlättas troligen av att enhetstester finns, detta kunde inte testas eftersom vi avstod från tester. Enkel design Erfarenheter från liknande projekt var mycket värdefulla för hur systemdesignen kom att se ut. För att kunna arbeta strukturerat och minska komplexiteten med refactoring krävs erfarenhet av utveckling. Det krävs att man vet hur man bäst förenklar och skapar struktur i system. För att en systemutvecklare, eller ett team av systemutvecklare, ska kunna hålla en evolutionär design enkel och hanterbar krävs viss erfarenhet av systemutveckling. Enkel design var en av de svårare XP-aktiviteterna att jobba med. För att kunna jobba effektivt måste ibland små avsteg göras från den design som valts. Ofta faller bitarna på sin plats senare i projektet och man ser hur man kan förenkla delar av systemet man skrivit tidigare. Det svåra är att förstå när designen blivit för spretig eller komplexiteten för stor. Ett flertal gånger under XP-projektet förstod vi att vi senare skulle behöva skriva om en funktion för att reducera komplexiteten. Även enkel design kunde ha unerlättats genom användandet av enhetstester. Enligt teorin ska testdriven utveckling per automatik ge enkelhet i designen, något som vi alltså inte kunde undersöka. Gemensamt ägande av kod Denna aktivitet var inte så relevant. Eftersom projektgrupperna på Mira är små blir det naturligt med gemensamt ägande av kod. Själva principen är dock viktig eftersom det snabbt måste kunna göras ändringar utan att behöva vänta på någon annan. 18

24 Kontinuerlig integrering All utveckling gjordes direkt mot utvecklingsservern. Eftersom den utvecklingsmiljö vi använde inte krävde någon form av kompilering hade vi snarare en form av omedelbar integrering. Kund på plats Ett problem som ofta uppstår i konsultprojekt, och förmodligen generellt i systemutvecklingsprojekt, är att det är svårt att få tillräckligt med resurser från kunden, som ofta har andra arbetsuppgifter att sköta parallellt med att driva systemutvecklingsprojekt. Att ha kunden på plats konstant är nästan alltid uteslutet men ibland kan det till och med vara svårt att bara få tag i kunden per telefon. I projektet utnyttjade vi iterationsmötena till att ställa frågor samt diskutera funktionalitet. Det finns också svårigheter med att definiera vem som är kund eftersom det i nästan alla projekt finns många intressenter. Det kan i vissa fall vara befogat att kalla slutanvändarna för kund och ibland kan det vara en person i egenskap av en viss befattning som är relevant att kalla kund. En slutsats var att det hade varit bra att involvera fler personer i projektet. Att vi inte hade kunden på plats ledde till att snabb feedback ibland uteblev från kunden vilket i ett antal fall ledde till att en user story följde med ett antal iterationer. Detta gav onödigt mycket administration och det hade varit bra att komma på ett annat sätt att hantera detta. Vid utvecklandet av ny user story är det viktigt att få kunden att förstå hur det kommer att fungera i praktiken. Vid ett flertal tillfällen under projektet hade vi haft olika bild av hur en user story skulle fungera. Små lanseringar I projektet lanserades nya funktioner veckovis. För webbaserade system, som har en server- klientstruktur är det enkelt att jobba med små lanseringar eftersom allt finns samlat centralt och det är enkelt att lägga till funktionalitet. 40-timmarsvecka I Sverige är detta inte ett väldigt stort problem även om utbrändhet är ett aktuellt ämne. Vi upplevde inte denna aktivitet som någon av XPs viktigare även om det såklart är viktigt att komma utvilad till jobbet. Kodstandarder Webbaserade system har generellt lite kod och den är uppdelad på olika sidor som har olika funktion. Vi använde oss av mallsidor för att strukturen skulle bli enhetlig och det fungerade bra. Systemmetafor En viktig egenskap för att kunna arbeta med XP är att hela tiden fundera på hur en lösning passar in i det stora mönstret. För att hålla designen ren genom hela projektet är det viktigt att fundera på hur varje ny lösning fungerar i den struktur som valts. Vi hade ingen uttalad systemmetafor från något annat område men beskrev olika delar utifrån respektive målgrupp. Det är oklart om vi hade haft nytta av en mer uttalad systemmetafor. 19

25 User stories När ett estimat på en user story ges är det lätt att falla i fällan att underskatta risk. Den mest optimistiska bedömningen av hur lång tid något tar att utveckla ges som uppskattning. För att kunna ge en korrekt bedömning krävs att den som utvecklar även förstår hur en ändring i funktionalitet påverkar systemet i stort. Generellt vid estimering är det enkelt att fastna i bästa scenariot -fällan, det vill säga att man funderar hur lång tid det tar om inget går fel och inte ta höjd för justeringar och problem man inte tänkt på. För att kunna ge bra estimat på en user story krävs att man kan relatera till liknande problem som lösts och dra slutsatser om omfattning utifrån detta. Inte bara från samma projekt. Det är viktigt att förstå hur en ny user story passar in i helheten. Ett problem med att verkligheten är mer komplex än teorin är att hålla user stories oberoende av varandra. Det är möjligt till en viss gräns men nästan aldrig praktiskt möjligt i ett lite större projekt. Detta upplevde vi i ett flertal tillfällen då valet av en viss user story påverkade många andra. Vid ett flertal tillfällen ändrades komplexiteten av en user story beroende på att nya infördes som påverkade den tidigare. Detta var relativt svårt att förklara gentemot kunden som enbart såg det som ytterligare funktionalitet som infördes. Det svåra med att jobba med user stories förutom att minska beroenden sinsemellan var att hitta en bra nivå på detaljrikedomen. Det var nyttigt att försöka beskriva funktioner så noga som möjligt ur ett behovs- och verksamhetsperspektiv. Det var sedan var upp till systemutvecklarna att realisera detta i systemet. User stories fungerade väldigt bra som ett stöd i att planera och driva projektet. Systemet bryts automatiskt ner i hanterbara delar. Ett problem vi hade i projektet var att vi och kunden ibland hade olika bild av vad som skulle utvecklas. Eftersom vi inte hade kunden på plats fick vi inte feedback på detta förrän en vecka senare. En intressant reflektion om user stories var att dessa kunde användas som ett sätt att dokumentera. XP hävdar att man ska slänga bort alla user story-kort så fort de är klara. Vi använde alla user stories som en sammanställning av alla beslut som fattats samt en systemdokumentation över hur systemet ska fungera. Rätt, bra och använt För att system ska bli använda och skapa affärsnytta krävs att alla tre dimensioner i figur 6 uppfylls. XP fokuserar mycket på nivå ett och två med enhetstester, acceptanstester samt att kunden finns på plats för att svara på frågor och sköta prioriteringar i projektet. Eftersom det i de allra flesta fall är människor som kommer att använda system som utvecklas så måste även dimension tre vara prioriterad genom hela projektet. 20

26 3 2 ANVÄNDAREN FÖRSTÅR HUR SYSTEMET SKA ANVÄNDAS (USABILITY OCH GRÄNSSNITTSTESTNING) SYSTEMET GÖR RÄTT SAKER (ACCEPTANSTESTER) 1 SYSTEMETS KOD FUNGERAR (ENHETSTESTER) Figur 6 Tre olika dimensioner av ett system XP föreslår att om det blir konflikt eller diskussion kring användbarheten i ett system så får man tillkalla en usabilityexpert som avgör huruvida systemet är tillräckligt väl designat. Detta skulle förmodligen aldrig fungera för intranät, extranät samt många andra webbaserade system där stort fokus ligger just på usability. Det är ett arbete man måste jobba med kontinuerligt och inte något som kan utvärderas mot slutet av ett projekt. Eftersom det inte finns någon naturlig plats för usability i XP blev detta en del av acceptanstestningen. Kunden fick avgöra om en funktion var intuitiv och lättanvänd. Det bästa hade varit att kontinuerligt kunna testa av användbarheten mot slutanvändarna men det var inte möjligt inom projektets budgetramar. Parprogrammeringen visade sig vara väldigt användbar för att diskutera fram bra och enkla funktioner. Trots att det gick bra att arbeta med user stories i den ordning som kunden ville och att form, säkerhet och navigering lades till först i slutet av projektet så har vi i andra projekt märkt att kunderna kan ha svårt att förstå hur en funktion verkligen kommer att se ut och fungera innan formen läggs på. Detta leder till onödigt många diskussioner kring användbarhet. En annan negativ aspekt av att inte arbeta med formen direkt var att det tog lång tid att lägga till alla sidor eftersom det inte gick att skapa en mall som bara applicerades på alla sidor samtidigt. En slutsats är därför att det kan vara bra att föreslå för kunden att lägga på form direkt. IT-oerfarna kunder kräver ibland vägledning i beslut om vad som bör prioriteras för att skapa mest nytta av IT. Kombinationen av att förstå både IT och verksamheten är oerhört viktig. XP menar att kombinationen av IT och verksamhet kan komma fram i kommunikationen mellan kund och utvecklare. Eftersom det i praktiken i konsultuppdrag är praktiskt taget omöjligt att ha kunden på plats hela tiden begränsas kommunikationen mellan kund och utvecklare. Det är därför en fördel om utvecklaren förstår kundens verksamhet och kan koppla samman detta med kunskaper om IT och systemutveckling. För att införskaffa sig denna förståelse är det viktigt att man trots begränsningen att man inte kan ha kunden på plats försöker att maximera kommunikationen med kunden. Utifrån diskussioner som förts har vi konstaterat att det är enklare att nå ett bra resultat när man verkligen förstår kundens verksamhet. Detta märks extra tydligt i de längre kundrelationer där nyutveckling av funktionalitet i nästan alla fall motsvarar kundens förväntningar utan kompletteringar. Det går dessutom ofta snabbare att utveckla än i liknande system för andra kunder. 21

27 Slutsatser Vad är viktigt att tänka på för ett företag som funderar på att börja jobba med XP? XP var lätt att komma igång med och även om enskilda aktiviteter var svåra att jobba med så var helheten och modellen enkel att förstå. En styrka med XP var att det var enkelt att anpassa XP till de behov och förutsättningar som fanns på Mira, det var enkelt att förstå hur och varför olika aktiviteter används. Verkligheten är sällan lika enkel som teorin utan det finns komplexitet man måste kunna hantera. Det är till exempel orimligt att anta att man i varje projekt kommer att kunna ha en kund på plats under hela utvecklingsprocessen. För att minska riskerna vid projektet bör man inte se definitionen av kund som en person utan involvera flera personer från kunden. Det är viktigt att man försöker att hitta personer att involvera från alla tilltänkta målgrupper för att få en så heltäckande bild som möjligt. En viktigt slutsats är att man måste förstå att verkligheten är mer komplex än teorin, och att man måste kunna hantera detta på bästa sätt. Parprogrammering är i vissa situationer ett utmärkt hjälpmedel för att lösa svåra tekniska problem och designa bra system. Däremot finns det situationer då parprogrammering inte är att föredra, till exempel vid repetitiva eller väldigt enkla arbetsuppgifter. Man måste också ta hänsyn till vilken erfarenhet de har som parprogrammerar. Det gav en ganska liten effekt tidsmässigt och designmässigt av parprogrammeringen när paren var ojämna. Däremot gav parprogrammeringen positiva effekter i ett knowledge management -perspektiv, det vill säga vad gäller spridning av kunskap och best practices. Trots att XP inte direkt tar upp usability så är det en viktig dimension att ta hänsyn till vid utvecklandet av de flesta typer av webbaserade verksamhetskritiska system. Att försöka rätta till detta på slutet kan bli väldigt tidskrävande och därför är det bra att jobba med detta kontinuerligt. Det är viktigt att inte lämna över ansvaret att designa bra användbara gränssnitt till kunden men däremot är kunden den som ska avgöra om ett gränssnitt är tillräckligt enkelt att använda. Hur är XP anpassat systemutveckling på konsultföretag? Som beskrevs i teoridelen är det viktigt att kunna erbjuda bra service och att ha en utvecklingsmetodik som hanterar de speciella kraven för konsultföretag. Den täta kundkontakten och att kunden var involverad i arbetet möjliggjorde att vi utan extra arbete kunde erbjuda god service gentemot kunderna och vara lyhörda för nya behov. Det var också en fördel att vi kunde göra stora förändringar genom hela projektet eftersom detta gjorde att kunden kände sig engagerad och kunde påverka. Detta påverkade antagligen den upplevda servicegraden. Just XPs fokus på effektivitet samt förmåga att hantera risk och förändring var väldigt viktigt. För de konsultföretag som arbetar med långa kundrelationer där systemen utvecklas över lång tid är det nödvändigt att hela tiden jobba med att förenkla och hålla systemdesignen enkel. Det är lätt att systemdesignen med tiden bryts ner och systemen blir dyra att underhålla. XPs aktiviteter för att reducera komplexiteten passar väl för detta. 22

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

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

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

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

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

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

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

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

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

Fungerar Agila principer i alla typer av projekt?

Fungerar Agila principer i alla typer av projekt? Fungerar Agila principer i alla typer av projekt? Wenell Management AB Vad är Agile? Agile kan sägas vara ett paraplybegrepp. Det är inte en systemutvecklingsmetodik i sig utan snarare en uppsättning värderingar,

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

Användarcentrerad Systemutveckling

Användarcentrerad Systemutveckling Användarcentrerad Systemutveckling Människadatorinteraktion (MDI) Inst. för informationsteknologi http://www.it.uu.se/edu/ course/homepage/hci/ ht10 Användarcentrerad systemutveckling, gränssnitt och prototyper.

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

Inspel till dagens diskussioner

Inspel till dagens diskussioner Intro till Agil Projektledning CMB 11 juni 2018 Mats Nyman Wenell Management AB Inspel till dagens diskussioner Historik och bakgrund Agila manifestet och de agila principerna SCRUM Kort om SAFe Wenell

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

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

Chaos om datorprojekt..

Chaos om datorprojekt.. Systemutveckling och användbarhet Användarcentrerad systemutveckling, gränssnitt och prototyper. Referens till avsnitt i kursboken Dix kapitel 6 Gulliksen, Göransson: Användarcentrerad systemdesign, kapitel:

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

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

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

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

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

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

Läs mer

2014-2015 Alla rättigheter till materialet reserverade Easec

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

Läs mer

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

Chaos om IT-projekt..

Chaos om IT-projekt.. Användarcentrerad systemutveckling, gränssnitt och prototyper. Lämplig extraläsning Gulliksen, Göransson: Användarcentrerad systemdesign, Studentlitteratur, kapitel: 4, 5, 6, 7, 8, 9 (Bredvidläsning) Syfte

Läs mer

Användbarhet i sitt sammanhang

Användbarhet i sitt sammanhang Användbarhet i sitt sammanhang Världsanvändbarhetsdagen 2009-11-12 Anders Hedberg, Guide Konsult Stockholm Innehåll En helikoptertur över ett projekts olika faser med belysning på användbarhet i förhållande

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

Så säkerställer du affärsnyttan för dina produkter

Så säkerställer du affärsnyttan för dina produkter Så säkerställer du affärsnyttan för dina produkter Den här guiden ger dig konkreta tips på hur du skapar en effektiv kravprocess som ökar affärsnyttan i ditt företags leveranser. Den här guiden ger dig

Läs mer

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

Automation Region. Affärsdriven systemutveckling genom agila metoder. Stefan Paulsson Thomas Öberg Automation Region Affärsdriven systemutveckling genom agila metoder Stefan Paulsson Thomas Öberg Frontit Frontit är ett svenskt konsultföretag i gränslandet mellan Management & IT, som stärker sina kunders

Läs mer

Kursöversikt Certifierad Mjukvarutestare

Kursöversikt Certifierad Mjukvarutestare Kursöversikt Certifierad Mjukvarutestare Kurs Poäng (5 yh poäng/vecka) Examensarbete 20 Grunderna inom test 20 Kommunikation i arbetslivet 15 Lärande i arbete 1 60 Lärande i arbete 2 60 Projektarbete 15

Läs mer

Processbeskrivning Systemutveckling

Processbeskrivning Systemutveckling ProcIT-P-013 Processbeskrivning Systemutveckling Lednings- och kvalitetssystem Fastställt av Sven Arvidson 2012-06-20 Innehållsförteckning 1 Inledning 3 1.1 Symboler i processbeskrivningarna 3 2 Systemutvecklingsprocessen

Läs mer

Fujitsu Day 2015. Göteborg 8 oktober

Fujitsu Day 2015. Göteborg 8 oktober Fujitsu Day 2015 Göteborg 8 oktober ARBETA MER I ETT NÄTVERK GENOM ETT SOCIALT INTRANÄT Anders Bohlinder, Sales, Business Application Services Peyman Javadi, ECM/ SharePoint specialist Arbeta i ett nätverk

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

Microsoft Dynamics 365 Business Application vs. ERP. Företagen måsta sätta sig själva i förarsätet

Microsoft Dynamics 365 Business Application vs. ERP. Företagen måsta sätta sig själva i förarsätet Microsoft Dynamics 365 Business Application vs. ERP Slutsats från mina 5 artiklar om ämnet: Tema Dynamics 365 Business Application 2017-05-10 Created by: Mikael Petersén: Vi är inne i ett stort teknikskifte

Läs mer

Spetskompetens inom systemintegration, SOA och systemutveckling

Spetskompetens inom systemintegration, SOA och systemutveckling Spetskompetens inom systemintegration, SOA och systemutveckling Mjukvarukraft är ett företag som inriktar sig på konsultation och systemutveckling baserad på och omkring Microsofts plattformar och produkter.

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

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar Skapa testfall Testing Köra testen Hitta fel Inspections and reviews Verifiera resultatet Formal methods Static analysis Completeness Verifiering Kvalitet Maintainability Validering Traceability Fault

Läs mer

Titel Mall för Examensarbeten (Arial 28/30 point size, bold)

Titel Mall för Examensarbeten (Arial 28/30 point size, bold) Titel Mall för Examensarbeten (Arial 28/30 point size, bold) SUBTITLE - Arial 16 / 19 pt FÖRFATTARE FÖRNAMN OCH EFTERNAMN - Arial 16 / 19 pt KTH ROYAL INSTITUTE OF TECHNOLOGY ELEKTROTEKNIK OCH DATAVETENSKAP

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

RUP - Rational Unified Process

RUP - Rational Unified Process IBM Software Group RUP - Rational Unified Process Eva Hådding eva.hadding@se.ibm.com 1 Projektkaos. Chaos-rapporten 28% av projekten avslutades i tid och enligt budget. 49% av projekten drog över de ursprungliga

Läs mer

Projekt intranät Office 365 av Per Ekstedt

Projekt intranät Office 365 av Per Ekstedt Projekt intranät Office 365 av Per Ekstedt 1 BESKRIVNING AV UTFÖRANDE Uppdraget planeras att genomföras med ett agilt arbetssätt samt best practice från Microsoft gällande SharePoint online. Uppdraget

Läs mer

Vad kan vi erbjuda er?

Vad kan vi erbjuda er? Vad kan vi erbjuda er? 2018 Gozinto studentkonsulter 2 Historia Medlemmar Affärsområden 2001 Gozinto grundas av fyra studenter som lärt sig om studentkonsult-verksamheter i Tyskland 2010 Gozinto erbjuder

Läs mer

Skapa värde för verksamheten genom affärsplanerings- & prognosprocessen. Sara Lindberg, 2014-05-08

Skapa värde för verksamheten genom affärsplanerings- & prognosprocessen. Sara Lindberg, 2014-05-08 Skapa värde för verksamheten genom affärsplanerings- & prognosprocessen Sara Lindberg, 2014-05-08 Vi är Skandia kortsiktighetens fiende Ledande, oberoende och kundstyrd bank- och försäkringskoncern Erbjuder

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

Projektplan för utvecklingen av Kryssarklubbens nya webbplats

Projektplan för utvecklingen av Kryssarklubbens nya webbplats Projektplan för utvecklingen av Kryssarklubbens nya webbplats Sammanfattning Detta dokument beskriver hur Kryssarklubbens nya webbplats skall tas fram. Planen är ett resultat av det arbete som gjorts av

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

DD2458-224344 - 2014-12-19

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

Läs mer

Förändringsstrategi anpassad till just din organisations förutsättningar och förmåga

Förändringsstrategi anpassad till just din organisations förutsättningar och förmåga Förändringsstrategi anpassad till just din organisations förutsättningar och förmåga Att bedriva effektiv framgångsrik förändring har varit i fokus under lång tid. Förändringstrycket är idag högre än någonsin

Läs mer

FEMSTEGSMODELLEN: ÖVNING & CHECKLISTA FÖR EN ÖPPEN OCH TILLGÄNGLIG VERKSAMHET

FEMSTEGSMODELLEN: ÖVNING & CHECKLISTA FÖR EN ÖPPEN OCH TILLGÄNGLIG VERKSAMHET FEMSTEGSMODELLEN: ÖVNING & CHECKLISTA FÖR EN ÖPPEN OCH TILLGÄNGLIG VERKSAMHET FEMSTEGSMODELLEN: FEM STEG FÖR EN TILLGÄNGLIG VERKSAMHET STEG1 VEM NÅS? STEG 2 VEM TESTAR? STEG 3 VEM GÖR? STEG 4 VEM PÅVERKAR?

Läs mer

Prototyper och användartest

Prototyper och användartest Föreläsning i webbdesign Prototyper och användartest Rune Körnefors Medieteknik 1 2012 Rune Körnefors rune.kornefors@lnu.se Prototyp för en webbplats! Utkast eller enkel variant av webbplatsen" Syfte"

Läs mer

Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin.

Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin. Examensarbete Magisterprogrammet Digital Affärsutveckling, kurs uppgift 3 teori-reflektion. Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin. Författare: Magnus

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

Utbildningsplan. Systemvetenskapliga programmet. 180 högskolepoäng. System Science Program. 180 Higher Education Credits *)

Utbildningsplan. Systemvetenskapliga programmet. 180 högskolepoäng. System Science Program. 180 Higher Education Credits *) Utbildningsplan Systemvetenskapliga programmet 180 högskolepoäng System Science Program 180 Higher Education Credits *) Fastställd i Utbildnings- och Forskningsnämnden 2012-11-14 Gäller fr.o.m. 2013-07-01

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

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

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

Förståelse förståelse önskvärda resultat LEDARE

Förståelse förståelse önskvärda resultat LEDARE LEDARE Innehåll Sidan 1. Inledning 5 2. Förord från verkligheten 7 3. Ny förståelse 8 4. Hållbar utveckling med önskvärda resultat 11 5. Befintlig organisation med mänskligt och livlöst innehåll 12 6.

Läs mer

Enhetstester på.netplattformen

Enhetstester på.netplattformen Enhetstester på.netplattformen Praktikfall ur verkligheten Copyright Prolore 2007. All Rights Reserved. Viktor Laszlo Vem är jag 11 år inom test Prolore: specialiserat på Testautomatisering, Prestandatest

Läs mer

TDDD78 Att välja och planera ett projekt

TDDD78 Att välja och planera ett projekt jonas.kvarnstrom@liu.se 2016 TDDD78 Att välja och planera ett projekt Steg 1: Grunder, labbmiljö, era första Java-program Vecka 3 Vecka 4 Vecka 5 Vecka 6 4 labbar, enskilt Steg 2: Fortsättning, miniprojekt

Läs mer

Agil testning i SCRUM

Agil testning i SCRUM Agil testning i SCRUM Petter Salomonsson Petter.salomonsson@addq.se Tel: 0708-398435 Kort presentation AddQ Consulting AB tydlig fokus på test och kvalitetssäkringstjänster erbjuder mycket erfarna konsulter

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

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

Välkomna till DIT012 IPGO

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

Läs mer

SVAR 1 (7) Postadress Besöksadress Telefon Bankgiro Inläsningscentralen, 839 88 Östersund

SVAR 1 (7) Postadress Besöksadress Telefon Bankgiro Inläsningscentralen, 839 88 Östersund SVAR 1 (7) Socialdepartementet 103 33 Stockholm Försäkringskassans svar på ISF:s rapport (2012:3) Handläggning av bostadstillägg Inledning Inspektionen för socialförsäkringen (ISF) har granskat Pensionsmyndighetens

Läs mer

Hur lyckas med förändring?

Hur lyckas med förändring? 1 Hur lyckas med förändring? Mattias Hermansson, förändringsledare 2 Agenda förändringsmättnad förändringsledning ledarskap och samarbete fokus 3 Vem är Mattias Hermansson? Förändringsledare Chef Föreläsare

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

Informators nya Officeerbjudande! Vi kan hjälpa er prestera smartare, snabbare och bättre!

Informators nya Officeerbjudande! Vi kan hjälpa er prestera smartare, snabbare och bättre! Utrullning av nytt Office Informators nya Officeerbjudande! Vi kan hjälpa er prestera smartare, snabbare och bättre! Utrullning av nytt Office Informator kan erbjuda er en modell för utrullning i 4 steg.

Läs mer

30 år av erfarenhet och branschexperts

30 år av erfarenhet och branschexperts 30 år av erfarenhet och branschexperts Integrerad Säkerhet Integrerad Säkerhet Varför överordnat system Användarvänlighet Kvalitet Trygghet Kostnadseffektivitet Varför ett överordnat system? Med stora

Läs mer

En snabbare väg till framgång Ett agilt angreppssätt för BI Johan Petersson

En snabbare väg till framgång Ett agilt angreppssätt för BI Johan Petersson En snabbare väg till framgång Ett agilt angreppssätt för BI Johan Petersson Acando Johan Petersson Visit me at LinkedIn: se.linkedin.com/in/johpet 2 Acando 2014-29-08 Acando - översikt Enterprise Consulting

Läs mer

Utvärdering. Övergripande (1) Med/utan användare. Övergripande (2) Fredag 1 oktober F1. Ann Lantz - Anna Swartling -

Utvärdering. Övergripande (1) Med/utan användare. Övergripande (2) Fredag 1 oktober F1. Ann Lantz - Anna Swartling - Utvärdering Fredag 1 oktober 13-15 F1 Ann Lantz - alz@nada.kth.se Anna Swartling - ast@kth.se Övergripande (1) Av den verkliga världen: Hur agerar man, vad händer? Hur används teknik? Beteendevetenskapliga

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

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

Insikt. kräver kunskap, erfarenhet och förståelse

Insikt. kräver kunskap, erfarenhet och förståelse Insikt kräver kunskap, erfarenhet och förståelse Målet är utveckling... håller inte måttet Företag med teknologibaserad utveckling står idag inför många utmaningar. Den viktigaste är utan tvekan förmågan

Läs mer

Jag vill bara hitta allt som är relevant för mig just nu

Jag vill bara hitta allt som är relevant för mig just nu Det man inte hittar finns inte Faktisk sökträff från den publika webbplatsen. Det man hittar kanske man inte borde se Jag vill bara hitta allt som är relevant för mig just nu (Användarsynpunkt från förstudie)

Läs mer

Att planera bort störningar

Att planera bort störningar ISRN-UTH-INGUTB-EX-B-2014/08-SE Examensarbete 15 hp Juni 2014 Att planera bort störningar Verktyg för smartare tidplanering inom grundläggning Louise Johansson ATT PLANERA BORT STÖRNINGAR Verktyg för smartare

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

Lyckade projekt - finns det?

Lyckade projekt - finns det? Lyckade projekt - finns det? Maria Lindqvist Björkman Enea Business Software Enea Business Software 2002 Sida 1 Agenda Förväntningar kund & leverantör Statistik om projekt Framgångsfaktorer Exempel på

Läs mer

PB 1. Securing progress

PB 1. Securing progress PB 1 Securing progress 2 3 Biner: abbreviation for carabiner. A metal loop with a spring catch, designed as a connector to quickly and securely link together components. Used in mountaineering for fastening

Läs mer

Projektuppgift.

Projektuppgift. Projekt Projektuppgift Designa och implementera ett webbaserat gränssnitt för att söka information i en befintlig databas. Webssidan ska vara komplett med navigering, överblick, sökning och strukturerad

Läs mer

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

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

Läs mer

TMP Consulting - tjänster för företag

TMP Consulting - tjänster för företag TMP Consulting - tjänster för företag Adress: http://tmpc.se Kontakta: info@tmpc.se TMP Consulting är ett bolag som utvecklar tekniska lösningar och arbetar med effektivisering och problemslösning i organisationer.

Läs mer

Testning som beslutsstöd

Testning som beslutsstöd Testning som beslutsstöd Vilken typ av information kan testning ge? Vilken typ av testning kan ge rätt information i rätt tid? Hur kan testning hjälpa din organisation med beslutsstöd? Hur kan produktiviteten

Läs mer

EAs krav vid ackreditering av flexibel omfattning

EAs krav vid ackreditering av flexibel omfattning SWEDAC DOC 12:1 2012-05-10 Utgåva 1 Inofficiell översättning av EA 2/15 M:2008 EAs krav vid ackreditering av flexibel omfattning Swedac, Styrelsen för ackreditering och teknisk kontroll, Box 878, 501 15

Läs mer

Förvaltningsplan NyA 2016

Förvaltningsplan NyA 2016 Systemförvaltning och systemdrift Föredragande Anders Mobjörk Systemansvarig 010-470 06 38 anders.mobjork@uhr.se BESLUT Diarienummer 4.2.2-1263-2015 Datum 2015-12-04 Postadress Box 45093 104 30 Stockholm

Läs mer

Astrakan Strategisk Utbildning AB 2011 1

Astrakan Strategisk Utbildning AB 2011 1 Målet med detta kapitel är att du skall kunna utvärdera ett agilt projekt och förstå hur man upptäcker vad som behöver förstärkas. Metoden som egentligen är ett verktyg kan användas på många sätt: att

Läs mer

Sammanställning av kursutvärdering

Sammanställning av kursutvärdering Kursutvärdering P O Ågren per-olof.agren@umu.se Vårterminen 2017 Sid 1 (13) Sammanställning av kursutvärdering Examensarbete i informatik, 15 hp, VT 2017 Kursansvarig: Per-Olof Ågren Samlad bedömning 1

Läs mer

1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till?

1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till? 1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till? Att lära sig via metaforer innebär att man drar nytta av kunskap som användaren redan har,

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

UTBILDNING: Leda människor i projekt

UTBILDNING: Leda människor i projekt UTBILDNING: Leda människor i projekt Introduktion Kursen ger projektledare en unik möjlighet att utveckla god kompetens i att leda och hantera människor i projekt. Kursen ger dig insikter, väl beprövade

Läs mer

Utvärdering av prototyp: Frågedatabas av Mårten Cronander. Innehållsförteckning

Utvärdering av prototyp: Frågedatabas av Mårten Cronander. Innehållsförteckning 1 (6) Mottagare: Åsa Cajander Mårten Cronander Utvärdering av prototyp: Frågedatabas av Mårten Cronander Innehållsförteckning 1 Inledning 2 1.1 Ten usability heuristics 2 1.2 Severity ratings for usability

Läs mer

2203$ ) UHOlVQLQJ. Varför fungerar XP Några motiveringar till varje regel efter Beck. Innehåll. Planeringsspelet

2203$ ) UHOlVQLQJ. Varför fungerar XP Några motiveringar till varje regel efter Beck. Innehåll. Planeringsspelet XP: varför fungerar det? Något om tentan. Innehåll 2203$ ) UHOlVQLQJ Introduktion till extreme Programming (XP) Varför fungerar XP? Något om tentan Vad ska man läsa och hur ser den ut? Varför fungerar

Läs mer

Intervjuguide ST PVC. Namn: Telefon: Datum:

Intervjuguide ST PVC. Namn: Telefon: Datum: Namn: Telefon: Datum: Tänk på följande under intervjun: Inled intervjun med att presentera dig själv och andra deltagare vid intervjun samt syfte och tidsåtgång. Berätta kort om jobbet och om oss som arbetsgivare.

Läs mer

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design RE SD PD I UT IT ST AT Mjukvarudesign System Requirement Specification Inkrementell och iterativ! Konceptuell design (VAD) Systemdesign (OOA) Arkitekturell (grovkornig, UML) Teknisk design (HUR) Programdesign

Läs mer

Oppositionsprotokoll-DD143x

Oppositionsprotokoll-DD143x Oppositionsprotokoll-DD143x Datum: 2011-04-26 Rapportförfattare Sara Sjödin Rapportens titel En jämförelse av två webbsidor ur ett MDI perspektiv Opponent Sebastian Remnerud Var det lätt att förstå vad

Läs mer

Anledning: Generellt så undviker QUPER att göra fullständiga förutsägelser för relationerna mellan ett systems fördelar, kostnad och kvalitet.

Anledning: Generellt så undviker QUPER att göra fullständiga förutsägelser för relationerna mellan ett systems fördelar, kostnad och kvalitet. Fråga 1. QUPER Påstående: QUPER är en modell för att elicitera krav Anledning: Generellt så undviker QUPER att göra fullständiga förutsägelser för relationerna mellan ett systems fördelar, kostnad och

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

Några grundläggande begrepp

Några grundläggande begrepp Några grundläggande begrepp Validering bygger vi rätt system? Uppfyller kravspecifikationen de verkliga behoven? Verifiering bygger vi systemet rätt? Uppfyller det färdiga systemet kravspecifikationen?

Läs mer

Bilagor Projektrapport VoteIT år 1

Bilagor Projektrapport VoteIT år 1 1(6) Bilagor Projektrapport VoteIT år 1 Innehåll Bilaga 1. Kravspecifikation... 2 Bilaga 2: Checklista för årsmötesprocessen... 3 Bilaga 3: Om typen av möten som ska stödjas... 5 Bilaga 4. Kvalitetsplan...

Läs mer

Offentliga Sektorns Managementprogram

Offentliga Sektorns Managementprogram Offentliga Sektorns Managementprogram OFFENTLIGA SEKTORNS MANAGEMENTPROGRAM Utveckling för dig som är högre chef inom offentlig sektor Som högre chef i den offentliga sektorn lever du i en spännande och

Läs mer