Institutionen för datavetenskap
|
|
|
- Karolina Karlsson
- för 10 år sedan
- Visningar:
Transkript
1 Institutionen för datavetenskap Department of Computer and Information Science Examensarbete Praktisk tillämpning av agil programutvecklingsmetodik Utveckling av e-handelsapplikationen Shrt Av Daniel Berglund, Jessie Chen, Tobias Genborg, Andreas Gustafsson, Oskar Kugelberg, Svante Ringertz och Lilian Zakrisson LIU-IDA/LITH-EX-G--14/029 SE Linköpings universitet SE Linköping, Sweden Linköpings universitet Linköping
2 Kandidatarbete Praktisk tillämpning av agil programutvecklingsmetodik Utveckling av e-handelsapplikationen Shrt av Daniel Berglund, Jessie Chen, Tobias Genborg, Andreas Gustafsson, Oskar Kugelberg, Svante Ringertz och Lilian Zakrisson LIU-IDA/LITH-EX-G--14/029--SE Handledare: Rita Kovordanyi Examinator: Aseel Berglund
3 Linköpingsuniversitet Institutionenfördatavetenskap Sammanfattning) Syftetmeddennarapportärattbeskrivaarbetetkringutvecklingenavenwebbapplikationförförsäljning avt=shirts= Shrt = ochutredamöjligheternaförattlanseravarumärketpåmarknaden.projektetutgick frånvisionen att&ge&våra&kunder&verktygen&som&behövs&för&att&uttrycka&sin&personlighet,&genom&mode& som& kunden& själv& designar,& via& webben. Under projektet har utvecklingsmetodiken scrum använts tillsammansmedandraverktygsomärvanligavidagilaprojekt.vidkonkretiseringavvarumärketshrtoch dess produkt genomfördes brainwriting. För att skapa en produktbacklogg använde sig utvecklingsgruppen av arbetsmetoderna funktionsanalys, konceptdivergens, konceptutvärdering och prototyping. Funktionerna i produktbackloggen delades sedan in i kategorierna nödvändiga, önskvärda samtonödigafunktioner.produktbackloggenlågsedantillgrundförhurarbetetdeladesuppitreolika sprintarmedseparatamålochredovisningar.denförstasprintenfokuseradepåfunktion,denandrapå upplevelseföranvändarenochdentredjepåunderhållsamtförbättringavkod refaktorering.under slutet av utvecklingen genomfördes användartester utifrån TaskAbased& scenarios där användaren får försökautföraenuppgiftutaninstruktionerpåhurdenskautföras. Resultatetavprojektetblevenwebbapplikationmedallfunktionalitetsomklassificeradessomnödvändig ochönskvärd.dettavarnågotsomutvecklingsgruppenansågvaraettacceptabeltresultat.omtidenför utvecklinghadevaritlängreärdetmöjligtattytterligarefunktionalitethadekunnatimplementeras.det hadesäkerligenvaritpositivtförvarumärketshrt,somhadekunnatgeettmerprofessionelltintryckför slutanvändaren.
4 Linköpingsuniversitet Institutionenfördatavetenskap 1 Innehållsförteckning) 1 Inledning)...)4 1.1 Syfte)...)4 1.2 Avgränsningar)...)4 2 Metod)...)5 2.1 Scrum)...) Event sprinten,dailyscrum,reviewochretrospective Artefakter produkt=,sprintbackloggochproduktinkrement Projektteamet Utvecklingsprocessen)...) Projektuppstart Konceptgenerering Userstoriesochsprintplanering Utvecklingochimplementeringavapplikationen Refaktorering Metodvidanvändartestning Utvecklingsmiljöer)...) Programeringsspråkochramverk Versionshantering=Git Molnplattform Openshift IntegreradUtvecklingsmiljö=Pycharm Övrigautvecklingsverktyg GoogleChrome Projektstyrningsapplikation Trello Systemöversikt)...) Design)...) Köp)...) Inspiration)...) Registrering)och)Inloggning)...) Admin)...)24 4 Systemspecifikation)...) Databas)...) Logik)...) Användargränssnitt)...) Grundkomponenter Designverktygochköp Marknadsföringsplan)...) Omvärldsanalys)enligt)PEST)...) Ekonomiskaomvärldsfaktorer Sociokulturellaomvärldsfaktorer Teknologiskaomvärldsfaktorer...34
5 Linköpingsuniversitet Institutionenfördatavetenskap Konkurrensanalys)...) SWOTRanalys)...) Styrkor Svagheter Möjligheter Hot Kundsegment)...) Marknadsstrategi)och)Marknadsmål)...) Positionering)...) Marknadsmix)R)4P)...) Produkt Pris Plats Påverkan Testresultat)...) Mål)med)testningen)...) Scope)...)41 7 Etiska)aspekter)...) Lagring)av)personlig)data)...) Säkerhet)...) Testares)personliga)information)...) Inspirationssidans)brister)...)44 8 Summering)och)diskussion)...) Planeringsfasen)...) Utvecklingsfasen)...) Alternativa)utvecklingsverktyg)...) Möjliga)Förbättringar)...) Styrkor)och)svagheter)i)kod)...)47 Referenser)...)48 Bilaga)1) )Skisser)och)prototyp)...)52 Bilaga)2)R)Produktbacklogg)...)57 Bilaga)3) )Frågor)vid)användartestning)...)63 Bilaga)4) )UMLRDiagram)...)65 ) 65 Bilaga)5) )ERRDiagram)...)66 Bilaga)6) )Individuella)reflektioner)...)67 Erfarenhetssammanfattning) )Lilian)Zachrisson)...)67 Erfarenhetssammanfattning)R)Andreas)G)...)69 Erfarenhetssammanfattning) )Oskar)K)...)72
6 Linköpingsuniversitet Institutionenfördatavetenskap 3 Erfarenhetssammanfattning) )Daniel)B)...)74 Erfarenhetssammanfattning)R)Tobias)Genborg)...)76 Erfarenhetssammanfattning) )Svante)R)...)79 Erfarenhetssammanfattning) )Jessie)Chen)...)81 Figurförteckning) Figur)1)R)Scrumprocessen)...)5 Figur)2)R)Utvecklingsprocessen)...)6 Figur)3)R)Tvärkomponentutveckling)...)9 Figur)4)R)JQuery)innan)refaktorering)...)12 Figur)5)R)JQuery)efter)refaktorering)...)12 Figur)6)R)Exempel)på)Long)Method)...)13 Figur)7)R)Long)Method)efter)refaktorering)...)13 Figur)8)R)Förenkling)och)kategorisering)av)produktbacklogg)...)18 Figur)9)R)Designsidan)med)numrerade)element)...)19 Figur)10)R)Köpprocessen)i)Shrt.)...)20 Figur)11R)Förenklade)versionen)av)kundkorgen)i)navigeringsmenyn.)...)21 Figur)12)R)En)inblick)I)inspirationssidan)...)22 Figur)13)R)Admin)funktionen)för)att)lägga)till)attribut.)...)24 Figur)14)R)Funktionen)för)att)välja)vilka)tRshirts)till) our)favorites )på)inspirationssidan)...)25 Figur)15)R)Beskrivning)av)applikationens)lager)...)27 Figur)16)R)Anropsstruktur)för)applikationen)...)27 Figur)17)R)Skillnader)mellan)klassisk)webbprogrammering)och)webbprogrammering)med)AJAX)...)28 Figur)18)R)AjaxRanrop)...)29 Figur)19)R)Exempel)på)entitet)...)29 Figur)20)R)Shrt)och)konkurrenters)värdeerbjudande)...)38 Figur)21)R)tillvägagångssätt)vid)promotion)...)40 Figur)22)R)Beskriver)huruvida)användarna)tyckte)det)var)svårt)att)genomföra)uppgiften)...)41 Figur)23)R)Jämför)tiden)det)tog)att)genomföra)de)olika)scenarierna)...)42 Figur)24)R)Jämför)tydligheten)i)de)olika)scenariena)...)42 Figur)25)R)Beskriver)felnivån)i)de)olika)scenarierna)...)42 Figur)26)R)Beskriver)ifall)testgruppen)är)nöjda)med)hur)det)gick)utföra)uppgiften)...)42 Tabellförteckning) Tabell)1)R)Parametrar)hos)konkurrenter)...)35 Tabell)2)R)SWOTRanalys)...)36 Tabell)3)R)Matchning)av)styrkor,)svagheter,)hot)samt)möjligheter)...)36 Tabell)4)R)Segmentering)...)36 Tabell)5)R)Beskriver)antalet)fel)testgruppen)fick)vid)genomföradet)av)de)olika)scenariorna)...)42
7 Linköpingsuniversitet Institutionenfördatavetenskap 1 Inledning) ) ) 4 IdagensmodernaIT=samhälleökare=handelnavmodeochdenenskildaindividensbehovavattskiljasig frånnormen(dittmar,long&meek,2004).dennatrendföddevisionenmeddettaprojekt: att&ge&våra& kunder&verktygen&som&behövs&för&att&uttrycka&sin&personlighet,&genom&mode&som&kunden&själv&designar,& via&webben.förattuppnådennavisionharene=butikutvecklats,därkundensjälvdesignarentröjadet endastfinnsettexemplarav.denhärrapportenbehandlarutvecklingsprocessenavdennae=butiksom innefattar förstudie, konceptgenerering samt framtagning av prototyp. Rapporten beskriver även hur programutvecklingsmetodiken scrum använts i utveckling av applikationen och redogör för de utvecklingsval som gjorts på utvecklings=, etik= och marknadsmässiga grunder. Rapporten är en kandidatuppsatsskrivenvidlinköpingstekniskahögskolavidinstitutionenfördatateknik. Prioriteringen vid utveckling har varit att vid projektets slut kunna leverera en applikation vars funktionalitet visar hur konceptet med affärsidén kan realiseras. De delar av sidan som ansågs vara essentiella var ett intuitivt designverktyg, en strömlinjeformad köpprocess och grundläggande communityfunktionalitet, med möjlighet att se, kommentera samt att "gilla" andra personers tröjor. Användarvänligheteniapplikationenharävendenvarithögtprioriterat.Dåtidenunderprojektetvarit begränsad, samt att fokus legat på kvalitet och användarvänlighet av de utvecklade funktionerna har funktionernasomfattningnedprioriterats.dettainnebärtillexempelattantaletparametraranvändaren kananvändaförattskräddarsysintröjaställtsmotattsetillattfunktionenuppnårdeuppsattakravenpå kvalitetochanvändarvänlighet,medfärreparametrar. 1.1 Syfte) SyftetdennarapportärattbeskrivautvecklingenavwebbapplikationenShrtochutredamöjligheternaför attlanseravarumärketpåmarknaden. 1.2 Avgränsningar) DennarapportbehandlarutvecklingsmetodikenvidutvecklingenavShrtochintetekniskalösningarför olika typer av funktionalitet specifikt. Rapporten vidrör inte heller den faktiska tidsåtgången för att utvecklaolikadelaravwebbapplikationen,utandiskuterarendastexaktheteniuppskattningenavtiden förattutvecklafunktionerna.
8 Linköpingsuniversitet Institutionenfördatavetenskap 2 Metod) 5 Utvecklingenavwebbapplikationensträcktesigöver17veckorochgenomfördesavettutvecklingsteam omsjupersoner.utvecklingsprocessenhadefyrafaser:konceptgenerering,utveckling,refaktoreringoch testning.underhelaprojektetanvändesutvecklingsmetodikenscrum. 2.1 Scrum) BegreppetscrumharsittursprungligiartikelnThe&New&New&Product&Development&Game,författad1986 av Hirotaka Takeuchi och Ikujiro Nonaka (Pham, 2011). I artikeln beskrivs en ny projektmetodik som författarnajämfördemedrugbyformationenscrum(pham,2011).metodikenharsexstyckenutmärkande egenskaper:självaorganiserande&team,&överlappande&utvecklingsfaser,&inbyggd&instabilitet,&multiinlärning,& organisatorisk&överföring&av&kunskap,&och&subtil&kontroll&(takeuchi&&&nonaka,&1986). Nio år senare, 1995, så sammanfattade Jeff Sutherland och Ken Schwaber sina erfarenheter från programutveckling och skapade en agil metodik som de valde att kalla scrum (Schwaber, 2003; Pham, 2011).Agilametodikervärdesätterindivider&och&interaktionerframförprocesser&och&verktyg,fungerande& programvara framför omfattande& dokumentation, kundsamarbete framför kontraktsförhandling samt anpassning&till&förändringframföratt&följa&en&plan.(kentbecketal.,2001) Scrumprocessen (se Figur 1 = Scrumprocessen) är en empirisk metod för att utveckla mjukvara i en föränderlig omvärld, den fokuserar på flexibilitet, produktivitet och anpassningsbarhet. Fördelar med scrumsomutvecklingsmetodik,tillskillnadmottraditionellametodiker,ärattdenärdesignadförattvara flexibelgenomhelautvecklingsprocessenvilketärviktigtvidprogramutveckling(schwaber,1997).enligt Schwaber(2003)kanintemjukvarautvecklasutanflexibilitetmeddagensföränderligateknologiskaoch ekonomiskakrav.ramverketkringscrumprocessenbeståravettscrumteam,event,artifakterochregler. Varochenavdessaharspecifikarollerochärviktigaförattprocessenskalyckas. PRODUKTBACKLOGG DAILY SCRUM 24 TIMMAR SPRINT-BACKLOGG 2-4 VECKOR EVENTUELLT SKEPPBART PRODUKTINKREMENT SPRINT Figur)1)R)Scrumprocessen) Event) )sprinten,)daily)scrum,)review)och)retrospective) Event som används i scrum är sprinten, sprintplaneringen, daily scrum, sprint=review och sprint= retrospective (Sutherland & Schwaber, 2013). Event är designade för att skapa transparens i scrumprocessenochlyckasinteteametimplementeradessasåminskarmöjlighetentillinsyn(sutherland &Schwaber,2013).Vidutvecklingenavwebbapplikationenanvändessamtligatyperavscrum=event,men detfinnsskillnadermellanteorinochhurdefaktisktimplementeradesiprojektet.
9 Linköpingsuniversitet Institutionenfördatavetenskap 6 Iscrumdelasprojektetuppiiterationersomkallassprintar.Varjesprintbörvaraungefärfyraveckorlång ochinledasmedettplaneringsmötedärdelmålsättsuppochsprintbackloggenuppdateras(sutherland& Schwaber, 2013). Under en sprint sker utvecklingsaktiveter (Schwaber, 1997) och teamet bygger på produkten inkrementellt (Sutherland & Schwaber, 2013). Sprinten avslutas med att ett fungerande produktinkrement levereras och att teamet samlas för att blicka tillbaka på sprinten i ett sprint= retrospective (Schwaber, 1997; Sutherland & Schwaber, 2013). I det utförda projektet varierade sprintlängden mellan två och fem veckor, vilket var längre än vad Schwaber och Sutherland rekommenderar,dockföljdessamtligaandrapunkterunderhelaprojektet. SPRINT 0 SPRINT 1 SPRINT 2 SPRINT 3 FÖRSTUDIE UTVECKLING & IMPLEMENTATION Figur)2)R)Utvecklingsprocessen) REFAKTORERING Utvecklingenligtscrumbeståravtreövergripandefaser:Pregame,Game,ochPostgame,dessafaserhar till stor del följts under projektet som pågick genom fyra stycken sprintar, sprint 0 till 3 (Se Figur 2). Pregame=faseninnefattadeplaneringavsystemarkitekturochdesignavsystemetochpågickundersprint 0,dåförstudieochplaneringgenomfördes,ochunderförstadelenavsprint1,dåsystemdesignengjordes. Game=faseninnehållerflera,iterativautvecklingssprintar.Game=fasenidettaprojektpågickundersprint 1och2,dådenfaktiskautvecklingenavapplikationenskedde.UnderPostgameskaförberedelserinför den slutgiltiga lanseringen, ska dokumentation och testning göras. (Schwaber, 1997). I detta projekt sammanföllsprint3medpostgame=fasen,härutfördesanvändartester,refaktoreringochförbättringav kod. För en detaljerad sammanställning av sprintarnas innehåll hänvisas läsaren till kapitel 2.2 Utvecklingsprocessen. Underscrumprocessensamlasteametförettdailyscrum,ett15minutersmöteförattplaneranästadygn (Sutherland&Schwaber,2013).Genomdailyscrumfårteammedlemmarnaenvärdefullförståelseförhur hela projektet fortskrider, det hjälper teamet att bli självorganiserande. Daily scrum ska genomföras ståendeochallamedverkandesvararpåtrefrågor(gannon,2013;sutherland&schwaber,2013): Vadgjordejagigårsomhjälpteutvecklingsteametattnåsprintmålet? Vadskajaggöraidagföratthjälpautvecklingsteametattnåsprintmålet? Serjagnågotsomhindrarmigellerutvecklingsteametfrånattnåsprintmålet? Iscrumansvarardenvaldascrummasternförattdailyscrumhållertidsramen,menansvaretföratthålla mötetliggerpåteametistort(sutherland&schwaber,2013). Underprojektetskeddedailyscrummellan3=5gångerpervecka.Närutvecklarnapresenteradeproblem så löstes dessa ofta under mötet istället för efteråt, vilket medförde att mötena blev långa och ofokuserade. Sprint=reviewochsprint=retrospectiveärtvåeventsomhållsislutetavvarjesprint.Vidsprint=reviewi detta projekt så har teamet presenterat produktinkrementet för examinator och om nödvändigt, reviderat produktbackloggen. Syftet med sprint=review är att diskutera framgångar och bakslag, att diskuteraförändradmålbildochframbringafeedback(schwaber,2003;sutherland&schwaber,2013).en
10 Linköpingsuniversitet Institutionenfördatavetenskap 7 sprint=reviewskavaraungefärfyratimmarfören4=veckorssprint(sutherland&schwaber,2013),vilket inteharföljtsividutvecklingenavwebbapplikationendåmötenavarkortare. Sprint=retrospective är en möjlighet för teamet att samlas och reflektera över den gångna sprinten (Gannon,2013;Sutherland&Schwaber,2013).Eventetberäknasatttatretimmarattgenomförafören 4=veckorssprint(Sutherland&Schwaber,2013),menharvaritkortareviddettautvecklingsprojekt.Syftet medmötetärattidentifieraförbättringsåtgärdersomkaninkorporerasiarbetsprocesseninästasprint ochattskapaenplanförattimplementeradessa(sutherland&schwaber,2013) Artefakter) )produktg,)sprintbacklogg)och)produktinkrement) Scrum består också av artefakter. Artefakterna är produktbackloggen, sprintbackloggen och produktinkrementetochärdesignadeförattmaximeratransparens,dvsunderlättaöverblickochkontroll förprojektet(sutherland&schwaber,2013).viddettaprojektharsamtligaartefakteranvänts. Produktbackloggenbestårutavenprioriteradlistaöverallakravförsystemet,såkalladeuserstories.En userstoryärenfunktionförklaradgenomettmöjligtanvändarscenario.dessakanvarabådefunktionella ochicke=funktionella(gannon,2013).produktbackloggenärdenendakällanförfunktionalitet,kraveller uppdateringarsomskatillförasprodukten(sutherland&schwaber,2013).detärviktigtattbackloggenär synligförteameteftersomattdetärenrealtidsbildavarbetetsomskagörasundersprinten(sutherland &Schwaber,2013).Vidutvecklingenavwebbapplikationenanvändesenwebbaseradscrumtavlaföratt synliggöraprodukt=ochsprintbacklogg. Sprintbackloggen är den del av produktbackloggen som är aktuell att utveckla under sprinten samt en planförhurproduktinkrementet,defunktionersomfärdigställtsundersprinten,skainkorporerasmed tidigare utvecklade delar (Sutherland & Schwaber, 2013). Under projektet har inte sprintbackloggen använtstillfullo,denharsaknatplanförinkorporeringenavproduktinkrementet Projektteamet) I scrum är projektteamet ett självorganiserande och tvärfunktionellt team som består av tre till nio medlemmarfördeladepåföljanderoller(gannon,2013;sutherland&schwaber,2013): Scrum) master) ansvararförattupprätthållaimplementationenav scrum ochtaborthinderför utvecklingsteamet.dåteammedlemmarnaibörjanavprojektetönskadeerfarenhetirollensom scrummasterfördeladesansvaretveckovis.vidinledningenavsistasprintenvaldeteametattgå övertillenpermanentscrummaster. Produktägaren är enskilt ansvarig för att produktens värde maximeras samt ansvarar för produktbackloggen. Produktbackloggen ska vara uppdaterad, tydlig och transparant. I det här projektetfannsingenproduktägarevilketinnebarattproduktbackloggenbehandladesinterntav utvecklingsteamet. Utvecklingsteamet ska arbeta självorganiserat och tvärfunktionellt med gemensamt ansvar för produktinkrementen.iteamettillåtsingadelteamellerhierarkier,endastrollensomutvecklare ärtillåten.(sutherland&schwaber,2013)underdettaprojektharvarjeutvecklareoftaarbetat självständigtmedvarsinuppgift.endelstörremomenthardockdelatsmellanflerautvecklare. Detärutvecklingsteametsomansvararförsprintbackloggensamtförattgöratidsuppskattningar förprojektet(sutherland&schwaber,2013).
11 Linköpingsuniversitet Institutionenfördatavetenskap 2.2 Utvecklingsprocessen) Projektuppstart) Projektet startade med att alla i gruppen möttes för att lära känna varandra. Varje teammedlem fick i uppdrag att göra en egen journey line för att beskriva sitt liv och sina tidigare erfarenheter. Medlemmarnafickävenredogöraförsinamålochförväntningarinförprojektet.Närteametlärtkänna varandraochsammanfogatindividuellamåltillgemensammaskrevsettgruppkontrakt. 2.3 Konceptgenerering) Eftersomdetintefunnitsnågonexternbeställareellernågratydligakravpåvadsomskulleutvecklasfick idéerförwebbapplikationentasframinnanutvecklingkundepåbörjas.detfinnsflertaletmetoderföratt snabbtgenererakreativaidéerförvidareutvecklingavettkoncept,tillexempelindividuellt,brainstorming ellerbrainwriting.idettaprojektanvändesmetodenbrainwriting.brainstormingärenavdevanligaste metoderna(heslin,2009;weisskopf=joelson&eliseo,1961)dockriskerardenledatillattmedlemmari teametintevågaruttryckasinaidéerdådeoftablirutvärderadedirektvidframläggning(heslin,2009). För att öka produktiviteten och generera så många unika förslag som möjligt kan istället metoden Brainwritinganvändas(Heslin,2009).Brainwritingenutfördesgenomattgevarjemedlemfemminutertill attskrivanertreegnaidéerpåvarsittpappersomcirkuleradesettvarvigrupptillsdetattvarjemedlem fåttfemminutervarpåvarjepapper.faktumärattdetgenereradesintesåmångaidéerdådetuppstod dubbletter och mot slutet lämnades rutor tomma på grund av brist på idéer. En av fördelarna med brainwritingärattdeteliminerareffekteravdominantagruppmedlemmar,gruppnormerocheventuella konflikterinomgruppen(heslin,2009). Näridéernasammanställtsrangordnadesdeitrekategorier=nödvändig,&önskvärd&eller&onödig=utifrån vadslutanvändarnakundetänkasviljaha.förattsedangåfrånidétillnågotmerkonkretgjordesenså kallad konceptdivergens, då designkoncept för några utvalda nödvändiga funktioner togs fram. Medlemmarna i gruppen presenterade sin egen skiss på förslag till hemsidans mest nödvändiga funktionerochutseende,somexempelvisdesignprocessen.sedangjordeskonceptvärderingdärdeolika förslagen vävdes samman och formade den slutgiltiga designen som sattes som ett mål för produkten (bilaga1 Skisserochprototyp).Utgångspunktenvidframtagandetavdesignenlågvidattgränssnittet skulleupplevassomintuitivtochanvändarvänligt.enligtblairearlyochzenter(2008)ärdetenvagoch bristfälligutgångspunktdådenintesägernågotomhurintuitivitetochanvändarvänlighetkanuppnås User)stories)och)sprintplanering) Näridéersamlatsochrangordnatsbörjadearbetetmedattfyllapåproduktbackloggen.Förattgöradet skrevsuserstoriesförattmotsvaraidéerna.userstoriesärvanligtförekommandevidagilutvecklingdå detgeretttydligtfokuspåslutanvändaren.userstoriesskrivssomenuttryckutifrånvadslutanvändaren vill utföra och vad slutresultatet ska bli. Det minskar risken för missförstånd mellan beställare och utvecklare.userstorieskanävengöradetenklareattplaneratidsrymdenförprojektet.(cohn,2004) Näruserstoriesskrevsgjordesdeteftermallen: Som&en&.&vill&jag&.&&så&att&jag&.& Ettexempelpåenuserstoryförfunktionenkundregistreringär: Som$en&kund&vill$jag&kunna®istrera&ett&konto&så$att$jag&kan&spara&mina&uppgifter&och& genomföra&köp&snabbare&i&framtiden& &
12 Linköpingsuniversitet Institutionenfördatavetenskap 9 Förattsäkerställatransparensärdetärviktigtattallaigruppenharsammadefinitionpånärnågontingär klart(sutherland&schwaber,2013).närvarjeuserstoryvarskrivenskrevsacceptansbeskrivningarför varje user story för att tydliggöra för varje enskild utvecklare vad funktionen skulle uppfylla för slutanvändaren.deföljdemallen: Givet:.När: Setillatt:. Ettexempelpåenacceptansbeskrivningförfunktionenkundregistreringär: Givet:&Att&kunden&vill®istrera&sig.&När:&Kunden&genomför&sitt&köp.&Se$till$att:&Kunden&kan& skapa&ett&konto.& FörfullständiglistapåuserstoriesochacceptansbeskrivningarseBilaga2=Produktbacklogg Deflestaprojektförmjukvaruutveckling,uppmot60=80%,avslutasinteitid(Mahnič&Hovelja,2012). Förattfåenbraestimeringpåtidsåtgångenförvarjeuserstoryochisinturförhelaprojektetspelades planning poker. Planning poker utförs i grupp och hjälper till att identifiera tidskrävande delar i ett momentsomenskildaindividerkanskeintetänkerpå(mahnič&hovelja,2012).planningpokerspelades genomattallaiteametsamtidigtpresenteradeettkortmedensiffrasomrepresenterardentiditimmar som teammedlemmen uppskattade att utvecklingsmomentet skulle ta. Många gånger skilde sig tidsestimeringarna åt, teamet tog då ett gemensamt beslut baserat på argumentation från respektive deltagare Utveckling)och)implementering)av)applikationen) KLIENT SERVER STORY STORY STORY DB SCRUM TEAM #1 SCRUM TEAM #2 Figur)3)R)Tvärkomponentutveckling) Underprojektetsgånghardetarbetatsimindreutvecklingsteamomentilltvåpersoner,varjeutvecklare har ensamt ansvarat för att implementera den user story man plockat från produktbackloggen. Traditionelltbrukarvarjekomponentienapplikation,idettafalldatabas,serverochklient,utvecklasav olikautvecklingsteam.detkräverhöggradavsamarbetemellandeolikateamenochfungeraringetbra fördeuserstoriessomkräverutvecklingiallakomponenter.vidagilutvecklingärdetdärförbättreattett och samma team utvecklar i alla de komponenter som en user story kräver (se Figur 3 = Tvärkomponentutveckling). Utvecklarna har därför arbetat mer oberoende av varandra, det har elimineratdentidsomutvecklarnaväntatpåattenannanutvecklareskablifärdig.
13 Linköpingsuniversitet Institutionenfördatavetenskap 10 Isambandmedattnyamodulerutveckladesskeddeodtestning.Efterattenmodulvarfärdigutveckladså flyttades motsvarande kort till kolumnen Peer& review på utvecklingsteamets scrumtavla varpå övriga teammedlemmar ansvarade för att koden kontrollerades. I kodtestningen ingick att kontrollera att modulenfungeradeochattkodenuppfylldedenstandardsomsattesuppibörjanavprojektet.denna testningskeddeheltmanuelltochutanautomatiseradetestfall.omdetbehövdesgöraförändringarså ansvarade utvecklarna bakom modulen för dessa. När tre utvecklare godkänt modulen flyttades kortet vidaretillkolumnenin&test&varpåacceptanstestergenomfördes. I de fall där det var applicerbart så tog acceptanstestning vid efter kodtestning. De moduler som representeradeenuserstorytestadesutifrånkorresponderandeacceptansbeskrivning.idettaprojektså genomfördes denna testning av utvecklarna själva och dessa gjorde individuella bedömningar om huruvida acceptanskriterierna uppfylldes. Vid acceptanstesterna användes samma system som för kodtestningen:omtreutvecklaregodkäntenmodulflyttadeskortetvidarepåscrumtavlan,idettafalltill Done. FörattkunnaflyttaenmodulelleruserstorytillDonesåkrävdesdetattettantalvillkorvaruppfyllda. Dessa fastställdes vid projektstart och kallades generellt sett för teamets& Definition& of& done. I detta projektansågsenmodulfärdigomdenuppfylldeföljandekrav: 1. Modulenuppfyllerdekrav(acceptanskriterierel.dyl)somiförvägspecificerats. 2. Modulenharkontrollerats/testatsavsamtligamedlemmarochfåtttregodkännanden. 3. Modulenärdokumenterad. VersionshanteringenunderutvecklingenharhanteratsmedhjälpavGit(se2.4.2Versionshantering=Git) sommöjliggöranvändandetavkontinuerligintegrationochleverans.detinnebärattutvecklademoduler löpandemedsåkortaintervallsommöjligtslåssammanmedövrigkodsamtidigtsomdethelatidenfinns en fungerande version av hela applikationen. Att ofta slå samman nya delar bidrar till att minska integrationsproblem senare i utvecklingen; vid programmering i större grupper är metoden en nödvändighetförattinteödslatidpåattsammanfogaolikautvecklareskod(abdul&fhang,2012).idet härprojektetharintekontinuerligintegrationochleveransanvändsfulltut.allutvecklingharskettpå utvecklarens egen dator och när utvecklaren själv ansett att den nya funktionen fungerat har koden slagitssammandirektmedhuvudapplikationen.dethardärförintealltidfunnitsenversionsomfungerat vidvarjetidpunkt Refaktorering) Syftet med refaktorering är att förbättra mjukvarans struktur utan att förändra funktionalitet eller beteende (Murphy=Hill, Parnin & Black, 2012; Wang, 2009). Refaktoreringen i det här projektet genomfördes i en dedikerad tredje sprint under utvecklingsprocessen. Enligt Veerraju, Rao och Murali (2010)finnsdettretyperavrefaktoreringsstrategier:Iterative&refactoring,&Refactoring&when&necessary,& Not&refactor.&Idettaprojektharmetodtvå,&Refactoring&when&necessary,använts. Fördelar med att genomföra refaktorering är att den möjliggör förbättring av mjukvarudesign, en mer uppstädad kod, finnandet av buggar, och underlättandet i vidareutveckling av kod (Veerraju, Rao & Murali,2010).Refaktoreringinnebärsamtidigtbådekostnaderochrisker(Sjøbergetal.,2013).Sjoberget al.(2013)menarattdetdärförärviktigtattundersökaomdetärlöntattrefaktorera.detvarintenågot somgjordesisambandmedrefaktoreringenidethärprojektetochärenmöjligförbättringsåtgärd. Veerraju,RaoochMurali(2010)anserattdetfinnstretyperavrefaktorering:Coderefactoring,Database refactoring och UI refactoring. Utav dessa har refaktoreringen i detta projekt fokuserat på Code&
14 Linköpingsuniversitet Institutionenfördatavetenskap 11 refactoring,&attförändrakällkod,ingaförändringartilldatabasdesignenellergränssnittetsutformninghar skett. Refaktoreringen av källkod kretsade kring tre kategorier: enhetlighet, läsbarhet och effektiviseringar. Exempel på enhetlighetsförbättringar var att en stor del av applikationens JavaScript skrevs om till att istället använda jquery och att använda gemensamma funktioner och variabler. Effektiviseringarsomgenomfördesvarexempelvisattminskaminnesanvändningenhosklientengenom attskrivaomjavascript,attminskabelastningenpåserverngenomattminskaantaletserveranrop,och attminskaresponstidengenomattminskaantaletdatabasanrop.effektenavrefaktoreringenupplevdes docksvårattuppskattakvantitativt. Martin Fowler & Kent Beck gav upphov till begreppet Code Smells, kodstrukturer som ansågs vara lämpliga för refaktorering (Schwaber, 2003). Exempel på Code Smells som återfanns i källkoden innan refaktoreringenvarblandannatduplicate&code,&long&methods,&lazy&class,&speculative&generality.&nedan följerenförklaringavdeolikakodstrukturerna:& Duplicate) Code är två eller flera kodavsnitt som har liknande funktionalitet och skulle kunna generaliserastillettavsnitt. Long) Methods innebär metoder som är alltför långa. Korta metoder ökar läsbarhet, förståelse samtfelsökning. Lazy)Classäröverflödigaklassersominteanvändsallsellerbarasparsamt.Detärdåbättreattta bortdessaellerslåsammandessaförattminskakomplexitetenisystemet. Speculative) Generality är kodavsnitt som tar hänsyn till spekulativa scenarion istället för att fokuserapåuppenbaraproblem. Duplicate&Code&ochLong&Methods,somåterfannsibådeJavaScript=ochPythonfiler,åtgärdadesdärde hittades.detsammagällerdockinteallkodavtypernaspeculative&generalityochlazy&class&eftersomden ansågs kunna vara värdefull om applikationens användningsområde skulle utökas. Kod som följde mönstretlazy&classvartillexempelklasserochinterfacevarsendafunktionärattgöradetlättareatt bygga ut applikationen. Den refaktorering som gjordes i projektet skedde sammanfattningsvis snarare utifrånavvägningariställetförutifrånfowlersklassificeringar. AttklassificerakodutifrånFowlersmetodärsystematiskmetodföratthittakodattrefaktorera(Shatnawi &Li,2006).DethardockvisatsattvissatyperavCodeSmellsintegårattkopplatillkvalitetenavmjukvara ellerattmertidmåsteläggaspåunderhållningavkod(sjøbergetal.,2013;shatnawi&li,2006).detfinns ävenosäkerheterkringrefaktoreringutifråncodesmells.enligtzhang,hallochbaddoo(2011)såärinte Code Smells ett noga undersökt område och det är oklart om det är värt att fokusera på dessa vid refaktorering.
15 Linköpingsuniversitet Institutionenfördatavetenskap 12 Nedanföljerkonkretaexempelpåkodförbättringarsomgenomfördesunderrefaktoreringen. Figur)4)R)JQuery)innan)refaktorering) Figur)5)R)JQuery)efter)refaktorering) Figur4ochfigur5visarexempelpåentypaveffektiviseringsomskeddeunderrefaktoreringen.Exemplet visarhurprojektetgicktillattanvändamereffektivaselektorerijqueryochbörjadeanvändachainingav selektorer. De nya selektorerna gör att sökningar i DOM=trädet kan bli upp till dubbelt så snabba och chaining, dvs. att flera operationer sker på samma objekt, medför att dokument inte behöver sökas igenomfleragångerionödan.denhärtypenavrefaktoreringharvarittypiskförrefaktoreringssprinten ochharskettisamtligajavascript=filer.
16 Linköpingsuniversitet Institutionenfördatavetenskap 13 Figur)6)R)Exempel)på)Long)Method) Figur6visarettexempelpåLongMethodsomåtgärdadesunderrefaktoreringen.Dennarefaktoreringhar varitenläsbarhetsförbättring:kodavsnittetslängdhalverades.sefigur7förresultatet. Figur)7)R)Long)Method)efter)refaktorering)
17 Linköpingsuniversitet Institutionenfördatavetenskap Metod)vid)användartestning) Användartestningengenomfördesefterattutvecklingenavnykodavslutats.Traditionelltsettärdethär den största delen av programvarutestning sker (Kumar & Geetha, 2013). I detta projekt föregicks användartestningenavettpilottestföratthamöjlighetatttautimeduppenbaratekniskaproblemoch tidenmellanpilottestochanvändartestvarungefärtvåveckor.underdennaperiodåtgärdadesnågraav deproblemsomupptäcktesunderpilottestet,menandra,kändaproblemfannsdockkvar. Testningen skedde utifrån TaskAbased& scenarios där användaren får ta del av en uppgift men inte hur uppgiftenkanutföras.dennatypavtestningvaldesförattfåenbildomhurintuitivwebbapplikationenär ochomenpotentiellanvändareklararavattanvändaapplikationen.wisniewski(2013)hävdaratttask= based scenarios är unika i det avseendet att de ger tydlig data på om användaren kan genomföra uppgiftenellerinte. Testningenskeddeviainternetochdatarapporteradetestdeltagarnasjälvaviawebbenkäter.Iochmed att observatörerna inte har tillgång till testdata i realtid och att det sker på distans så är detta en asynkron, avlägsen testmetod (Dray & Siegel, 2004) kring vilka det finns flera potentiella problem. Exempel på detta är att testens kvalitativa aspekter blir lidande och att självrapporteringen medför validitetsproblem(dray&siegel,2004). TestningenutgickfrånteknikenRetrospective&probingdärtestdeltagarnaförstfårutföraettscenariooch sedanutvärderaupplevelsenretrospektivt.dennametodäranvändbarnärmåletmedtestningenäratt undersöka hur deltagaren klarar av att använda webbapplikationen utan hjälp. Metoden har även nackdelar.willis(1999) menaratttestdeltagarevidretrospectiveprobingkankommaattfabriceraett svarpågrundavattdeinteminnstestetordentligt.likvälseru.s.dept.ofhealthandhumanservices (2006)liknandenackdelardådetgerupphovtillsämredatanärtestdeltagarenintekommerihåg. Testen utformades med utgångspunkten att de skulle gå snabbt att genomföra, uppskattningsvis 20 minuter. En fördel med att utföra testningen på distans är att många upplever det som snabbare och enklare (Dray & Siegel, 2004). Det visade sig dock att testdeltagarna tog längre tid att genomföra uppgifterna än det var tänkt, i vissa fall den dubbla tiden. Forskning har visat att tiden mellan en undersökning och att testdeltagaren svarar påverkar antalet minnesfel i retrospektiva undersökningar (Ayhan&Işiksal,2005).Påsåsättkandelångatesternahainflueratsvaren Deltagare- Antalet deltagare har varit mellan 16 och 25, beroende på scenario. Tidigt i designprocessen är detta tillräckligtförattidentifieraproblemmednavigeringochövergripandedesign(u.s.dept.ofhealthand Human Services, 2006). För att kunna göra kvantitativ testning krävs dock fler deltagare för att kunna uppnå ett stort konfidensintervall, vilket är en uppenbar svaghet med det genomförda användartestet (U.S.Dept.ofHealthandHumanServices,2006) Klassificering-av-problem- Innantestningensåskapadesklasserfördeproblemsomskullekunnauppståvidanvändartestningen.Vid klassificeringensåföljdesriktlinjeruppsattaavusability.gov.dettaiformavdekategoriersomanvändes kompletterat av klassificeringen av felen (U.S. Dept. of Health and Human Services, 2006). Till de olika problemtypernaskapadessedanenuppdelningmedåtgärdsförslagenligtnedan. Kritiska)problem:Problemsomförhindrarattkundengenomföraettscenarioellerproblemsom görattviktigfunktionalitetintegårattanvända. Åtgärd:Dessaproblemskaallaåtgärdas.
18 Linköpingsuniversitet 15 Institutionenfördatavetenskap Allvarliga)problem:Problemsomförhindrarattkundenkanutföranågotscenariopåettenkelt ochintuitivtsätt. Åtgärd:Dessaproblemskadiskuterasochåtgärdasomdetansesnödvändigt. Mindre)problem:Problemsomintepånågotsätthindrarkundenattanvändaapplikationen,men ändåharupplevtsförvirrandeelleregendomligt. Åtgärd:Demindreproblemenska,imånavtid,diskuterasoch,omdetansesvaranödvändigt, åtgärdas Beskrivning-av-scenarion- Följandescenariontasuppianvändartestet: 1. Genomföra)ett)köp)utan)att)logga)in) Testdeltagarenfårsättasiginisituationenatthonvilldesignaochköpaentröjamedhjälpav webbapplikationen. Vid testet lades särskild vikt vid information kring huruvida deltagaren lyckadesgenomföraettköputankritiskaellerallvarligaproblem. 2. Registrera)ett)konto)och)kontrollera)kundinformation) I detta scenario så ska testdeltagaren registrera ett konto sedan kontrollera den personliga information hon registrerade sig med. Scenariot är utformat för att ge signaler kring hur registrering och inloggning upplevs. Genom att testdeltagaren ombeds kontrollera sin informationsåskatestetocksåundersökaomdeltagarenhittarsinprofilsida. 3. Använda)inspirationssidan)för)att)kommentera)en)tröja.) ) Idettredjescenariotfårtestdeltagarenuppgiftenattkommenteraenavdeexisterandetröjorna. Förattgenomföradettamåstedeltagarnahittatill communityvyn, logga in som en användare ochsedanskrivaenkommentar.) DefrågorsomanvändesitestningenbifogasiBilaga3 Frågorvidanvändartestning Testparametrar- Testningenvarutformadförattsamlainbådekvalitativaochkvantitativaparametrar.Testparametrarna ärinspireradeavu.s.dept.ofhealthandhumanservices(2006)samtwisniewski(2013). Fördekvantitativaparametrarnavaldesdetattsamlaindatapåomdeltagarenharlyckatsgenomföra uppgiften,omdenlyckadesutanfelochhurlångtiddenspenderadepåuppgiften.detvaldesävenatt kolla på hur användaren navigerade sidan under varje scenario och jämföra detta med den tänkta lösningsvägen.isambandmedtestningengjordesettvalattdefinierakritiskaochicke=kritiskafel,vilka sedanjämfördesmeddefelsomanvändarenstöttepå.påsåsättärdekvantitativatest=parametrarsom valdes att sätta fokus på successful& task& completion,& critical& and& nonacritical& errors,& errorafree& rate& and& time&on&task. Isambandmedvarjetestfickdeltagarenocksågeenfriareutvärderingomuppgiftenochhurdeupplevde applikationen.datafråndessavärderingarvartänktattliggatillgrundfördenkvantitativautvärderingav användarupplevelsen.förattgörautvärderingensåfrågadesanvändarenomnågotupplevdesförvirrande och om det fanns något de ville förändra. Den friare utvärderingen gav feedback i form av subjective& measuresochiformavrekommendationer.
19 Linköpingsuniversitet Institutionenfördatavetenskap )Utvecklingsmiljöer) Nedan följer en beskrivning av de verktyg som användes för utveckling under projektet, bland annat versionshantering,integreradeutvecklingsmiljöer,molnplattformsamtprojektsstyrningsapplikation Programeringsspråk)och)ramverk) FörimplementationenavwebbapplikationenskrevsmajoritetenavkodenispråketPython.Pythonärett lättviktsspårk med lättläst syntax. (Lutz, 2010) För att underlätta kodskrivandet implementerades microramverketflasksomärbyggtförattökaanpassningsbarhetutifrånanvändarensegnapreferenser, till exempel kan både relationsdatabaser och NOSQL databaser användas. Flask är beroende utav två delar: Werkzeugs för webbservergränssnittet, samt Jinja2 för rendering av HTML. Utöver stöd för webbservergränsnittochrenderingavhtmlharinteflasknågotinbyggtstödförytterligarefunktionalitet såsom databas access och formulärvalidering. Istället finns möjlighet att implementera tredjepartsutveckladfunktion.(grinberg,2014) UnderprojektetharHTML5använtsförrenderingavgrafiskakomponenteriwebbläsarenochJavaScript haranvändsisyfteattkunnagörarealtidsmanipuleringavanvändargränssnittet. FöratthanterarelationsdatabasenharhanterarenSQLiteanvänts.SQLiteärengratisdatabashanterare somharenkelsyntaxochärlättförutvecklarenattbörjaimplementera.enfördelmedsqliteärattdet inte krävs någon server för att komma igång med databasen. Detta leder till att fokus kan läggas på implementation istället för installation. Det krävs heller ingen konfiguration från slutanvändaren. (Kreibich,2010) Versionshantering)G)Git) Versionshanteringärettsättattskapasäkerhetskopioravettprojekt.Detgörsgenomattutvecklarenvid förändringarikodensparardessaförändringarsomögonblicksbilderochsedanläggerdessaiettexternt fillager (Loeliger & McCullough, 2012). Versionshanteringen sköts i utvecklingsmiljön genom ett tredjepartsprogram.idettaprojektanvändesgit.versionshanteringärenfundamentaldeliutveckling när flertalet personer är inblandade. Det är av högsta vikt då utan versionshantering blir återgång vid misstagikodennärmastomöjligochsammanslagningavtvåutvecklareskodförsvåras.(chatzigeorgiou& Manakos,2014) Gitärettverktygmedfullversionshanteringsfunktionalitet.Dåmjukvaranäravanceradblirdensvårlärd. Dettakanledatillproblemsåsomfelaktigakodsammanslagningarochivärstafallförloradkod.Attstora bitarkodkangåheltförloradärenavdestoranackdelarnamedgit.(loeliger&mccullough,2012) Molnplattform) )Openshift) Dåwebbapplikationen,enligtkravspecifikation,skafinnastillgängligviainternetbehövdesenplattform där sidan kunde laddas upp. För att uppfylla detta krav användes en gratis plattform, Openshift. Då användandet av molnplattform för webbapplikationer idag använder en prissättningsmodell där användarenbetalarfördenkapacitetsomönskasgerdettaattkapacitetenpågratisplattformarärlåg. (Anetal.,2014) Integrerad)Utvecklingsmiljö)G)Pycharm) Till detta projekt användes den integrerade utvecklingsmiljön PyCharm. Konceptet integrerad utvecklingsmiljö syftar på en mjukvara för programmering. En integrerad utvecklingsmiljö innehåller, utöver textredigeraren, också stöd för kompilator, "debugger" samt versionshantering. Integrerade
20 Linköpingsuniversitet Institutionenfördatavetenskap 17 utvecklingsmiljöer har fördelen, kontra en klassisk textredigerare, att skapa ett flöde i utvecklandet då användarenintebehöverbytamellanolikamjukvaror.deninbyggdadebuggernhjälpersamtidigttillmed attenklarekodfelundviks,såsomstav=ellersyntaxfel.(cirino,2012) Övriga)utvecklingsverktyg) )Google)Chrome) FörkontrollochrealtidsfelhanteringavapplikationenanvändesdeinbyggdautvecklarverktygeniGoogle Chrome. Den består av komponenterna: element, nätverk, tidslinje, profiler, resurser, granskning och konsol. I detta projekt har komponenterna element och konsol använts. Konsolen är skapad likt den inbyggda terminalen i operativsystem och kan användas för spårutskrifter och testmeddelanden. I elementkomponenten kan en granskning göras av applikationen där relationer mellan HTML, CSS samt JavaScriptkanöverblickasochredigeras.(Chaffer,2013) Projektstyrningsapplikation) )Trello) Trelloärenwebbaseradprojektstyrningsapplikationsom,utifrånprojektetskravbild,hartillräckligtstöd för vald projektform, vilket i detta projekt är scrum. Trello används genom att teamet skapar sin egen projekttavla.påtavlankansedankortmedolikauppgifterfästasochsorterasutifrånvartdessabefinner sigigenomförandet.
21 Linköpingsuniversitet Institutionenfördatavetenskap 18 3 Systemöversikt) Shrtärene=handelsapplikationsomerbjuderkundenmöjlighetattdesignaenunikt=shirt,vidsidanom lever communityn Inspiration med de köpta t=shirtarna i centrum. Produktvisionen har brutits ned i mindre delfunktioner och lagts till i en produktbacklogg. I figur 8 presenteras en förminskad produktbacklogg med utvalda funktioner som kommer att behandlas närmare i detta kapitel. För en fullständigproduktbacklogghänvisasläsarentillbilaga2=produktbacklogg. DESIGN KÖP INSPIRATION REGISTERING& INLOGGNING ADMIN DESIGNVERKTYG KUNDKORG LIKE KUND- REGISTERING LÄGGA TILL ATTRIBUT FÖRHANDSVISNING KOMMENTERA INLOGGNING KUNDÖVERSIKT MULTIVIEW PREVIEW LIVEFEED LATEST CREATIONS RESET PASSWORD ADMINISTRATION AV ORDRAR JÄMFÖRA T-SHIRTS LIVEFEED YOUR FAVOURITES BYTA LÖSENORD SLUMPFUNKTION WEBBFEED OUR FAVOURITES RESET DESIGN Figur)8)R)Förenkling)och)kategorisering)av)produktbacklogg) 3.1 Design) Framtagningen av prototypen (se Bilaga 1 Skisser och prototyp) för designverktyget baserades på hemsidormedtjänstenattdesignasinegenprodukt.underanalysenavhemsidornaladesmycketfokus på de element som ger en intuitiv hemsida. Det som står till grund för prototypen har uttryckts i punktlistannedansompositivaaspektersomskaimplementerasochnegativaaspektersomskaundvikas. Dessaärinspireradefrånkonkurrenternawww.crownstudent.comochwww.spreadshirt.se. Ska)implementeras:) Geanvändarenentydligöverblickpåfärgvalen Parametrarnaskavarasamladepåensidamedtillhöranderullista Enförhandsvisningmedrealtidsuppdatering
22 Linköpingsuniversitet 19 Institutionenfördatavetenskap Erbjudaalternativattseproduktenfrånolikavinklar Knappenattläggaproduktenikundkorgenskavaratydligtframhävd Ska)undvikas:) Ettlodrättuppläggavparametrarnakanbliförlångt;parametrarupplevssomdehopparuppoch nedisidannäranvändarenrullatnedenavparametrarna. Förmångavalfördesigngerettrörigtintryck Förekomstenavinformationsominteberördesignprocessenupplevsöverflödig Utseendetpådesignsidanharvarittrogetdessprototyp.Heladesignprocessenharanpassatsiettfönster medettvågrättuppläggavparametrar.knappenförattläggat=shirttillkundkorgenärframhävdbåde storleks=ochfärgmässigtförattsubtiltuppmanatillköp.samtligaanalyspunkterfrånovanpunktlista Ska implementeras och Ska undvikas har tagits i hänsyn till såväl i prototypen som i den slutgiltiga webbapplikationenshrt. 1. Färgval för parametrar 2. placering av ficka 3. placering av logga 4. val av krage 5. val av storlek 6. val av parameter 7. multiview preview 8. jämföra t-shirtar 9. slumpfunktion 10. startover design 11. lägg i kundkorg 12. förhandsvisning 13. tidslinje för köpprocess 14. nedräknare 15. kundkorg 16. inloggning 17. registrering Figur)9)R)Designsidan)med)numrerade)element) designverktyg&a&"som&en&kund&vill&jag&kunna&välja&färg,&modell,&mönster,&tryck,&bröstficka&och&knappar&på& en&tröja&så&att&jag&kan&skapa&en&unik&tröja&ingen&annan&har"& förhandsvisning& A& "Som& en& kund& vill& jag& kunna& se& hur& tröjan& jag& designar& förändras& i& realtid& så& att& designprocessen&blir&enkel&för&mig"&
23 Linköpingsuniversitet Institutionenfördatavetenskap 20 Ienlighetmedproduktbackloggenstvåtopprioriteradeuserstorieshardetutvecklatsettdesignverktyg ochenförhandsvisningpåt=shirten.designverktygetutgårifrånt=shirtobjektettänktsomfemseparata parametrar: framsida, baksida, högerarm, vänsterarm samt krage, där varje parameter har en egen uppsättning färgval. Förutom färgkoderna finns möjlighet att välja placering av logga och ficka samt t= shirtensstorlekochkragmodell.varjedesignvalbetonasvisuellt.ifigur9framgåraktuellfärgpåframsida, placeringenavlogga,storleksamtkragmodellavdeskuggadekanternapåknapparna.designupplevelsen kompletteras med en förhandsvisning på t=shirten vilket ändras i realtid och agerar genväg till designverktygetsparametrarviaklickpåönskaddelpåt=shirten. Fyra lägre prioriterade user stories med syfte att förenkla designprocessen hann bli realiserade på webbapplikationen.deframgårifigur9sompunkt7,8,9och10. multiview)preview)a&"som&en&kund&vill&jag&kunna&se&tashirten&från&olika&vinklar&så&att&jag&kan&bli&nöjd&med& mitt&köp" jämföra)trshirtar)=&"som&en&kund&vill&jag&kunna&jämföra&flera&tröjor&så&att&jag&enkelt&kan&välja&mellan&flera& alternativ" slumpfunktion)a&"som&en&kund&vill&jag&kunna&slumpa&fram&en&tröja&för&att&få&hjälp&med&min&design" startover)design)a&"som&en&kund&vill&jag&kunna&börja&om&designprocessen&med&en&standar&vit&tashirt" För att säkerställa att användaren beställer en unik t=shirt unikvalideras designen när användaren designar.förattvalideraattvarjet=shirtärunikharenunikvaliderareimplementeras.unikvalideraren validerar kombinationen mellan färgerna på parametrarna, placering av ficka samt kragmodell, den utesluterplaceringavloggaochstorlek.näranvändarenvaltenkombinationsominteärunikinaktiveras kundkorgsknappenochenrödvarningstextdykerupp.textidentifikationenavfärgernafärgasrödavilket indikerarpåattvaletavdenfärgengenererarent=shirtsominteärunikochdärmedinteärmöjligför köp. 3.2 Köp) Figur)10)R)Köpprocessen)i)Shrt.)
24 Linköpingsuniversitet Institutionenfördatavetenskap 21 Förattrealiserakonceptetförsäljningfinnsenköpprocesssomärsummeradavdetrestegenverify/edit, shipping/paymentochsummary.detframgåriformaventidslinjelängstnedpåsidan(sepunkt13figur 9)vartiköpprocessenanvändarenbefinnersigi.Efterattanvändarenlagtdesignentillenkundkorgkan användarenväljaattdesignaennyellerattfortsättatillverify/edit.kundkorgsvyniverify/editerbjuder överblickpåsparadet=shirtarochmodifieringsmöjligheter.närönskademodifieringarärgjordanavigeras användarenvidareiköpprocessentillifyllningenavformuläretishipping/payment.ettvalideringssystem harimplementeratsförinmatningenavfälteniformuläretochuppvisarenvarningnäranvändarenfyllti ogiltigdata.påsistastoppetavköpprocessensammanfattasanvändarensorderundersummary.ärden uppgivna ordern rätt kan användaren slutföra köpet. Har köpet registrerats utan problem dyker ett dialogfönsteruppsombekräftarkundensköp. kundkorg)a"som&en&kund&vill&jag&kunna&designa/köpa&flera&tashirtar&och&kunna&radera&ickeaköpta&tashirtar& efter&vidare&jämförelser" Kundkorgenharkapacitetförflerat=shirtar,ikundkorgentillåtsraderingochmodifieringavsparadet= shirtar.inavigeringsmenynfinnsenförenkladversionavkundkorgenmedmöjlighetattraderaspecifikat= shirtarutanattbehövagåinpåkundkorgen(sepunkt15ifigur9samtfigur11). Figur)11R)Förenklade)versionen)av)kundkorgen)i)navigeringsmenyn.) 3.3 Inspiration) Förutom konceptet e=handelsapplikation är Shrt en webbapplikation med en egen community för interaktionmellananvändare.aktiviteternaiinspirationssidankretsarkringdeköptadesignernaochhari avsiktattinspireraskapandetavnyadesignersamtstärkagemenskapenhosshrtanvändarna. likerfunktion)a&"som&kund&vill&jag&kunna&"likea"&tashirtar&på&communityn&så&att&andra&kan&se&vilka&tashirtar& jag&gillar" kommentarsfunktion)a&"&som&en&kund&vill&jag&kunna&kommentera&på&tashirtar&på&communityn&för&att& kunna&ge&feedback&till&andra&användare" Enenkeluniversalikonförpositivinställningochbeundran,somanvändsavvärldskändaplattformarsom Facebook, Youtube och Instagram, är Tummen upp. Ikonen används därför som symbol för like=
25 Linköpingsuniversitet Institutionenfördatavetenskap 22 funktionen på Inspirationssidan. För att erbjuda ett komplement till "like"=funktionen infördes ett kommentarsfältundervarjet=shirt. Livefeed)"latest)creations")A&"Som&en&kund&vill&jag&kunna&se&de&senast&köpta&tAshirtarna" Livefeed)"your)favourites")A&"Som&kund&vill&jag&kunna&se&vilka&tAshirtar&som&är&de&mest&populära" Webbfeed)"our)favourites")A&"Som&kund&vill&jag&kunna&se&vad&redaktionens&favoritval&av&tAshirt&är" Figur)12)R)En)inblick)I)inspirationssidan) Inspiration presenterar t=shirtar under tre kategorier (se Figur 12 = En inblick I inspirationssidan). Den första kategorin, "latest creations" visar alltid de tre nyaste t=shirtar som är köpta. Topp tre som har samlatihopflestgillamarkeringaravanvändarnakategoriserasunder"yourfavourites".sistakategorinär "our favourites" och avslöjar de tre t=shirtar Shrt har valt ut som redaktionens favoriter. I webbapplikationenharadministratörensinloggningmöjlighetattutsekandidaternatill"ourfavourites". 3.4 Registrering)och)Inloggning)) kundregistrering)a& Som&en&kund&vill&jag&kunna®istrera&ett&konto&så&jag&kan&spara&mina&uppgifter&och& genomföra&köp&snabbare&i&framtiden" funktion)för)inloggning)a&"som&en&kund&vill&jag&kunna&logga&in&och&ut&från&mitt&konto&så&jag&kan&komma&åt& min&profil&när&jag&besöker&sidan" Webbapplikationen tillåter köp oavsett om användaren är registrerad eller inte. Förmånen som registrerad användare är att inmatade kunduppgifter från användarprofilen kopieras automatiskt till formuläret i shipping/payment. Endast registrerade användare har åtkomst till gilla= och kommentarsfunktionerna tillhörande Inspirationsdelen. Registreringen kräver att användaren fyller i användarnamn,e=postochlösenord.resterandeanvändaruppgifterkanfyllasiunderregistreringsfasen menärickeettkrav.efterenlyckadregistreringutförseninloggningmedanvändarnamnochlösenord. återställa)lösenord)a&"som&en&kund&vill&jag&kunna&återställa&mitt&kontolösenord&så&jag&kan&logga&in&om&jag& glömmer&mitt&konto" byta)lösenord)a&"som&en&kund&vill&jag&kunna&byta&lösenord"
26 Linköpingsuniversitet Institutionenfördatavetenskap 23 Inloggningsfönstrethartagithänsyntillmedlemmarsomglömtsittlösenordocherbjuderentjänstsom skickar ett mail för återställning av lösenordet. Byte av lösenord finns tillgängligt i den inloggade användarensprofilsida. )
27 Linköpingsuniversitet Institutionenfördatavetenskap Admin) För administratören erbjuder webbapplikationen funktioner för modifiering och överblick i kunddata. Administratörenharenegeninloggningsomloggarinpåkontotföradministratörsvynmedåtkomsttill funktionerförhanteringavhemsidan. tilläggning) av) attribut) A& "Som& administratör& så& vill& jag& kunna& lägga& till& nya& färger& och& mönster& till& ea handelsapplikationen&så&att&jag&kan&hålla&butiken&uppdaterad.") kundöversikt) A& "Som& administratör& vill& jag& kunna& ha& en& strukturerad& översikt& på& samtliga& registrerade& användare" administration)av)ordrar&a&"som&administratör&vill&jag&kunna&administrera&alla&kunders&ordrar&så&att&jag& kan&hjälpa&till&vid&eventuella&problem" Figur)13)R)Admin)funktionen)för)att)lägga)till)attribut.) För att skapa ett skalbart designsystem är webbapplikationen uppbyggd på ett sätt som tillåter administratörentilläggningochborttagningavattribut(sefigur13).iövrigtsaknarinteadministratörsvyn någon av de funktioner som en registrerad användare har, utan innehåller dessutom samtliga administrativafunktionersomexempelvisöversiktpåregistreradekunderochderaslagdaordrar.under informationenpådelagdaordrarnakanadministratörenändrapåorderstatus.vidhanteringenavurvalet
28 Linköpingsuniversitet Institutionenfördatavetenskap 25 för redaktionens topp tre Shrts presenterade i Inspiration finns redigering tillgänglig även den under administratörsvyn(sefigur14). Figur)14)R)Funktionen)för)att)välja)vilka)tRshirts)till) our)favorites )på)inspirationssidan)
29 Linköpingsuniversitet Institutionenfördatavetenskap 4 Systemspecifikation) 26 IdettaavsnittpresenterasShrtssystemspecifikationuppdelatidatabas,logikochanvändargränssnitt. 4.1 Databas) Viddesignenavdatabasenvarenviktigfaktorattlösningenskullevaraskalbar;attenkeltkunnautöka produktsortimentetvaravbetydandeviktiochmedattaffärsidénvaratterbjudaheltunikaprodukter. För att göra detta enkelt inkluderades funktionalitet att lägga till nya färger och modeller via ett administratörsinterface.detfinnsävenförberettförattkunnaläggatilltryckochdetaljer,såsomknappar, mendefunktionernaärintefulltutbyggda. I och med att skalbarhet med avseende på produktsortimentet var viktigt prioriterades också att underlättaförändringaravhurent=shirtrepresenteras.dettahargjortsgenomattdelauppt=shirteni zoner som representeras av egna relationer. Genom detta tillvägagångssätt kommer det bli lättare att läggatillnyaattributtillrespektivezonutanattövrigarelationerändras.dessutommedfördennadesign attnormaliseringsgradenökar,dvs.attmängdenredundantinformationidatabasenminskar. Enannanprioritetviddesignenvarattdatabasenvarsemantisktintuitiv;atttabellernastuplerhadeen tydligkopplingtilldetingderepresenteradeochattdetskullevaralättförståuppbyggnaden.elmasrioch Navathe (2010) menar att ju lättare det är att förklara semantiken hos en relation desto bättre är databasdesignen. Att ha en lättförståelig design ansågs viktigt både eftersom att utvecklarna arbetade tvärfunktionelltochdärförintenödvändigtvisvardelaktigaidatabasdesignen.detskulleocksåunderlätta underhållochvidareutvecklingavsystemet. Detharvisatsattnärdettashänsyntillsemantikviddatabasdesignkangradenavnormaliseringpåverkas (Stewart, 1978) och att det är möjligt att prioriteringen av intuitivitet inneburit att databasen inte är normaliseradtillhögstamöjligagrad. Databasen förwebbapplikationentillstörstadelnormaliseradtill graden BCNF eller högre. Undantaget är kundtabellen som har normaliseringsgrad 2NF. För att se hur databasenimplementeradessebilaga5,er=diagram. Känsliginformation,såsomlösenord,sparasnumedetthashavtypenMD5.Detfinnsenallvarligbristpå säkerhet kring MD5 och det bör inte användas i applikationer som har säkerhetskrav (Cid, 2006). Cid (2006) menar att samtliga applikationer som idag använder MD5 bör byta hashalgoritm. En uppenbar förbättringvoredärförattimplementeraettannan,säkrarealgoritm.hmac=sha256,scryptellerpbkdf2 ärexempelpåkrypteringsalgoritmersomkanansessäkraidag(owasp,2014). Lösenordenärinulägetosaltatade.Ettsaltärenslumpmässigtdatasomläggstillivarjelösenordinnan dekrypteras(morris&thompson,1979).ettsaltbörvara32eller64bitochmedverkartillattsäkerheten ökar främst genom att två identiska lösenord får olika hashvärden samt att även ett mindre komplext lösenordblirsvårtattknäcka.
30 Linköpingsuniversitet Institutionenfördatavetenskap Logik) Applikationen är implementerad i en två=nivås klient/server arkitektur, klientens webbläsare och en server.fördelarmedettanvändaentvå=nivåarkitektur,relativtenflernivåstruktur,ärattutvecklingenav applikationenoftagårsnabbare(gallaugher&ramanathan,1996).attiställetanvändatre=nivåer,klient= applikationsserver=databasserver,krävermerplaneringmenkangeupphovtillminskadeutvecklings=och underhållskostnaderpålängresikt(gallaugher&ramanathan,1996).attanvändaentre=nivåarkitektur kanävenunderlättavidparallellutveckling(gallaugher&ramanathan,1996). Figur)15)R)Beskrivning)av)applikationens)lager) På denna arkitektur är applikationen implementerad i tre lager: presentations=, logik= och datalager. Presentationslagret är placerat i användarens webbläsare, logiklagret och datalagret ligger båda på servernochdelarpåsåsättnivå.ilogiklagretfinnsapplikationensaffärslogikplaceradsamtmetoderför att nå datalagret, som i sin tur utgörs av databasanrop och den faktiska databasen. Figur 15 visar hur anropenskermellanklient,serverochdatabas. Figur)16)R)Anropsstruktur)för)applikationen) FörattkommuniceramellanpresentationslagretochlogiklagretsåanvändsAsynchronousJavaScriptand XML,AJAX.AJAXärenwebbprogrammeringsteknikdesignadförattgörawebbaseradeapplikationermer interaktiva och responsiva (Smith, 2006). AJAX använder sig av följande tekniker: XHTML & CSS för presentation,domfördynamiskpresentationochinteraktion,xml&xsltförattmanipuleraochskicka
31 Linköpingsuniversitet Institutionenfördatavetenskap 28 data, XMLHttpRequest för att hämta data asynkront samt JavaScript för att koppla samman nämnda teknologier(garrett,2005;paulson,2005;smith,2006). AnropsstrukturenienwebbapplikationsomanvänderAJAXskiljersigfrånklassiskawebbapplikationer.I dessasåanroparanvändarenswebbläsareservernsombearbetaranropetochskickartillbakaenhtml=vy (Garrett,2005;Paulson,2005).NäranvändareninteragerarmedenwebbapplikationsomanvänderAJAX så skapas javascriptevent som skickas till en AJAX=motorimplementeradiJavaScript (Zepeda & Chapa, 2007).Dennamotor,somladdasinviduppstartavwebbsidan,ansvararförattanvändarensgränssnitt uppdateras och för att kommunicera med servern (Garrett, 2005). Kommunikationen sker asynkront genomhttpellerhttpsprotokoll(paulson,2005;zepeda&chapa,2007),menhurdeolikawebbläsarna implementerarkommunikationenskiljersig.äldreversioneravinternetexploreranvänderactivexobject, SafariochFirefoxanvänderXMLHttpRequestobjektförattgöraanropen(Zepeda&Chapa,2007).Även ChromeochnyareversioneravInternetExploreranvänderXMLHttpRequest(W3Schools,2014).Oavsett implementering så är funktionaliteten densamma (Zepeda & Chapa, 2007). Efter att servern har processeratanropetsåsänderdentillbakadatatillwebbläsarenochxhrobjektetiformavxml(garrett, 2005; Paulson, 2005; Zepeda & Chapa, 2007). JavaScript på klientsidan används därefter för att tolka innehållet och uppdatera innehållet DOM och CSS (Zepeda & Chapa, 2007). Se Figur 11 för att se skillnaderianropsstrukturen. Figur)17)R)Skillnader)mellan)klassisk)webbprogrammering)och)webbprogrammering)med)AJAX)
32 Linköpingsuniversitet Institutionenfördatavetenskap 29 IwebbapplikationensåharAJAX=anropenoftaföljandestruktur: Figur)18)R)AjaxRanrop) I webbapplikationen Shrt finns flera typer av användningsområden för asynkrona anrop. De används bland annat för uppdatera vyer, för att förändra databasen och för att kontrollera att affärsregler, business& rules, följs. Kontrollerna är nästan uteslutande placerade på servern och i de fall det utförs kontrolleriklientenswebbläsarefinnsdetspegelversioneravkontrollernaplaceradepåservern.exempel påaffärsreglersomkontrollerasgenomavajax=anropärdespecifikaformatsomanvändarinformationen Figur)19)R)Exempel)på)entitet)
33 Linköpingsuniversitet Institutionenfördatavetenskap 30 ) måstefölja,attprodukternaärunikaochhurdekanförändras.entitetersomanvändsiaffärslogikenär kunder,varukorgarochtröjobjekt.sebilaga4 UML=DiagramochävenFigur19=Exempelpåentitet. I designfasen och i början av programmeringsfasen så utgick projektet utifrån designmönstret Model= View=Presenter (MVP). Detta designmönster används för att inkapsla koden. I stora drag innebär inkapsling av kod att separera kod med olika innebörd med hjälp av en kodstruktur som ska vara struktureradpådetsättattenförändringavkodintestörandradelaravkoden.komponentenmodelli MVPär ett samlingsnamn för objekten som visas på skärmen, i Shrts fall exempelvis ett t=shirt=objekt. Viewsyftarpåallanvändargränssnittsomexempelvistabeller.IMVPharViewingenkopplingmedModel och vet inte att det finns t=shirt=objekt i tabellerna. För att just t=shirtobjekten ska kunna placeras i tabellernaanvändspresentersomärmedletemellanmodelochview.ettkorrektimplementeratmvpger vägledningochkanmöjliggöraeneffektivaredesignprocess(vora,2009).zhangochluo(2010)menaratt MVP=mönstretharfördelarnaattdetunderlättarvidmodultesterochattuppdelningeniModelochView ökarmöjlighetenattåteranvändakod.allteftersomattprojektetfortledladesmindreviktvidattaktivt följaspecifikamönster. 4.3 Användargränssnitt) Dettaavsnittredogörfördetgrafiskaanvändargränssnittetiapplikationen.Detinnehållerbeskrivningar avdeolikavyernaochdekomponentersomanvändsförattbyggauppdessasamthurajaxanvändsför attuppdateradeolikadelarnaavgränssnittet Grundkomponenter) Iapplikationenfinnsettantalkomponentersomanvändsgenomgåendeiallavyer.Anledningentillatt dessa komponenter finns återkommande genom applikationen motiveras med att de används för att skapaettenhetligtutseende.dennauppbyggnadochmetodförinteraktionanvändersigavkonventioner som har utbredd användning på olika hemsidor och webbapplikationer. Genom att använda gemensamma komponenter mellan vyer skapas en tillförlitlighet för applikationen och reducerar inlärningskurvanföranvändaren,dådenneinteförväntarsigattnågonoväntadhändelsekankommaatt uppstå (Blair=Early & Zender, 2008). Ett användargränssnitt med en hög inlärningskurva avskräcker användaren från fortsatt användande och ökar risken för att interaktionen avslutas. För applikationen innebärdettaettförloratköp,vilketejärönskvärtdåaffärsmodellenbyggerpåattkunderavslutarköp. Gränssnittskonventionerärenaspektsombörbehandlasmedeftertänksamhetdåanvändarenharmed stor sannolikhet har en förväntning på vad dess interaktion med systemet kommer att generera för händelsebaseratpåtidigareerfarenheter(blair=early&zender,2008).attbrytamotkonventionerbör endastgörasomdetfinnsenuppenbarfördelmeddentänktaförändringen(blair=early&zender,2008). ApplikationenanvändersigavAJAXvidtillfällendådelaravgränssnittetskauppdaterasefterinteraktion från användaren, exempelvis då användaren väljer kommentera en tröja, logga in eller lägga en tröja i varukorgen.dennatypavasynkronakommunikationdärendastdelaravgränssnittetuppdaterasgöratt dataöverföringarnablireffektivare(zepeda&chapa,2007) Navigering- Användaren navigerar mellan vyerna Home, Design och Inspiration med hjälp av en navigeringsmeny. Navigering görs genom en klickbar texthyperlänk som tar användaren till den sidan länktexten visar. Indikationavatthyperlänkenärklickbargörsgenomattdåanvändarenförmuspekarenöverlänkenbyter den färg från vit till svart. Färgbytet uppfattas av användaren som en del av applikationen där det är
34 Linköpingsuniversitet Institutionenfördatavetenskap 31 möjligtattpåbörjainteraktion,enegenskapsomäressentiellförettgrafisktanvändargränssnitt(blair= Early & Zender, 2008). Den vy användaren befinner sig i illustreras med en triangel under tillhörande texthyperlänk.enindikationpåvaranvändarenbefinnersigigränssnittetunderlättarförståelsenförvar dekantasigochvardebefinnersig(blair=early&zender,2008) Knappar- Applikationenanvänderknapparförattvisuelltsammanlänkainteraktionersomutförliknandehändelser, menävenförattsärskiljademotandratyperavkomponenter.dettagörattanvändarenuppleveratt applikationenharettlogisktochrationelltmönstermellandesskomponenterochdeninteraktionensom utförs,enaspektsomminskarinlärningskurvanochgörinlärningsprocessenkortare(blair=early&zender, 2008). Till exempel används de två knapparna Login och Register i navigeringsmenyn för att skilja dessafråndevanligatexthyperlänkarna.ytterligareettexempelhittaspådesignsidandärknappensom läggertillentröjaivarukorgen,ochärlänkadtillköpprocessenharfärgenblå.deknapparnasomanvänds förmanipulationavrealtidsvisualiseringenavtröjanhariställetfärgenorange,ochsepareraspåsåsätt frånköpprocessen. Applikationensknapparanvänderävensmåbilderförattillustreraochgeenindikationpåvilkenhändelse kom kan komma att uppstå då användaren trycker på knappen. Dessa bilder bygger på att efterlikna fysiska objekt och utföra en funktion kopplad till denna bild, där till exempel en knapp med en bild föreställandeettförstoringsglasgeranvändarenenstörreochmerdetaljeradbildavendesignadtröja. Användning av metaforer gör att användarna snabbare kan förstå vilken händelse som kommer att genererasknappendådeklickarpåden(blair=early&zender,2008) Dialogrutor- Applikationen använder vid bland annat kommentars=vyn samt login= och registreringsprocessen dialogrutorförvisainformationenlänkadetilldefunktionerna.dialogrutandykeruppvidknapptryckoch harstörreindexiz=ledochupplevsligga ovanpå restenavgränssnittet.närprocessernaärgenomförda så används AJAX för att uppdatera de delar av gränssnittet som behövs, vilket vid inloggning och registreringinnebärattendastnavigationsmenynuppdaterasmeddennyainformationensombehövs. Dettagörattanvändarenintebehöverväntapåattservernskabearbetadataochattwebbläsarenska uppdatera gränssnittet, vilket höjer produktiviteten (Smith, 2006). Beslutet att utvalda delar av applikationens innehåll visas dialogrutor ställs mot att innehållet skulle representeras i separata vyer. Visas login= och registreringsprocesserna i separata vyer tas användaren ur den aktuella vyn och den nuvarande upplevelsen avbryts. Inloggning och registrering visas istället i dialogrutor och den nya informationenendastiettlagerovanpå,vilketgörattanvändarenintetapparorienteringenigränssnittet, ochminskarriskenförattstörningarsomtaranvändarenlängrefråninnehållet.genomatttahänsyntill dessa fås ett mer intuitivt gränssnitt och gör applikationen mer användarvänlig (Blair=Early & Zender, 2008). Dialogrutorna som används på inspirationssidan motiveras enligt samma principer. Utöver ovanstående användning av dialogrutor, förekommer de även vid tillfällen då användaren behöver ta ställning till beslut, till exempel då en kund väljer att gå vidare i köpprocessen men inte lagt till den aktuellatröjdesignenivarukorgen Designverktyg)och)köp) Verktygetsomanvändsförattdesignatröjorharutgångspunktenattgeanvändarenfeedbackavdessvali realtid samt ge en tydlig överblick över de val som finns att tillgå. Navigering mellan tröjans zoner i designverktyget görs genom en meny som delar utseende med huvudnavigeringen för applikationen, vilketbidrartillettmerenhetligtgränssnitt.valengörsavanvändarengenomatttryckapåknappar,och
35 Linköpingsuniversitet Institutionenfördatavetenskap 32 valet indikeras genom en ram som förtydligar att det är detta val som är aktivt. För att ytterligare förtydliga användarens aktuella val av parametrar uppdateras modellen i förhandsvisningen i realtid. Dessatvåmetodergörattanvändarendirektfårfeedbackochinformationomattdesshandlingarharen effektpåinnehålletiapplikationen,vilketgerenbättreanvändarupplevelse(blair=early&zender,2008). Indikationavvilketstegiköpetanvändarenbefinnersigigörsgenomentidslinjesomfyllsiochvisarde stegensomklaratsav,samtdestegsomärkvar.navigeringenärtvåvägsochfungerarbådeförattta användaren framåt och bakåt i köpprocessen. Möjligheten att kunna gå bakåt i processen är viktig ur användbarhetsperspektiv då det skapar trygghet och minskar risken för att användaren avbryter sin session(blair=early&zender,2008).indikationenavdetaktuellastegetgörattanvändarenlättareförstår ochkommandestegochdessrespektiveinnehåll. NäranvändarenvaltattläggatillentröjaivarukorgenanvändsAJAXförattkommuniceraasynkrontmed servern.indikationpåatttröjanlagtstillgörsgenomattsymbolenförvarukorgenunderenkorttidbyter färg.detäralltsåendastenkomponentigränssnittetsomuppdaterasochanvändarenkanfortsättaatt använda applikationen utan att bli avbruten. Detta gör att applikationen får bättre respons och interaktivitet(zepeda&chapa,2007).
36 Linköpingsuniversitet Institutionenfördatavetenskap 5 Marknadsföringsplan) 33 DettaavsnittredogörförShrtsmarknadsföringsplan.Innehålletimarknadsplanenbehandlaromvärlds=, konkurrent= och SWOT=analyser. Dessa analyser ska utvärdera marknaden för försäljning av unika, egendesignadetröjorgenomene=handelsapplikation samtliggatillgrundförshrtspositionering= samt marknadsmixstrategier. 5.1 Omvärldsanalys)enligt)PEST) I kommande delavsnitt följer en omvärldsanalys enligt PEST=metoden. I metoden studeras politiska, ekonomiska, sociokulturella och tekniska omvärldsfaktorer för att identifiera faktorer som påverkar ett företag.idennamarknadsplankommerdockintepolitiskaomvärldsfaktorerattbehandlaseftersomde inteansågsrelevanta Ekonomiska)omvärldsfaktorer) Inomdensvenskae=handelnärkläderochskordetnäststörstadelsegmentetochomsätter5,5miljarder kronor(svenskhandel,2011).segmentetökaristorlek,mentaktenpåökningenäravtagande(svensk Handel, 2011). När det gäller märkeskläder är t=shirts bland de vanligaste klädtyperna som handlas på nätet(fogel,j.a&schneidr,m.2010). Vide=handelavkläderrankaslägrepriserrelativtlågtavkonsumenterna.Endast16%ansågattprisetvar den viktigaste faktorn vid e=handel, men prisjämförelser är däremot vanligt förekommande. (Svensk Handel, 2013) Modebranschen är hårt utsatt för trendsvängningar. Trendsvängningar i olika färger beskrivssomsynnerligensvårhanterligtochvolatilt.(yu,hui&choi,2012) Sociokulturella)omvärldsfaktorer) Kvinnorhandlaroftarekläderpåinternetänmän.8av10kvinnorunder50årharnågongånghandlat kläder online kläder. Kvinnorna i åldrarna 30=49 är den åldersgrupp där flest har handlat kläder via internet, 78 %, följt av åldrarna 18=29 där 76 % har handlat kläder på internet. För män är 18=29 den åldersgruppdärstörstandel,64%,harhandlatkläderviainternet,följtavåldersgruppen30=49årmed 48%.(SvenskHandel,2011) E=handel växer och tar marknadsandelar från den traditionella detaljhandeln (Svensk handel, 2011b). Varannan konsument har någon gång handlat kläder på Internet (Svensk handel, 2011c). Enligt Svensk handelärkläderenviktigdelavungavuxnasinköp.ungaharinteisammautsträckningsomäldrebildat familj,vilketinnebärökatfokuspåsigsjälv.enligtsvenskhandelfortsätterdennauppfattningefter30=års ålder.(svenskhandel.se2014=05=05) När konsumenter handlar via internet prioriterar de snabba leveranser (Svensk handel, 2011c). Både kvinnor och män påverkas av hur enkelt en hemsidans gränssnitt är vid e=handel. Kvinnor tycker att säkerhet är viktigare än män, som prioriterar service högre (Lai et al., 2010). Av de som handlar på internetansertreavtioattdetärsvårtattbildasigenuppfattningomvaranskvalitetinnanköp(svensk handel,2011c). Fyrautavtiosomhandlarkläderpåinternetprovarproduktenifysiskbutikinnanköp (Svenskhandel,2011c). Tiidenberg(2014)harundersökthur selfie=fenomenet harutvecklatsdesenasteåren.enligttiidenberg harpersonermellan21och51årbörjatanvändadettasomettsättattåtertakontrollöversigsjälvaför attvågaståutfrånnormenochtillsammansstödjavarandrasivalegenstil.enligtmichaellynnochjudy
37 Linköpingsuniversitet Institutionenfördatavetenskap 34 Harris (1997) finns det ett behov hos människor för skräddarsydda, anpassningsbara och innovativa kläder.vidareskriverförfattarnaattkonsumentereftersträvarattuttryckasiguniktgenomattkonsumera kläderdekanrelateratill.författarnaskriverocksåattnyaprodukterharsvårtattdirektblisuccéer,det krävsattenlitenskaramänniskor,fashion&leaders,förstinspirerardenstoraskaranmänniskor,fashion& followers,förstförattennyproduktskakunnabliensuccé. IRobertD.HofsartikelYou&are&the&Ad(2011)beskrivsannonseringpåGooglesommycketeffektivt,men ävenattfacebookannonserärnågotsomföretagtrorpåeftersomdeverkligenkanriktastillmålgruppen. Dettaledertillenmerriktadmarknadsföringjämförtmedexempelvistv=reklam.(Hof,2011)RalphBreuer et al. (2011) redogör för effektiviteten för olika typer av online=marknadsföring. Ytterligare en marknadsföringsmetodärlanseringsevent,dessabeskrivssomeffektivaochgerdessutommöjlighettill omnämningarimedia(al=emran,pfahl&ruhe,2008) Teknologiska)omvärldsfaktorer) Ett välanvänt verktyg för att utvärdera marknadsföringens effekter och för att förbättra användarupplevelsenpåhemsidorärgoogleanalytics.verktyget,somgenererarstatistikförwebbsidors trafik, beskrivs som simpelt och kostnadseffektivt för mindre företag. Vidare kan det ge exempel på brister en hemsida kan ha som annars inte hade upptäckts. Exempelvis att en viss del av webbapplikationensällanbesöks.(hasan,morris&probets,2009) 5.2 Konkurrensanalys) Detfinnsfleraavföretagsomerbjuderliknandeprodukter:självdesignadet=shirts,skjortorochpikéerpå nätet.förattanalyserakonkurrentersåstuderadesföretagsomstriktverkadegenome=handelochhade en liknande affärsidé. Dessa hittades genom sökningar på Google. Ett urval av de största aktörerna presenterasnedan. Zazzleerbjuderkundenettstortutbud,deharprodukterförkvinnor,män,barnochnyfödda.Det somerbjudsärblandannatjackor,t=shirts,telefonfodral,skateboardsochkepsar. Custominkärettföretagvarsutbudärstort,deerbjuderocksåettflertalolikadesignmöjligheter ochprisernaförderasprodukterärlåga. Spreadshirtharettutbudsomfokuserarmeränövrigakonkurrenterpåkvalitéochprisklassenär något högre än andra konkurrenter. Företaget erbjuder kunden relativt stora möjligheter att designaproduktensjälv. Ooshirtssomocksåharettstortutbudavprodukter.Defokuserarpåettlågtpriskombinerat med stora valmöjligheter för kunden. De inriktar sig på att sälja större upplagor av samma produkt,t.extröjortillfotbollslag. För att analysera konkurrenterna studerades ett antal aspekter som ansågs vara centrala: Pris, varumärkesfokus, utbud, möjlighet att designa unika produkter och hur stora designmöjligheter konsumenten har. Pris, varumärkesfokus och utbud ansågs vara viktiga för att kunna positionera Shrt relativt konkurrenterna. Möjlighet att designa en helt unik vara ansågs vara en viktig aspekt eftersom Shrtsaffärsidékretsarkringdetta.Det var därförviktigtattundersökaommöjlighetenävenfannshos konkurrenter.aspekternasammanfattasitabell1=parametrarhoskonkurrentermedenfemgradigskala därfemärhögstavärdet.
38 Linköpingsuniversitet Institutionenfördatavetenskap 35 Namn Zazzle Customink Spreadshirt Ooshirts Prisklass Varumärkesfokus Unikhet Utbud Designmöjligheter Tabell)1)R)Parametrar)hos)konkurrenter) 5.3 SWOTGanalys) IkommandeavsnittpresenterasenSWOT=analys.SWOTstårförStrengths,Weaknesses,Opportunities ochthreats.syftetmedanalysenärattkopplasammandatafrånomvärldsanalysenochappliceradenna påshrt Styrkor) Shrt har en unik affärsidé enligt den konkurrensanalys som presenterats: ingen av konkurrenterna erbjuderkundenmöjlighetenattköpaentröjadeärheltensammaom.attproduceraheltunikatröjor gör att företaget kan tillämpa makeatoaorder, produktion mot kundorder, och slippa binda kapital i färdigvarulager Svagheter) Shrtsproduktkräverproduktionmotkundorder,vilketledertillenmerkompliceradproduktionsprocess jämfört med konkurrenter. De ökade produktionskostnader som produktionen av unika produkter ses somensvaghet.attsäljaheltunikatröjortycksdessutomvaraenoprövadaffärsidé. Ytterligare en svaghet är det faktum att försäljning via internet i dess nuvarande form försvårar fysisk testning av produkten, vilket enligt den omvärldsanalys som presenterats är något som kunder ofta efterfrågar Möjligheter) I den omvärldsanalysen åskådliggjordes hur marknaden för e=handel växer. Vidare är försäljningen av kläderpåinternetdennäststörstabranscheninome=handel.omvärldsanalysenredogörocksåfördetallt växandebehovethosmänniskor,isynnerhetförkvinnoriåldrarna21 51år,attuttryckasigunikt. Attkonsumenternaanserattprisetintekommeriförstahandnärdeköperkläderpåinternetärävendet enmöjlighetsomshrtkanutnyttja Hot) KlädbranschenärenligtShrtsomvärldsanalyshårtutsattförtrendsvängningar,särskiltnärdetkommertill färgersombeskrivssomextravolatilt. Ytterligare ett hot är att marknaden är mycket konkurrensutsatt och det kan bli svårt att vinna marknadsandelar från befintliga aktörer. Detta hot blir än mer påtagligt då inträdesbarriärerna är låga vilket gör att nya aktörer kan etablera sig och befintliga kan lätt ändra fokus. Att kopiera produktkonceptetärdessutomlättförbefintligaaktörer.
39 Linköpingsuniversitet Institutionenfördatavetenskap Styrkor S1: Unik affärsidé S2: Skräddarsydd produkt S3: Avsaknad av lager 36 Svagheter W1: Dyrt att producera unika tröjor W2: Utvecklarnas kompetens W3: Produkten försvårar testning W4: Lågt kapital W5: Oprövad affärsidé Möjligheter O1: Växandemarknad för e-handel O2: Behov av att uttrycka sig unikt) O3: Stort segment O4: Icke priskänslig bransch Hot T1: Trendsvängningar T2: Konkurrensutsatt marknad T3: Låga inträdesbarriärer T4: Lätt att kopiera konceptet Tabell)2)R)SWOTRanalys) ) Slutsatser S1 + W3 + O1 S2 + T1 S3 + T1 W1 + O4 Shrts unika affärsidé och det faktum att marknaden är växande ger ett bra underlag för att söka externt kapital. Eftersom vår produkt är skräddarsydd kan den följa de trendsvängningar som uppstår. Det finns även möjlighet att lägga in nya färger som följer trenderna, exempelvis höstfärger Avsaknaden av lager gör att påverkan av trendsvängningar blir minimala. Enligt omvärldsanalysen är branschen inte priskänslig samt att vår produkt inte har några substitut vilket bidrar till att vi kan sätta ett pris som täcker produktionskostnaderna O2 + W5 5.4 Kundsegment) Konkurrensanalysen påvisar att det finns en lucka i konkurrenternas utbud vad gäller unikhet, detta bör lindra det faktum att det också är en oprövad affärsidé då Shrt kan dra nytta av att vara först med sin affärsidé. Tabell)3)R)Matchning)av)styrkor,)svagheter,)hot)samt)möjligheter) Ålder Konsumtion på internet Behov av att uttrycka sig unikt Intresse för varumärke vid internethandel Mellan Stort Mellan Litet Stort Stort Stort Litet Stort Stort Stort Stort Tabell)4)R)Segmentering)) Tabell 4 ovan är en sammanställning av data från omvärldsanalysen. Ur tabellen går det att utläsa att åldersgruppen25=35årkonsumerarmestavsamtligagrupperpåinternetochattdeharettstortbehov avattuttryckasigunikt.baseratpådettasåkommermarknadsföringsaktiviteternaattfokuseraspådenna åldersgrupp. Enligt sammanställningen så tycks även ålderssegmentet 35=55 vara ett kundsegment att beakta.
40 Linköpingsuniversitet Institutionenfördatavetenskap 37 Kön är en annan segmenteringsvariabel som studerats. Enligt omvärldsanalysen så handlar kvinnor på internetienstörreutsträckningänmänochtycktesihögregradhaettbehovattuttryckasigunikt.ioch meddettasåärdetviktigt att Shrts webbapplikation och produkt är attraktiv för kvinnor då de enligt segmenteringenutgörenstörrekundbas. SlutsatsenblirattShrtshuvudmålgruppärungavuxnakvinnoriåldersspannet25=35årsomharettbehov av att uttrycka sig unikt. Eftersom att det finns andra kundsegment med potential, exempelvis män i sammaålderochäldrekvinnor,såansesdetdockviktigtattmarknadsföringsaktiviteternautesluterdessa. 5.5 Marknadsstrategi)och)Marknadsmål) MarknadsstrateginförmarknadsföringenavShrtharvaltsattbaseraspåPortersgeneriskastrategier.De tre basstrategierna är kostnadsledarskap, differentiering och fokusering (Ormanidhi & Stringa, 2008; Porter, 2004). Eftersom att Shrt går in på en konkurrensutsatt marknad och inte, i och med högre produktionskostnader, kan eftersträva kostnadsledarskap så väljs istället en differentieringsstrategi. En differentieringsstrategi söker marknadsandelar genom en tydlig differentiering av sin produkt relativt konkurrenternas.shrtssjälvdesignadeunikatröjorärettuniktkonceptsomimarknadsföringssyftebör framhävas och dessutom är kompatibelt med differentieringsstrategin. Unika varor är förenligt med premiumvarorochdärförkanpris,kvalitetochprestigevaramöjligadifferentieringsfaktorer. Följandemarknadsmålkommerattanvändas: Attenmånadefterlanseringsålt100tröjor. Attettårefterlanseringsålt1500tröjor. Attwebbapplikationenskahaminst400registreradeanvändareefterettår. 5.6 Positionering) Konceptet designadinegentröja ärenkonkurrensutsattmarknadmedetableradekonkurrenter.som ett led i differentieringsstrategin har därför Shrt valt att positionera sig inom segmentet högkvalitativa tröjorochfokusliggerpåattvarjeproduktärheltunik. För att differentiera sig från konkurrenter ska Shrt välja värdeerbjudandet More& for& more. Shrt och konkurrenternas värdeerbjudande illustreras i Figur 20. Ska Shrt lyckas med detta är det viktigt att företagetskaparochtydliggörvärdetillkonsumenten.förattgöradettabörföretagetprioriterafaktorer omskaparvärdeförkunden,exempelviskvalitet,prestige,kundorienteringoch=anpassning.
41 Linköpingsuniversitet Institutionenfördatavetenskap 38 Figur)20)R)Shrt)och)konkurrenters)värdeerbjudande) ShrtbörocksåvarauppmärksammapåkonkurrentersomtarpositionenMore&for&the&sameocherbjuder samma vara till ett lägre pris. För att behålla positionen blir det viktigt att säkerställa att erbjudandet uppfyllerdekravkundenställer. Avslutningsvis:DenpositionsomShrtskaeftersträvakanuttryckassom:För&unga&individer&som&vill&vara& unika&erbjuder&shrt&en&högkvalitativ&produkt&med&fokus&på&varje&varas&unikhet.& & &
42 Linköpingsuniversitet Institutionenfördatavetenskap Marknadsmix)G)4P) Marknadsmixen beskriver Shrts marknadsstrategier i termerna av produkt, prissättning, plats och påverkan.dessastrategierkommerattanvändasförattuppnådeuppsattamarknadsmålen Produkt) DetprimärabehovsomShrtsproduktfyllerförsinakunderärmöjlighetenattuttryckasiguniktochfå tillfredställandet av att designat något själv. Den påtagliga produkten innefattar designmöjligheterna i form av färgerna på tröjans delar, val av ficka och placering av logga. Produktens mest prominenta attributärattdetsäljsendastenavvarje,vilketgerdenenexklusivimage.förattstärkaexklusivitetenär produktenavhögkvalitetochförattkoppladettatillvarumärketshrtharvarjedesignettgemensamt kännetecken: Shrts logga. Produkten möjliggör alltså stor kundanpassning samtidigt som varje unik produktharshrtstydligadesignochvarumärke. IlinjemedomvärldsanalysentidigarepresenteratkommerShrtläggastortfokusvidsnabbaleveranserav produkter. För att kunden ska bli nöjd med helhetsupplevelsen av produkten krävs det att leveransen lever upp till den kvalitet kunden förväntar sig. Om Shrt ska lyckas att positionera sig som en premiumprodukt så förväntas att även företagets utvidgade produkt, där leveranser ingår, håller bra kvalitet Pris) PrisetpåShrtsprodukterkommervaraenbidragandefaktoriderasimagesompremiumproduktochett sättattförstärkaproduktensexklusivitet.därförharshrttillämpatenvärdebaseradprissättningochhar valt att sälja tröjor, oavsett modell, till priset av 500 kronor. Denna prissättning grundar sig i marknadsplanens differentieringsstrategi och i företagets värdeposition: ett högre pris är ett sätt att särskiljasigfrånföretagetskonkurrenterochprisetärkompatibeltmederbjudandetmore&for&more Plats) FörsäljningenavShrtsprodukterkommerskeviaShrtswebbapplikation.Fysiskabutikerellerförsäljning genom någon annan kanal anses inte vara aktuellt eftersom detta skulle innebära större kostnader samtidigtsomdeinteansågstillföratillräckligtvärdeförkunden.ytterligarefaktorersomtaladeemot andra försäljningskanaler var att målgruppen är vana internetanvändare och att applikationen därför skullevaraentillräckligplattformförattmötakunden.avslutningsvissålämparsigproduktenskaraktär för internethandel; att sälja unika t=shirts i fysiska butiker skulle vara krävande och innebära mycket samordningmellanbutikerna.
43 Linköpingsuniversitet Institutionenfördatavetenskap Påverkan) Efteratthautvärderatdetpotentiellakundunderlagetochderasinternetvanorframstårmarknadsföring onlinesometteffektivtval.förattnåuttillnyakundersåkommershrtattanvändasigavbannerspå hemsidorsomkundsegmentetbesöker,exempelvisgoogleochfacebook.valetavdennametodgrundar sig i att målgruppen är frekventa internetanvändare och på att denna typ av marknadsföring enligt omvärldsanalysenäreffektiv.förattmarknadsföramotbefintligakundersåskashrt,genomföretagets databasmedkundersochanvändaresmailadresser,användasigave=post. Dettaansesvaraenmetod somintemedföralltförstorakostnader,vilketärviktigtbaseratpåföretagetsekonomiskasituation. Dentredjefasenimarknadsföringenärevent.Närlanseringavennyfärgellerettnyttattributansesvara nödvändigtkommerdettaattskeisambandmedettlanseringsevent.enligtomvärldsanalysenärdetta etteffektivtsättattnåuttillnyakunderochdessutomansesatteventärkompatibeltmedshrtstänkta marknadsposition och fokus på premiumvaror. Dock bör det poängteras att denna typ av marknadsföringsaktivitet kräver ett starkt varumärke för att få publicitet. För denna senare del av marknadsföringsfasen,sefigur21,ärdetdärförviktigtattmarknadsföringenviamailochsocialamedier harvaritframgångsrik.förattkontrolleradettaskashrtanvändasigavverktygsåsomgoogleanalytics förattföljatrafikenpåwebbapplikationen. Föreventenfinnsdetriktlinjerkringnärdeskaskeochkringlanseringarnasstorlek.Eftersomatteventen byggerpådelaktighetfrånkundensåbördeskeisambandmedhelgerochhelgdagarförattinteutesluta denne. På samma sätt är det viktigt att de sker på lättillgängliga platser och tider. Vidare så bör inte lanseringarnaskeföroftaellervaraförstora;förattvarakompatibeltmedpremiumvarorsåbörantalet produktersomföretageterbjudervarabegränsat.somentumregelbörintemerän500tröjorlanserasi sambandmedetteventocheventenbörinteskenärdetfinnsmerän500unikatröjorkvar. Eventengermöjlighetenattmötakundenienannanmarknadskanalänviainternetochblirföretagets sättattmötakundenansiktemotansikte.ommediaskulleintresserasigföreventensåärävendettaen möjlighetförattnåuttillkundenvianyamarknadskanaler.shrtbördärförhasompolicyattbjudain mediaochattställaupppåintervjuerisambandmedeventen. Figur)21)R)tillvägagångssätt)vid)promotion)
44 Linköpingsuniversitet Institutionenfördatavetenskap 6 Testresultat) 41 I följande kapitel redogörs för den användartestning som Shrt använt sig av för att utvärdera webbapplikationensanvändarupplevelse. 6.1 Mål)med)testningen) Målet med testningen är att från potentiella kunder i företagets målgrupp, samla in feedback på webbplatsensanvändarupplevelse.feedbackenskavaraiformavbådekvalitativochkvantitativdataoch skautvärderasinnanwebbapplikationenöverlämnastillkund. 6.2 Scope) TestningenberörwebbapplikationenShrt,enkombineradt=shirtdesignverktygoche=shop.Eftersomatt testningenharsommålattfåuppfattningomhurpotentiellakunderuppleverwebbplatsenavgränsarsig testningen från att testa administratörsvyerna. Testscenariorna tog upp vad som ansågs vara mest centraltförapplikationen:attgenomföraköp,attregistrerakunderochattanvändacommunityn Anserduaydulyckadesgenomförauppgizen? Scenario1 Scenario2 Scenario3 Ja Nej Ja,mendetupplevdesonödigtsvårt Figur)22)R)Beskriver)huruvida)användarna)tyckte)det)var)svårt)att)genomföra)uppgiften) Enviktigfaktormedanvändartestningenvarattundersökaomdeltagarnakundeanvändaapplikationens funktionalitet. Vid testningen ansåg majoriteten av testdeltagarna att de lyckades genomföra samtliga scenarierochtydligastvardettaviddetviktigastescenariot:scenarioett,attgenomföraettköp.ävenom deflestaävenlyckadesgenomförascenariotvåochtrestötteflerpåproblemhäräniscenarioett.vid scenario två och tre tyckte dock drygt en tredjedel av deltagarna att de inte lyckades genomföra uppgifternavilketansågsvaraallvarligt. Deanledningarsombidrogtillatttestdeltagarnaintelyckatsgenomförascenariotvåvarexempelvisatt detintegickattgenomföraregistreringen,knapparsomintegavnågonresponsellerattuppgifternainte sparadesochdäravintefannstillgängligapåprofilsidan,felsomansesvaraallvarliga.mindreallvarligafel somtillexempelattrealtidsvalideringenintetillåterenpunktifältetföranvändarensadressgavockså upphovtillattregistreringenintekundegenomföras.detpåpekadesävenavflertalettestareattdetinte gickattstängadialogrutornamedknappen Close. Iscenariotreupplevdeflertalettestaresvårighetermedattgenomförauppgiften.Problemensträcktesig frånatttestareintekundegöraenkommentarpågrundavattknappenintegavnågonrespons,tillatt
45 Linköpingsuniversitet Institutionenfördatavetenskap 42 detintefannsnågratröjorutöverdendesjälvagjortsomdekundekommentera.detuppfattadesäven otydligt att det inte fanns någon indikation på att kommentarsfunktionen krävde att testaren var inloggad.applikationenupplevdesocksålångsam Hurlång{dskulleduuppskayaaydettogdigayu öra uppgizen? Scenario1 Scenario2 Scenario3 14 <3minuter 3=5minuter 5=8minuter 8=10minuter 10=15minuter Figur)23)R)Jämför)tiden)det)tog)att)genomföra)de)olika)scenarierna) Enavdetestparametrarsomstuderadesvaratimeontask,dentidsomtestdeltagarenanvändeföratt genomföraetttestscenario.detvisadesigattdeallraflestatestdeltagarnanavigeradeapplikationenoch genomförde scenarierna snabbt, ofta under 3 minuter enligt deras egen uppskattning. Hur snabbt scenariernaskullegenomförasansågsinnantestningenvaraenindikatorpåhurlättascenariernavaratt genomföra.baseratpådetta tycksdetsomattapplikationenvarlättnavigerad.meddettasagt möttes mångaavdeltagarnaavproblemundertestningen,navigeringeninkluderad Vardetnågotsom förvirradedigunder scenariot Scenario1 Scenario2 Scenario Stöyedupånågra felak{gheterellerproblem? Scenario1 Scenario2 Scenario3 Ja Nej Ja Nej Figur)24)R)Jämför)tydligheten)i)de)olika)scenariena) Figur)25)R)Beskriver)felnivån)i)de)olika)scenarierna Det var i samband med scenario ett som de allra flesta problemen framkom, både kritiska och icke= kritiska. Merparten av problemen ansågs vara icke=kritiska och handlade exempelvis om att hjälpmeddelanden var otydliga eller att det fanns problem med typsnittet i vissa webbläsare. De två kritiskaproblemenvarattknapparintefungeradeochattensidaisambandmedutcheckninghängdesig, ettproblemsomintekunnatåterskapas. Data från testerna användes för att ta fram de valda testparametrarna. Successful task completion baseradespåtestdeltagarnasegnaåsikterkringhuruvidadelyckadesgenomföratestetellerinte.föratt analyseracriticalochnon=criticalerrorsklassificeradesdeproblemsomtestdeltagarnauppmärksammade
46 Linköpingsuniversitet Institutionenfördatavetenskap 42 isinakommentarerenligtavsnittet Klassificeringavproblem.Error=freeratebaseradespåfråganom deltagarenstöttpåproblemunderscenariot.sefigur24ochfigur25förensammanställning. Successful task Non-critical Error-free Critical errors completion errors rate Scenario 1 88 % % Scenario 2 75 % % Scenario 3 71 % % Tabell)5)R)Beskriver)antalet)fel)testgruppen)fick)vid)genomföradet)av)de)olika)scenariorna) ) Ärdunöjdmedhurdetgickayu örauppgizen? Scenario1 Scenario2 Scenario3 Ja Nej Figur)26)R)Beskriver)ifall)testgruppen)är)nöjda)med)hur)det)gick)utföra)uppgiften) Isambandmedtestscenariernaställdesfrågan Ärdunöjdmedhurdetgickattutförauppgiften? föratt gesubjektivaresultat,subjectivemeasures.användartestningenvisadeattmajoritetenavtestdeltagarna varnöjdamedhurscenariernaupplevdesattgenomföra.dettatrotsattmångaavdeltagarnamöttesav problemundertestningen. Derekommendationersomkomframisambandmedscenarioettkretsadebådekringupplevdaproblem ochkringnyfunktionalitet.bortsettfråndekritiskaochicke=kritiskaproblemensomdiskuteratstidigare gav testdeltagarna förslag på att flytta knappar och förändra hur designverktyget fungerade. Ny funktionalitetsomtestdeltagarnagavförslagpåvarblandannatattkunnaskapaegnaloggorpåtröjorna.
47 Linköpingsuniversitet Institutionenfördatavetenskap 7 Etiska)aspekter) 43 Detta avsnitt behandlar de etiska frågor som uppstår vid utveckling av en e=handelsapplikation. Bland annat lagring av personliga data, säkerhet på hemsidan samt hur Shrt hanterar användartestarnas integritet. 7.1 Lagring)av)personlig)data) Användar=ochkundkontonlagrasiShrtsdatabasvidregistreringrespektiveköppåwebbapplikationen. Detta är nödvändigt för att kunna leverera produkten kunden har köpt. Användaruppgifterna används också i marknadsföringssyfte, exempelvis skickas nyhetsbrev och kampanjinformation till kunderna. De uppgiftersomlagrasishrtsdatabasärförnamn,efternamn,användarnamn, ,adressochlösenord. Viktigtattpoängteraärattenkundkangenomföraettköputanattregistrerasig,dåbehöverkunden endastfyllaideninformationsomkrävsförattskickadenproduktkundenharköpt.dettaärviktigtdels förattvärnaomkundersintegritet,menocksåförattinteskapabarriärerförköp. En annan del av den användarhantering som är etiskt tveksam är det faktum att det i nuläget inte är möjligt för användare att radera sina konton. För användaren innebär detta att deras personliga information, oavsett hur personlig den är, alltid kommer att finnas kvar i Shrts databaser. Det är inte enbarttveksamtrentetiskt.detinnebärattinformationenkanblimycketsvårattfåbortfråninternet ifallexempelvisshrtskullelägganedsinverksamheteftersominformationendåfortfarandeskullekunna finnaskvar.enligtdatainspektionen(2011)striderdettamotlagen,delsmåsteshrttillåtaanvändareatt raderapersonliginformationochdelsfårshrtintesparapersonuppgifterlängreännödvändigt. 7.2 Säkerhet) Vid inloggning som användare i Shrt krävs ett användarnamn och ett lösenord. Ifall användaren har förloratsittlösenordkandennefåettnyttskickattillsine=postadress.dettalösenordslumpasigenerator förattsedansparassomanvändarensnyalösenord.användarenfårsedanettmailmedenlänkochen uppmaningattbytatillettnyttlösenord.dettaärettvälutbrettsättatttillhandahållamöjligenattåterfå kontrollenöversittanvändarkonto,vilketärnågotsomförväntasavanvändaren. LösenordeniShrtsdatabaskrypterasmedMD5=metoden.Dettaärsomnämntilogikavsnittetinteden säkrastemetodenförkrypteringavlösenord.därförböranvändaremedenhögintegritetssfärväljaatt genomföra köpet utan registrering, då riskeras minimal spridning av personlig information. Det är naturligtvis negativt att användare hos Shrt riskerar spridning av personlig information vid registrering (Agrawal et al., 2004). Det bör dock accentueras att det i Shrts databas inte lagras några kreditkortsuppgifter,intehellerpersonnummer. 7.3 Testares)personliga)information) För att pröva webbapplikationens användarvänlighet och därmed förbättra upplevelsen för de som besökershrtärdetviktigtatttestarefårprovaapplikationeninnanlansering.vidanvändartestetfyller testareniettformulärochshrthargenomdettatillgångtestarnaskönochålder.anledningentilldettaär attshrtsutvecklarevillkunnasehurolikagrupperavmänniskoruppfattarwebbapplikationen.deolika resultaten från testundersökningen lagras sedan lokalt i utvecklarnas datorer. För någon utomstående personskulledessadatavaravärdelösaochantagligenskulledetvarasvårtattkopplasammantestarens personligainformationmedformuläreteftersomingadataförutomkönochålderlagras.resultatenfrån
48 Linköpingsuniversitet Institutionenfördatavetenskap 44 enkätenlagrasocksåpåinternethosenkätleverantörensurveymonkey.derassäkerhetöverskriderlångt densomfinnshosshrtochärettföretaganväntfördettasyftevärldenöver(surveymonkeyblog,2010). 7.4 Inspirationssidans)brister) När ett köp har genomförts hos Shrt visas denna tröja på inspirationssidan. Syftet med detta är att inspirera andra besökare på webbapplikationen i designprocessen av köpet. Bredvid denna tröja visas skaparensanvändarnamnochandraanvändareharmöjlighetattkommenteraoch"gilla"den.avsikten med detta är att skapa en sorts community kring varumärket Shrt där folk kan visa upp det som inhandlats.detfinnsdockenproblematikidettaeftersomkundenintesjälvfåravgörahuruvidatröjan skall visas offentligt eller inte, dessutom visas kundens användarnamn tillsammans med tröjan. Användarenupplysesintehelleromsituationenochattpånågotsättgöradetvoreenförbättringihur Shrtsinspirationssidabehandlarpersonliginformation.Ännubättrevoreattgekundenmöjlighetenatt avgöraifallenpubliceringpåwebbapplikationenskallgörasellerinte.visserligenskulledettakunnaleda tillattfärretröjorpubliceras,mendettafårställasirelationtilldennegativapublicitetdennuvarande hanteringenavpersonligauppgifteridennadelavwebbapplikationenskullekunnafå.
49 Linköpingsuniversitet Institutionenfördatavetenskap 8 Summering)och)diskussion) Planeringsfasen) I början av projektet hade teamet en kick=off innan arbetet kring produkten startat. Under kick=offen diskuterades teamets mål, förväntningar inför arbetet samt affärsidé och möjlig funktionalitet i applikationen.attdessaområdendiskuteratsleddetillattteametsmedlemmarredanskapatsigenbild avapplikationenochdessfunktionalitet,någotsomresulteradeiettmindreantalunikaidéerunderden brainwriting som genomfördes. Det är möjligt att teamet tagit fram mer nyskapande och bättre funktionalitet om brainwritingen genomförts tidigare, innan gruppmedlemmarna haft diskussioner om applikationen. Ytterligare ett problem under planeringsfasen var missvisande tidsuppskattningar av de olika funktionerna. Dessa uppskattningar visade sig senare i projektet flera gånger vara hundratals procentenheter ifrån verklig utvecklingstid; vissa gånger för snäva andra gånger för vida. Tidsuppskattningarna skedde med hjälp av metoden planning poker, men de missvisande tidsuppskattningarnaärsannoliktkopplademedutvecklingsteametsbristfälligarutinsnarareänmetoden isig. 8.2 Utvecklingsfasen) Arbetsmetoden scrum har varit till stor nytta för utvecklingsteamet genom projektet. Till en början upplevdes dock den agila metodiken främmande då teammedlemmarna främst arbetat enligt mer traditionella projektformer tidigare. Följden blev att teamet hade problem med att struktureraarbetet ochutnyttjadeverktygenscrumtillhandahåller.dettaberoddepåattrollensomscrummasterintehade något delegerande ansvar, utan bara hade ansvar att se till att metodiken följdes, vilket var en aspekt teammedlemmarnaintevarvanavid.enökadkunskapomscruminomteamethadeunderlättatarbetet, ochbidragittillfärreproblem. Ettmisstagrelaterattillmetodikenvarattteametdeladepårollensomscrummaster.Detvarflertalet medlemmariteametsomhadeintresseiatttarollensomscrummasterochdetbeslutadesattansvaret för rollen skulle fördelas veckovis mellan teammedlemmarna. Inledningsvis upplevdes uppdelningen fungera, men efter en tid in i projektet tappades kontinuitet mellan överlämningar, Trellon lämnades ouppdaterad samt att daily scrum uteblev. Under vissa perioder av utvecklingen upplevde teamet att rollenheltfallitbortellerintebidrogmednågotsompåverkadehurprojektetfortskred. Införsprint3uppdagadesproblemetmedrullandescrummaster,ochdetbeslutadesattåtgärdadetta genomattöverlåtarollentillenpersoninomteamet.dettablevframgångsriktochfrämjadestrukturen förarbetetiteamet.dethadevaritfördelaktigtombytetgjortstidigareellerteametominsettattdenna typavuppdelninginteskullefungera. Attproblemetinteåtgärdatstidigareberortillstordelpåattteametoftasatttillsammansochutvecklade, vilketgjordeattmedlemmarnahadeinsiktivaddeandraiteametarbetademed.dettaärtroligtvisockså anledningentillvarförtrellonvarouppdateradochattdailyscrumuteblev.detfaktumattenstordelav utvecklingsarbetetskeddeigruppbidrogocksåtillatthanteringenavtekniskaproblemkundeåtgärdas snabbtochdärförintehämmautvecklingen.dådeflestaproblemsomuppstodkundelösaspåplatsinom gruppenblevproduktivitetengenomgåendehög.debristeriarbetsstrukturensomuppstodtillföljdavatt
50 Linköpingsuniversitet Institutionenfördatavetenskap 46 metodikeninteupprätthöllspåverkadeintehellerinågonstorutsträckningutvecklingavfunktionalitettill applikationen. Att det under projektet saknades en dedikerad produktägare under utvecklingen anses ha påverkat kvaliteten på slutprodukten. I detta fall var teamet både utvecklare och produktägare vilket gjorde att acceptanstesternaimångafallintegenomfördeskorrekt,samtattutvecklarnainteförhöllsighelttillden definitionofdonesomskrivits.teametlademyckettidpåattlärasigdenyateknikernasomanvändesvid utvecklingensamthurdessaskulleimplementeras,vilketbidrogtillettminskatkundfokus.endedikerad produktägarehadekunnatbidramedtydligarekravochfungeratsomettbollplankfördetorutinerade teamet med utvecklare. Genom tydliga krav på de funktioner som verkligen behövdes, samt att dessa skullefungerafelfritthadebidragittillenbättreanvändarupplevelse.ettexempelärdetfaktumattdet via webbapplikationen helt saknas kontaktuppgifter eller hjälp vid navigering på hemsidan. Detta var något som användartestarna efterfrågade. En FAQ=sida hade inte varit svår att lägga till, men fick låg prioritetdåteametiställetvaldeattutökafunktionalitettillapplikationen. NågotsomgenomgåendeunderprojektetsfaserstördeutvecklingenvarGit.Konfliktermellanversioneri koden, eller delar av kod som försvunnit var vanligt förekommande. De flesta av de tillfällen då det uppstodproblemlöstesenkeltgenombrakommunikationochsnabbkoordineringinomteamet.vidett fåtalavtillfällenakundedetdocktaupptillåttatimmarförattfåtillbakaallfunktionalitetiapplikationen, då stora partier av kod försvunnit. En större kunskap om Git inom teamet varit till stor hjälp för att motverkaproblemen. På grund av otillräckliga förkunskaper och förstudier angående Git och versionshantering använde sig utvecklarna inte av alla verktyg tillgängliga. Utveckling skedde på varje utvecklares dator och slogs samman med huvudapplikationen istället för en separat testversion, det bidrog till att det vid några tillfällenblevproblemdådetintefannsnågonfungerandeversionnärnågonsammanslagitkodsominte fungeratellergjortenfelaktigsammanslagning. Resultatetfråntestningenavapplikationenindikerarattdenideflestafallupplevsanvändarvänligoch fungerarsomförväntat.ettlitetantalavtestarnaupplevdedockallvarligaproblemmedvissafunktioner, men dessa hade inte uppdagats vid utvecklarnas testning. De brister i applikationen som upptäcktes genomtestningenansesintevarasvåraatträttatillmendethadekrävtsytterligaretidförattåtgärda. Alternativt hade testningen kunnat utföras kontinuerligt under projektets gång för att tidigare kunna uppmärksammabristerianvändarupplevelsenochdirektkunnaåtgärdafelen.dettaupplevdesdocksvårt attgenomföradådetkräverresurseriformavtidattsamlainochanalyseradatafråntester,resurser ladespåutvecklingavnyafunktioner. EnstoranledningtillvarförsvårigheteruppstodiattfortsättaanvändadesignmönstretMVPkanhaberott påattmedlemmarnaarbetademedfunktionernapåegenhand.funktionersomhadekunnatanvändasig utavsammamvp=presenterkanhaimplementeratsmedvarsinmvp=presenterjustförattmedlemmarna inte var insatta i varandras kod och inte blev medvetna om den möjliga förenklingen. Ett flitigt användande av UML=diagrammet hade kunnat undvika att liknade kod skrivs flera och effektiviserat koden för överblick såväl som för förändring, men som nybörjare i webbprogrammering hade inte medlemmarnaerfarenhetellerkompetensnogatttänkautifrånuml=diagrammetpådetviset. 8.3 Alternativa)utvecklingsverktyg) Deutvecklingsverktygsomståtttillteametsförfogandehariregelfungeratväl.EttalternativtillGitsom istället kunde ha använts är Subversion.Subversionbeskrivs inom branschen sommeranvändarvänligt
51 Linköpingsuniversitet Institutionenfördatavetenskap 47 ochenklareattsnabbtskapaetteffektivtarbetsflödemed.detkundedärförhapassatdettaorutinerade teambättre.enannanaspektsomkundeförändratsärattanvändasigutavsqlalchemysomhjälpvid hanteringavdatabasen.sqlalchemysomgörattklasserkankopplasdirekttillentabell,ochpåsåsätt underlättaanropochdirektinstansierapythonobjektnärdatahämtasfråndatabasen.dettahadeskapat enmerenhetligkodochgjortdetlättareattsättasiginiandraskod.enuppfattningspriddhosteamets medlemmar är att SQLAlchemy ofta används i liknande sammanhang, speciellt då Flask används som ramverk. 8.4 Möjliga)Förbättringar) Detfinnsenstormängdonödigafunktionersamttvåönskvärdafunktionerpåproduktbackloggensomi nuvarandeversionavwebbapplikationeninteärimplementerade.exempelpådessafunktionerär;spara kundkorgförsenareköp,3ddesignverktyg,delningavköppåsocialmedia,olikaspråkochmöjlighetatt köpa presentkort. Vidareutveckling av applikationen bör dock inte lägga stor vikt vid att utöka antalet funktioner,utansnarareidentifieraochelimineradebuggarsomupptäcktesvidanvändartestningsamt arbeta med att utöka och integrera de funktioner som redan implementerats. På exempelvis inspirationssidanfinnsdetingenmöjlighetattvisanågraandratröjorändesomidagliggerpånågonav de tre olika topplistorna. En annan åtgärd skulle vara att tydliggöra för användaren att det krävs inloggningförattgeenlikeellerattgöraenkommentar.omfattningenavdetvåovanståendeansesinte varahög,menbortprioriteradespågrundavprojektetstidvarslut.designsverktygetharstorpotentialatt geanvändarenstörremöjlighetertillattskräddarsysintröjagenomattökaantaletparametrar.exempel på parametrar är knappar, mönster eller ett utökat antal tryck. Inför lansering skulle vyer med informationomföretaget,hurkonceptetfungerarsamtkontaktuppgifterattbehövas. Enannanmöjligförbättringsåtgärdärkringhurinsamladdataanvänds.Ävenomdetinulägetsamlasin informationomkundernaochvilkaproduktersomsäljerfinnsdetintenågraprocedurerimplementerade förattenkeltplockaframinformationenföranvändning.attinkluderadettavoreentänkbarförbättring somskullekunnaunderlättamarknadsföringsaktivitetersåsomsegmenteringochdärigenominnebäraett mervärde. 8.5 Styrkor)och)svagheter)i)kod) DenaffärsidésomskapatsförvarumärketShrtkräverskalbarhetförattenkeltkunnaskapanyasorterst= shirtar,nyafärgerochnyaattribut.dettainnebärattteametharutvecklatfunktionersomskafungeraför framtiden, vilket har gjort flera saker mer komplicerade än nödvändigt. Ett exempel är hur en t=shirt lagrasidatabasen,varjedelpåt=shirtenharenegentabellmedrelationertillolikatyperavattribut.det krävs komplicerade frågor för hämta en t=shirt ur databasen och detta kunde ha gjort annorlunda, till exempelgenomattlagraallaattributochdelarienochsammatabell,förattförenkladatabasfrågorna och på så sett minska risken för fel. Samtidigt måste detta vägas mot de fördelar som nuvarande skalbarhetinnebär.inuvarandeskickkannågonmedmindremodifieringläggatillettnyttattributtillen delutanstörremodifieringavupplägget. Enaspektavskalbarhet somintetagitshänsyntillärförnärantaletanvändareökar.förattsetillatt webbapplikationensdatabasävenärskalbarmedavseendetpåantaletanvändareärenmöjligåtgärdatt restrukturera och denormalisera databasen. Detta kan medföra stora skalbarhetsförbättringar, men potentielltävenkostnader.
52 Linköpingsuniversitet Institutionenfördatavetenskap Referenser) 48 Abdul FA, Fhang MCS (2012). Implementing Continuous Integration towards rapid application development. 2012& International& Conference& on& Innovation& Management& and& Technology& Research& (ICIMTR). AgrawalMetal.(2004).AConceptualApproachtoInformationSecurityinFinancialAccountAggregation. New York, NY, USA, ACM (ICEC 04; accessed 18 May 2014). An K et al. (2014). A cloud middleware for assuring performance and high availability of soft real=time applications. Journal& of& Systems& Architecture. ( AyhanHÖ,IşiksalS(2005).Memoryrecallerrorsinretrospectivesurveys:Areverserecordcheckstudy. Quality&and&Quantity,38(5): Blair=Early A, Zender M (2008). User Interface Design Principles for Interaction Design. Design& Issues, 24(3): BreuerR,BrettelM,EngelenA(2011).Incorporatinglong=termeffectsindeterminingtheeffectivenessof differenttypesofonlineadvertising.marketing&letters,22(4): ChafferJ(2013).Learning&jQuery&A&Fourth&Edition.PacktPublishingLtd. Chatzigeorgiou A, Manakos A (2014). Investigating the evolution of code smells in object=oriented systems.innovations&in&systems&and&software&engineering,10(1):3 18. Cid C (2006). Recent developments in cryptographic hash functions: Security implications and future directions.information&security&technical&report,11(2): CirinoZ(2012).Pycharm.InternationalBookMarketServiceLimited. Cohn M (2004). Project Advantages of User Stories as Requirements [web site]. ( accessed 13May2014). Datainspektionen (2011). Hur länge får personuppgifter bevaras? = Datainspektionen [web site]. ( bevaras/,accessed18may2014). DittmarH,LongK,MeekR(2004).BuyingontheInternet:GenderDifferencesinOn=lineandConventional BuyingMotivations.Sex&Roles,50(5=6): DrayS,SiegelD(2004).Remotepossibilities?:internationalusabilitytestingatadistance. interactions, 11(2): ElmasriR,NavatheS(2010).Fundamentals&of&database&systems,6thed.UpperSaddleRiver,N.J.;Harlow, PearsonEducation. Al=EmranA,PfahlD,RuheG(2008).Amethodforre=planningofsoftwarereleasesusingdiscrete=event simulation.software&process:&improvement&and&practice,13(1):19 33.
53 Linköpingsuniversitet Institutionenfördatavetenskap 49 Gallaugher JM, Ramanathan SC (1996). Choosing a Client/Server Architecture. Information& Systems& Management,13(2):7 13. GannonM(2013).AnagileimplementationofSCRUM.2013&IEEE&Aerospace&Conference. Garrett JJ (2005). Ajax: A New Approach to Web Applications Adaptive Path [web site]. ( GrinbergM(2014).Flask&Web&Development:&Developing&Web&Applications&with&Python.O ReillyMedia, Inc. HallinA,KarrbomGustavssonT(2012).Projektledning.Malmö,Liber. HasanL,MorrisA,ProbetsS(2009).UsingGoogleAnalyticstoEvaluatetheUsabilityofE=CommerceSites. In: Kurosu M, ed. Human& Centered& Design.Lecture Notes in Computer Science. Springer Berlin Heidelberg,2009: (Lecture Notes in Computer Science, No. 5619; HeslinPA(2009).Betterthanbrainstorming?Potentialcontextualboundaryconditionstobrainwritingfor ideagenerationinorganizations.journal&of&occupational&&&organizational&psychology,82(1): HofRD(2011).YouAretheAd.Technology&Review,114(3): KentBecketal.(2001).ManifestoforAgileSoftwareDevelopment[website].( accessed19may2014). KreibichJA(2010).Using&SQLite.O ReillyMedia,Inc. KumarN,GeethaBG(2013).ImprovingtheSoftwareQualitybyDesigninganEffectiveTestCaseswithan Unit Testing. Life& Science& Journal, 10(7s). ( LaiC=Yetal.(2010).AStudyofInteractiveQualitativeatOnlineShoppingBehavior.WSEAS&Trans.&Info.& Sci.&and&App.,7(2): LoeligerJ,McCulloughM(2012).Version&Control&with&Git:&Powerful&Tools&and&Techniques&for&Collaborative& Software&Development.O ReillyMedia,Inc. LutzM(2010).Programming&Python.O ReillyMedia,Inc. LynnM,HarrisJ(1997).IndividualDifferencesinthePursuitofSelf=UniquenessThroughConsumption. Journal&of&Applied&Social&Psychology,27(21): MahničV,HoveljaT(2012).Onusingplanningpokerforestimatinguserstories.Journal&of&Systems&and& Software, 85(9): (Selected papers from the 2011 Joint Working IEEE/IFIP Conference on SoftwareArchitecture(WICSA2011)). Morris R, Thompson K (1979). Password Security: A Case History. Communications. ( Murphy=HillE,ParninC,BlackAP(2012).Howwerefactor,andhowweknowit.Software&Engineering,& IEEE&Transactions&on,38(1):5 18.
54 Linköpingsuniversitet Institutionenfördatavetenskap 50 Ormanidhi O, Stringa O (2008). Porter s model of generic competitive strategies. Business& Economics, 43(3): OWASP (2014). Password Storage Cheat Sheet [web site]. ( PaulsonLD(2005).BuildingrichwebapplicationswithAjax.Computer,38(10): Pham A (2011). Scrum& in& Action::& Agile& Software& Project& Management& and& Development. Cengage Learning. PorterME(2004).Competitivestrategy:techniquesforanalyzingindustriesandcompetitors[35].New York,FreePress. Schwaber K (1997). Scrum development process. In: Business& Object& Design& and& Implementation. Springer,1997: ( accessed 15 May2014). Schwaber K (2003). Scrum and The Perfect Storm [web site]. ( accessed15may2014). Shatnawi R, Li W (2006). An Investigation of Bad Smells in Object=Oriented Design. Third& International& Conference&on&Information&Technology:&New&Generations,&2006.&ITNG&2006. SjøbergDIKetal.(2013).QuantifyingtheEffectofCodeSmellsonMaintenanceEffort.IEEE&Transactions& on&software&engineering,39(8): SmithK(2006).SimplifyingAjax=styleWebdevelopment.Computer,39(5): SurveyMonkey Blog (2010). Privacy for Survey Respondents [web site]. ( accessed 15May2014). SutherlandJ,SchwaberK(2013).The&Definitive&Guide&to&Scrum:&The&Rules&of&the&Game. Svensk Handel (2011). Koll på Kunden [web site]. ( ge=sv,accessed18may2014). SvenskHandel(2013).e=barometern2013[website].( barometern_2013.pdf,accessed18may2014). Takeuchi H, Nonaka I (1986). The new new product development game. Harvard& Business& Review, 64(1): TiidenbergK(2014).Bringingsexyback:Reclaimingthebodyaestheticviaself=shooting.Cyberpsychology:& Journal& of& Psychosocial& Research& on& Cyberspace, 8(1). ( U.S.Dept.ofHealthandHumanServices(2006).TheResearch=BasedWebDesign&UsabilityGuidelines= Running a Usability Test [web site]. ( usability=tests.html,accessed27april2014).
55 Linköpingsuniversitet Institutionenfördatavetenskap 51 VeerrajuRPSP,RaoAS,MuraliG(2010).RefactoringandItsBenefits.INTERNATIONAL&CONFERENCE&ON& MODELING,& OPTIMIZATION,& AND& COMPUTING& (ICMOS& 20110). AIP Publishing ( W3Schools (2014). AJAX Create an XMLHttpRequest Object [web site]. ( WangY(2009).Whatmotivatesoftwareengineerstorefactorsourcecode?evidencesfromprofessional developers.ieee&international&conference&on&software&maintenance,&2009.&icsm&2009. Weisskopf=Joelson E, Eliseo TS (1961). An experimental study of the effectiveness of brainstorming. Journal&of&Applied&Psychology,45(1): Willis GB (1999). Cognitive interviewing. A& how& to guide. ( WisniewskiJ(2013).TakingTask=BasedUsabilityTestingtoTask.Online&Searcher,37(5): YuY,HuiC=L,ChoiT=M(2012).Anempiricalstudyofintelligentexpertsystemsonforecastingoffashion colortrend.expert&systems&with&applications,39(4): ZepedaJS,ChapaSV(2007).FromDesktopApplicationsTowardsAjaxWebApplications.4th&International& Conference&on&Electrical&and&Electronics&Engineering,&2007.&ICEEE&2007. ZhangM,HallT,BaddooN(2011).CodeBadSmells:areviewofcurrentknowledge.Journal&of&Software& Maintenance&and&Evolution:&Research&and&Practice,23(3): ) )
56 Linköpingsuniversitet Institutionenfördatavetenskap Bilaga)1) )Skisser)och)prototyp) Skisserpåettförstadesignkoncept. 52
57 Linköpingsuniversitet Institutionenfördatavetenskap 53
58 Linköpingsuniversitet Institutionenfördatavetenskap 54
59 Linköpingsuniversitet Institutionenfördatavetenskap 55 Prototyp
60 Linköpingsuniversitet Institutionenfördatavetenskap 56
61 Linköpingsuniversitet Institutionenfördatavetenskap Bilaga)2)G)Produktbacklogg) 57 I Tabell 1 visas den ursprungliga produktbackloggen som skapades i samband med planeringsmötena. Tabell2summerardefunktionernasomadderadestillTrellonunderutvecklingenavhemsidan. Tabell1. Funktion User story Acceptanstest Designverktyg Förhandsvisning Som en kund vill jag kunna välja färg, modell, mönster, tryck, bröstficka och knappar på en tröja så att jag kan skapa en unik tröja ingen annan har Som en kund vill jag kunna se hur tröjan jag designar förändras I realtid så att designprocessen blir enkel för mig. Givet När Se till att Kunden vill designa sin tröja. Kunden vill se hur designen ser ut.. Kunden öppnar designverktyget. Kunden designar. Kunden fritt kan välja mellan färg och mönster till delarna ärm, fram- och baksida av tröjan. Samt att på vissa modeller kunna välja knappar samt tryck. Allt ovan i realtid. Bilden av t-shirten ändras i realtid i samband med byte av parametrar Kunna köpa efter kunden designat sin t-shirt alternativt köpa efter att ha lagt I varukorg Kunden har valt en tröja. Kunden trycker "köp/check-out" Kunden snabbt och smidigt kan genomföra sitt köp. Köp Kundregistrering Tilläggning av attribut Som en kund vill jag se en sammanfattning/preview av min order innan utcheck så att vet att allt I min order stämmer och uppfyller mina krav Som en kund vill jag kunna registrera ett konto så att jag spara mina uppgifter och genomföra köp snabbare i framtiden Som administratör så vill jag kunna lägga till nya färger och mönster till e- handelsapplikationen så att jag kan hålla butiken uppdaterad Att kunden kan få en överblick på ordern Att kunden vill registrera sig. Administratören vill addera valbara attribut för designen. När kunden ska köpa Kunden genomför sitt köp. Admin adderar attribut. En ren och tydlig sammanfattning av ordern kan visas Kunden kan skapa ett konto. Administratören kan välja hur nya attributet ser ut och är, så uppdateras vår räknare samt designvyn med detta attribut.
62 Linköpingsuniversitet Institutionenfördatavetenskap 58 Att kunden har ett konto. Kunden är inne på sidan Kunden kan logga in genom ett formulär. Kunden har valt en design. Kunden vill addera tröjan till sin kundkorg. Kunden genom ett knapptryck adderar varan till kundkorgen och att den reserveras I databasen som unik. Kundkorg Som en kund vill jag kunna designa/köpa flera t-shirtar och kunna radera icke-köpta t- shirtar efter vidare jämförelser Kunden har hämtat sin kundkorgsvy. Kunden trycker "töm kundkorg". Samtliga objekt I korgen tas bort ur vyn och att designen för dessa görs tillgänlig för andra användare. Kunden har objekt i kundkorgen. Kunden trycker "ta bort objekt". Designvyn öppnas med kundens valda attribut ifyllda. Kunden vill ändra en design I kundkorgen. Kunden trycker på sitt objekt I korgen. Objektet tas bort ur kundkorgsvyn och görs tillgängligt för andra kunder. Unikvalidering Som en kund vill jag inte kunna välja en t-shirt som redan köpts så att jag utan irritation kan designa en unik t-shirt. Kunden har skapat en tröja. Kunden ska välja nya attribut. Kunden enbart erbjuds attribut som leder till en unik tröja.
63 Linköpingsuniversitet Institutionenfördatavetenskap 59 Kundorderöversikt Som administratör vill jag kunna se vilka kunder som handlar mest för att kunna belöna sådana köpvanor. Som administratör vill jag ha översikt över ordrar för att påverka kommande utbud, se vad som går hem. Att en kund genomfört ett köp så skall administratör kunna se detaljerna med ordern. Admin vill kunna se över senaste köpen. Admin enkelt kan hålla koll på köpflödet. Jämföra t-shirtar Som en kund vill jag kunna jämföra flera tröjor så att jag enkelt kan välja mellan flera alternativ. Kunden har minst en sparad design och/eller en under konstruktion. Kunden vill jämföra sina designer Kunden får upp skapelserna bredvid varandra för enkel jämförelse. Återställning av lösenord Som en kund vill jag kunna återställa mitt kontolösenord så jag kan logga in om jag glömmer mitt konto Kunden vill skapa ett nytt lösenord.: Att kunden inte har tillgång till sitt gamla lösenord. Kunden genom mejl-återställning kan skapa ett nytt lösenord till sitt konto. Lista orderhistorik om en kund vill jag kunna se mina aktuella/gamla ordrar för att veta vad denne tidigare beställt Att kunden gjort tidigare ordar. Kunden vill se äldre ordrar. Kunden kan se sina tidigare order med lätthet. Like-funktion Som en kund vill jag kunna likea en tröja så att andra kan se vilka tröjjor jag gillar. Att en medlem genomfört ett köp, delat tröjat på communityt så att den är synlig för andra medlemmar, kunden vill "likea" en bild Se till att antalet likes på bilden på ökar Livefeed Som en kund vill jag kunna se andra personers skapelser i realtid för att få inspiration och hjälp I mitt eget skapande. Att en medlem genomfört ett köp, delat tröjat på communityt så att den är synlig för andra medlemmar, Användaren tittar i livefeeden Se till att de 5 senaste tröjorna som köptes visas Nedräknare Som kund vill jag kunna se hur många unika tröjor det finns kvar så att jag blir taggad Att kunden vill se hur många unika tröjor som finns kvar en. Kunden är på hemsidan. Kunden kan ta del av räknaren på ett visuellt tilltalande sätt.
64 Linköpingsuniversitet Institutionenfördatavetenskap 60 Administration av ordrar Som administratör vill jag kunna administrera alla kunders ordrar så att jag kan hjälpa till vid eventuella problem. Administratöre n behöver ändra en order. Administratör en går in ordern. Administratören har möjlighet att ändra attribut på designen på lagda men ej hanterade ordrar. Borttagning av parametrar Som administratör vill jag kunna ta bort parametrar. Admin vill ta bort en designmöjlighet. Admin trycker "Ta bort". Attributet försvinner ur databasen och designvyn. Multiview Preview Som en kund vill jag kunna se t-shirten från olika vinklar så att jag kan bli nöjd med mitt köp. Att kunden designar. Kunden vill se sin tröja ur andra vinklar. Kunden kan se sin tröja ur andra vinklar utan att kunna designa i dessa. Slumpfunktion Som en kund vill jag kunna slumpa fram en tröja för att få hjälp med sin design. Givet: Kunden vill slumpa fram en unik T tröja. Kunden trycker slumpa. En unik tröja på ett effektivt (icke Naivt) sätt slumpas fram. Spara/reservera design för köp Som en kund vill jag kunna spara mina designs så att jag kan fundera över om jag vill köpa t-shirten senare. Givet: Att kunden har designat en tröja. Kunden vill fundera innan kunden köper sin tröja. Kunden har möjlighet att spara/låsa sin design under en kortare tidsperiod. Delning av design I social media Som en kund vill jag kunna dela min design med vänner så att de kan hjälpa mig att bestämma mig. Givet att en kund designat en tröja Kunden vill dela denna på facebook, tröjan delas på facebook Kommentarsfunkti on Som en kund vill jag kunna kommentera på t-shirtar i communityn för att kunna ge feedback till andra användare. Givet: Att en kund vill ge feedback på en tröja. Kunden är i tröjvyn. Kunden genom ett kommentarsfält kan dela sina tankar om tröjan. Community-profil Som en kund vill jag kunna skapa en profil i samband med kontot för att få mer utav community-känslan.
65 Linköpingsuniversitet Institutionenfördatavetenskap 61 3D-designverktyg Givet - Att en intressent vill köpa en tröja skall hen ha ett designverktyg av hög klass tillgängligt Någon vill köpa en tröja Kunden kan se sin eventuella tröja i realtid online. Moderering av användare, kunna blocka användare Som administratör vill jag kunna stänga av användare som missköter sig. Att en moderator anser att en communityme dlem har betett sig illa. Administratör en vill blockera en specifik användare. Administratören ska kunna se till att kunden inte kan använda sina inloggningsuppgif ter.//alternativt ska hela IPadressen bannas så att användaren inte kan registrera sig igen eller kommentera som gäst// Ändra språk Som en kund vill jag kunna välja ett språk på webbsidan så att jag kan förstå alla funktioner och text. Uppdater orderstatus som en administratör vill jag kunna ändra status för en order för att ha koll på min tröja Låsa parametrar kunden vill slumpa en tröja med vissa bestämda attribut. kunden trycker slumpa efter ha valt vissa attribut. En slumpad tröja med de låsta parametrarna slumpas fram. Betygsätta t-shirts En kund vill betygsätta en tröja. Kunden ser tröjan. Kunden kan ge tröjan ett betyg efter en fördefinierad skala (ex 1-10 Toasters) Topplista med t- shirts ifrån betygsättning Kunden vill se vilka tröjor communityt har gett högst betyg. Kunden går in på topplistan. Kunden får en snabb överblick av de tio högst "rejtade" tröjorna.
66 Linköpingsuniversitet Institutionenfördatavetenskap ) Presentkort som en kund vill jag ha möjlighet att köpa presentkort för att kunna ge andra samma möjligheter till unikhet som jag fick. 62 Att kunden vill erbjuda en vän att köpa en tröja. Kunden vill handla ett presentkort. Kunden erbjuds lägga till presentkort i sin kundkorg. Presentkorten skall ha ett kontrollnummer som är unikt för kortet. Tabell2. Funktion funktion för inloggning startover design livefeed "latest creations" livefeed "your favourites" webbfeed "our favourites" Byta lösenord Kundöversikt User Story Som en kund vill jag kunna logga in och ut från mitt konto så jag kan komma åt min profil när jag besöker sidan Som en kund vill jag kunna börja om designprocessen med en standard vit t-shirt Som en kund vill jag kunna se de senast köpta t-shirtarna Som kund vill jag kunna se vilka t-shirtar som är de mest populära Som kund vill jag kunna se vad redaktionens favoritval av t-shirt är Som en kund vill jag kunna byta lösenord Som administratör vill jag kunna ha en strukturerad översikt på samtliga registrerade användare ) )
67 Linköpingsuniversitet Institutionenfördatavetenskap Bilaga)3) )Frågor)vid)användartestning) De)frågor)vi)använde)vid)användartestningen: Scenario: Du är en helt ny användare som vill köpa en tröja. Helst skulle du vilja att tröjan är en piké med en ärm i någon nyans av blå. Din uppgift är därför att använda webbplatsen för att köpa en tröja som har en ärm i någon nyans av blå. 2. Anser du att du lyckades genomföra uppgiften? Nej. Ja, men det var onödigt svårt. Ja. Var det något speciellt som upplevdes svårt? Något som inte fungerade? 3. Hur lång tid skulle du uppskatta att det tog dig att utföra uppgiften? <3 minuter 3-5 minuter 5-8 minuter 8-10 minuter minuter 4. Vilka steg använde du för att utföra uppgiften? Välj bland nedanstående eller beskriv på egen hand. Home Design: Gjorde ändringar Design: Checkade ut Skapade konto Kollade min profilsida Fastnade/något funkade inte Design: Designade en tröja Design: Skrev in min kundinfo Loggade in Uppgiften klar Inspiration 5. Stötte du på några felaktigheter eller problem under scenariot? Exempel kan vara att sidan inte fungerade i din webbläsare eller att knappar inte fungerade. Ja Nej Om ja, vilka? 6. Var det något som förvirrade dig under scenariot? Ja
68 Linköpingsuniversitet Institutionenfördatavetenskap 64 Nej Om ja, vad? 7. Är du nöjd med hur det gick att utföra uppgiften? Ja Nej Finns det något du skulle vilja förändra?
69 Linköpingsuniversitet Institutionenfördatavetenskap Bilaga)4) )UMLGDiagram) 65 En)grafisk)bild)över)hur)de)önskade)funktionerna)skulle)vara)sammankopplade ) ) ) ) ) ) ) ) ) )
70 Linköpingsuniversitet Institutionenfördatavetenskap Bilaga)5) )ERGDiagram) En)bild)över)de)implementerade)databasrelationerna. 66 ) )
71 Linköpingsuniversitet Institutionenfördatavetenskap Bilaga)6) )Individuella)reflektioner) 67 Teamets)samlade)erfarenheter)under)projektets)gång.)Inkluderat)i)dessa)är)också)diskussion)kring)hur) arbetet)upplevdes)av)medlemmarna. Erfarenhetssammanfattning) )Lilian)Zachrisson) Projektmetodiken) Under projektet jobbade vi med projektmetodiken scrum, för mig och resten av teamet var det första gångenviprovatattjobbapådethärsättet.normaltharjagjobbatenligtmertraditionellamodellermed enprojektledareochmergivnaroller.jagärnormaltenpersonsomärväldigtöppenförnyautmaningar ochförändringar,såävendenhärgången.menjagvarändåoroligförhurettprojektutanenledare,och utannågonsomstyruppprojektet,skullefunka.jagvarävenoroligöverhurdenellerde,inklusivemig, somnaturligtbrukarantaledarrollenskulleklaraavatthållasigtillbakaochlitapåattallagjordedetde skulle. Rollensomscrummasterharvidelatpåveckaförveckaunderdeförstasprintarna.Sutherlandetal. (2009) menar att det är viktigt att ha en erfaren och stark scrum master för att lyckas få ett team funktionelltochanammascrummetodikensnabbt.ochvårtarbetssättfunkadeoftaganskadåligtochvi fölloftatillbakapåmertraditionellasettattarbeta.våradailyscrumblevävenofokuserade,iställetför attavrapporteraochplaneraharvimångagångerundermötetsgångförsöktlösadeproblemsomhar rapporterats.dethargjortattmötenatagitonödigtlångtid.omvihadehaftenochsammascrummaster genomhelaprjektethadekanskedennelättarekommitinirollenochhjälptossattfåmerstrukturivårt scrumarbete. Menöverlaghargåttbraattanpassasigtilldettanyasättattjobbautanenprojektledareochtydliga roller.detharfunnitsmedlemmarsomärmerdrivandeänandraochjagtrorattdetärsvårtattkomma ifråndet,menallaigruppenharkommittilltalsochallabeslutharvaritmajoritetsbeslut.viharlyckats hållaihopgruppenochproduceraettresultatviärstoltaöverutanenledare. Jagtyckerattdetstörstaochmestförsvårandeproblemetharvaritattviintekunnattittaochreflektera över vår scrumtavla när vi haft Daily Scrum. Ofta har vi löst det problemet genom att vi haft våra stående mötensittandesnerviddatorerellerfingradepåsmartphonesmendetharkraftigttagitfokus frånsjälvamötet.avsaknadenharenfysisktavlaharävenmedförtattdetiblandvaritsvårtatthållavår scrumtavla uppdaterad och hålla koll på exakt vad som ska göras under dagen. Även om Trello är ett fantastisktverktygsomjagnumerävenanvänderprivatsåersätterdetintedefördelarsomenfysisk tavla ger i from av lättöversiktlighet. Sutherland et al. (2009) menar även här att en fysisk, enkel scrumtavlaärettmåsteförattlyckasbraommansnabbtskabörjajobbaenligtscrummetodiken. Utvecklingsmiljön) ViharjobbatmedIDE:etPyCharmförattskrivaochtestavårkodochcloud=plattformenOpenshiftföratt skötaversionshanteringenmedgitochförattpubliceravårtprojektonline.pycharmharjagbaragottatt sägaom,detharfunkarriktigtbra.openshifthardockkostatmigminst50=100timmarsarbetebaraför attlösamångaunderligaproblem.tyvärrfinnsdetväldigtlitedokumenterariforumetochlinkandeom Openshiftochderamverkvianväntsåviharoftafåttlösaproblemenheltpåegenhand.
72 Linköpingsuniversitet Institutionenfördatavetenskap 68 Detbrukarvaraennyttigochbraerfarenhetattnågotkanskeintealltidfunkar,attdetärläroriktattlösa problemen.menidethärfallethardetvaritsålustigaproblem,detharproblemmedfilrättigheterpå filersomviinteskullebehövabryossom.opensshiftskonfigurationavpythonochflaskharintefunkar sompåvåralokalaservrartrotsattvivaritnogamedatthasammaversioner.mångagångerhaftvifått skriva specialfunktioner för att få applikationen att köra både lokalt och på Opensshift. Ibland, när Openshiftsedanuppdateratellerändratpåsinaservrarsåharviåterigenfåttsammaproblemmendå behövtfinnaenannanlösning. Utvecklingen) Programmeringskunskapernainomgruppenvarvidprojektetsstartväldigtolika.Endelhadeendastde kursersomerbjuditsinomramenförutbildningenmedanandrahadebådeandrakurserochpersonligt inhämtadekunskapermedsig.detvisadesigtydligtunderprojektetsgång.avnaturligaskällharenstor del av koden i projektet utvecklats av några få medlemmar. Här hade vi kunnat hantera de skilda utgångspunkternabättreviduppdelningenavutvecklingsuppgifter.tyvärrharnågrasuttitmedetteller någrafåuppgiftergenomhelaprojektet,visserligenhardesäkertlärtsigmycketmendeharliteninsyni hurhelaapplikationenfunkar.omdesomintehadesåstoraerfarenheterhadefåttliteenklareuppgifter hadedekanskehunnitgöramerochpåsåsettfåttbättrehelhetssynpåhelaapplikationen. Lärdomar)och)personlig)utveckling) Närjagbörjademedprojektethadejaggodakunskaperinomprogrammeringmenintejustidespråksom vi skulle använda. Inom webb har jag endast programmerat med HTML, ASP.NET (VB=Script) och PHP tidigare.jagkändestorentusiasmsinförattfåbitaienuppgiftochtatagiattläramigjavascriptpå riktigt. Nu efter projektet tycker jag att jag lärt mig det jag hade som mål, jag förstår hur JavaScripts användsochbordeinteharnågraproblemattiframtidenanvändadessavidsenareprojekt.närdetgäller Flask och Python finns det dock mycket mer att lära sig, vi har på grund av för lite erfarenheter vid inledningenavprojektettroligtvisintegjortalltenligt handboken. Vadgällerprojektarbetenharjagmedmigattdetintealltidärsåattallasträvarmotsammamålochhålla motivationenpåtopp.iblandfårmanblundalitefördetfaktumattallainteharsambaambitionsnivåoch attandraiteametfårutföraextraarbetefårattnådetförutbestämdamålet. Källor) Sutherland J, Downey S, Granvik B (2009). Shock Therapy: A Bootstrap for Hyper-Productive Scrum. Agile Conference, AGILE 09.
73 Linköpingsuniversitet Institutionenfördatavetenskap 69 Erfarenhetssammanfattning)G)Andreas)G) Inför detta projekt hade jag ingen erfarenhet i att arbeta med programvaruutveckling enligt en agil projektmetodellerattgenomföramedprojektsomsträckersigöverlikalångtidsperiod.underprojektets gång har det visat sig hur utmanande det är att arbeta i en ny grupp med en för mig okänd projektmetodik, samtidigt som det ställts höga krav på inlärning av nya kunskaper. Nedan följer mina tankar kring arbets= och utvecklingsmetodik samt om de tekniker som används i projektet och hur jag personligenkandranyttaavdetjagupplevt. Arbetsmetodik)och)team) Scrumvarokäntbådeförmigochmedlemmarnaiprojektteamet,ochmöttetillenbörjanenvissskepsis ochosäkerhet.attdennakänslafannsinomgruppentrorjagberordelspåattdetintefannsnågontydlig ledare för gruppen samt kring osäkerheter i hur arbetssättet fungerade. Enligt Hallin och Karrbom Gustavsson(2012)kännersiggruppmedlemmarosäkraochtveksammadådesättsihopmedennygrupp. Förattmotverkadettabörpersonernaigruppengestydligariktlinjerfrånenledare(Hallin&Karrbom Gustavsson,2012).Teametsmedlemmarhadestörrevanavidattarbetaenligttraditionellaprojektformer ochdåteametsscrummasterinteagerade traditionell projektledaresomberättarvadsomskagöras uppstodförvirring.enscrummasteransvararendastförattundanröjahinderförprojektteametsamtatt setillattdeverktygsomfinnsimplementeradeiscrumanvänds(gannon,2013;sutherland&schwaber, 2013) EfterenvisstidblevteametsmedlemmarmerbekvämamedattarbetamedScrumvilketbidrogtillatt detkundeläggasettstörrefokuspåfaktisktarbete.dåfleraiteamethadeambitionenattlärasigmerom scrum och testa på rollen som scrum master kom vi i teamet gemensamt överens om att de som var intresseradeavrollenskullebytaavvarjevecka.dennaimplementationavscrumblevdockmisslyckad. Resultatet av implementationen blev att metodiken i princip helt tappades, vilket bidrog till medlemmarna i gruppen inte visste vad andra gjorde, scrummötena var ostrukturerade och en sprintbacklogg som inte uppdaterades. Dessa problem uppdagades inom teamet som istället för att strukturera upp användningen av scrum, föll tillbaka på att använda verktyg från traditionell projektstyrning,vilkavivarvanavidattanvända.dettagjordessamtidigtsomdenrullandescrummaster= rollenfannskvar,samteventochartefakterfrånscrum.teametlyckadesintelösanågraproblemmed hjälpavdettaangreppssättdådeintepassadeiprojektetsständigtföränderligakaraktär. Ovanstående problem upplevs inte ha påverkat genomförandet av arbetsuppgifter i någon större omfattning.mycketberortroligtvispåattviigruppensattmyckettillsammansnärviarbetade,främst undersprint2dåmerpartenavutvecklingskedde.teametshögaarbetsmoralochviljaatthjälpaandra harocksåbidragittillattbristenigenomförandetavmetodikenfåttmindreeffektpåslutprodukten. Något jag under projektet upplevde svårt var att genom projektet behålla en gemensam målbild för applikationen.detblevstortfokuspåattbarautvecklaochimplementeradefunktionersombestämts underförstudien.jagtrorslutresultatethadekäntsmerfokuseratochenhetligtomviunderprojektets gångstannatuppochdiskuteratvarvivillenåmedslutprodukten.jagtrorattvitappadeenstoravvårt kund= och användarfokus när vi var som mest inne i implementerandet. Till exempel följde vi inte vår definitionofdonespecielltnoga,någotsomärviktigtförtransparens(sutherland&schwaber,2013)och gjordeattfunktionersomegentligenintevarheltklara,ansågsvaraklara.
74 Linköpingsuniversitet Institutionenfördatavetenskap 70 Jagtrordetunderlättatattbehållaanvändarfokusomdetfunnitsenexternproduktägaresomhelatiden förespråkarhurdetsomimplementerasskagekundnytta. Olikatekniskbakgrundmedfördeattdetvaritstorvariationihurmycketolikapersoneriteamethunnit implementera i applikationen. Hade eventuellt kunnat åtgärdas genom att tilldela mer svårimplementeradefunktionertilldemererfarnaigruppen,docksvårtdåingenigruppenarbetatmed ettliknandeprojektidennaomfattningvilketgjordedetsvårtattförutsesvårighetsgraden. Bristenpåerfarenhethosteametgjordeattpokerplanningkändesonödigtdådetendastblevspekulation Utveckling)och)implementation)av)kod) Vid utvecklingen av applikationen har jag personligen haft ambitionen att främst arbeta med användargränssnitt(gui)ochanvändarupplevelsen(ux).efterattviigruppenarbetatframenskissunder sprint0,togjagpåmigansvaretattgöraenprototypiphotoshop.dennaprototyplågsedantillgrundför applikationensanvändargränssnitt,somisittnuvarandeutförandeistorutsträckningliknarprototypen somgjordesförtremånadersedan.underprojektetsgångharjustapplikationensgränssnittfåttmycket berömfrånopponerandegrupper,vilketjagpersonligensersomenframgång. Trotsattmycketavmittfokuslegatpådetgrafiska,harjaglyckatsberöraalladelaravapplikationen.Till enbörjanutgjordesmittarbetetillstörstadelenavserver=ochdatabaskodnärjagarbetademedförsta versionen av designverktyget. Detta gick sedan över till att behandla mer rena webbtekniker som sessionerförhanteringavanonymakunderskundkorg.dennadeluppfattadejagsjälvsomväldigtsvår ochkomplicerad,delspågrundavsvårlästapiiflask,menävenbristpåandrapersonersomförsöktsig påliknandeimplementationmedflask.islutetavimplementeringenladesiställetmycketfokuspådet grafiska, samt att göra självinstruerande registrerings= och inloggningsprocesser. Detta innebar att jag arbetademerpåklientsidanmedhtml,cssochjquery.dettaarbetefickmigverkligenatttänkaurett användarperspektiv och lärde mig hur svårt det är att få ett gränssnitt att vara intuitivt och enkelt att använda. Refaktoreringenavkodenisprint3upplevdejagocksåsommycketlärorik.Delsförattjagvartvungenatt granskaminegenkodkritisktsamtattförsökasedenurnågonannansperspektivochförattgöradenlätt att förstå. Mycket av min refaktorering fokuserade på att effektivisera jquery=script och göra dessa snabbare,vilketjagnuanserattjagärbättrepå. Tekniska)plattformar) Detekniskaplattformarsomanvändesiprojektetvartillfredställandenärdefungeradesomförväntat, vilket vissa av verktygen inte var. Den Integrerade utvecklingsmiljön (IDE) PyCharm som användes underlättade strukturen av mappar och filer, versionshantering samt gav kodförbättringsförslag. Programmeringsspråket Python, som användes i projektet, har också fungerat tillfredsställande. Det är lättlästochväldokumenterat,ochtillsammansmedwebapplikationsramverketflaskhardetuppfylltsitt ändamål.denendanackdeljaganserattflaskärattdenapisomfinnsonlineärsvårattförstå,vilkethar letttillattflertaletfunktionertagitlångtillattutveckla.användningenärhellerintelikautbreddsomtill exempelphp,vilketmärkspåantalettutorialssomhittadesdåjagletadeefterimplementationsexempel. Deexempelsomfannsvaroftaavförenkladtypellerbehandladeintedetjagvaruteefter. Något jag upplevde stora problem med var versionhanteringsvertyget Git. Verktyget upplevdes icke= användarvänligt av samtliga medlemmar i projektteamet och har minskat produktiviteten.
75 Linköpingsuniversitet Institutionenfördatavetenskap 71 Uppskattningsvis har lösning av konflikter med Git uppgått till 10 % av utvecklingstiden och skapat frustration inom teamet. Vissa gånger har det tagit upp till åtta timmar för att få tillbaka den funktionalitet som fanns inte konflikt mellan versioner uppstått. Många av konflikterna hade troligtvis kunnat undvikas om teamet lagt ner mer tid på att lära sig verktyget och ta fram ett gemensamt arbetsflöde.eventuellthadeettannatversionshanteringsverktyg,exempelvissubversionanvänts. Den molnbaserade tjänsten Openshift har också bidragit med flertalet problem som minskat produktiviteten.blandannatärdetnärversionersomhaftfungerandefunktionalitetlokalt,somsedan inte fungerat vid publicering. Detta har resulterat i att teamet varit tvungna att implementera speciallösningarförattkunnapubliceraapplikationen.imångaavfallenhardetävenvaritsvårtatthitta orsakentillproblemen,dådokumentationkringopenshiftärbristfällig,samtfelloggarnaärundermåliga. Personliga)mål) "Utöka'min'kunskap'inom'områdena'kandidatarbetet'berör,'med'mest'fokus'på''användbarhet'och'design' av&en&applikation.&vill&även$utvecklas$på$att$arbeta$i$grupp$mot$ett$gemensamt$mål,%och%producera%något% vi#tillsammans#är#stolta#över. Idetstorahelaärjagnöjdmedkursen.Jagharhaftroligt,samtidigtsomjaglärtmigarbetaenligtenny projektmetodik och använda teknikersomkännsrelevanta för att skapa något reellt. Under projektets gångharjagnästandagligenfåttläramigattangripaochlösanyatyperavproblem.minförmågaatt arbetaigruppharocksåutvecklatsochjagharlärtmigviktenavvidattkontinuerligtkommuniceraföratt kunnauppnåmål. För att koppla till mina mål som sattes i början av kurser skulle jag säga att jag uppnår de flesta. Personligenhadejaggärnasettattviuppnåttmerenhetligprodukt,därvilyckatsintegreraalladelarvi implementerat.eventuellthadejagsettattviunderprojektetsgångstannatuppochbegränsatantalet funktioner för att istället lägga mer fokus på de vi redan hade. Att jag haft möjlighet att arbeta med gränssnittochanvändbarhetunderprojektetsgångärnågotjagsersompositivt,ochdetharvaritlärorikt attfokuserapåenproduktmedenstortanvändarfokus.& Källor) Gannon M (2013). An agile implementation of SCRUM IEEE Aerospace Conference. Sutherland J, Schwaber K (2013). The Definitive Guide to Scrum: The Rules of the Game. ) ) )
76 Linköpingsuniversitet Institutionenfördatavetenskap Erfarenhetssammanfattning) )Oskar)K) Scrum) 72 Genom projektets utförande har jag fått många nya erfarenheter inom Scrum och mjukvaruutvecklingsmetodik. Det var intressant att se hur Scrum fungerade i praktiken. I början av projektetvardetintenågonigruppensomhadeerfarenhetavattarbetamedscrumochdeflestavar skeptiskamotattdetskullefungerabra.avsaknadenavenledareochtydligansvarsfördelninggickemot detraditionellaarbetssättetsomvivarvanavid.detärinteförräniefterhandnärmanlärtsigocharbetat medscrumordentligtsommaninserhurkraftfullarbetssättetär.ibörjanavprojektetvardetmycket som var nytt och mycket vi behövde lära oss. Detta gjorde att vi övergripligt gick igenom hur Scrum fungeradevilketgjordeattviendastfickenytligförståelseavarbetssättet.eftersomattviintelärdeoss Scrum ordentligt i början så kändes arbetssättet påtvingat och personligen tyckte jag att scrum aktiviteternaoftasttogtidifrånandrasaker.ävenomjagvarmedvetenomattdetskullebliväldigtrörigt om vi inte använde oss utav ett strukturerat arbetssätt hade jag inte insikt inom alla moment som användsiscrumförattvärderadem. Ettexempelpåvårbegränsadeerfarenhetvarattviibörjanbestämdeossförattbytascrummastervarje veckaeftersomattallavilleprovapådet.dettavisadesiginteallsvaraeffektivteftersomattdetblev svårtattlämnaöverrollentillnästascrummaster.detblevävensvårtfördennyascrummasternattfå enordentligbildavvilkahindersomfannsochhurdeskullelösas.trotsattvårhandledareföreslogattvi inteskulleanvändaveckovisscrummastersågjordevidetändå.jagtrorattdetberoddepåattviinte hadekunskapomvadsomkrävdesförattrollenskullefungerabra. Ett annat exempel är att vi ofta hade ineffektiva möten där vi diskuterade irrelevanta saker och det beroddeoftastpåattviintehadenågontydligagendaförmötetochingenordförande.efterettsprint reviewupptäcktesdettaochvibestämdeattscrummasternskullevaraordförandeochvaraansvarigför mötetsagenda.dennalösningvardåligeftersomattvihadeolikascrummastersvarjevecka.detblev svårtattgöraenbraagendaeftersomvisaknadenågonsomhadebraöversiktöverallaigruppenoch somhadeinsyniallasproblem.dennaproblematikupptäcktesislutetavsprinttredåvibestämdeossför atthaenbestämdscrummasterirestenavprojektet. Nu i efterhand tycker jag att vårt arbete hade kunnat genomföras effektivare om Scrum gåtts igenom ordentligtisprint0.detärmångasmåreglerochrollernakanvarasvåraatttatillsignärmanärvanvid attarbetemedentraditionellprojektmodell.ävenomviplaneradeettarbetsmomentattlärasigscrum var det mycket andra saker som tog fokus från oss och vi anskaffade oss inte den kunskapen som behövdes. Förattrådabotpådeproblemsomvistöttepåtidigthadedetvaritbättreomvihaftenbestämtscrum masterredanfrånsprintnoll.kenschwaberochjeffsutherlandbeskriverisinguideomscrumhurscrum mastern ansvarar för att säkerställa att Scrum förstås och efterlevs samt att vara en coach till utvecklingsteamet (Sutherland & Schwaber, 2013). Detta är någonting som jag tycker att vi saknade i börjanavprojektetochomvibestämtenscrummasterisprintnollhadedennamedlemkunnatavsätta extratidtillattlärasigarbetsmetodikenordentligtochsäkerställaattvianvändemetodikenpårättsätt. Gruppdynamik) Jagtyckerattgruppdynamikenharfungeratbraochjagärimponeradöverarbetsmoralenviharhafti gruppen.vibestämdeossförattsatsahögreänvadsomkrävdesförattviskullekännaossstoltaöverdet
77 Linköpingsuniversitet Institutionenfördatavetenskap 73 viåstadkommit,någontingsomjagtyckervilyckatsmed.helagruppenhararbetatmycketenskiltoch tagit mycket ansvar för att göra saker på egen hand. Trots att vi arbetat mycket enskilt har vi hjälp varandramycketochtillsammansformathemsidantilldenvisionenvihadeibörjan. Utveckling) Viharanväntossutavpycharmförattskrivakodenochdetharfungeratväldigtbra.Programmethar många funktioner som är väldigt användbara när man skriver kod såsom avlusare, kompilator och autokomplettering av kod. För versionshantering har vi använt Git. Det var lite strul i början med versionshanteringeftersomattmångavaroerfarnaochgitärganskasvårtnärmanärnybörjare. Personligen så har utveckling av webbapplikationen varit väldigt lärorik. Jag har lärt mig mycket om javascript.docksåharmångaproblemuppståttunderutvecklingenochjaganvändemiginteavnågon lärobokvilkethargjortattjagharanväntinternetförattsökalösningarpådeproblemensomuppstått. Oftaärdetsvårtatthittaenexaktlösningpådeproblemenmanharochoftahittarmanenlösningsom sedanmodifierats. FörattillustreraproduktbackloggharvianväntenwebbaseradapplikationsomheterTrello.Verktyget harhjälptossattfåenöverblickövervadallaigruppenarbetarmedvidolikatidpunkterochvadsomska görasundersprinten.docksåharproduktbackloggenperiodvisvaritdåligtuppdaterad.jagtrorattdetta berorpåattvihadeförstorakortochattvissakortarbetadesmedunderlångaperioder.anledningentill attvihadestorakortvarattdetvarsvårtattuppskattavadsomkrävdesförattutföravissafunktioner. Någraavdefunktionernasomvitroddeskullevaraenklaattimplementeravisadesigkrävamycketmer arbetesomvipågrundavvåroerfarenhetintekundeförutse.omvihadehaftenbestämdscrummaster underhelaprojektettrorjagattdessakorthadeupptäcktsochvihadekunnatdelauppdemsåattvi kundefördelaarbetsbördanjämnare. Källor) Sutherland J, Schwaber K (2013). The Definitive Guide to Scrum: The Rules of the Game. ) )
78 Linköpingsuniversitet Institutionenfördatavetenskap Erfarenhetssammanfattning) )Daniel)B) Arbetssätt)och)Team) 74 Arbetet i teamet har skett enligt den agila metoden scrum. Denna metod bygger mycket på eget ansvar.(schwaber, 1997) Detta var första gången för samtliga teammedlemmar som denna metodik användes. Trots att alla i teamet var nya till arbetssättet gick det väldigt bra att komma igång och alla teammedlemmartogsittansvarförattanpassasigtillhurarbeteutfördesviascrum.vifickenbrastart därenergifrånstartenavettprojektleddetillenbragrundattståpåinförrestenavprojektet. Ibörjanvaldesattarbetamedenveckovisvaldscrummaster.Dettaansågsvidtidpunktenvaraenbra lösningdärsamtligaficktestapårollen.dettavisadesigsedanvaramindrebradåkontinuitetsaknades. Dettaordnadesgenomattåtergåtillenmasterpersprint,somdirektleddetillattprojektetfickettbättre flyt.dockhardettaintehaftalltförstorpåverkanpåarbetet. Senare i projektet gled teamet ifrån scrum och började slarva med att använda de verktyg som fanns. Efteretttagsslarvandeinsågteametattdetärviktigtattarbetameddetadministrativeftersomscrumär väldigtberoendeavattsamtligapersoneruppdaterarscrumtavlan. Teamettyckerjaghararbetatväldigtbratillsammans.Dynamikenharvaritbramedenlättsamochrolig stämning. Tekniska)Lösningar) ProjektetutveckladesiutvecklingsmiljönPycharm.Dennamiljövarenkelattarbetaidåden,liktdeflesta integrerade utvecklingsmiljöer har de flesta önskvärda funktioner inbyggda, till exempel avlusare, kompilatorochautokompletteringavkod.pycharmharäveninbyggtstödförversionshantering.pycharm varlättattförståocharbetetmeddetfortlöpteutansvårigheter.detendaproblemetsomuppstodvar när vi skulle använda det inbyggda stödet för versionshantering, vilket kan ha berott både på vår okunskap,samtdåligdokumentation. För versionshantering användes GIT. GIT var inget som någon i teamet hade använt förut och tidigare kunskapsaknadesomgit. Git var väldigt svårlärt och teamet upplevde stora problem med hur GIT skulle användas. Tillsammans med en dokumentation skriven utifrån ett tekniskt=, istället för användarperspektiv ledde till att GIT användes på fel sätt och flera gånger fick teamet antingen klona ned projektet igen eller spendera flertaletminuter/timmarpåatthittavadsomslutatfungeraochförsökalösaproblemet.samtivärstafall återskapatidigareversioneravkodenochskrivaomdenkodsomgåttförlorad. FörattvårwebbapplikationskulleblitillgänligonlineanvändevimolnplattformenOpenshift. AttarbetamedOpenshiftvarenstorutmaningdådenharenbegränsadkapacitet.Dettaleddetillatt testningmotopenshiftoftagavkonstigabuggar,somintefannspådenlokalaservern.entillnedsidavar attnäropenshiftuppdateradessåkundeiblandkodsomvarupplagdslutafungera. Jagskulleestimeraattteametharlagtnärmare100timmarenbartpåattlösakomplikationermedGIT ochopenshift,vilketharletttillattendelplaneradfunktionalitetharuteblivit.
79 Linköpingsuniversitet Institutionenfördatavetenskap 75 SomkodspråkharvianväntossavPythonochramverketFlask.Dessavarocksånyaförteametmenhar visatsväldigtenklaattlärasamtoptimaltanpassadeföruppgiften.enstorfördelmedpythonharvarit desslättlästasyntax.detharvaritenkeltattförståandrapersonerskod. Jaganserocksåattjagharfåttenstörreförståelseförprogrammeringgenomvyerochhurenkeltdetär attkopplahtml=sidormedkodomettramverkliktflaskimplementeras.däremotärdokumentationen för Flask väldigt liten och jag fick förlita mig mycket på tredjeparts handledningar som hittades på hemsidorlikt StackOverflow. För databashantering användes SQLite. En enkel databashanterare som inte kräver separata processer utanimplementerasdirektirestenavkoden.sqlitevarettbravalavdatabashanteraredocksåhadeett bättreval,enligtmig,varitsqlalchemy,enmindreanvändhanterare,mendenärvälinkorporeradmed Flask ramverket och de flesta handledningarna online är skrivna genom kombinationen Flask/SQLAlchemy. Personligutveckling) Jag som person har lärt mig mycket om hur man använder metodiken scrum. Det har lett till ökad förståelse hur projekt med otydlig målbild kan drivas. Jag har också lärt mig mycket om webbprogrammeringochhurintegreringmellandatabasserverklientfungerar.jagharocksåinsett vilken guldgruva internet är i form av handledningar och andra tips om programmering. Jag har också insettviktenavrefaktorering.refaktoreringledertillökadkodförståelse,fördensomutfördenochlägre förståelsebarriärerförnyaanvändare. Källor) Schwaber K (1997). Scrum development process. In: Business Object Design and Implementation. Springer,1997: ( accessed 15 May 2014). ) )
80 Linköpingsuniversitet Institutionenfördatavetenskap 76 Erfarenhetssammanfattning)G)Tobias)Genborg) Inledning) Idennaerfarenhetssammanfattningharjagvaltatttaupptvåaspekter:utvecklingsmetodikenScrumoch viktenavtestning.iavsnittetommetodikenscrumharjagvaltattfokuserapåteametslärandeochhur styrningskeddeiscrumteamet.härharjagvaltattrelaterahirotakatakeuchiochikujirononakasartikel The&New&New&Product&Development&Game&tillhurutvecklingsteametfaktisktarbetadeunderprojektet. Denandraaspektenjagvaltattfokuserapå,viktenavordentligtestning,ärnågotsomblevtydligtförmig under projektets gång. Även i detta avsnitt beskriver jag hur teamet arbetade under projektet och diskuterarutifråndettapotentiellaförbättringarsomkundegenomföras. Scrum:)Lärande)och)styrning) IdenartikelnsomgavupphovtillbegreppetScrum,The&New&New&Product&Development&Game&(1986),&så tar författarna Hirotaka Takeuchi och Ikujiro Nonaka upp organisatorisk& överföring& av& kunskap& och& multiinlärning& som två av de sex utmärkande egenskaperna för metoden. Vid den implementation av Scrumunderprojektettycktejagattdessatvåaspekterblevsärskilttydliga. Överförandeavkunskapskeddepåmångasätt:dagligascrummöten,sprint=reviewochgenomteamets retrospektiv.dailyscrumupplevdejagsomenmiljödärutvecklarnauppmanadesatttauppdeproblem dehadeförtillfället.dettatyckerjaguppmanadetilllärandepåtvåsätt:delsfickövrigateamettadelav eventuellahinderdekundeställasinförsjälva,delsfickhadedemöjlighetenatthjälpateammedlemmar ochdelamedsigavsinakunskaper. Gruppenssprintretrospektivharenligtmigvaritdenstörstakällantillorganisatorisktlärandeochjagtror attnyckelnärattgruppenuppmanasattdiskuterasakersomupplevtsvaraproblemundersprinten.jag upplever att de åtgärder som tagits fram efter varje sprint har varit viktiga och att det alltid skett förbättringarinförnästkommandesprintgenomattteametanväntsigavretrospektiven.attdetfaktiskt skettförbättringaranserjagocksåvaraviktigt;dettahargjortattteamettagitdessautvärderingstillfällen merseriöst. Multilearninganserjaghatydligkopplingmedsjälvorganiseradeochtvärfunktionellateam.Attteamen harvaritsjälvorganiserandehargjortattteammedlemmarnafåttväljauppgifterochgrupperasigimindre utvecklingsteamberoendepåuser=story.dettaharresulteratiattteammedlemmarnakunnatdelamed sigavsinakunskapertillochdralärdomaravövrigateamet.mobilitetenigruppen,attteammedlemmar flyttarruntocharbetarpåuppgiftertillsammans,uppleverjaghargjortattkunskapochlärdomarspridits snabbt. EnannanutmärkandeegenskapförScrummetodikensomtasuppiTakeuchi&Nonakasartikel(1986)är subtle& control. Detta tycker jag kan exemplifieras av att det har saknats en klassisk ledarroll för projektteamet;dettaansvarhariställetplaceratspågruppenistort.dettavarovantförteametochjag tror detta är orsaken till några av de problem gruppen hade gällande rollfördelning, speciellt rollerna Scrum master och produktägare. En annan problematik som jag anser hänga ihop med teamet oerfarenhetavsubtle&controlärviktenavegetansvar. Först och främst så valde teamet att dela på rollen som Scrum master under de inledande sprintarna eftersom de flesta teammedlemmarna ville testa på rollen. Detta gjorde att det blev svårt att få en kontinuitet, trots att teamet satte upp metoder för att föra över kunskap när de bytte Scrum master.
81 Linköpingsuniversitet Institutionenfördatavetenskap 77 RetrospektivtsåhadeenbättreimplementationavScrumvaritatthasammaScrummasterunderhela projektet,speciellteftersomattgruppmedlemmarnavarovanaattarbetautifrånmetodikenscrum. Enannanproblematikkringfördelningavrollerochstyrningvaravsaknadenavenproduktägare.Utan denna roll så fick i detta projekt utvecklarna själva prioritera vad som var viktigast att utveckla. Problematikenjaguppleverkringdettavarattdetfannsendiskrepansmellanvadsomutveckladesoch vadsomskulletillfördenytta;detutveckladesfunktionalitetsomgavingenellerliteeffektförkunden. Även om det på så sätt finns nackdelar ur ett entreprenöriellt perspektiv så upplever jag att det gett utvecklarna en frihet att utveckla saker de upplever som intressanta. Jag upplever att rollen som produktägareärviktigochanserattgruppenbordeövervägtatttillsättaeninternproduktägareförattse tillatträttfunktionalitetprioriteras.idettafallskulledetvaraviktigtattdeninternaproduktägareninte fårsammaansvarsomdenklassiskaproduktägaren;detskullekunnaledatillenskevhierarki. Jaguppleverattavsaknadenavdenklassiskaledarrollenocksåmedförstörrekravpåteammedlemmarna; enavminalärdomarunderprojektetharvaritattviktenavegetansvarblirstoriagilaprojektmetodiker.i projektetkundemycketavarbetetskeindividuelltochteammedlemmarharsjälvaansvaratförattplocka uppgifter från backloggen. Detta medför stor frihet, men också ansvar. Retrospektivt så har det nog resulteratiattarbetsbördanintefördelatsheltjämtmellangruppensmedlemmarochjaguppleveratt det har varit svårt att balansera den tid som teamet lägger eftersom att det är gruppmedlemmarnas gemensammaansvar.härharegenskapensubtlecontrolimitttyckeupplevtsliteproblematisk. Vikten)av)testning)vid)programutveckling) Under utvecklingsprocessen gjorde testningen det största avtrycket för min del; mycket tid gick åt att bådetestakodochatthittabuggarsomletatsiginpågrundavslarvigtestning.viktenavtestning,både användartestochmodultesterblevpåsåsättförförstagångensärskilttydlig. Idettaprojektskeddeanvändartestningenisambandmedattutvecklingenavnykodavslutats.Detblev undertestningentydligtattutvecklarnasbildavapplikationenpåflerasättskiljdesigfrånanvändarnas, somslutligenärdesomsätterettvärdepåprodukten.ävenomvisomutvecklareförsöktehaanvändaren ifokussåvardetsvårtattalltidfattarättbeslutrörandedesignochinteraktivitet.dettakansäkertdelvis förklarasavbristenpårutinfrånutvecklarnassida. Enförbättringsomskullekunnagörasärattutnyttjacontinuous&deploymentförattiterativtgenomföra användartestningunderutvecklingenavapplikationenochanvändadenfeedbacksomuppkommerföratt förändrasprint=ochproduktbacklogg.påsåsättskulleteametutnyttjatstyrkornahosagilametoderfullt ut:attiterativtarbetamotenföränderligmålbild. Även modultesterna var något som teamet upptäckte vara viktigt. Modultestning upplevdes svårt att genomföraundercontinuous&integration.närnyutveckladkodskulleintegrerasmedbefintligsåvardet svårtattavgöraomapplikationenfunkadekorrektellerombuggarintroducerats.utanautomatiserade testmetoderellertestdirektivhardetkrävtsmycketavutvecklarnaföratttestaattapplikationenfungerat heltkorrektefterattkodslagitssamman.resultatetharblivitattutvecklarnatummadepåtestningen, vilketsäkertresulterademerjobbislutändan. Jagtrorattfördelenmedattinföraautomatiseradetestmetoderochtestfallinteendastärbegränsadetill attintegrationenavnykodgörsenklare.automatiseradetestfallskulleinnebäraattutvecklarnakunde spenderamertidpåattutvecklanyfunktionalitetiställetförattgenomföratester.attkodatestmetoder till nya moduler kräver förvisso extra arbete från utvecklarna, men jag är övertygad att det innebär
82 Linköpingsuniversitet Institutionenfördatavetenskap 78 mindretotaltarbeteunderutvecklingsprocessen.dettaspecielltomprojektetfortgårunderenlängretid; enligtmigblirdetohållbartattständigttestaallfunktionalitetvarjegångnykodintegreras. Källor) Takeuchi H, Nonaka I (1986). The new new product development game. Harvard& Business& Review, 64(1): )) )
83 Linköpingsuniversitet Institutionenfördatavetenskap Erfarenhetssammanfattning) )Svante)R) Sprint)noll) 79 Personligenvarjaganingennervösinfördennakursdåminakunskaperiwebprogrammeringochscrum var begränsade. Arbete med 8 för mig okända personer visste jag på förhand kunde bli en verklig utmaningdärpersonlighetstypermedlätthetkundekollideramedvarandra. Mingruppvekadevidförstaanblickvaravälkomponeradmedblandadekompentenserochpersonligheter hosgruppmedlemmarnadettavarnaturligtvisfördetmestapositivt,meniblandblevindividenförliten och gruppen för stor. Inledningsvis var medlemmarna alltför blyga och berättade inte om sina kompetenser,vilketvarsyndfördetleddetillendelmissöden.ettexempelärdentidsuppskattningsom genomfördes med hjälp av planning poker. Tidsuppskattningen blev väldigt skev och visade sig senare vara väldigt långt bort från verkligheten. Delvis tror jag detta berodde på att medlemmarna inte tog hänsyntillgruppensolikakompetensnivåer,denbästaigruppenkanskeföreslogattdetskulleta2dagar, medannågonsomvarlitemindreerfarenkanskeföreslog20dagar.sedanvardettanaturligtvisinteden endaanledningentillattdetblevfel,attingenavossprogrammeratiettprojektavdenhärstorleken bidrog självklart också, men det är något som gruppen borde gjort annorlunda. En korrekt tidsuppskattninghadeförenklatfördelningochplaneringavarbetetsenareiprojektet. Någotannatsomfalleradeisprint0varbeslutetattdelapåscrummasterrollenveckovis.Detvarpositivt attfleravilletaansvarochorganiseraarbetet.dockleddebristenpåkontinuitettillattgruppensscrums varieradekraftigtikvalitetmellanveckorna.förattrådabotpådettaskrevsenmallfördagordningarför handledarmötena, vilket förbättrade dessa, men övriga scrummöten fortsatte vara röriga och ofta skenadedeivägochhelaidénmedkonkretaståendekvartsmötenförsvann.gruppenbordeinsettvikten avkontinuitetidettaskedeochöverlåtitscrummasterrollenpåenperson.dennanödvändigaförändring genomfördesdockinteidettaskedeutanlångtsenare. Sprint)ett) När arbetet äntligen skulle sätta igång var moralen i gruppen väldigt hög och trots de röriga scrum mötenafungeradearbetetbra.dettatrorjagberoddemycketpåattgruppenarbetadetillsammansoch helatidensågtillattkombineraarbetemedfikaförattlärakännavarandra.idennasprintproducerades detenormamängderkodochfunktioner.personligenlärdejagmigenormtmycketochdetsomtidigare nästankäntsomöjligtblevsnabbthanterbart.ytterligareenfördelmedattalltidarbetatillsammansvar att gruppens medlemmar hela tiden kunde hjälpa varandra. Detta ledde vidare till att samma misstag sällanupprepadesvilketjagförståttvaritettstortproblemförandragrupperdärarbetetharskettenskilt. Sprint)två) Någotsomgruppenbordegjortannorlundaibörjanavsprint2varhanteringenavdenkritikvifickfrån opponeringenvidsprint1redovisningen.iefterhandärjagosäkerpåomdenandraopponeringsgruppen nämndesvårigheternaförkundenattfinnahjälpmednavigeringpåapplikationenredandå,mendetär möjligt.oavsettbordevihaftettmötemedfokuspådetandrateametssynpunkterfrånopponeringen ochjusteratarbetetutifråndet.säkerligengickvisomgruppmisteommycketkonstruktivfeedbacknärvi arbetadepådettasett.
84 Linköpingsuniversitet Institutionenfördatavetenskap 80 Egentligenbordevårtteamgjortännumerföratttestasidan.Dethadevaritlämpligtattgenomföraen användartestning redan i detta skede för att tidigt få feedback och därmed tidigt kunna genomföra förändringariprioriteringaravarbetet. Sprint)tre) Isprinttregenomfördesrefaktoreringenavdenkodsomtidigareskrivitsiprojektet.Därfickvarjeperson till en början ansvaret för att efter möjlighet förbättra sin egen kod. Därefter fick de med högre programmeringskunskaper assistera de som var på en lägre nivå för att ge ett bra resultat. Denna arbetsmetod var bra eftersom den var tidseffektivt, vilket gav teamet möjlighet att påbörja rapportskrivandet tidigare. Möjligen hade den del av teamet som behövde hjälp med sin refaktorering utvecklatsmeravattläggaytterligaretidpådennadel.idettafallärdetdockminpersonligauppfattning attdennaåtgärdvarnödvändigförattsenarekunnapresenteraenvälgjordrapport. Rapportdelen) Införrapportskrivandetvarinställningentilldennadelavkandidatarbetetkluven.Enmajoritetansågatt dettaskullebliroligtochutvecklandesamtidigtsomenlitendelavgruppenverkadehaenmernegativ inställning.dettatyckerjagspegladesiarbetetdådelaravteametinteharbidragitpåsammasättsom tidigaredåarbetsmoralenvaritgenomgåendehögihelagruppen.resultatetblevfortfarandeacceptabelt medtankepåförutsättningarna,menjagtrordethadekunnatbliännubättreifallsamtligahadevisat sammaenergiiarbetetsomtidigare.dettafaktumtogsaldriguppinomgruppenutanarbetetfortsatte somförut.föratthanteradennasituationtrorjagdethadevaritbättreattlyftaproblemetochdiskutera eventuella lösningar. Risken för konflikt är säkerligen stor, men jag tror det hade lett till ett bättre samarbete i slutändan. Detta stämmer väl överens med vad Crystal Broch Colombinia och Maureen McBrideb (2012) kommer fram till i sin artikel, nämligen att konflikter i grupper löses bäst genom kommunikation. Tekniska)utmaningar) Vid utvecklingen av projektet hade gruppen stora problem med versionshanteringen som skedde med verktyget Git. Till stor del berodde detta säkerligen på okunskap och jag tror därför att vi tillsammans borde ha läst på mer om Git innan programmeringsarbetet började. Antalet timmar jag spenderat på problemrelateradetillversionshanteringärstortochnuiefterhandtrorjagattbådejagochgruppen hadetjänatindessatimmargenomstudieravgitinnanpåbörjatarbete.iövrigttyckerjagdentekniksom gruppenanväntförattutveckla,tidsuppskattaochkommuniceraharvaritbra. Sammanfattning) Denna grupp av människor som till en början inte alls kände varandra har under projektets gång utvecklatstillattbliettteam,ävenomkonflikterharuppståtthararbetetidetstorafungeratväl.under projektetharbådejagsompersonochgruppenutvecklats.dettaprojektinvolveradebådeutmaningar ochkonflikter erfarenhetersomjagtrorsamtligagruppmedlemmartarmedsigiframtiden. Källor) Colombini CB, McBride M (2012). Storming and norming : Exploring the value of group development models in addressing conflict in communal writing assessment. Assessing Writing, 17(4):
85 Linköpingsuniversitet Institutionenfördatavetenskap Erfarenhetssammanfattning) )Jessie)Chen) Inledning) 81 Jagtyckerteametharfåttväldigtfriatyglarivadsomskulleproducerasiwebbapplikationenochtillvilken detaljnivå.förvårtteamhardettasporratossunderutvecklingsfasenattutvecklaenapplikationsomviär stoltaöver,iformavmångatimmarutavkoncentrationocharbete. Programmeringsfasen:)svårigheter) Det jobbigaste med projektet för mig personligen var att jag kände att jag inte lyckades få så mycket output i kod relativt den tid jag hade lagt ned på programmeringen. Besittandes svaga programmeringskunskaper och som en riktig gröngöling i utvecklingsmiljöerna och programmeringsspråken genomled jag många frustrerande tillfällen. Det fanns de i teamet som har producerat mycket till hemsidan och ofta kände jag mig kluven mellan att vara glad över den fina hemsidanochminaduktigateammedlemmarkontramittegnaotillräckligabidragtillhemsidan.åandra sidanlärdejagmigatthållahumöretuppeochutvecklaminarbetsmetod.exempelvisärdetsnabbareatt komma på en fungerande kod om man undviker att fastna på ett enskilt lösningssätt; flera olika angreppsvinklarkundehasparamångatimmarpåonödigtkodande. Mindelikodensomjagfastnademedattförsökaimplementeramestadelsavprogrammeringsfasenvar unikvalideringen. Vi hade uppskattat att den skulle ta fem dagar, vilket visade sig vara en grov underskattning. Unikvalideringen skulle innebära att använderan på designsidan inte kunde designa en icke=unikt=shirtochpåettintuitivtsättvarnasföricke=unikakombinationer.detsvåravar,förattfåhela processen att fungera, att jag behövde lära mig/sätta mig in i flera områden. Jag fick tampas med pythonspråketochsqliteföratttaframenalgoritmförunikvalidering,javascript,htmlochcssförattfå detvisuellapåsidanochförattlänkaklientenmedservern:ajax=anrop.detsvåravarattmångaavdevar främmandeförmigochbaraattskiljadeåtalltidvarintedetenklaste,enstordelavmintidgickåtatt finnasyntaxförprogrammeringsspråk.detpositivaärattjagnuharlärtmigliteinomalladeområdena ochmångaprogrammeringstermersomunderlättarmittgoogle=sökande.dockmedfacitihandbordevi hatilldelatfleramedlemmarpådennafunktion,såinteenendaficksättainsigochlärasigalltpåegen hand. GIT) VersionshanteringenmedhjälpavGITharkompliceratprojektetotaligagångergenomprogrammeringens gång.pågrundavbristfälligförståelsehardetfleragångerletttillattkodförsvunnit. SCRUM) Projektet har organiserats via metoden scrum. Scrum är en agil metod som kan användas under programutveckling(sutherland&schwaber,2013).undersprint0och1hadescrumännuinteriktigtfått visasinanvändbarhet.isprint2varscrumverkligenviktigeftersomallaarbetandepåsindelavkoden, detvarocksåefterdenhärsprintenviförstodattviinteanväntossutavscrumrätt.scrummötenaisprint 2fastnadeoftaidiskussioneromhurkonflikterikodskullelösas.Deninsiktentogvimedossinisprint3 somharfullföljtsenligtettomdefinieratochmereffektivtscrum;allaproblemsomuppdagadesunder mötettogshandomeftermötet.nuuppfattarjagscrumsomettväldigteffektivtarbetsverktygförstörre
86 Linköpingsuniversitet Institutionenfördatavetenskap 82 projektgruppermedspriddaaktiviteter,ochjagkännermedsäkerhetattscrumkommerattkommatill användningimångaframtidaprojekt. Scrum retrospective har varit ovärdeligt i sökningen av problem som kan åtgärdas vad gäller teamets arbetsmetodik.varjesprintretrospectiveharmedföranvändbaralösningsåtgärdertillnästasprint. Trello) Trellonharvisatsigvaraettgrymtverktygförstrukturering,planeringochuppdelningavettprojekt.Vi haranväntossutavtrellonförbackloggenochmedhjälpavtrellonsfunktionerhadekortenrangordnats ochentydligvisuelluppdelningavvemsomgörvadhadegjorts.trellongbidrogocksåmedenöverblick påvadsomärfärdiggjort,vadsomärigångochvadsomfinnskvarochgöra. Gruppdynamik) Somettteamtyckerjagattvifungeratbra.Gruppensmedlemmarharolikakompetensområdenaochhar kompletterat varandra väl. En beundransvärd sida av teamet är dedikationen för projektet, tid och tålamodharvaritnågotmedlemmarnavaritvilligaattge.förutomenhögarbetsmoralharteametlyckats hållaenlättsamochgladtongenomarbetet. Referens) SutherlandJ,SchwaberK(2013).TheDefinitiveGuidetoScrum:TheRulesoftheGame.
87 På svenska Detta dokument hålls tillgängligt på Internet eller dess framtida ersättare under en längre tid från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida In English The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances. The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: Daniel Berglund, Jessie Chen, Tobias Genborg, Andreas Gustafsson, Oskar Kugelberg, Svante Ringertz och Lilian Zakrisson
Agila Metoder. Nils Ehrenberg [email protected]
Agila Metoder Nils Ehrenberg [email protected] Agenda Agila Metoder: Scrum och sprints Lean och Design Workshops Kravställning Agil Utveckling Individer och interaktioner istället för processer Fungerande
Scrum Scrum. en beskrivning. a description. V 2012.12.13 2012 Scrum Alliance,Inc 1
" Scrum Scrum en beskrivning a description 1" 1 Scrums principer Värderingar från Agile Manifesto Scrum är mest känt av de agila arbetssätten. Agile Manifesto utgör en gemensam bas för att arbeta agilt
Institutionen för datavetenskap
Institutionen för datavetenskap Department of Computer and Information Science Kandidatarbete Webbutveckling och agila arbetsmetoder erfarenheter från projekt inom programvaruutveckling av Wilhelm Berndtsson,
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
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...
SCRUM. Marcus Bendtsen Institutionen för datavetenskap
SCRUM Marcus Bendtsen Institutionen för datavetenskap 2 Metodik Systematiskt tillvägagångssätt för att garantera utfallet Metodiken behöver passa kontexten och tillgängliga resurser Verifiering av metodiken
Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:
WEBBUTVECKLING Ämnet webbutveckling behandlar de tekniker som används för att presentera och bearbeta information i webbläsaren samt utifrån dessa tekniker skapa och vidareutveckla statiska och dynamiska
BookShark En praktisk studie i webbutveckling
Linköpings universitet Institutionen för datavetenskap Kandidatarbete BookShark En praktisk studie i webbutveckling av Jonathan Andersson Tobias Björch Jakob Boman Christopher van Dijk Sofie Harrius Daniel
Dagbok Mikael Lyck 810717-0071
Dagbok Mikael Lyck 810717-0071 2/6 Slutredovisning, redovisningen gick bra vi hade ju redan byggt ihop spelet så vi var inte särskilt oroliga. Allt som allt är jag väldigt nöjd med slutprodukten. 11/5
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
AGILA METODER. (för oss som inte kodar) Nina Berlin
AGILA METODER (för oss som inte kodar) Nina Berlin Agila värderingar 1. Individer och interaktioner framför processer och verktyg 2. Fungerande programvara framför omfattande dokumentation 3. Kundsamarbete
Institutionen för datavetenskap
Institutionen för datavetenskap Department of Computer and Information Science Examensarbete En studie i webbutveckling av en klockbutik som webbapplikation A study in web development: an online watch
SLUTRAPPORT RUNE TENNESMED WEBBSHOP
SLUTRAPPORT RUNE TENNESMED WEBBSHOP -05-30 Abstrakt Under 10 veckor har jag och Oskar Norling arbetat med att ta fram en webbshop-applikation till företaget Rune Tennesmed i Kalmar. I denna rapport tänker
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
Kandidatarbete I- data
Kandidatarbete I- data TDDD83 Aseel Berglund [email protected] Journey line X KURSINFORMATION Mål Utveckla e? litet webbaserat affärssystem av typ e- bufk. Skriva rapport inkl marknasföringsplan för
Tentamen, delkurs Projektstyrning Webbutvecklare SU13, Malmö
Sida 1/14 Tentamen Projektstyrning, Webbutvecklare, WU13, Malmö Tentamen, delkurs Projektstyrning Webbutvecklare SU13, Malmö Plats: Plushögskolan Malmö Tid: fredag 29 november 2013, kl. 9.00-12.00 Tillåtna
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
Produktägarens roll i Scrumprojekt
Produktägarens roll i Scrumprojekt Kandidatuppsats 15 högskolepoäng, SYSK02 i informatik Framlagd: maj, 2013 Författare: Rebecka Merkel, Kristina Wendel Handledare: Lars Fernebro Examinatorer: Markus Lahtinen,
Slutrapport för Internetfonden
Slutrapport för Internetfonden Webbprogrammering i matematik och fysikundervisning Mikael Tylmad [email protected] Fredrik Atmer [email protected] Ella Kai-Larsen [email protected] 10 april 2014 http://www.profyma.se/
HejKalmar app. Projektrapport. Webbprojekt I
Projektrapport HejKalmar app Webbprojekt I Författare: Cecilia Lindqvist, Linus Lundevall, Christofer Olaison, Andreas Söderström och Isak Utegård Handledare: Tobias Ohlsson Examinator: Tobias Ohlsson
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
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
Projektmetodik II. HF1005, Informationsteknik och ingenjörsmetodik för Datateknik. Projektarbete
Projektmetodik II HF1005, Informationsteknik och ingenjörsmetodik för Datateknik Projektarbete Förväntade resultatet är t.ex. en produkt Vi behöver arbeta med Analys Faktainsamling Genomförande Rapportering
SKOLFS. beslutade den XXX 2017.
1 (12) Skolverkets föreskrifter om ämnesplan för ämnet webbutveckling i gymnasieskolan, inom kommunal vuxenutbildning på gymnasial nivå och inom vidareutbildning i form av ett fjärde tekniskt år; beslutade
WEBBSERVERPROGRAMMERING
WEBBSERVERPROGRAMMERING Ämnet webbserverprogrammering behandlar funktionalitet för webblösningar och samspelet mellan beställare, användare, formgivare och utvecklare. Ämnets syfte Undervisningen i ämnet
TDDD80 Mobila och sociala applikationer. Kursintroduktion
TDDD80 Mobila och sociala applikationer Kursintroduktion Personal Kursansvarig, föreläsare, seminarieledare Rita Kovordanyi Labbansvarig, föreläsare, seminarieledare Anders Fröberg
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
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
Scrum i praktiken Tillämpning inom Gripen demonstrator. Fredrik Lorentzon & Marcus Frejd 2010-11-11 SESAM
Scrum i praktiken Tillämpning inom Gripen demonstrator Fredrik Lorentzon & Marcus Frejd 2010-11-11 SESAM Agenda Vilka är Fredrik och Marcus? Gripen demonstratorprogram i korthet Varför och hur införde
SCRUM på Riksarkivet. Magnus Welander / 2011-05-26
SCRUM på Riksarkivet Magnus Welander / 2011-05-26 Agenda Metoden SCRUM Erfarenheter från Riksarkivet Sverige Metoden SCRUM Varför agile? Källa: Standish Group Önskedrömmar Kunden vet vad de vill ha Utvecklarna
Kommunal Jämförelsetjänst
Kommunal Jämförelsetjänst Sammanfattning Denna rapport innehåller bakgrund och information om projektet samt att vi har utvärderat hur det har gått under projektets gång. Projektet har gått ut på att vår
Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år
Javautvecklare 400 YH-poäng, 2 år Utbildningsfakta Kurser (12 stycken) Grundläggande programmering och javaverktyg 50 yhp Grafiskt gränssnitt och interaktion 20 yhp Internet, webb och webbramverk 40 yhp
Agil projektledning. Lean. Agila metoder. Scrum. Projektmetodiken. Agil projektledning
Agil projektledning Vad innebär agil projektledning? Det råder idag stor förvirring kring populära begrepp som Lean, Agile, Scrum och Kanban och hur de förhåller sig till traditionellt tidsplanerade projekt
Samarbetsstrukturer för att självorganisera inom givna ramar.
Scaled Delivery Samarbetsstrukturer för att självorganisera inom givna ramar Scaled Delivery Portfölj Initiative PM PO Program Vision Roadmap Backlog Coord. 1 2 3 Varför scaled delivery? Förbättra leveransförmågan
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,
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 - [email protected] Martin Kuoppa - [email protected]
Scrumguiden. Den definitiva guiden till Scrum: Spelets regler. Juli 2013. Utvecklad och underhållen av Ken Schwaber och Jeff Sutherland
Scrumguiden Den definitiva guiden till Scrum: Spelets regler Juli 2013 Utvecklad och underhållen av Ken Schwaber och Jeff Sutherland Innehåll Syftet med Scrumguiden... 3 Definitionen av Scrum... 3 Teorin
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
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
Agila arbetsformer. Gemensamma värderingar
Agila arbetsformer Agile, scrum och lite lite lean Gemensamma värderingar Värdera individer och interaktion högre än processer och verktyg Värdera fungerande mjukvara högre än omfattande dokumentation
TDDD80 Mobila och sociala applika1oner. Kursintroduk1on
TDDD80 Mobila och sociala applika1oner Kursintroduk1on Personal Kursansvarig, föreläsare, seminarieledare Rita Kovordanyi Labbansvarig, föreläsare, seminarieledare Anders Fröberg
Kursplan Webbutveckling 2, 100p Läsår 2013-2014
Kursplan Webbutveckling 2, 100p Läsår 2013-2014 Kurswebb: www.creativerooms.se/edu, välj Webbutveckling 2 Lärare: Aino-Maria Kumpulainen, [email protected] Hösttermin 2013 Vecka Tema
Integrering av formgivningsprocessen i en produktutvecklingsprocess
Integrering av formgivningsprocessen i en produktutvecklingsprocess KN3060 Produktutveckling med formgivning Mälardalens Högskola INPRE 4 2006-04-24 Index Inledning... 2 Den klassiska PU-processen... 2
HÖSTTERMINEN. Scrum STF INGENJÖRSUTBILDNING AB. Vi vidareutbildar ingenjörer och tekniker. Din partner för livslångt lärande
STF INGENJÖRSUTBILDNING Vi vidareutbildar ingenjörer och tekniker Scrum STF KOMPETENSINFO NR 63/2011 HÖSTTERMINEN STF INGENJÖRSUTBILDNING AB Din partner för livslångt lärande WWW.STF.SE Scrum i praktiken
Projektarbete myshop. Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt 2013-06-06
Projektarbete myshop av Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt 2013-06-06 ABSTRAKT En rapport om utvecklingen av myshop, ett 10 veckors projektarbete i kursen individuellt
Webbserverprogrammering
Webbserverprogrammering WES Webbserverprogrammering Ämnet webbserverprogrammering behandlar funktionalitet för webblösningar och samspelet mellan beställare, användare, formgivare och utvecklare. Ämnets
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
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
Kursplan Gränssnittsdesign och Webbutveckling 1 Vårtermin 2014
Kursplan Gränssnittsdesign och Webbutveckling 1 Vårtermin 2014 Kurswebb: www.creativerooms.se/edu, välj Gränssnittsdesign eller Webbutveckling 1 Lärare: Aino-Maria Kumpulainen, [email protected]
Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16
Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16 Mål Kursen skall ge studenten träning i att utveckla en större programvara. Arbetet utförs i projektform. Projektet skall ge grundläggande
Undervisningen i ämnet mobila applikationer ska ge eleverna förutsättningar att utveckla följande:
MOI Ämnet mobila applikationer behandlar olika tekniker för att utveckla programvara riktad mot mobila enheter samt processen från idé till färdigt program. Ämnet mobila applikationer får bara anordnas
HUR MAN LYCKAS MED BYOD
HUR MAN LYCKAS MED BYOD WHITE PAPER Innehållsförteckning Inledning... 3 BYOD Checklista... 4 1. Val av system... 4 2. Installation och konfiguration... 5 3. Prestanda... 5 4. Valfrihet ökar upplevelsen...
Hi-Fi Prototyping + laborationsgenomgång & verktyg
Hi-Fi Prototyping + laborationsgenomgång & verktyg Karin Fahlquist 2015 Frågor att besvara Vad innebär prototyping? Vad är speciellt med hi-fi prototyping? Hur kan man använda dem? Hur väljer man nivå
Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.
Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär
Agil mjukvaruutveckling. 1DV404, Jesper Andersson
Agil mjukvaruutveckling 1DV404, Jesper Andersson Agilt? Innehållet i alla mjukvaruutvecklingsprocesser! Roller! Aktiviteter! Artefakter Processmodeller Många smaker Unified Process Kanban SCRUM normativ
Vad är. Domändriven design?
Vad är Domändriven design? 1 Domändriven design är utvecklare och domänexperter som arbetar tillsammans för att skapa mjukvara som är både begriplig och möjlig att underhålla. ett sätt att fånga och sprida
Agil testning i SCRUM
Agil testning i SCRUM Petter Salomonsson [email protected] Tel: 0708-398435 Kort presentation AddQ Consulting AB tydlig fokus på test och kvalitetssäkringstjänster erbjuder mycket erfarna konsulter
STADSLEDNINGSKONTORET SOA SDK IT-AVDELNINGEN VERSION 2.1. Läs mig först. Stockholms stad SOA-plattform. Sida 1 (5)
Läs mig först Stockholms stad SOA-plattform 1 (5) Innehållsförteckning 1 Beskrivning av SDK 3 1.1 Software Developer Kit för Utvecklare... 3 1.2 Support för... 3 1.3 Omfattning... 4 1.4 Versionshantering...
Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10
Projekt Rapport RaidPlanner Jeanette Karlsson UD10 Abstrakt: Denna rapport handlar om mitt projekt i kursen Individuellt Mjukvaruutvecklings projekt. Rapporten kommer att ta upp hur jag gått tillväga,
ALM Live: Scrum + VSTS
ALM Live: Scrum + VSTS Explained and distilled for Everyone! Micael Herkommer [email protected] Introduktion Micael Herkommer Developer Coach & Solutions Architect INEXOR EPiServer Professional
Idrottsapen. 1. Inledning. 2. Mål och syfte. 3. Projektbeskrivning
Idrottsapen Slutrapport för projektet Idrottsappen. Projekttitel: Idrottsappen Uppdragstagaren: Sandklef GNU Labs, 710413-5137 1. Inledning Under samtal med olika aktiva personer inom olika idrotter framkom
Slutrapport YUNSIT.se Portfolio/blogg
Slutrapport YUNSIT.se Portfolio/blogg RICKARD HANSSON 2012-06-04 Abstrakt Rapporten du har i din hand kommer handla om mitt projektarbete som jag genomfört under tio veckor för utbildningen Utvecklare
Kursplanering Utveckling av webbapplikationer
Kursplanering Utveckling av webbapplikationer Fakta Ämne Programmering Poäng 40 Yh-poäng Kurskod YSYS-WEB Klass Systemutvecklare.NET Syfte och koppling till yrkesrollen För att kunna arbeta som systemutvecklare
TDDD80 Mobila och sociala applikationer. Kursintroduktion
TDDD80 Mobila och sociala applikationer Kursintroduktion Personal Kursledare, föreläsare, seminarieledare Rita Kovordanyi Kursledare, föreläsare, seminarieledare Anders Fröberg
Institutionen för datavetenskap
Institutionen för datavetenskap Department of Computer and Information Science Kandidatarbete En praktisk studie kring utvecklingen av webbapplikationen Studentlunchen av Anna Adlercreutz, Oskar Ahlstedt,
Tepz klon. - Projektrapport. Linnéuniversitetet, Individuellt mjukvaruutvecklingsprojekt Janina Bergström, WP12 Distans
Tepz klon - Projektrapport Janina Bergström jb222qp WP12 Distans 8/6-2013 Linnéuniversitetet, Individuellt mjukvaruutvecklingsprojekt 1 Abstrakt Denna rapport handlar om min klon av det existerande spelet
Instruktioner för uppdatering från Ethiris 5.x till 6.0
Instruktioner för uppdatering från Ethiris 5.x till 6.0 Nedan följer instruktioner för hur man går till väga vid uppdatering av ett Ethirissystem version 5 till version 6. När man uppdaterar Ethiris från
Scrumguiden. Den definitiva guiden till Scrum: Spelets regler. Oktober 2011. Utvecklad och underhållen av Ken Schwaber och Jeff Sutherland
Scrumguiden Den definitiva guiden till Scrum: Spelets regler Oktober 2011 Utvecklad och underhållen av Ken Schwaber och Jeff Sutherland Innehåll Syftet med Scrumguiden... 3 Översikt av Scrum... 3 Scrums
TIDOMAT Mobile. Introduktion
För att använda krävs lägst version 1.7.1. Mjukvaran installeras tillsammans med versionen och ingen mer installation är nödvändig för att nyttja Mobile. bygger på Touchmjukvaran, applikationen är främst
Process- och metodreflektion Grupp 5
Process- och metodreflektion Grupp 5 IDM Grupp 5 Anders Fougstedt, Anders Green, Lay Truong, Anna Sjödin, Tobias Kask Val av metoder Det första steget i vår designprocess var att bestämma vilka metoder
Scrumguiden. Den definitiva guiden till Scrum: Spelets regler. Juli Utvecklad och underhållen av Ken Schwaber och Jeff Sutherland
Scrumguiden Den definitiva guiden till Scrum: Spelets regler Juli 2016 Utvecklad och underhållen av Ken Schwaber och Jeff Sutherland Innehå ll Syftet med Scrumguiden... 3 Definitionen av Scrum... 3 Teorin
TDP003 Projekt: Egna datormiljön
. TDP003 Projekt: Egna datormiljön Egen utvecklingsmiljö Kursmaterial till kursen TDP003 Höstterminen 2017 Version 2.2 2017-06-30 2017-06-30 Egen utvecklingsmiljö INNEHÅLL Innehåll 1 Revisionshistorik
Innehållsförteckning Sida 3 Om IT-Högskolan Sida 4-5.NET-utvecklare Sida 6-7 Applikationsutvecklare till iphone och Android Sida 8-9 Mjukvarutestare
YH-utbildningar 2016 Innehållsförteckning Sida 3 Om IT-Högskolan Sida 4-5.NET-utvecklare Sida 6-7 Applikationsutvecklare till iphone och Android Sida 8-9 Mjukvarutestare Sida 10-11 Webbutvecklare CMS 2
Projektmetodik. Översikt. Lektion 1: Metodiker. Metodiker.
Projektmetodik Översikt Metodiker. Lektion 1: Metodiker Agile. - Lean. - Scrum. - Kanban. - XP, Extrem Programmering. - DSDM, Dynamic Systems Development Method. RUP, Rational Unified Process. Traditionella
SCRUM. En agil projektmetod baserad på empiri - vad fungerar och vad fungerar inte?
SCRUM En agil projektmetod baserad på empiri - vad fungerar och vad fungerar inte? Grundprinciper Projektgruppen organiserar och planerar sitt eget arbete Fokus på verksamhetsnytta Alla krav prioriteras
Mobilt Efos och ny metod för stark autentisering
Mobilt Efos och ny metod för stark autentisering I och med lanseringen av E-identitet för offentlig sektor, Efos, kommer Inera att leverera komponenter som möjliggör att en användare ska kunna logga in
SCRUM. på fem minuter
SCRUM på fem minuter DET TALAS MYCKET OM SCRUM OCH LÄTTRÖRLIGA METODER JUST NU STÄLL DIG FÖLJANDE FRÅGOR A simple framework for managing complex projects Traditionella metoder fokuserar på att hålla planen,
Användningscentrering i agila utvecklingsprojekt. [email protected] Valtech
Användningscentrering i agila utvecklingsprojekt [email protected] Valtech Vem är jag? Johanna Särnå Jobbar på Valtech sedan 3 år tillbaka Jobbar där med användbarhet och projektledning Certifierad
Skolverkets föreskrifter om ämnesplan för ämnet mjukvarudesign inom vidareutbildning i form av ett fjärde tekniskt år;
Skolverkets föreskrifter om ämnesplan för ämnet mjukvarudesign inom vidareutbildning i form av ett fjärde tekniskt år; beslutade den -- maj 2015. Skolverket föreskriver följande med stöd av 2 kap. 2 förordning
Uppdragsbeskrivning. Paddel-appen Utmärkta kanotleder. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info.
Paddel-appen Utmärkta kanotleder Version 1.0 Distributionslista Befattning Bolag/en het Säljare Sogeti Bengt Löwenhamn Konsultchef Sogeti Åsa Maspers Mentor/handledare Sogeti Student KaU Claes Barthelson
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
Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca
Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca System vi undersökte Den system vi valde att undersöka var en av de senaste smart tv som finns i markanden och var nämnd till bästa
Guide grunder för 4com webbshop
Guide grunder för 4com webbshop En riktig kioskvältare Innehållsförteckning Förkunskaper... 2 Vad tas upp... 2 Steg 1. Hur fungerar webbshopen i stort... 2 Shoppingläge... 2 Öppen eller stängd... 2 Steg
WEBBTEKNIK. Ämnets syfte
WEBBTEKNIK Webbteknik används för att utveckla och vidareutveckla statiska och dynamiska webbsidor, webbplatser, webbapplikationer eller andra applikationer där webbtekniker används, till exempel applikationer
WEBBTEKNIK. Ämnets syfte
WEBBTEKNIK Webbteknik används för att utveckla och vidareutveckla statiska och dynamiska webbsidor, webbplatser, webbapplikationer eller andra applikationer där webbtekniker används, till exempel applikationer
Henrik Häggbom Examensarbete Nackademin Våren 2015
AV Henrik Häggbom Examensarbete Nackademin Våren 2015 1 INLEDNING Som examensarbete på min utbildning på Nackademin Programutveckling.NET kommer jag skapa ett webbaserat system för statistik, tabeller
