Denna erfarenhetssammanfattning kommer beskriva mina processrelaterade erfarenheter, mina tekniska erfarenheter och mina mål.
21.1 Processrelaterade erfarenheter
Arbetet utfördes enligt en agil metodik kallad Scrum och den var helt ny för teamets samtliga medlemmar. Metodiken var lämplig att använda eftersom en mjukvara utvecklades och vikten av flexibiliteten var stor. En nackdel var att metodiken inte implementerades exakt så som den implementeras i verkligheten med tanke på att en produktägare saknades. En produktägare utgör nämligen en av de tre fundamentala rollerna i Scrum (31). Om en produktägare hade funnits hade det varit viktigt för teamet att ha ett nära samarbete med denna. Teamet hade då behövt ta hänsyn till produktägarens krav och önskemål. Vi hade dessutom behövt ha kontinuerliga avstämningar med produktägaren för att säkerställa att utvecklingen gav önskat resultat.
Avsaknaden av produktägare ledde till att teamet själva blev tvungna till att fundera över och bestämma hur e-‐butiken skulle utformas, vilket faktiskt var en bra erfarenhet. Det var många funktioner som egentligen var helt uppenbara men som teamet från början missade att lägga till i produktbackloggen. För att undvika missarna hade vi själva kunnat sätta oss in i en kunds situation och gå igenom alla nödvändiga steg för att utföra ett köp och stämma av det med alla user-‐stories i produktbackloggen. Om jag kommer att agera produktägare i framtiden kommer jag definitivt att ta hänsyn till denna lärdom och därför vara noga med att tänka igenom min kravspecifikation ordentligt så grundläggande aspekter inte missas.
I början av projektet satt teamet sällan och arbetade tillsammans. Det fungerade bra då information till rapporten skulle inhämtas, men mindre bra under utvecklingsarbetet med e-‐butiken. Därför bestämde den del av teamet som befann sig i Linköping för att sitta och arbeta tillsammans i samma rum oftare. Det hade många fördelar som alla närvarande teammedlemmar upplevde. Det ökade kommunikationen inom gruppen och stärkte därmed teamkänslan. Dessutom underlättade det vid problemlösandet eftersom det då var möjligt att fråga en annan teammedlem som fanns i närheten om hjälp. Ytterligare en fördel var att det gav en bättre helhetsbild över projektets utveckling då teammedlemmarna kontinuerligt uppdaterade varandra genom muntlig kommunikation.
När teamet bestämde sig för att arbeta i samma rum beslutades att dessa tillfällen inte skulle vara obligatoriska. Det var en stor nackdel på så sätt att det ofta var personer frånvarande vilket innebar att de positiva effekterna minskade markant. Beslutet togs på grund av att teammedlemmarna själva ville kunna avgöra hur de skulle planera sin tid och vissa upplevde att de arbetade bättre på egen hand. Däremot tror jag att teamet som helhet hade vunnit på att ha fasta tider för arbete tillsammans i samma rum på grund av alla tidigare nämnda fördelar. Dessutom är det rekommenderat att arbeta i samma rum inom Scrum (32). Vissa teammedlemmar föredrog att arbeta på egen hand vilket jag snarare tror beror på att de är vana vid att göra det än att de har svårt för det. Utifrån detta tar jag med mig att
ett nära samarbete är viktigt vid teamarbete och att en enkel metod för att uppnå detta är att arbeta på samma plats under bestämda tider.
21.2 Teknikrelaterade erfarenheter
Då e-‐butiken utvecklades integrerades flera programmeringsspråk, bland annat HTML, JavaScript och Python. Till följd av detta lärde jag mig att förstå hur dessa fungerar. Vissa av språken, som jag arbetade mer frekvent med, fick jag en fördjupad kunskap i. Många av dem hanterar jag numera bra. Däremot upplever jag att min kunskap inom exempelvis JavaScript är ytlig. Anledningen till det är troligtvis att JavaScript är komplicerat och svårt att lära sig. Python, HTML och CSS är mycket enklare och språk som jag numera anser mig vara väl insatt i.
På grund av att jag inte var bekant med språken sedan tidigare uppstod flera problem gällande hur koden skulle formuleras. För att lösa dem var Google ett ständigt hjälpmedel eftersom det finns mycket givande information att hämta därifrån. Det ökade min förmåga att lösa problem på egen hand, vilket är en oerhört bra erfarenhet. Det tar jag med mig till framtida arbeten där liknande problem säkerligen kommer att förekomma.
Vid arbetet användes den integrerade utvecklingsmiljön PyCharm. Denna liknar tidigare använda utvecklingsmiljöer i flera avseenden, vilket säkerligen bidrog till att jag fann den enkel att hantera. PyCharm innehåller en debugger-‐funktion som upptäcktes sent i utvecklingsprocessen. Det hade varit önskvärt om funktionen upptäckts tidigare för den hade kunnat underlätta arbetet vid ett flertal tillfällen då felsökning behövde genomföras. Till exempel hade den kunnat användas för att ta reda på exakt vad det var som gick fel när sidan kraschade. Under projektets gång fick jag gissa och testa mig fram vid sådana situationer vilket tog lång tid. Eftersom debugger-‐funktionen upptäcktes så pass sent under utvecklingen hamnade jag aldrig i en situation där den var användbar. Därmed använde jag den inte på egen hand och till följd av det lärde jag mig tyvärr inte dess fulla funktion. En funktion jag dock utnyttjade ofta var möjligheten att se historik för de skapade filerna. Detta särskilt på grund av att jag behövde se och återinföra kod som försvunnit vid uppladdning eller hämtning från GitLab.
Utvecklingsmiljön innehåller troligtvis flera andra för mig okända funktioner som hade varit användbara vid arbetet med e-‐butiken och jag tror att många av de andra i teamet har samma uppfattning. För att undvika att sådana funktioner inte upptäcks hade teamet kunnat lägga ner tid på att undersöka och testa utvecklingsmiljön antingen tillsammans eller individuellt. De två ovan nämnda funktionerna upptäckte jag först då en annan person visade mig dem och jag tror att teamet hade kunnat bli mycket bättre på att hantera PyCharm om samtliga medlemmar hade förmedlat upptäckter av inbyggda funktioner till de andra. Om jag skulle göra om uppgiften eller genomföra ett liknande projekt hade jag tveklöst lagt större vikt vid att sätta mig in i utvecklingsmiljöns funktionalitet. Detta för att kunna utnyttja verktyget i en högre grad och på så sätt få ett effektivare arbete. Jag skulle definitivt vilja använda PyCharm igen eftersom det är ett smidigt verktyg med många användbara funktioner.
21.3 Mina mål
De två stora målen jag hade inför projektet var att utveckla min samarbetsförmåga och lära mig nya programmeringsspråk samt verktyg. Det första målet uppfylldes genom alla erfarenheter jag fick gällande teamrelaterat arbete och användandet av arbetsmetodiken Scrum. Det andra målet blev också uppfyllt eftersom jag fick arbeta med programmeringsspråk och verktyg som jag inte använd tidigare och lärde mig hur dessa fungerade.