• No results found

BILAGA 12 – ERFARENHETSSAMMANFATTNING, MAGNUS FORZELIUS 92

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.