ChooChoo. En Rails Engine åt Crowding.se. Tobias Ohlsson 1DV411 Webbprojekt I VT 2014 Linnéuniversitetet Kalmar

Relevanta dokument
Filhanterare med AngularJS

Kommunal Jämförelsetjänst

SLUTRAPPORT WEBBPROJEKT 1

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

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

Gillakampen. av Merkur Hoxha WP

Intra EV. Webbprojekt I, 1DV411. Alex Driaguine. Kristoffer Karlsson. Martin Carlsson. Joakim Holmewi. Mattias Johansson. Uppdragsgivare: Grupp 4:

SEGLAISOLEN.SE En Wordpres Webbsajt

Rabattsystem TEXTILGALLERIAN RABATTSYSTEM

Röna fingrar e gött o ha:) SLUTRAPPORT BUDGETSYSTEM LNU

Slutrapport - VisitOland

Lektionsbank på Musiklärarportalen.se

BESKRIVNING AV PROCESSMETODEN SCRUM

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

sida 1 Grupp 6 co-browsing 1DV411 - Webbprojekt I Markus Axelsson Stavros Gemitzoglou Axel Hernborg Joakim Jonsson Rickard Karlsson Peter Magnusson

Slutrapport - Intranät

Solvändan slutrapport Daniel Hallqvist, Therese Samuelsson & Emil Carlsson

SCRUM och mycket mer

Slutrapport. KOM - Linnéuniversitetet. Alva Fandrey. Jonas Erixon. Lukas Nilsson. Sofia Björkesjö

Slutrapport. APFy.me

TimeWarriors, Grupp 1

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

Slutrapport. Andreas Fürst, Martin Åhlin, Stefan Sahlin, Jenni Berndtson, Jimmy Sigeklint

Matematikdidaktik. 1DV411 Webbprojekt I

1DV411 Webbprojekt I Slutrapport

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

Cob Media. Linnéuniversitetet - 1DV411 Webbprojekt I - Slutrapport

SUNETs Projektmodell. Syfte. Processer. Version:

Möte i gemensamma förvaltningens nätverk för internwebben 17 juni

Collector en Android-app för att samla saker. Kim Grönqvist (kg222dk) Slutrapport

LIPs Martin Lindfors ChrKr Projdir2017_sbd.doc CKr

Projekt Effekt. Mjukvaruutvecklingsprojekt i grupp, 1DV611. Uppdragsgivare: Effect reklambyrå AB

Har du läst kursen på Campus eller distans Campus 8 53% Distans 7 47%

Projektdirektiv Oskar Ljungqvist Sida 1. Kund/Examinator: Daniel Axehill, Reglerteknik/LiU

Slutrapport projektgenomförande - Aurora Innovation AB

Idrottsapen. 1. Inledning. 2. Mål och syfte. 3. Projektbeskrivning

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

Resultat av kursvärdering för kursansvarig och lärare

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

Projektet. TNMK30 - Elektronisk publicering

Thomas Padron-Mccarthy Datateknik B, Mobila applikationer med Android, 7.5 hp (Distans) (DT ) Antal svarande = 18

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

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

HejKalmar app. Projektrapport. Webbprojekt I

ToDo ios-applikation. Mikael Östman. Mikael Östman - mo22ez Linnéuniversitetet

Projekthandbok. administrativa utvecklingsprojekt

VIDEODAGBOKEN. Individuellt Mjukvaruutvecklingsprojekt. En dagbok i videoform online. Robert Forsgren (rf222ce) UD

Kommunikationsmaterial

Vad är agilt? Agile Islands Andreas Björk

Process- och metodreflektion. Grupp 3; Ida Gustafsson, Mikael Karlsson, Jonas Lind, Hanne Sundin, Maria Törnkvist

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

Tepz klon. - Projektrapport. Linnéuniversitetet, Individuellt mjukvaruutvecklingsprojekt Janina Bergström, WP12 Distans

Ärende 1 Uppstart: genomgång av senaste anteckningar, sammanfattning av vårens arbete och en blick in i höstens arbete

Erik Lundgren GarageLoppisen.se. Projekt i kursen Individuellt Mjukvaruutvecklingsprojekt, 1dv430

Labrapport över Rumbokningssytemet Grupp:1

LiTH Segmentering av MR-bilder med ITK Efterstudie MCIV. Anders Eklund. Status

Dagbok Mikael Lyck

Elastisk sökning med Elastic Search

Agil Projektledning. En introduktion

Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca

Ingenjörsinriktad yrkesträning - Softhouse Crossmedia Avenue. Ronny Roos, d04rr

Slutrapport: Vägen till ökat välbefinnande.

Slutrapport för Internetfonden

Slutrapport för Pacman

LIPs Daniel Axehill ChrKr Projektdirektiv_Saab_v3 CKr

1DV450 - vt2014. Har du läst kursen på Campus eller distans. Antal respondenter: 24. Antal svar. Svarsfrekvens: 37,50 %

Pilotprojekt Pict-O-Stat i Fagersta kommun

Haris Kljajic Individuellt mjukvaruprojekt. Projekt Rapport. Insatsplutonen. Haris Kljajic UD11

David A, Niklas G, Magnus F, Pär E, Christian L CHALMERS INLÄMNING1. IKOT Grupp B4

Hur nöjd är du på en skala?

Sammanställning av kursvärdering

Utvärdering Projekt Vägen

Kursutvärdering av Introduktionskursen, 7 poäng, ht 2006

Familjecentraler Brukarundersökning 2010

Projektuppgift.

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

SLUTRAPPORT. Projekt Pion. Medverkande: David Strömbom, Morgan Nadler, Cheng Fong, Alexander Lind, Dzemal Becirevic,Tapani Välijeesiö

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Agil Projektledning. En introduktion

Projektmetodik. Johan Nilsson. Institutionen för Biomedicinsk Teknik LTH, Lunds Universitet

Inspel till dagens diskussioner

Mighty. Mobilapplikation för evenemang

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

Projektrapport Bättre vård mindre tvång del 2

Slutrapport projektgenomförande Metamatrix

Lärprojektet Utvärdering av samverkansdialogerna

REGLAB Hur bedömer du lärprojektet Kommunikation som helhet? 2. Kommentar. 3. Vad har du uppskattat mest? Antal svarande: 10

Uppdragsbeskrivning. Google Glass. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info.

RAPPORT FÖR UTVÄRDERING AV AVSLUTAD KURS/DELKURS

CREATING VALUE BY SHARING KNOWLEDGE

För att få ett riktigt bra möte är det viktigt att förbereda sig. Här följer tre saker som är bra att tänka på:

Halmstad Arena utvärdering av projektet

En webbtjänst som är skapad i kursen 1DV611 - Mjukvaruutvecklingsprojekt i grupp.

Agil Projektledning. En introduktion

STRESS ÄR ETT VAL! { ledarskap }

BOKSAMMANFATTNING MOTIVATION.SE

Nyanländ kompetens. Ett samverkansprojekt mellan Mora, Orsa och Älvdalens kommuner, Högskolan Dalarna och Arbetsförmedlingen.

Redogörelse för utvecklingsprocessen av spelet The Legend of Chalmers

Vis it. jquery jquery används lite överallt i appen på olika sätt. Det främsta användningsområdet är vid selektering och manipulering av HTML element.

Transkript:

ChooChoo En Rails Engine åt Crowding.se 1(10)

Innehållsförteckning Inledning Syfte Mål Projektorganisation Projektets tillvägagångssätt Resultat Avvikelser Slutsats Övertagande organisation Förbättringar och vidareutveckling 2(10)

Inledning Crowding.se är en nystartad webbtjänst som låter svenska och internationella företag dra nytta av ett crowdsource baserat system, där tjänstens användare uppmuntras bidra med lösningar till olika utmaningar och tävlingar som lagts ut av anslutna företag. För varje tävling finns en prispott som delas mellan vinnande bidrag. Hela tillvägagångssättet innebär en lång process av kommunikation och utbyte av händelser mellan parterna, vilket kräver ett fungerande och intuitivt informationsflöde för både parterna. I dagens läge har crowding.se ett redan implementerat aktivitetsflöde som upplevs som något stelt och odynamiskt av sajtens utvecklare, och det är där vi i projektgruppen kommer in i bilden. Vårt uppdrag var att utveckla ett dynamiskt och smart aktivitetsflöde som täcker sajtens behov. Syfte Huvudsyften med projektet var dels att få uppleva att arbeta i grupp i ett skarpt projekt där vi får känna av hur gruppdynamik kan påverka arbetets gång, och dels att få ställas mot skarpa krav och därigenom leverera en fungerande slutprodukt som uppfyller de av kunden ställda krav. Mål Målet med projektet har, i den anda som agil utveckling innebär, kommit att utvecklas ifrån en begynnande målsättning att skapa ett aktivitetsflöde som passar crowding.se:s 3(10)

specifika behov, till att utveckla ett mer generiskt aktivitetsflöde som i princip kan kopplas på vilken applikation som helst som använder sig av webbramverket Ruby on Rails. Allt eftersom målet har kommit att förändras så innebar den slutgiltiga målsättningen att skapa ett dynamiskt aktivitetsflöde, med stöd för cache:ning som enkelt kan kopplas till kundens applikation som finns under domännamnet crowding.se Projektorganisation Projektets organisation var av hierarkiskt upplägg, där Tobias Ohlsson vid Linnéuniversitet var den som tillsatt projektgruppen och har hållit i handledarmöten varje måndag under projekttiden. Ohlsson har i sin tur utsett Linus Lundvall, utvecklare vid crowding.se till projektbeställare, som bevakade arbetetsgången för utvecklarteamet i projektet som bestod av: Jimmy Börjesson testansvarig Alexander Hall produktansvarig Merkur Hoxha dokumentationsansvarig Inom utvecklargruppen fanns det ett fastlaget roterande schema för rollen som projektledare och kundansvarig, med en veckas intervall. Projektets tillvägagångssätt Utvecklingen skedde genom en skräddarsydd lösning, eller snarare en slags hybridlösning, där SCRUM och UP metoder var anpassade och sammansatta så att de 4(10)

täckte projektets behov. Det fanns bland annat visionsdokument, risklista, mjukvaruarkitektursdokumentation och testdokumentation som var semantiskt kopplade till en product backlog med tillhörande sprint backlogs och sprint reviews. Vad gäller den tekniska delen av projektet så hade vi inom utvecklargruppen sedan första projektdagen bestämt oss för att använda oss av GitHub för att på ett överskådligt sätt kunna utveckla i grupp med hjälp av pull requests och branches. Webbramverket Ruby on Rails var något helt nytt (med undantag för Hall som hade viss erfarenhet av Ruby on Rails sedan tidigare) för oss vilket gjorde att fokus lades på att sätta sig in i hur Ruby on Rails fungerar, under projektets första iterationer. Lyckligtvis var projektbeställaren väldigt insatt i Ruby on Rails och till stor hjälp, så vi kunde minska den branta inlärningskurvan genom support via bl.a. Google Hangouts samt läsmaterial från olika källor. Kommunikation kan bli något knepigt när ett projekt ska äga rum enbart på distans men överlag har vi lyckats hålla oss synkroniserade informationsmässigt, då vi hade ett privat chattrum inom utvecklargruppen där vi kunde nå varandra i princip dygnet runt. Detta i kombination med Skype och den form av kommunikation som kan ske genom GitHub (issues och kommentarer) gjorde att vi kunde kommunicera förhållandevis smärtfritt inom gruppen. Det fanns också förbestämda kommunikationskanaler med både kund och handledare. Ohlsson hade vi inbokade möten med varje måndag kl 9:00, där vi gick igenom förra veckans resultat samt kommande veckas målsättningar. Detsamma gäller kommunikation 5(10)

med kund; till detta fanns ett avsatt chattrum för kunden där vi kunde nå varandra under arbetstid och möjlighet till videokonferens genom Google Hangouts. Resultat Resultatmässigt kan man beskriva de första veckorna i projektet som något kaotiska. Detta berodde först och främst på viss okunskap kring Ruby on Rails. Kommunikation med kunden upplevdes väldigt intensiv, men även väldigt hjälpsam i början. Detta uppskattades väldigt mycket av oss i gruppen, då vi inte bara såg kunden som just en kund, utan även som en hjälpande hand för en grupp utvecklare som först skulle behöva sätta sig in i en helt främmande utvecklingsmiljö. Riktlinjerna för projektet upplevdes som väldigt otydliga i början och vi fick själva bestämma hur slutprodukten skulle te sig skulle det vara i form av ett API eller som en integrerad del av crowding.se? Man kan nog påstå att det var inte förrän i mitten av projektet som vi, delvis av eget iniativ, satte fasta och tydliga riktlinjer för projektet. Det skulle bli en Ruby on Rails Engine som kunde kopplas till en applikation (inklusive Crowding.se) på ett lätt och dynamiskt sätt. Här bidrog kunden med teknisk feedback och vi kom fram till att vårt egenutvecklade aktivitetsflöde skulle bete sig som ett superobjekt som kan lyssna till modeller i en värdapplikation och betrakta dem ur en förälder barn relation. Eftersom tillgång till källkod för crowding.se aldrig erbjöds, trots förfrågningar från oss i utvecklargruppen, så bestämde vi oss för att vid sidan av projektet även utveckla en simpel bloggapplikation för att efterlikna crowding.se, och därigenom kunna testa Choo Choo (aktivitetsflödet) i ett mer skarpt läge. 6(10)

Den slutversion av produkten som har levererats till kunden finns som öppen källkod på github.com/lnucrowding/choochoo med tillhörande dokumentation. Där framgår även att produkten är testad och passerar samtliga enhetstester (läs Travis). Det är fritt fram för både kund och andra intresserade utvecklare att använda sig av Choo Choo och att vidareutveckla den. Vad gäller resultaten för projektet kan man sammanfatta dessa med att Choo Choo täcker de krav som finns dokumenterade i visionsdokumentet. Trots detta återstår det en del arbete för att produkten skall uppfylla kundens ursprungliga krav (som tidigare nämnts har riktlinjerna förändrats under arbetets gång) med bland annat möjlighet för cache:ning, vilket egentligen aldrig implementerades utan vi valde att överlåta lösningar för detta till Choo Choos framtida användare istället. Avvikelser Avvikelser har kanske redan nämnts under stycke Resultat men sammanfattningsvis så skedde det en del avvikelser i slutet av projektet. Vi bestämde exempelvis i samråd med Ohlsson att avvika ifrån de krav som ställdes i början av projektet vad gäller sweepning (cache) och möjlighet för applikationsanvändare att prenumerera/avprenumerera, helt enkelt eftersom vi insåg att projekttiden började närma sig slutet och att vi inte skulle hinna med detta. Vi anser så här i efterhand att detta scenario hade kunnat undvikas om projektet inte hade haft en så pass stor komplexitet (att koda något som dynamiskt anpassar sig till vilken värdapplikation som helst), med större förkunskaper i Ruby on Rails samt om vi även fått tillgång till kundens källkod i tid. 7(10)

Slutsats Om man jämför vision och uppsatta mål med det som levererats kan slutprodukten kanske ses som lite halvdant genomförd. Det är dock väldigt viktigt att notera att vi har haft flera hinder på vägen, som redan nämts i föregående text, både på teknisk och ledande nivå. Hinder på den tekniska nivån har varit bland annat att lära sig Ruby on Rails från grunden men även lära sig avancerade användningsområden av Git genom GitHub. På den ledande nivån har hindren inneburit problem med att förstå den riktiga problematiken med kundens projekt och hur slutprodukten skulle se ut. Det började som sagt med enkel kod som eventuellt skulle kopplas till crowding.se för att vidare förkasta allt och utveckla hela konceptet som en Ruby Gem (ett tillägg man kan koppla till sin Rails applikation). Men utvecklingen stannade inte här utan vi bestämde oss själva sedan för att göra om allt igen som en Ruby Engine (en mini app ) som kan kopplas till en värdapplikation genom att använda olika nya tekniker som Concerns. Den allra viktigaste slutsatsen man kan dra inom ramen för detta projekt är att vår grupp visade sig beta av alla hinder på vägen, och leverera en slutprodukt som uppfyller kundens krav. Dock pga tidsbrist kanske inte på det sätt som var bestämt från början. Vi kan stolt påstå att gruppdynamiken fungerade över våra förväntningar, och vi kunde emellanåt känna oss som en självgående utvecklargrupp som tog egna initiativ, hade en jämn och rättvis arbetsfördelning och leverade vecka efter vecka. 8(10)

Det nämndes i början av detta avsnitt att produkten kan anses som lite ofärdig i relation till kundens ställda krav, men om man har i åtanke den knappa projekttiden på tio veckor och att vi var helt nollställda i början av projektet så anser vi själva att kvaliteteten på slutprodukten faktiskt var en stor bedrift. Övertagande organisation Även om uppdgragsgivare var Crowding.se så är källkoden öppet publicerad under MIT licens och tillhör den sammanfogade organisationen Lnu och Crowding. Källkoden i sin helhelt går att nå via github.com/lnucrowding/choo_choo och kan fritt modifieras av övertagande organisation så att den passar ens behov. Förbättringar och vidareutveckling Det finns en del förbättringar som implicit har nämnts i detta dokument. Som slutprodukten är nu, så är det helt upp till värdapplikationen att sköta cache:ning av aktiviter som Choo Choo samlar. Något som hellre skulle kunnat göras igenom Choo Choo. Även smarta funktioner som att prenumerera/avprenumerera på en viss aktivitet kan vara en integrerad del av Choo Choo. Dessa förbättringspunkter var som det framgick av avsnittet Avvikelser en del av projektets krav som aldrig hann implementeras pga tidsbrist, men våra förhoppningar är att många (inklusive vår kund) kan ha nytta av den grundfunktionalitet som redan finns i Choo Choo redan och även vidareutveckla den framöver. 9(10)

10(10)