Varför ett test av arbetsprover identifierar de programvaruutvecklare du behöver anställa

Publicerad: Senast uppdaterad:
rekrytering artiklar lista arbete exempel post

Innan det var lätt att ge ett arbetsprov till alla som hamnade i din rekryteringstratt var den tekniska rekryteringsprocessen ett minfält. Redan innan jag kom in i branschen minns jag att jag hörde berättelser om hur frustrerade mina vänner och kollegor var när de försökte navigera i den tekniska intervjuprocessen, både som kandidater och rekryterande chefer.

Kandidaterna fick ta emot en mängd irrelevanta, tidskrävande och nedslående algoritmiska tester och whiteboardintervjuer som i hög grad gynnade nyutexaminerade studenter och inte gav dem någon inblick i jobbet. Det var lika svårt för rekryterare och rekryterande chefer. De hade mycket få effektiva metoder för att avgöra vilka av deras kandidater som skulle komma att göra ett bra jobb för dem. Så de använde det som fanns tillgängligt och fick stå ut med att resultaten varierade. Men det finns ett bättre sätt.

Testet med arbetsprover är en väletablerad idé inom andra områden som revolutionerat rekryteringsprocessen, men som nu får allt större genomslagskraft inom teknikbranschen.

Läs mer om tekniska intervjuer och färdighetstester i Den ultimata guiden till den tekniska intervjun.

Vad är ett arbetsprov?

Enkelt definierat är ett arbetsprov ett test som enligt Googles tidigare vice ordförande för People Operations Laszlo Bock,


Laszlo Bock förklarar vad ett arbetsprov är.(...) innebär att man ger kandidaterna ett exempel på ett arbete som liknar det som de skulle utföra i jobbet och bedömer deras prestationer.

Bildkälla: LinkedIn


Det låter ganska enkelt, eller hur? Det låter nästan som en provperiod, men arbetsprov skiljer sig åt genom att de uppfyller alla dessa kriterier från Sockpuppet.org:

  • De återspeglar så nära som möjligt det arbete som kandidaten kommer att utföra i sitt arbete.
  • De är standardiserade så att alla kandidater ställs inför samma test.
  • De genererar data och ett betyg, inte ett enkelt godkänt/underkänt resultat.
  • De är mycket kortare, vanligtvis inte mer än en timme eller två.

Om det inte är en rättegång, vad är det då? Ryan Daigle, teknisk chef på Spridda uttrycker det bäst:


Ryan Daigle förklarar vad ett arbetsprov är.Ett arbetsprov är en objektivt och blint bedömd domänspecifik utvecklingsuppgift som kandidaten utför på sin egen tid.

Bildkälla: LinkedIn


Med andra ord kan en uppgift inom programvaruutveckling eller en utveckling av anpassad programvara uppgift. Så varför anstränga sig extra för att testa dina kandidater på detta sätt?

Ett arbetsprov är den bästa förutsägelsen för en utvecklares framtida prestationer.

Det har bedrivits omfattande forskning om hur effektiva olika metoder för att testa kandidater är. Resultaten av dessa studier visar i allmänhet att arbetsprov är den bästa förutsägelsen för framtida prestationer.

Frank L. Schmidt från University of Iowa och John E. Hunter från Michigan State University har gjort en granska av 85 års tidigare forskning i ämnet. De fann att arbetsprovstester var ganska lika bra som allmänna mentala lämplighetstester (GMA-tester) som de bästa förutsägarna för framtida prestationer, med den bonusen att de inte missgynnar minoriteter som GMA-testerna gör.

Arbetsprovtestet valideras i The Validity and Utility of Selection Methods in Personnel Psychology (Validitet och användbarhet av urvalsmetoder inom personalpsykologi): Praktiska och teoretiska implikationer av 85 års forskningsresultat".Källa: "Validitet och användbarhet av urvalsmetoder inom personalpsykologin:Praktiska och teoretiska implikationer av 85 års forskningsresultat"

Fördomar är inte bara skadar dina rekryteringsinsatser genom att minska antalet kandidater, men enligt Tikhon Jelvis, ledande datavetare på Target, kan du riskera att bli stämd enligt principen om ojämlik påverkan. Detta gör att test med stickprov är den klara vinnaren, vilket bekräftas av Laszlo Bock, som i denna artikel BBC-intervju visar att de var de bästa indikatorerna på framtida resultat av alla de tester som gjordes på Google.

Men dessa resultat är allmänna, så hur kan de tillämpas på screening av programvaruutvecklare?

Vad gör ett bra arbetsprov för programvaruutvecklare?

Vad gör ett bra arbetsprov för programvaruutvecklare?För att ett arbetsprov ska vara effektivt måste det innehålla en uppgift som är viktiga och representativa av det arbete som ska utföras. Vad detta innebär för en mjukvaruutvecklare sammanfattas bäst av Ryan Daigle från Spridda,

Arbetsproverna ska återspegla vad företaget gör och hur de gör det. De handlar lika mycket om att kandidaten ska mäta företaget som att företaget ska mäta kandidaten.

Ett exempel på en programmeringsuppgift bör återspegla den typ av problem som företaget löser och den miljö där de gör det. Detta innebär att du måste se hur bekväm kandidaten är med att använda de bibliotek och ramverk som ditt team redan använder. Som Ryan påpekar handlar testet inte bara om att bedöma kandidatens färdigheter. Det stöder också en bra kandidatupplevelse genom att ge kandidaten en inblick i den teknik som företaget använder och vilka typer av uppgifter de använder den för.

Uppgiften ska utföras i en verklig miljö.

U.S. Office of Personnel Management har gjort omfattande forskning om effektiviteten hos olika metoder för att fastställa anställningskompetens. Deras slutsats är att,

Eftersom arbetsproverna kräver att de sökande utför uppgifter som är identiska eller mycket lika de uppgifter som ingår i jobbet, är man noga med att försöka efterlikna arbetsmiljön i så stor utsträckning som möjligt.

I en intervju för en programvaruutvecklare finns det två områden där du måste ta hänsyn till denna effekt. Det första är det vi nämnde ovan om att uppgiften är samma typ av uppgift som kandidaten kommer att utföra om han eller hon blir anställd.

Den andra är att göra arbetsmiljön likadan. Ge kandidaten tillgång till alla de resurser som han eller hon normalt skulle använda på jobbet. Dessa inkluderar bibliotek och ramverk samt externa resurser som t.ex. Stack Overflow, GitHub, och Google, precis som dina nuvarande utvecklare använder.

Detta gäller även det IDE som de använder. Låt dem använda det som de känner sig mest bekväma med. Det är inte meningsfullt att slösa deras tid på att lära känna ett verktyg som de bara kommer att använda under intervjun när de skulle kunna utföra uppgiften.

Du bör införa en tidsgräns.

Du bör fastställa en tidsgräns för ditt arbetsprov.Det är viktigt att fastställa en tidsgräns för testet av två skäl. Det första är att ingen utvecklare har oändlig tid på sig att fullända sin kod. Vid en viss tidpunkt måste de avsluta sitt projekt för att det ska ha något värde.

Den andra är att en tidsgräns hjälper dig att definiera omfattningen av vad du förväntar dig av kandidaten. Om du bara ger en uppgift och ber kandidaten att lämna in den när han eller hon är klar, betyder det då att han eller hon ska ta en vecka på sig för att göra den perfekt eller att han eller hon ska göra sitt bästa inom en timme? Att lägga till en tidsgräns hjälper till att ta bort den fördom som vissa programmerare har mot arbetsprov som jasode på Hacker News. De har inte tid att ta en vecka på sig för att göra ett projekt och kommer därför att hoppa av er rekrytering om programmeringstestet ser för öppet ut.

Du ska poängsätta testet enligt en rubrik.

Vi har på andra ställen på den här bloggen talat om vikten av att ha en objektiv rubrik att använda vid intervjuer. De hjälper eliminera fördomar genom att göra utvärderingsprocessen så objektiv som möjligt. Samma sak gäller för ditt arbetsprov. Bestäm vilka kriterier du vill ha för provet och håll dig sedan till dem. Det kommer att hjälpa dig att få de bästa personerna genom att filtrera bort det brus som kan grumla ditt omdöme.

Fråga Elena Grewal, chef för datavetenskap på Airbnb. I en intervju i LA Timesförklarar hon hur viktigt det är att använda en rubrik när man betygsätter ett arbetsprov:


Elena Grewal förklarar hur viktigt testet av arbetsprover är för AirbnbVi tittade närmare på detta och insåg att de som betygsatte övningen inte hade någon tydlig rubrik, så vi ändrade detta och gjorde det tydligt vad vi letade efter, vi gjorde betygsättningen konsekvent och om en person var framgångsrik gick han eller hon vidare till nästa omgång.

Bildkälla: LinkedIn

Förändringen ledde till att antalet anställda kvinnor fördubblades. Observera att de inte ändrade sina normer. Istället införde de en högre grad av objektivitet som gav dem tillgång till mer kvalificerade kandidater, vilket var hela poängen med testet från början.

Kandidaten bör få möjlighet att förbereda sig och få detaljerad feedback strax efteråt.

Hela poängen med testet är att kandidaten ska göra sitt bästa i en normal arbetsuppgift. Normalt sett vet man på jobbet vilken typ av uppgifter som företaget utför och blir sällan överraskad av nya uppgifter i en helt ny miljö. Du bör förklara exakt vad testet och uppgiften kommer att handla om så att kandidaten vet exakt vad han eller hon kan förvänta sig.

Efter testet bör du ge kandidaten detaljerad feedback om deras prestationer. Detta är inte bara ett bra sätt att kandidatupplevelseDet kommer också att förbättra ditt rykte som arbetsgivare i utvecklarkretsen.

Hur olika företag bygger arbetsprov för programvaruutvecklare

Ett antal olika företag har använt sig av olika metoder för att skapa sina egna arbetsprovstester. Här är några exempel som du kan använda.

PolicyStat (som sedan dess förvärvats av iContracts) har använt denna taktik för över 300 kandidater för 6 olika tjänster i deras teknikteam. För alla dessa kandidater ger de ett specifikt projekt som speglar arbetet så nära som möjligt. Detta innebär att man måste gå in mer detaljerat än språk och faktiskt testa den specifika teknik som används av teamet, i deras fall Django.

Kandidaterna ombeds att skicka in en pull request som lägger till en funktion och åtgärdar ett fel i ett Django-baserat projekt.

Spridda är ett verktyg för betalningar, så deras exempel är att faktiskt skapa en ActiveMerchant gateway adapter till en låtsasbetalningsgateway. Detta är exakt den typ av projekt som deras utvecklare gör hela tiden, så det passar perfekt för rollen.

Du kan faktiskt ta en titt på deras prov på GitHub. Om du går dit kan du se hur de beskriver exakt vad uppgiften är, hur den ska lämnas in, vad de letar efter och projektets omfattning.

Spreedlys arbetsprov testSockpuppet.org/Latacora är en Rails butik. Vad de gör är att ta en Rails-applikation som de har installerat och sedan ta fram vissa funktionella områden i applikationen. Det kan vara en sökfunktion eller en uppdatering av kundorder. De ber sedan kandidaten att lägga till funktionen igen.

DevSkillerVi har tagit konceptet med ett arbetsprov för mjukvaruutvecklare och byggt en plattform för att automatisera processen för testaren och kandidaten. Testerna kan genomföras på plattformen från var som helst i världen när kandidaten vill. Testet utvärderas sedan automatiskt, vilket sparar tid för en teknisk intervjuare. Rekryterare kan antingen välja mellan ett av deras många färdiga tester eller bygga sina egna med den faktiska koden som företaget använder.

Ett bra exempel på ett DevSkiller-test är det här testet för Javautvecklare som skriver RESTful-bloggprogram. Som du kan se anges i uppgiftsbeskrivningen vilka tekniker som kommer att vara till hjälp (Spring, Spring Data JPA, Hibernate bland annat) och vilken uppgift som ska utföras (lägga till en kommentarsfunktion).

DevSkillers arbetsprov testÖverst på sidan finns en hjälpsam nedräkningsklocka så att kandidaten vet hur mycket tid han eller hon har på sig.

Nedräkningsklockan i DevSkillers arbetsprovtestDet finns också en byggkonsol så att kandidaten kan köra tester under arbetsprovet.

Byggkonsolen i DevSkillers arbetsprovtestTanken är att skapa tydliga parametrar för projektet men ge kandidaten möjlighet att använda alla tillgängliga resurser för att komma fram till en lösning. Till skillnad från de andra lösningarna snabbar DevSkiller upp processen genom att automatiskt skicka testet till kandidaten, ta emot det färdiga testet, klona uppgiften, bygga upp den och granska den utan att testets kvalitet äventyras. Som Arthur Brooks från KodSpaghetti uttrycker det så här: "[Devskiller]-testerna är mycket noggranna och ger en meningsfull överblick över kandidatens prestationer." I slutet får rekryteraren en detaljerad redovisning av resultaten så att kandidaten objektivt kan jämföras med andra kandidater som gör testet.

Ditt nästa steg

Test av arbetsprover är ett otroligt exakt sätt att bedöma om kandidaten för programvaruutveckling kan utföra jobbet eller inte. Oavsett om du bygger ditt eget test från grunden eller använder en automatiserad plattform, finns det några saker att tänka på när du bygger testet.

Gör

  • Objektivt mäta inlämningen
  • Gör uppgiftens omfattning hanterbar och väldefinierad.
  • Testa den specifika programmeringsmiljö som du använder med dessa tekniker.

Gör det inte

  • Använd detta som en möjlighet att få gratis arbete från kandidaterna*.

*Det har funnits några fall tidigare (se denna fråga från Quora) där företag, ofta nystartade företag som har ont om pengar, använder en rekryteringsuppgift som ett billigt sätt att lägga till en funktion i sin produkt. Gör det inte. Dina kandidater kommer att lista ut det och det kommer att få dem att avstå från ditt företag. Dessutom kommer de att berätta det för sina vänner och förstöra ditt rykte som arbetsgivare.

Hur bedömer du dina kandidaters kodningsfärdigheter? Jag ser fram emot att höra dina tankar i kommentarsfältet nedan!

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