• No results found

Slutsatser

In document Tävlingssystem för Teknikåttan (Page 48-84)

runt om i världen [48]. Detta gör att enkätens resultat inte nödvändigtvis representerar hela populationen av webbutvecklare.

A.8

Slutsatser

Från diskussionen kan några slutsatser dras för att svara på de frågeställningar som ställts.

A.8.1

Frågeställning 1: Vilka är de populäraste alternativen för strukturering av

CSS i React?

Nedan beskrivs några av de struktureringsalternativ som hittats i analysen.

A.8.1.1 Vanilla CSS

Vanilla CSS (CSS utan modifikationer) kan användas på ett antal olika sätt i React nämnligen: • Inline CSS - Skriva CSS direkt i HTML-komponenten som ändras, ett väldigt snabbt sätt att designa en komponent. Om det finns flera komponenter som behöver samma stil krävs det repeterad kod och det ger även ganska otydlig kod.

• CSS-klasser i separata filer - Att tagga en komponent med className=, är bättre än inline CSS eftersom det inte kräver samma mängd repeterad kod och även ger mycket tydligare kod. Däremot finns ett problem med att om flera komponenter har samma klassnamn kommer det att uppstå en krock.

• CSS modules - Importerbara komponenter för att slippa problemet med att stilar för olika komponenter krockar.

A.8.1.2 Sass

Sass (syntactically awesome style sheets) är ett tillägg till vanilla CSS som ger det mycket mer kraft. Till exempel går det med hjälp av Sass att:

• Spara variabler i CSS för att minska repetition.

• Nästla klasser för att skapa mer läsbara CSS-filer och minska repetition. • Importera andra Sass-filer som moduler.

Däremot löser det inte problemet med krockande klassnamn.

A.8.1.3 CSS-in-JS

Det finns flera olika CSS-in-JS-bibliotek varav några av de vanligaste är Styled Components, JSS och Emotion:

• Styled Components som även används i detta projekt löser många av de problem som tillkommer med vanilla CSS som variabler och krockande klassnamn. Det har en väldigt specifik syntax och ger till skillnad från alla andra alternativ som nämns i denna rapport en helt annan struktur. Till ytan går det inte att se om en komponent är skapad med Styled Components eller är en vanlig komponent skapad i React.

• JSS är ett av de första biblioteken som implementerar idén bakom CSS-in-JS. Det an- vänds av bibliotek som Material-UI vilket är relevant för detta projekt eftersom det komponentbiblioteket används i detta projekt.

• Emotion är ett bibliotek vars syntax liknar Styled Components väldigt mycket förutom att koden inte skrivs i separata komponenter utan direkt i klassnamnet som CSS-klasser.

A.8. Slutsatser

A.8.2

Frågeställning 2: Hur kan dessa alternativ användas för olika projekt?

Av diskussionen om resultatet går det att dra följande slutsatser.

• Vanilla CSS verkar bli mindre och mindre populärt och därför borde utvecklare inte vara rädda att testa verktyg som kan hjälpa till med struktureringen.

• CSS modules kan vara användbart speciellt i större företag eller projekt där problemet med krockande klassnamn är viktigt att eliminera men det samtidigt är viktigt att inte använda för stora bibliotek som är olikt ren CSS.

• Sass är ett väldigt etablerat och populärt alternativ som passar bra som helhetslösning, speciellt om projektet inte skall använda ett CSS-in-JS-bibliotek av någon anledning • CSS-in-JS-bibliotek kan också användas som helhetslösning istället för Sass, om syntax-

en inte är något problem för projektet.

A.8.3

Frågeställning 3: Hur kan olika CSS-in-JS-bibliotek användas för olika

projekt?

Från diskussionen kan slutsatsen dras att det inte är särskilt viktigt vilket av de olika CSS- in-JS-alternativen som väljs. Det finns dock ett par fördelar hos varje bibliotek som gör att de passar bättre i olika situationer.

• Styled Components är det största och populäraste biblioteket vilket gör att det passar bra i de flesta situationerna tack vare att det finns mycket dokumentation online. • JSS är ett väldigt bra alternativ om projektet använder sig av Material-UI eller andra

bibliotek som internt använder sig av JSS.

• Emotion är som tidigare nämnts väldigt likt Styled Components men det har source maps vilket kan vara viktigt för att förbättra utvecklingsprocessen och kan därför vara ett bra alternativ om det är något som värderas högt i projektet.

B

Utbildning inom ett

utvecklingsprojekt av Sebastian

Karlsson

En text skriven av Sebastian Karlsson som undersöker behovet av utbildning för utvecklare i anslutning till mjukvaruprojekt.

B.1

Inledning

Inom så gott som alla utvecklingsprojekt finns behov av utbildning. Det kan handla om att lära sig att använda nya teknologier, att sätta sig in i andra domäner än de man är bekant med, eller att ta del av ny forskning. I en grupp kommer dessutom medlemmarna aldrig att ha exakt samma kompetens, i synnerhet vid nyrekrytering, varför det finns möjlighet att lära sig av varandra för att öka gruppens kompetens. Uppenbarligen ger utbildning förutsättningar för att skapa en bättre produkt, men var går gränsen för hur mycket tid man bör lägga på utbildning jämfört med arbete?

B.1.1

Syfte

Denna rapport syftar till att undersöka hur mycket utbildning som bör utföras och hur den bör förläggas i ett mjukvaruprojekt. Detta är naturligtvis en komplex fråga som beror på många faktorer som projektets karaktär och gruppens mognadsgrad, och det går inte att finna ett entydigt svar som gäller i alla situationer. De resultat och slutsatser som nås bör därför betraktas som exempel på hur det kan gå till snarare än objektiva sanningar. Vidare syftar rapporten till att undersöka hur intern utbildning kan utföras på bästa sätt, och specifikt om det går att identifiera några gemensamma drag bland interna utbildningar som har varit effektiva.

B.1.2

Frågeställning

För att formalisera undersökningen och hjälpa rapporten att uppfylla sitt syfte har följande frågeställningar tagits fram.

1. Hur stor andel av arbetstiden bör läggas på utbildning för att skapa det största värdet för en kund?

B.2. Bakgrund

2. I vilken utsträckning bör utbildning förläggas i ett projekts tidigare skede jämfört med dess senare?

3. Hur kan man ta vara på andra gruppmedlemmars kompetens vid intern utbildning?

B.1.3

Avgränsningar

Denna undersökning kommer inte att kunna omfatta någon stor bredd gällande typer av pro- jekt och grupper, utan begränsas till de kandidatprojekt som bedrivs vid Linköpings univer- sitet för civilingenjörsprogrammen i data- och mjukvaruteknik 2021. Vidare forskning skulle kunna undersöka utbildning hos framgångsrika företag av olika storlek, filosofi, personalom- sättning och geografisk placering för att bättre besvara frågeställningarna, men detta ryms alltså inte i denna rapport.

B.2

Bakgrund

Personlig utveckling och lärande på arbetsplatsen är viktigt i de flesta yrken. Faktum är att 94% av tillfrågade företag anser att L&D (Learning and Development) är kritiskt för framgång [49]. Detta gäller inte minst inom programvaruutvecklingsbranschen där nya teknologier och verktyg utvecklas hela tiden, och användandet av ny teknologi dokumenterat ökar produk- tiviteten hos utvecklingsteam [49]. Även arbetssökande utvecklare tycker att det är viktigt att ha möjlighet till att utvecklas i sitt arbete. Bland tillfrågade utvecklare var personlig utveck- ling och lärande den näst mest attraktiva aspekten hos en arbetsplats där 55,1% angav att det var något de letade efter när de sökte jobb, precis efter bra balans mellan jobb och fritid som 56,5% angav som önskvärt [50]. Uppenbarligen håller både arbetsgivare och arbetstaga- re med om att utbildning är något som bör investeras i, men vad är egentligen det bästa sättet att utföra den på?

Ett populärt sätt att lära sig mer om teknologi och programmering är att använda interak- tiva plattformar för utbildning på internet. Dessa låter användaren fokusera på de områden som hen tror kommer vara mest användbara i sitt arbete. Ett bekymmer är dock att man är begränsad till det kursutbud som finns på plattformen, vilket inte alltid behöver överens- stämma med vad man behöver lära sig. Dessutom använder dessa plattformar traditionella inlärningstekniker som inte är de mest effektiva att använda när det kommer till att skaffa och befästa kunskap [49].

Lean learning är ett begrepp bildat i analogi med Toyotas strategi lean manufacturing. Det betecknar ett industriellt inlärningsparadigm som kännetecknas av att anställda lär sig rätt sak vid rätt tid och av rätt orsak, samt att de behåller det de lärt sig i minnet [51]. En viktig del av denna strategi är att man lär sig bäst när man är tvungen att lära sig något, eftersom man då får möjlighet att applicera det man lärt sig i verkligheten direkt. Lean learning hand- lar också om att få snabb återkoppling för att förbättra sin förståelse. Detta kan exempelvis åstadkommas genom att man lär sig av sina kollegor. Studier har visat att 55% av anställda som vill lära sig en ny färdighet föredrar att gå till en kollega snarare än att söka på internet eller att använda företagets resurser för utbildning [51]. Kollegialt lärande ger alltså möjlighet till snabb och kontextuell inlärning, samtidigt som kunskapen förstärks genom återkoppling. En formaliserad variant av detta är mentorskapsprogram, där man som anställd får vägled- ning av en senior utvecklare för att öka sin kunskap och problemlösningsförmåga. En studie gjord av Mentorloop visar att 71% av Fortune 500-företag, som är de 500 företag i USA som har högst årlig inkomst, erbjuder mentorskap till sina anställda [49].

B.3. Teori

B.3

Teori

Det finns åtskilliga teorier som handlar om lärande och utbildning; hela de akademiska fälten om pedagogik och didaktik bygger på studiet av dessa processer. I detta kapitel behandlas några begrepp och teorier som relaterar till lärande på arbetsplatsen i kontrast mot i en skol- miljö.

B.3.1

Formellt lärande

Formellt lärande är den typ av lärandeprocess som traditionellt sker i en skolmiljö. Det finns ett flertal aspekter som brukar känneteckna hur ett formellt lärande går till. Hager [52] be- skriver det så kallade lärandets standardparadigm, vars idéer har påverkat utformandet av tra- ditionell undervisning. Detta paradigm baseras på flera antaganden som bland annat innebär att lärande ska ses som en individuell kognitiv process, att lärande ska fokusera på att tän- ka snarare än att göra, och att lärande bör vara mätbart. Formellt lärande passar på många sätt in i detta paradigm. Konkret så brukar formellt lärande kännetecknas av avsiktlighet, följandet av en läroplan, fokus på abstrakt manipulation av symboler, avsaknad av fokus på användandet av verktyg, generaliserade färdigheter och ett individuellt genomförande [53].

B.3.2

Informellt lärande

Informellt lärande är sådant lärande som inte passar in i beskrivningen av formellt lärande. Denna typ av lärandeprocess är svår att förklara med lärandets standardparadigm och bru- kar istället förklaras med det som Hager [52] kallar för lärandets framväxande paradigm. Detta paradigm ser lärande som en process som inte bara sker i sinnet, utan också i den omgivande miljön. I detta perspektiv blir lärandet kontextuellt snarare än isolerat. I kontrast mot det for- mella lärandet så kännetecknas informellt lärande av oavsiktlighet, avsaknad av en läroplan, en hög grad av kontextualitet, fokus på verktygsanvändande, situationsspecifika färdigheter och ett kollaborativt genomförande [53]. Något förenklat kan man alltså se informellt lärande som den typ av lärande som sker automatiskt när man utför uppgifter genom interaktion med medarbetare, eller som effekt av själva processen.

B.3.3

Arbetsplatslärandets särdrag

Studiet av arbetsplatslärande skilt från skollärande är ett relativt nytt område. Trots det finns det idag en både bred och tvärvetenskaplig forskning om denna typ av lärande. Ett flertal observationer kan göras för att hjälpa oss att karaktärisera arbetsplatslärande.

Arbetsplatslärande är samtidigt både likt och olikt skollärande. Skollärande är traditio- nellt av formell art, medan lärande på arbetsplatsen i stor grad är informell. Dock finns det i ökande grad ett överlapp mellan dessa former. Å ena sidan har skollärandet på senare tid in- fört pedagogiska modeller som problembaserat lärande, projekt- och grupplärande vilka alla inför element som efterliknar de autentiska situationer som kan uppstå på en arbetsplats. Å andra sidan kan arbetsplatsen vara en scen för formellt lärande i form av organisationsstyrda kurser och träningsprogram.

Tynjälä [53] argumenterar för att arbetsplatslärande bör vara både informellt och formellt. En stor del av lärandet kommer att vara informellt, antingen genom att man oavsiktligt får er- farenhet av sina arbetsuppgifter eller genom avsiktliga men informella metoder såsom men- torskap. Samtidigt är inte informellt lärande alltid tillräckligt. Det kan leda till dåliga vanor och dysfunktionella processer. Formellt lärande kan också utnyttja och förstärka den impli- cita kunskap som har skapats genom informella metoder. Slutligen kan ny kunskap, nya verktyg och nya processer idag skapas så snabbt att informellt lärande inte alltid räcker till för att hålla personers och organisationers kunskap konkurrenskraftig utan kan behöva kom- pletteras med formell undervisning.

B.4. Metod

B.4

Metod

Som underlag till denna rapport kommer data att insamlas. Denna data kommer att samlas in med hjälp av enkäter som skickas ut till studenter som läser kursen TDDD96 Kandidat- projekt i programvaruutveckling vid Linköpings universitet våren 2021. För att kunna besvara frågeställningarna kommer även en intervjubaserad fallstudie att genomföras. Enkäten har följande frågor:

1. Hur många timmar har du lagt på projektet hittills?

2. Ungefär hur många av dessa timmar har du lagt på utbildning? 3. Hur upplever du mängden tid du lagt på utbildning?

4. Hur har utbildningen varit förlagd tidsmässigt?

5. Hur bekant känner du dig med de teknologier och verktyg som du använder i projek- tet?

6. Vad skulle du säga är projektets huvudområde? Exempel: webbutveckling, bildbehand- ling et cetera.

7. Har du läst någon kurs i detta huvudområde? 8. Hur upplever du ert valda projekt som helhet? 9. Hur användbar har utbildningen varit i projektet?

10. Har ni haft någon intern utbildning ledd av en annan gruppmedlem?

11. Om ja, hur givande tyckte du att den var, jämfört med om du hade lagt samma tid på att själv studera samma sak?

B.5

Resultat

I detta kapitel redovisas resultaten av enkät- och intervjuundersökningarna. Enkäten besva- rades av 30 personer. I de fall en enkätfråga har besvarats med ett intervall så har värdet i mitten av intervallet använts i redovisningen. En mer djupgående intervju genomfördes med en av dessa respondenter. Delar ur denna intervju som är av intresse för att besvara rapportens frågeställningar lyfts här fram. Intervjusvaren har anonymiserats och vid behov parafraserats till en mer skriftspråklig stil.

B.5.1

Hur stor andel av arbetstiden bör läggas på utbildning för att skapa det

största värdet för en kund?

För att besvara denna frågeställning användes svaren till fråga 1, 2, 3, 5, 7, 8 och 9 ur enkät- undersökningen. Även svar från intervjuundersökningen användes.

B.5.1.1 Enkätundersökning

Figur B.1 visar svaren på fråga 1. Respondenterna hade lagt mellan 150 och 240,5 timmar på projektet, med ett genomsnitt om 195 timmar.

Alla respondenter hade lagt tid på utbildning. Antalet rapporterade timmar var mellan 3 och 70 med ett genomsnitt om 28,6 timmar, vilket kan ses i svaren till fråga 2 i figur B.2.

Av de 30 respondenterna upplevde 22 stycken att mängden tid som lagts på utbildning var lagom, 7 stycken ansåg att de hade lagt för lite tid och 1 ansåg att hen hade lagt för mycket tid. Detta kan ses i svaren till fråga 3 i figur B.3.

B.5. Resultat

Figur B.1: Histogram för svar till enkätfråga 1.

Figur B.2: Histogram för svar till enkätfråga 2.

De som angett att de lagt för lite tid på utbildning hade i genomsnitt rapporterat att 9% av deras nedlagda timmar hade varit på utbildning. Den person som hade lagt för mycket tid rapporterade 11%, och genomsnittet bland de som lagt lagom tid var 17%.

Figur B.4 visar svaren på fråga 5, som handlade om hur bekant man kände sig med tek- nologierna och verktygen som används i projektet. Majoriteten av respondenterna kände sig bekanta, men alla svarskategorier hade representation. Alla svarskategorier hade lagt i ge- nomsnitt 15% av tiden på utbildning.

Fråga 6 handlade om vilket huvudområde man ansåg att ens valda projektet hade. Dessa områden var webbutveckling (15 svar), databashantering (5), kodanalys (3), artificiell intelli- gens (3), bildbehandling (2), apputveckling (1) och objektorienterad programmering (1).

Av de 30 personer som besvarade enkäten hade 10 personer läst en universitetskurs i ovan nämnda huvudområde och 20 hade inte gjort det, vilket kan ses i svaren till fråga 7 i figur B.5. De som hade läst en kurs hade lagt 16% av sin tid på utbildning och de som inte hade gjort det hade lagt 14%.

Fråga 8 handlade om hur svårt man upplevde att projektet var, och svaren ses i figur B.6. Det vanligaste svaret var att projektet var medelsvårt. Det var ungefär dubbelt så många som tyckte att projektet var svårt än som tyckte att det var lätt. De som tyckte att projektet kändes

B.5. Resultat

Figur B.3: Svar till enkätfråga 3.

Figur B.4: Svar till enkätfråga 5.

lätt hade lagt 15% av tiden på utbildning, de som tyckte att det var medelsvårt 14%, och de som tyckte att det var svårt 16%.

Figur B.7 visar svaren på fråga 9 som handlade om hur användbar man tyckte att utbild- ningen i projektet hade varit. I genomsnitt hade de som tyckte att utbildningen varit mindre användbar hade lagt 11% av sina timmar på utbildning, de som tyckte att den varit medelan- vändbar hade lagt 7%, och de som tyckte att den varit användbar hade lagt 18%. Tre av fem personer (60%) som tyckte att utbildningen var mindre användbar tyckte också att deras pro- jekt var svårt, vilket kan jämföras med att 7 av 19 personer (37%) som tyckte att utbildningen var användbar tyckte att projektet var svårt.

B.5.1.2 Intervjuundersökning

Vad har du gjort för utbildning? På vilket sätt?

”Jag vet inte riktigt vad som ska räknas som utbildning. Jag har suttit och arbetat med personer som har vetat mer och lärt mig av dem. Utöver det har jag sökt upp information själv samt pratat med kollegor och handledare. Jag har däremot inte gjort någon formell ut- bildning.”

B.5. Resultat

Figur B.5: Svar till enkätfråga 7.

Figur B.6: Svar till enkätfråga 8.

Trodde du att du skulle behöva mer eller mindre utbildning, när projektet startade?

”Jag förväntade mig någon sorts formell utbildning. Jag tänkte mig till exempel att hand- ledaren skulle utbilda inom rapportskrivning, hur man hanterar kunden, finnas till hands vid implementation av kod och så vidare.”

Tror du att du hade kunnat prestera bättre med mer utbildning?

”Ja, det tycker jag. Kvaliteten på saker uppnår inte sin potential och är inte lika hög som den hade kunnat vara. Strukturen inom gruppen såsom scrum, git och så vidare hade kun- nat vara bättre med utbildning. Kundrelationen var svår i början: kunden var inte så insatt i teknik och ville ha all funktionalitet. Utbildning i kundkontakt hade förenklat. Vid imple- mentation av kod så har vi förlitat oss på varandra och på nätet.”

Om du fick välja själv, hur mycket tid skulle du vilja lägga på utbildning på en framtida arbetsplats om du fick göra det under betald arbetstid?

”Det beror på vad arbetet är inom! En komplex uppgift blir mer tidskrävande. Vad jag kan förvänta mig av en arbetsplats är lite utbildning varje dag, kanske 8 timmar på en vecka. Dock kan jag inte säga om det är lagom, det beror på vad det är inom.”

B.5. Resultat

Figur B.7: Svar till enkätfråga 9.

B.5.2

I vilken utsträckning bör utbildning förläggas i ett projekts tidigare skede

jämfört med dess senare?

För att besvara denna frågeställning användes svaren till fråga 4 ur enkätundersökningen. Även svar från intervjuundersökningen användes.

B.5.2.1 Enkätundersökning

Figur B.8 visar svaret på enkätfråga 4. De flesta (23 personer) hade lagt mest tid på utbildning i början av projektet. En person hade hade lagt mer tid desto längre projektet hade gått, och övriga (6 personer) hade lagt lika mycket tid hela tiden. Bland de som tyckt att utbildningen varit mindre användbar återfanns två personer bland de som lagt lika mycket tid hela tiden (33%), och tre bland de som lagt mest tid i början (13%). De som tyckte att utbildningen varit användbar eller mycket användbar var fördelade med tre personer bland de som lagt lika

In document Tävlingssystem för Teknikåttan (Page 48-84)

Related documents