Potet: - Hva betyr det egentlig å være fullstack-utvikler?

Marcus Wærsted Skogsaas tviler på at det i 2022 bare betyr backend, frontend og database.

Marcus Wærsted Skogsaas i Computas er inne i en aldri så liten identitetskrise. 📸: Privat
Marcus Wærsted Skogsaas i Computas er inne i en aldri så liten identitetskrise. 📸: Privat Vis mer

Still deg selv et spørsmål før du går videre: Hva forbinder du med tittelen “fullstack”?

Om man spør det O’store internettet, så defineres fullstack som en utvikler som behersker både frontend, backend og database.

For å kunne utvikle en applikasjon fra A til Å, kreves det mye kunnskap.

Problemet er at i dagens utviklingsverden, så kommer man bare til C i alfabetet som en fullstack-er.

Passa bedre før

For å kunne ta applikasjonen hele veien ut til produksjon, er det er fortsatt mange bokstaver igjen i utvikler-alfabetet.

I “steinalderen”, altså for 5+ år siden, så passet kanskje fullstack-tittelen bedre, siden resten av alfabetet ble dekket av andre roller.

Frontend, backend og database er domener som historisk sett har blitt organisert i hver sin silo. Det å ha en og samme person som kan jobbe og følge utviklingen av en funksjonalitet, på tvers av siloene og ned gjennom alle lagene i applikasjonen, har blitt glorifisert som noe spesielt.

Men det er ikke lenger spesielt, det er forventet!

Smørbrødlista

I dag utvikler man ikke lenger like mye mot servere som det man gjør mot tjenester. Skybasert utvikling har virkelig tatt av de siste årene, og da er det ikke lenger nok å kunne utvikle frontend og backend.

Man må også ha nok kunnskap om infrastruktur og arkitektur til å kunne ta avgjørelser om hvilke tjenester man skal benytte i applikasjonen. Ulike typer databaser, køer og meldingstjenenester finnes tilgjengelig ved hjelp av ett tastetrykk i skyen.

Og helst skal man ikke røre datamusa for å sette opp noe som helst. Alt skal jo være infrastructure-as-code, som igjen innfører nye forventinger til kunnskapsnivået hos utviklere.

«Man må også kjenne til ulike måter å bygge og hoste applikasjonene sine.»

Man må også kjenne til ulike måter å bygge og hoste applikasjonene sine. Og helst burde det være både CI og CD, og gå helt auto-magisk, uten at noen må involveres. Container-teknologi og Kubernetes har vist seg til å gjøre hosting enklere for utviklere, men det setter også sine krav til kunnskap, selv med gode “managed” løsninger fra for eksempel Azure og Google.

Sikring av datalagring, kommunikasjon og tilgangsstyring må være en no-brainer, om man ikke ønsker å dukke opp som førstesidestoff på de store nyhetskanalene. Så si hallo til både service-mesh og zero-trust. ❤

Samtidig må man også kunne vurdere kostnadsbildet opp mot nødvendig funksjonalitet og ytelse, ellers får du økonomiavdelingen pustende i nakken.

På toppen av det hele, som et nydelig lite kirsebær på toppen av kaka, så begynner nå maskinlæring også å bli så modent at det er ikke lenger bare for spesialister, men bør være et vanlig verktøy i verktøykassa.

Man må kunne mer

Mange som leser denne smørbrød-lista, tenker at mye av dette hører ikke hjemme i forventningene til en “fullstack”-utvikler, fordi ansvaret bør fordeles over flere personer.

Problemet er at man må ha et stort nok utviklingsmiljø til å kunne fordele alle disse ansvarsoppgavene utover alle spesialist-siloene, og det er det på langt nær alle som har, eller kan forvente å ha. Det man for tiden ønsker å jobbe mot, er passe store autonome team.

Og i utgangspunktet er et godt autonomt team satt sammen av mennesker med ulik bakgrunn og kompetanse. Men om man ikke nok arbeid til å ha en dedikert person til å fylle hver enkelt rolle, så betyr det at man trenger personer som kan fylle flere roller.

Og da er man tilbake til at man er ikke nok, om man “bare” er en fullstack-utvikler, man må kunne mer.

«Jeg tror fullstack har blitt en måte å omtale utviklere som ikke er spesialist på ett enkelt område, men behersker flere domener.»

Potet?

I skrivende stund er det 121 jobbannonser på Finn.no som har “fullstack” i tittelen. Hva er det de faktisk er ute etter å ansette? Er de ute etter noen som kun kan frontend, backend og database? For det tror jeg ikke.

Jeg tror fullstack har blitt en måte å omtale utviklere som ikke er spesialist på ett enkelt område, men behersker flere domener.

I ny og ne ringer det gjerne en headhunter og spør hva jeg jobber med. Så fort jeg klarer å lire av meg at jeg blant annet jobber med litt frontend og backend, kommer gjerne responsen: “Ah, så du er fullstack!”.

Så, hvor vil jeg med dette? Jeg lurer på hva de av oss som jobber med så mye ulikt, kan defineres som.

Embedded-IoT-Fullstack-DevOps-SRE-TechLead-Cloud-Arkitekt?

“Potet” er nesten mer beskrivende. Men det hadde ikke tatt seg like godt ut på CV-en.