Forskelle mellem junior-, mellem- og seniorudviklere

Udgivet:
Junior-udvikler

Du tænker sikkert, at inden for softwareudvikling er begreberne "junior", "mid-level" og "senior" blot etiketter - og det har du ret i. Men uanset om du kan lide sådanne etiketter eller ej, er de nyttige, fordi de gør det muligt at diskutere et sæt forventninger til en bestemt rolle. Ja, det er en overforenkling, men den er nyttig. Du ønsker f.eks. ikke at ansætte en juniorudvikler til at arkitekttegne en større opgradering af et ældre system. På samme måde ønsker du ikke at spilde din tid (eller kandidaternes tid) ved at interviewe kandidater, som ikke har det rette potentiale. Faktisk ønsker du ikke engang, at helt uegnede kandidater overhovedet ansøger.

Dit mål er at skabe teams med den rette balance mellem juniorudviklere (også kaldet entry-level udviklere), mid-level udviklere og seniorudviklere. På den måde udvikler du en kultur, der kan føre til informationsdeling i topklasse, hvilket vil få opgaverne løst og samtidig spare penge.

Junior- vs. mellem- vs. seniorudvikler

Juniorudvikler vs. mellemniveauudvikler og seniorudvikler. Der er mange reelle forskelle mellem junior- og seniorudviklere. Som hovedregel har spørgsmålet om, hvorvidt man er junior-, mid-level- eller seniorudvikler, ikke meget at gøre med, hvor mange års erfaring en given kandidat har - en juniorudvikler kan endda være ældre end en seniorudvikler. Det er til dels et spørgsmål om den viden og de tekniske færdigheder, som kandidaterne har erhvervet. Men frem for alt har det meget at gøre med, hvordan en udvikler opfatter sit arbejde, hvordan han/hun interagerer med sine kolleger, og hvordan han/hun griber problemer an. I den forstand henviser betegnelsen junior, mid-level eller senior først og fremmest til et vist modenhedsniveau.

Junior-udvikler

Kilde: Unsplash

Vigtigste krav til en juniorudvikler

Når det drejer sig om stillinger på juniorniveau, er det Det vigtigste krav er, at ansøgerne være i stand til at udføre tekniske opgaver selvstændigt. Ofte drejer juniorudviklerens tankegang sig om at få koden til at fungere. Hvis projektet f.eks. er baseret på den samme type arkitektur (og forudsat at en sådan arkitektur enten er velkendt eller veldokumenteret), bør juniorudvikleren ret hurtigt kunne implementere den næste del af applikationens logik. Juniorudviklere er ikke helt uafhængige og skal diskutere, hvordan de skal implementere visse elementer af projektet. Husk, at juniorudviklere skriver fancy kode, da de har svært ved at skrive simpel kode. De vil også skulle gennemgå deres færdige kode med en mere erfaren softwareingeniør. Det betyder også, at du kan forvente, at juniorer ikke vil forstå alle nuancerne i et projekt, og at de vil begå fejl fra tid til anden. For en god ordens skyld skal juniorudviklere ikke designe nogen del af softwarens arkitektur.

Junior-udvikler

Kilde: Unsplash

Kvaliteter hos en juniorudvikler

Når du skal ansætte en juniorudvikler, leder du efter kandidater, der har en vis modenhed. I dette tilfælde vil du gerne have kandidater, der viser kvaliteter som f.eks:

  • Et reelt ønske om at udvikle sig og lære
  • villighed til at lære af egne fejltagelser
  • Evne til at acceptere (konstruktiv) kritik på en rolig måde
  • Ægte energi og engagement

Sådan interviewer du juniorudviklere

Kandidater til en stilling som juniorudvikler skal vise, at de:

  • Har været igennem hele udviklingscyklussen mindst et par gange
  • Har et vist kendskab til de relevante programmeringssprog og teknologiske stakke
  • have et vist kendskab til de fleste af de processer, der indgår i udviklingen af software
  • er meget interesseret i at lære mere om alt det, der er forbundet med at lave software
  • er i stand til at finde løsninger på små problemer
  • Kan være produktiv i arbejdet med en specifik funktion i produktet

Adfærdsmæssige spørgsmål

Giv venligst et eksempel på en situation, hvor du:

  • Tog initiativ til at løse et lille, men vigtigt problem
  • Var i stand til at støtte holdet, selv om du var uenig med holdet
  • Var empatiske over for en nybegynder

Udvikler på mellemniveau vs. juniorudvikler og seniorudvikler

Vigtigste krav til en udvikler på mellemniveau

Når det drejer sig om stillinger på mellemniveau, er det vigtigste krav, at kandidaterne har evnen til at udføre opgaverne selvstændigt. Dette er ikke det samme som hovedkravet til juniorudviklere, da ordet "teknisk" er blevet slettet fra definitionen. Så længe udviklere på mellemniveau ikke får tildelt meget komplicerede tekniske opgaver, der kræver et dybtgående vidensniveau, bør de naturligvis være i stand til at udføre disse opgaver selvstændigt. På dette niveau skal udviklerne dog også forstå forretningskravene, og derefter være i stand til at omsætte dem til tekniske løsninger.

Udvikler på mellemniveau vs. juniorudvikler og seniorudviklerUdvikler på mellemniveau vs. juniorudvikler og seniorudvikler

Kilde: Unsplash

Kvaliteter hos en udvikler på mellemniveau

Udviklere på mellemniveau skal kunne forstå præcis, hvad en given applikation gør i en given sammenhæng. Som følge heraf vil de være i stand til at opnå en dybere forståelse af enhver opgave. Og derfor kan de evaluere ændringer mere præcist og gennemføre dem mere effektivt. I planlægningsfasen skal en god udvikler på mellemniveau skal være i stand til at læse kravene og vide, at der mangler noget eller kan forbedres. På den anden side vil juniorudviklere sandsynligvis implementere præcis det, der står i kravene. Det betyder, at en applikation fungerer korrekt (i henhold til "happy path"), men at den måske går ned, når brugeren foretager en ikke-standardiseret handling.

Udvikling af kode er en teamindsats, så standardisering er meget vigtig, da det giver en ny person mulighed for hurtigt at forstå, hvad der er hvad, og minimerer antallet af fejl. Forståelse af strukturen af en typisk applikation gør opgaven med at bygge den ret ligetil. Dette gør det igen muligt at diskutere principperne for korrekt implementering og skelne god kode fra dårlig kode. En udvikler på mellemniveau er helt sikkert bekendt med standardskabeloner og -løsninger, når han/hun bygger en applikation inden for sit område. De er ikke blot bekendt med visse løsninger, men forstår også virkelig, hvorfor de er nødvendige, og ved, hvornår og hvordan de skal anvendes for at opnå den bedste effekt.

En udvikler på mellemniveau ved, hvordan man interagerer med andre teammedlemmer effektivt og virkningsfuldt. Og det gælder især i de situationer, hvor det er svært at nå til enighed. Det er f.eks. relevant, når man drøfter mere subjektive elementer af et design, når man skal afklare krav, der i sagens natur er ufuldstændige, når der er et alvorligt tidspres, eller når man drøfter en større ændring i arbejdsgangen.

Sådan interviewer du udviklere på mellemniveau

Situationsbestemte spørgsmål

Giv venligst eksempler på situationer, hvor du:

  • Var parat til at påtage sig opgaver, som ingen ved (eller ønsker at vide), hvordan man løser
  • var i stand til at finde en balance mellem kompleksitet og ydeevne i løsningen af et komplekst teknisk problem
  • Spillede en vigtig rolle i udarbejdelsen af en behovsanalyse
  • Var involveret i test af software
  • spillede en vigtig rolle i udarbejdelsen af dokumentation
  • Tog initiativ til at løse problemer og rette kritiske fejl
  • Var nødt til at arbejde på flere projekter samtidig
Midt udvikler

Kilde: Unsplash

Seniorudvikler vs. mellemniveauudvikler og juniorudvikler

Vigtigste krav til en seniorudvikler

En erfaren udvikler har set en masse kode, har lavet en masse fejl og har draget de rigtige konklusioner af hele processen. Alle udviklere stiller spørgsmål, hele tiden. Forskellen er, at seniorudviklere i forhold til de typer udviklere med mindre erfaring ved, hvordan de skal stille de rigtige spørgsmål på det rigtige abstraktionsniveau. En seniorudviklers hovedansvar er altid at at sikre, at de rigtige beslutninger bliver truffet (med de tilgængelige oplysninger på et givet tidspunkt), beslutninger, der skaber den maksimale fordel for virksomheden og minimerer omkostningerne. En god seniorudvikler er altid på udkig efter måder at opnå mere værdi på, men er også klar over, at det er nødvendigt at udnytte ressourcerne, som f.eks. tid og penge, bedst muligt. En god senior tænker altid på slutpunktet, så de kan ofte løse problemer, selv før disse opstår. De tænker f.eks. på forhånd på flaskehalse i systemet, husker sårbarheder og problemer forårsaget af forkert brug af værktøjer. Kode skrevet af en seniorudvikler vil blive lavet med vedligeholdbarhed og skalerbarhed i tankerne.

Kilde: Unsplash

Kvaliteter hos en seniorudvikler

En god seniorudvikler skal:

  • være i stand til at løse flere komplekse opgaver (og hurtigere) end en udvikler på mellemniveau
  • være i stand til at skelne mellem et produkt, der er "godt nok", og et produkt, der enten er for godt eller ikke godt nok
  • Få viden om, hvordan teknisk gæld viser sig. Hvor meget refactoring koster i reelle tal, hvilke mønstre der virkelig er nødvendige, og hvornår man skal trække en grænse, når det gælder abstraktionsniveauer.
  • Har fremragende kommunikationsevner, fordi de ikke kun skal fortælle andre, hvad den "rigtige beslutning" er, men også overbevise deres klient og teamet om at være enige med dem. En autoritær tilgang ("gør som jeg siger") vil ofte føre til flere konflikter, hvilket betyder, at der ikke sker nogen fremskridt med hensyn til at forbedre den overordnede situation.
  • være i stand til at forklare og begrunde enhver vigtig beslutning på en måde, der virkelig kan forstås af alle berørte parter. På denne måde har teamet selv mulighed for at lære af sine erfaringer og dermed udvikle sig hurtigere, samtidig med at de fleste af de smertepunkter, der opstår undervejs, undgås.

Konklusion

Der er mange vigtige forskelle mellem junior-, mellemniveau- og seniorudviklere. Når du ansætter en hvilken som helst type udvikler, er det vigtigt, at du overvejer hele pakken af færdigheder, som hver enkelt udvikler bringer med sig til bordet. Mange mennesker er opmærksomme på de mange års erfaring, hvilket er vigtigt, men du skal også ansætte folk på det job, de er i stand til at udføre, ikke på det, de har gjort tidligere. Hvis du derfor støder på en udvikler, der er meget lovende, kan det være en god idé at ansætte vedkommende og give ham mulighed for at vokse professionelt.

Del indlæg

Få mere at vide om ansættelse af teknologiske medarbejdere

Tilmeld dig vores Learning Hub for at få nyttig viden direkte i din indbakke.

Kontroller og udvikl kodningsevner uden problemer.

Se DevSkiller-produkterne i aktion.

Sikkerhedscertificeringer og overholdelse. Vi sørger for, at dine data er sikre og beskyttede.

DevSkiller-logo TalentBoost-logo TalentScore-logo