20.1 Tekniska erfarenheter
Utvecklingsteamet delade direkt upp de funktioner som skulle implementeras mellan teammedlemmarna, vilket gjorde att samtliga i gruppen fick hantera alla olika språk och delar i utvecklingen, det vill säga design, funktion och databaskoppling. Detta har medfört att jag fått en stor överblick över hur en webbapplikation fungerar och hur de olika delarna samverkar för att skicka och hämta information. Jag kan därmed förstå vilken information som behöver delas mellan programmerare som ansvarar för olika delar av en webbapplikation i ett projekt för att arbetet ska kunna fortsätta effektivt på flera fronter samtidigt. Det hade såklart funnits fördelar med att dela upp så att man är ansvarig för varsitt språk eller liknande, på så sätt blir medlemmarna ”experter” på sitt område istället för att vara ganska bra på allt, men jag föredrar att man får överblick över alla olika delar.
I utvecklingen användes versionshantering, vilket innebär att medlemmarna satt enskilt och jobbade med sina funktioner på sina egna datorer, där man hade en local branch och när en funktion var färdig laddades koden upp på den gemensamma branchen på GitLab och de andra gruppmedlemmarna kunde då ladda ner den senaste versionen med den nya funktionen. Hade det inte funnits möjlighet att använda versionshantering så hade alla medlemmar i princip varit tvungna att sitta tillsammans och programmera eller skicka kodstycken via mail till varandra eller liknande, men det är verkligen inte hållbart i längden och i stora projekt. Koden från den gemensamma branchen lades upp på internet via verktyget Openshift. Vi försökte ladda upp koden där så ofta som möjligt efter att vi insåg att alla funktioner som fungerade lokalt inte alltid gjorde det där.
Kodrefaktoreringen som genomfördes av teamet var väldigt givande då man kunde lära sig av varandra hur man skriver en så effektiv kod som möjligt. Att gå igenom koden och göra den enhetlig och lättläslig gör att det blir lätt för utomstående att sätta sig in i koden, vilket till exempel kan bli aktuellt om man skriver kod som senare ska användas av en kund eller liknande. Teamet skulle dock ha kunnat genomföra kodrefaktoreringar oftare då mängden kod snabbt ökade och det blev svårt att få en bra överblick över alla funktioner.
Att lära sig alla dessa nya språk och verktyg har verkligen varit utvecklande. Jag har alltid tyckt att det skulle varit intressant att lära sig hur man skapar dynamiska hemsidor som kommunicerar med databaser, och i och med detta projekt har man lärt sig så många olika tekniker att det nu går att skapa en egen sådan. Att vara genuint intresserad av programmering har gjort att arbetet inte känts så betungande, snarare roligt att på ett konkret sätt lära sig för framtiden. Är det något jag skulle vilja få bättre förståelse för är det Single Page Application, som vi i teamet kände oss osäkra på och därmed inte utnyttjade på bästa möjliga vis. Hade vi fått bättre koll på Single Page Application så hade vi kunnat förbättra laddtider och liknande då nuvarande webbappliktion är långsam. Vi hade även kunnat använda undersidor i URLen, för vi trodde att det inte var okej att ha det i en Single Page Application. På så sätt hade man exempelvis som användare av webbapplikationen kunnat länka till specifika sökresultat på pralinsidan.
20.2 Processrelaterade erfarenheter
Att ha arbetat enligt scrum har gjort att arbetet känns väldigt likt ett riktigt projekt på ett dataföretag och erfarenheterna från detta är väldigt bra att ha med sig ut i arbetslivet. Det bästa med scrum är att man hela tiden blir uppdaterad om vad resten av gruppen gör, och att man träffas för möten så ofta gör att teammedlemmarna lär känna individerna bättre och därmed får förståelse hur man kan effektivisera arbetet. De demonstrationsmöten vi införde gjorde att man ytterligare kunde få insikt i hur de andra arbetade samt få tips på hur man löser diverse svårigheter. Scrummötena gör att problem kan upptäckas tidigt och lösas direkt för att få ett så smidigt projekt som möjligt, men det kunde dock bli tjatigt när man hade mötena för tätt, då det ofta kunde bli att man sa samma sak flera möten i rad och att alla därmed inte orkade fokusera på vad de andra medlemmarna gjorde. Att avsluta varje sprint med ett retrospektiv gör att teamet hela tiden kan eliminera problem och fundera hur man kan utvecklas kontinuerligt.
Att använda Trello hjälper till att få en översikt över vad de andra teammedlemmarna gör och när alla olika delar ska vara inlämnade. Om det används på rätt sätt, det vill säga att alla uppdaterar sina kort kontinuerligt, så är det ett väldigt kraftfullt sätt att se hur långt ett projekt har kommit. Detta verktyg kan jag även se användas utanför scrumprojekt, i det vardagliga livet när man behöver styra upp och prioritera sina åtaganden. Gruppen var lite dålig på att uppdatera sina kort, vilket gjorde att verktyget blev ganska oanvändbart emellanåt. En funktion som Trello skulle kunna lägga till för att ytterligare underlätta för projekt är att man enkelt kan ha möjlighet att göra Gantt-‐scheman av sina funktioner för att på så sätt se vilka funktioner som behöver implementeras före andra.
Jag utförde detta projekt på distans ifrån Singapore, vilket gjorde att alla gruppmöten och redovisningar skedde via Skype eller andra liknande plattformar. Att använda sig av videokonferenser i ett projekt är något som jag kommer ha väldigt stor nytta av i framtiden, då det blir allt vanligare att företag använder sig av dessa verktyg istället för att resa till fysiska möten för att minska kostnaderna och bli mer miljövänliga (29). Då internationella videokonferenser ofta medför att det finns en stor tidsskillnad var det bra att få den erfarenheten också, att planera tider för möten som passade för olika tidszoner. För att skypemöten ska bli smidiga krävs att internetuppkopplingen är stabil, och i det stora hela har det fungerat bra med undantag för några tillfällen då samtalen brutits. I dessa fall användes alternativa kommunikationskanaler för att kunna fortsätta hålla kontakten ändå.
Då jag inte hade möjlighet att sitta och programmera med övriga gruppen fysiskt och på så vis snabbt kunna få hjälp eller åsikter från dem har jag lärt mig vikten av att planera inför mina uppgifter och förutse vilka problem som kan uppstå för att sedan diskutera detta med gruppen på ett möte.
Jag var lite orolig innan projektet började att jag skulle ha svårt att vara delaktig i projektet på distans, men jag har nu lärt mig att med de rätta tekniska plattformarna och god planering kan arbetet fortlöpa i princip som om man varit på plats med övriga gruppmedlemmar vilket är en viktig del jag kommer ta med mig till framtida projekt.
20.3 Personliga mål
Mina mål med detta projekt var att utveckla förmågan att jobba i en större grupp, och att få det att fungera medan man är utomlands med stor tidsskillnad. Jag ville även lära mig mer om webbutveckling och hur man arbetar med kopplingen mellan själva hemsidan och databasen samt vilka tekniker som finns för att skydda sig mot eventuella attacker mot lösenordsdatabaser och liknande.
Jag fick insikt i hur viktigt det är att ha högt till tak och en organisation där alla får komma till tals, då det medför att många nya idéer kan komma fram och att teamet på så sätt kan skapa den bästa möjliga slutprodukten. I det stora hela är jag väldigt nöjd med hur projektet har fortlöpt och jag känner att jag mer än väl har uppfyllt mina personliga mål jag satte upp innan projektet startade. Med de nya erfarenheter jag fått, både tekniska och processrelaterade, känner jag att jag är bra rustad för framtida utvecklingsprojekt.
I det stora hela är jag väldigt nöjd med hur projektet har fortlöpt och jag känner att jag mer än väl har uppfyllt mina personliga mål jag satte upp innan projektet startade. Med de nya erfarenheter jag fått, både tekniska och processrelaterade, känner jag att jag är bra rustad för framtida utvecklingsprojekt.