Mejslas logga

Artiklar för Expert Network

Under åren 2016–2019 samarbetade IDG med ett antal utvalda experter inom IT. De skrev artiklar om "spaningar", och artiklarna publicerades i tidningar som CIO Sweden, Computer Sweden och TechWorld.

Karl Dickson - Expert Network

Under 2024 bytte IDG publicerings­system, och de flesta artiklarna plockades då bort från deras webbplatser. De artiklar som Mejsla bidrog med till Expert Network publiceras nu här på Mejslas webbplats med tillåtelse från IDG.

Satsa på utvecklare med bredd

– Jaha, du kan Java, men jag söker ju någon som kan Ruby?!

Ett vanligt missförstånd är att man inte kan vara skicklig på mer än en sak. Min erfarenhet är istället att riktigt skickliga utvecklare i regel kan flera programmerings­språk och ofta även flera paradigm. Det ligger lite i linje med en skämtsamt tillspetsad definition av begreppen expert kontra specialist: ”En expert är någon som kan något på djupet. En specialist är någon som inte kan mer än en sak.” Underförstått: ”En specialist behöver inte ens kunna en sak på djupet”.

Fullstackare

Fast nu har något hänt. Allt oftare efter­frågas en ”full-stack developer”. Eller full­stackare i brist på bra över­sättningar (se upp med särskrivningar där). Vad har hänt med:

– Jaha, du kan back-end, men jag söker ju någon som kan front-end?!

Jag ser huvud­sakligen det här som något positivt. Det finns helt klart poänger med att söka utvecklare som har förståelse för en hel stack.

Fast vad är det för stack som vi pratar om egentligen? Det vanligaste är nog att man syftar på en ”lösningsstack” som innehåller alla komponenter som behövs för att bygga en applikation. Ett par exempel på namngivna lösnings­stackar är LAMP (Linux, Apache, MySQL och PHP) och MEAN (MongoDB, Express.js, Angular.js, and Node.js), och andra baserar sig på Rails, Django eller olika kombinationer av till exempel Java och JavaScript. Med full­stackare menas då en utvecklare som kan arbeta med alla komponenterna i en lösnings­stack. Förväntas man sedan kunna utveckla en fullödig applikation från ax till limpa krävs ofta dessutom flera kompletterande verktyg som till exempel last­balanserare, cachar, sök­motorer och integrations­verktyg.

Eftersom det finns flera lösnings­stackar är det förstås viktigt att peka ut vilken lösnings­stack man syftar på. Arbets­sättet kan skilja väldigt mycket mellan olika lösnings­stackar. Man ska inte under­skatta utmaningen i att hoppa från till exempel en Dotnet-miljö till en Java- eller en Rubymiljö. Å andra sidan, den som ändå klarar ett sådant hopp är sannolikt en riktigt skicklig utvecklare.

Seniora utvecklare

När jag och mina kolleger har diskuterat begreppet full­stackare har vi kommit in på hur det förhåller sig till begreppet seniorkonsult. I bägge fallen handlar det om någon som kan mer än en sak. Men där fullstackare syftar främst på teknik så inbegriper senior­konsult så mycket mer. En senior­konsult ska dessutom ha kunskap om människor, projekt, metoder, processer, etc. Och helst kunskaper om mer än en lösningsstack.

Fullstackare eller seniora utvecklare; oavsett vilket så finns det viktiga fördelar med att bygga ett lag med utvecklare som har bredd. Ett exempel på fördel är att risken för extremt starka beroenden till specifika personer minskar. Om alla kan många saker så är förlusten inte lika stor om någon slutar. Men myntet har också en baksida. Det finns ändå en gräns för hur många områden en och samma person kan bli expert på. Om ”alla kan allt” så är risken stor för att det saknas djup inom viktiga områden.

T-formade utvecklare

En alternativ kompetensmodell är T-formade utvecklare. T-formen beskriver att man har en god generell kompetens men även ett expertområde.

Illustration av T-profiler.

Utmaningen är att bygga en grupp med kompletterande expert­kunskaper. Och överlappen i T-formen är mycket viktiga – de inte bara minskar risken för onödigt starka beroenden till specifika personer, de gör det också lättare för teamet att kommunicera inbördes på ett effektivt sätt.

Uppskatta breda profiler

Så ja, efterfråga gärna fullstackare. Det är bra med bredd! Kom bara ihåg att precisera vilken stack det handlar om. Och glöm inte bort att det finns många dimensioner i mjukvaru­utveckling som inte täcks upp inom ramen för en lösnings­stack. Sätt fingret på vilka T-former som matchar just ert projekt bäst. Och om du behöver en expert, tänk på att en verklig expert även kan angränsande och liknande områden.

– Jaha, du är expert på Java, och vad kan du mer?!


Denna artikel publicerades ursprungligen hos IDG i september 2016.
Författare: Karl Dickson