Kodgranskning vid IT-rekrytering - varför och hur ska du använda den?

Publicerad: Senast uppdaterad:

En av de viktigaste men fortfarande ignorerade aspekterna av att anställa en programvaruutvecklare är att kontrollera hur kandidaten hanterar koden och om han eller hon kan uttrycka sina tankar med ett visst programmeringsspråk. Vid rekrytering av IT-tekniker gör vi det vanligtvis genom att be kandidaten skriva kod för att lösa ett visst problem. Kandidaten kan göra det ensam eller i parprogrammering tillsammans med rekryteraren (Träffa mitt i prick med kodningstester i naturlig miljö [fallstudie]). Vi gör det eftersom kodskrivning är en av de viktigaste sakerna som utvecklare gör dagligen. Men vi bör också komma ihåg att utvecklare mycket oftare läser än skriver källkoden. Vi bör därför inte glömma att kontrollera om kandidaten snabbt kan analysera och förstå några kodstycken. Vi kan helt enkelt visa några kodutskrifter eller (ännu bättre) ge IDE ett projekt och ställa frågor om vad som händer här. Det är här som kodgranskningsutmaningen är till stor hjälp.

Hur kan man kontrollera kandidaternas programmeringskunskaper under en teknisk intervju?

När det gäller det som sägs ovan ser vi att den mesta tiden under den tekniska intervjun/bedömningen går åt till att kontrollera om kandidaten kan lösa vissa programmeringsutmaningar eller problem. Kandidaten fokuserar på att förstå och analysera problemet och sedan hitta en lämplig lösning. Vi kan dock konstatera att kandidaten tvingas tänka mer på "vad man ska göra" än "hur man ska göra". När vi ber kandidaten att skriva en kod som kommer att kunna reservera en plats för ett flyg under vissa förhållanden, är målet att leverera rätt funktionalitet, och oftast på grund av stress och tidsbegränsning är det allt kandidaten kan göra. Finns det något alternativ för att vända denna situation och låta kandidaten fokusera på "hur"? Ja! Under de många år då jag var aktivt involverad i IT-sourcing och anställning av utvecklare eller arkitekter använde jag mig av kodgranskningar.

Vad är kodgranskning?

Kodgranskning är en process där programmerare kontrollerar varandras kod för att hitta eventuella problem, fel eller avvikelser från bästa praxis (om du vill veta mer kan du gå till Wikipedia). Under de senaste åren har kodgranskning varit en obligatorisk del av processen för leverans av programvara. Det ger oss stor granskningsbarhet och bättre kodkvalitet, men det möjliggör också ett fantastiskt kunskapsutbyte - människor kan nu lära ut och lära sig samtidigt genom att dela erfarenheter. Men jag vill inte övertyga dig om att införa kodgranskning i din utvecklingsprocess (vilket du förresten bör tänka om om du inte använder det ännu) utan visa dig varför och hur du kan använda kodgranskning under tekniska intervjuer.

Hur kan du använda kodgranskning i IT-rekryteringsprocessen?

Genom att visa kandidaten kod som redan är skriven och som (i stort sett) fungerar som förväntat låter vi dem fokusera på lösningens kvalitet. Genom att ställa en enkel fråga: "Vad tycker du om den här koden?" får vi kandidaten att bli en läsare. Vad som är viktigt att nämna är att vissa utvecklare är vana vid sådana uppgifter som de får i samband med certifieringsexamina etc. och de letar efter några dumma, avsiktliga fel som saknade semikolon, felaktiga parametrar, fel klasser etc. Enligt min åsikt bör vi använda ett annat tillvägagångssätt. Jag har alltid använt fungerande kod som kompileras korrekt. Jag betonar i början att det inte finns några "certifieringsliknande" fel och att kandidaten bör fokusera på bästa praxis, några vanliga problem som är svåra att upptäcka med automatiska verktyg och som kan orsaka allvarliga problem i produktionen.

Exempel på en utmaning för kodgranskning

I Java kan det t.ex. handla om att anropa thread.run() i stället för thread.start(), vilket kompileras korrekt, testerna godkänns men vi startar ingen ny tråd, vilket kan försämra den slutliga prestandan. Vi kan också kontrollera om kandidaten kommer att märka att någon transaktionsmetod åberopas utanför transaktionsaspekten, vilket kan orsaka allvarliga konsistensproblem i en databas.

Hur bedömer man programmeringsfärdigheter utifrån kodgranskning?

Utifrån det första intrycket av kandidaten kan vi bedöma hans/hennes inställning till kvaliteten. Om vi tycker att koden är riktigt ful och full av problem och kandidaten säger något i stil med "det ser bra ut för mig" kan vi anta att han inte kommer att bidra till att förbättra kodkvaliteten i vårt företag och till och med försämra den. Det är också ganska lätt att bedöma kandidatens erfarenhet. Till exempel kunde juniora utvecklare hitta 4-5 problem i 60 rader källkod. Utvecklare med mer än 8 års erfarenhet kunde hitta 10 problem. Och de bästa kandidaterna hade omkring 15-20 problem. Den bästa kandidaten pekade på två problem som jag inte kände till, och när jag skrev koden fanns det över 30 problem.

Vad ska vi förvänta oss att kandidaterna ska kommentera? Det viktigaste är de frågor som nämns ovan - problem som är vanliga för en viss teknik och som inte är synliga vid första anblicken. Nästa sak är läsbarheten. Koden måste vara ren, välstrukturerad och väl benämnd så att andra utvecklare (inte bara författaren) kan förstå den och ändra den. Så namn på metoder eller variabler - är de meningsfulla, inte för långa osv. Är metoderna inte för stora och innehåller de inte för mycket logik? Är den teknik som används i utdraget ett bra val för att lösa ett visst problem (om vår kod till exempel använder strängoperationer för att bygga en XML kan vi förvänta oss en kandidat som påpekar att det finns många bibliotek som skapats för att göra det på ett bättre sätt).

Kodgranskning i DevSkiller-bedömningskampanjer

På DevSkiller anser vi att kodgranskning bör ingå i bedömningen av programmeringsfärdigheter. Därför innehåller de flesta av våra bedömningskampanjer den typen av problem att lösa. Vi uppmuntrar också företag att bygga sina egna kodningstester som kommer att innehålla kodgranskningsutmaningar. Det är ganska bekvämt för de flesta företag eftersom du kan använda din gamla kodbas för att förbereda en sådan uppgift. Det är bara att prata med din IT-avdelning om detta och inkludera det i din rekryteringsprocess.

Dela inlägg

Läs mer om rekrytering av tekniker

Prenumerera på vår Learning Hub för att få nyttiga insikter direkt i din inkorg.

Kontrollera och utveckla kodningsfärdigheter utan problem.

Se DevSkillers produkter i praktiken.

Säkerhetscertifieringar och efterlevnad. Vi ser till att dina data är säkra och skyddade.

DevSkillers logotyp TalentBoost logotyp TalentScore-logotyp