Kodegennemgang i it-rekruttering - hvorfor og hvordan skal du bruge det?

Udgivet: Sidst opdateret:

Et af de vigtigste, men stadig ignorerede aspekter ved ansættelse af en softwareudvikler er at kontrollere, hvordan kandidaten håndterer koden, og om han/hun er i stand til at udtrykke sine tanker med et bestemt programmeringssprog. Normalt gør vi det ved at bede kandidaten om at skrive noget kode til løsning af et bestemt problem. Kandidaten kan gøre det alene eller som parprogrammering sammen med rekrutteringsmedarbejderen (Ram plet med kodningstest i naturlige omgivelser [case study]). Vi gør det, fordi det at skrive kode er en af de vigtigste ting, som udviklere gør hver dag. Vi skal dog også huske, at udviklere langt oftere læser end skriver kildekoden. Vi bør derfor ikke glemme at kontrollere, om kandidaten er i stand til hurtigt at analysere og forstå nogle kodestumper. Vi kan simpelthen vise nogle kodeudskrifter eller (endnu bedre) give IDE med et projekt og stille spørgsmål i forbindelse med, hvad der sker her. Det er her, at kodegennemgang er en udfordring, der virkelig er nyttig.

Hvordan kan man kontrollere kandidaternes programmeringsfærdigheder under et teknisk interview?

Med hensyn til ovenstående kan vi se, at vi bruger det meste af tiden under tekniske samtaler/vurdering på at kontrollere, om kandidaten er i stand til at løse nogle programmeringsudfordringer eller -problemer. Kandidaten fokuserer på at forstå og analysere problemet og derefter finde en passende løsning. Vi kan dog konstatere, at kandidaten er tvunget til at tænke mere på "hvad man skal gøre" end "hvordan man skal gøre". Når vi beder kandidaten om at skrive en kode, der kan reservere et sæde til et fly under visse betingelser, er målet at levere den korrekte funktionalitet, og for det meste på grund af stress og tidsbegrænsning er det alt, hvad kandidaten er i stand til at gøre. Er der nogen mulighed for at vende denne situation og lade kandidaten fokusere på "hvordan"? Ja! I de mange år, hvor jeg var aktivt involveret i IT-sourcing og ansættelse af udviklere eller arkitekter, brugte jeg kodeanmeldelser.

Hvad er kodegennemgang?

Gennemgang af kode er en proces, hvor programmører verificerer hinandens kode for at finde potentielle problemer, fejl eller afvigelser fra bedste praksis (hvis du vil vide mere, kan du gå til Wikipedia). I de sidste par år har kodegennemgang været et uundværligt element i softwareleveringsprocessen. Det giver os stor revisionsmulighed og bedre kodekvalitet, men det giver også mulighed for fantastisk videndeling - folk kan nu undervise og lære på samme tid ved at dele erfaringer. Men jeg vil ikke overbevise dig om at indføre code-reviews i din udviklingsproces (hvilket du i øvrigt bør genoverveje, hvis du ikke bruger det endnu), men vise dig hvorfor og hvordan du kan bruge code-reviews under tekniske interviews.

Hvordan kan du bruge kodegennemgang i it-rekrutteringsprocessen?

Ved at vise kandidaten kode, som allerede er skrevet og fungerer (for det meste) som forventet, lader vi dem fokusere på løsningens kvalitet. Ved at stille et simpelt spørgsmål: "Hvad synes du om denne kode?", får vi kandidaten til at gå over i en skrivebeskyttet tilstand. Det er vigtigt at nævne, at nogle udviklere er vant til sådanne opgaver, som de tager under eksamenscertificeringer osv., og de kigger op efter nogle dumme, tilsigtede fejl som manglende semikolon, forkerte parametre, forkerte klasser osv. Efter min mening bør vi bruge en anden tilgang. Jeg har altid brugt fungerende kode, der kompileres korrekt. Jeg understreger i begyndelsen, at der ikke er nogen "certificeringslignende" fejl, og at kandidaten bør fokusere på bedste praksis, nogle almindelige problemer, som er svære at få øje på med automatiske værktøjer og kan forårsage alvorlige problemer i produktionen.

Eksempel på en udfordring i forbindelse med gennemgang af kode

I Java kan det f.eks. være at påkalde thread.run() i stedet for thread.start(), hvilket kompilerer korrekt, testene bestås, men vi starter ikke en ny tråd, hvilket kan forringe den endelige ydeevne. Vi kan også kontrollere, om kandidaten vil bemærke, at en eller anden transaktionsmetode påberåbes uden for det transaktionsmæssige aspekt, hvilket kan forårsage alvorlige konsistensproblemer i en database.

Hvordan vurderer man programmeringsfærdigheder på grundlag af kodegennemgang?

På baggrund af det første indtryk af kandidaten kan vi vurdere hans/hendes tilgang til kvaliteten. Hvis vi synes, at koden er virkelig grim og fuld af problemer, og kandidaten siger noget i retning af "det ser godt ud for mig", kan vi antage, at han ikke vil hjælpe med at forbedre kodekvaliteten i vores virksomhed og endda vil forringe den. Det er også ret nemt at vurdere kandidatens oplevelse. F.eks. kunne juniorudviklere finde omkring 4-5 problemer i 60 linjer kildekode. Udviklere med 8+ års erfaring kunne finde 10. Og de bedste kandidater var omkring 15-20 problemer. Den bedste kandidat gjorde mig opmærksom på 2 problemer, som jeg ikke var opmærksom på, og da jeg skrev koden, var der over 30 problemer.

Hvad skal vi forvente, at kandidaterne skal kommentere? De vigtigste ting er de spørgsmål, der er nævnt ovenfor - problemer, der er almindelige for en bestemt teknologi og ikke er synlige ved første øjekast. Det næste er læsbarheden. Koden skal være ren, velstruktureret og velbeskrevet, så andre udviklere (ikke kun forfatteren) kan forstå den og ændre den. Så navne på metoder eller variabler - er de meningsfulde, ikke for lange osv. Er metoder ikke for store og indeholder ikke for meget logik. Er de teknologier, der anvendes i udsnittet, et godt valg til at løse et bestemt problem (hvis vores kode f.eks. anvender strengoperationer til at opbygge en XML, kan vi forvente, at kandidaten påpeger, at der findes mange biblioteker, der er skabt til at gøre det på en bedre måde).

Kodegennemgang i DevSkiller-vurderingskampagner

Hos DevSkiller mener vi, at kodegennemgang bør indgå i vurderingen af programmeringsfærdigheder. Derfor indeholder de fleste af vores vurderingskampagner den slags opgaver, der skal løses. Vi opfordrer også virksomheder til at opbygge deres egne kodningstests, der vil indeholde udfordring til kodegennemgang. Det er ret praktisk for de fleste virksomheder, da du kan bruge din gamle kodebase til at forberede en sådan opgave. Du skal blot tale med din it-afdeling om dette og inkludere det i din rekrutteringsproces.

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