Hur man anställer en 10x-utvecklare

Publicerad: Senast uppdaterad:
Hur man anställer en 10x utvecklare bästa artiklarna och resurser inom HR 2018

Miljontals tangenttryckningar har gjorts på internet om 10x-utvecklaren. Det finns ett antal olika definitioner och många frågor om huruvida det är ett verkligt fenomen överhuvudtaget. Men myten är för bra för att de flesta ska ge upp. Finns det verkligen utvecklare där ute som kan förstärka dina resultat tio gånger?

Sanningen är att det finns utvecklare där ute som är 10x så bra som du tror, men det är inte de som du tror. De är inte ensamma rockstjärnor som har rykte om sig att på några timmar klara det som de flesta team skulle ta en vecka att göra. Sanningen är ännu mer fascinerande och kan vara nyckeln till att multiplicera effektiviteten i ditt team.

Vad är en 10x programmerare eller utvecklare?

Det finns ett antal definitioner av en 10x utvecklare. Här är några av dem som vi hittade.

  • En utvecklare som kan använda de verktyg och resurser som står till buds för att uppnå tio gånger högre prestanda än de sämsta utvecklarna. Källa: Kenny Bergquist
  • En utvecklare som kan göra saker som ett team med tio mindre bra utvecklare inte skulle kunna göra. Källa: Jevgenij Brikman
  • En utvecklare som kan frigöra 10x produktivitet i sitt team. Källa: Sylvain Kalache via Stack Overflow

Men är någon av dem den sanna definitionen av en 10x mjukvaruutvecklare? Är det en kombination av alla dessa tre egenskaper som ger den nya utvecklaren den rätta rollen? Om du anställer en utvecklare är din första prioritet att förstärka företagets resultat. Kommer det från en hypereffektiv utvecklare eller en lagbyggare? För att ta reda på vilka som är viktigast är det bra att gå tillbaka till var idén om 10x programmerare och senare utvecklare började.

10x utvecklarens attribut

Källa: Programmerare med negativ nettoproduktion

Ursprunget till 10x-utvecklaren

Idén om den 10 gånger större mjukvaruutvecklaren dök först upp i en studie med titeln "Experimentella studier som jämför prestanda för programmering online och offline" från 1968. Författarna till studien, Sackman, Erikson och Grant, hade egentligen inte för avsikt att testa om den 10 gånger större programvaruutvecklaren fanns på riktigt. I stället ville de testa skillnaderna i effektivitet mellan programmerare som arbetar online och offline (online betyder på en dator medan offline betyder på papper), en distinktion som vi inte längre bryr oss om eftersom i stort sett all programmering sker online.

Men det intressanta med denna studie var att det finns en stor variation i prestationen hos till synes identiska programmerare, vilket tyder på att vissa kan vara mycket effektivare än andra. Tja, vissa av skillnaderna var mindre dramatiska när man tog hänsyn till några av studiens brister. Med dessa brister i åtanke kan anhängare som Steve McConnell på Construx Software hävdar fortfarande att studien avslöjar så mycket som en 10 gånger större skillnad i prestationen hos till synes identiska programmerare.

Sedan den här studien publicerades har varianter av 10x-effekten dykt upp i annan forskning.

  • Barry Boehm och andra forskare kom fram till att det vanligtvis krävs ungefär 3,5 gånger så många personalmånader för att utveckla ett program med ett team i den 15:e percentilen av programmerare som rangordnas efter förmåga som för att utveckla ett program med ett team i den 90:e percentilen (Boehm et al. 2000). Källa: Construx
  • Joel Spolsky har också observerat effekten hos datavetenskapsstudenter vid Yale. Det är värt att läsa hans förklaring av 10x-fenomenet i Att slå de höga tonerna.

En 10x-utvecklare tar mycket mindre tid på sig för att slutföra uppgifter än sina kollegor.

I en grupp med lika erfarna datavetenskapsstudenter korrelerar inte den tid som läggs ner på ett projekt med kvaliteten på koden. Källa: Joel Spolsky

Detta är knappast de enda studier som har observerat en förstoringseffekt med G. Gordon Schulmeyer,

Forskare har funnit att förhållandet mellan 5 till 1 och 100 till 1 kan vara mycket varierande när det gäller programmerarnas prestanda. Detta innebär att programmerare på samma nivå, med liknande bakgrund och jämförbara löner, kan ta 1 till 100 veckor på sig för att slutföra samma uppgifter.

KällaProgrammerare med negativ nettoproduktion

Men som Gordon påpekar tar dessa studier inte hänsyn till den negativa effekt som dessa utvecklare kan ha på produktiviteten. En utvecklare kan skapa ett program på en tiondel av tiden som en annan, men det kan vara spaghettikod. Om det tar tio gånger längre tid för kollegorna att lösa upp det, är utvecklarens bidrag i praktiken 1x.

Om du kopplar ihop spaghettikod med en utvecklare som skadar sammanhållningen i teamet kan det leda till att de bidrar negativt till företagets resultat. Med detta i åtanke måste du ställa dig själv en viktig fråga innan du försöker lägga till en 10x mjukvaruutvecklare till ditt företag.

Vilka egenskaper bör du leta efter hos en 10x mjukvaruutvecklare?

Vilka egenskaper bör du leta efter hos en 10x-utvecklare?Källa: Evgeni Tcherkasski på Unsplash

1. De vet vad de ska göra

Detta borde vara ett uppenbart första steg, men en 10x mjukvaruutvecklare vet hur man löser de flesta problem direkt. Åtminstone bör de veta vad de måste göra och om de inte vet det, vilka frågor de ska ställa. Källa: Stackify

Oavsett om deras förmågor kommer från överlägsen erfarenhet eller kunskap kan de fatta rätt beslut om hur de ska gå vidare med en programvaruutvecklingsuppgift. Som Chris Stainthorpe, teknisk medgrundare av CustomerSure, säger:

De "10x"-kodare som jag har arbetat med har förmågan att göra "tråkiga" teknikval, visa empati för användarnas behov och ha en stor syn på mjukvaruproduktens livscykel.

Källa: Stack Overflow

Någon som inte är 10x så stor kan helt enkelt inte fylla den här rollen. Som Joel Spolsky beskriver det,

Det handlar inte bara om "10 gånger mer produktivt". Det handlar om att den "genomsnittligt produktiva" utvecklaren aldrig når de höga tonerna som gör en bra programvara.

Källa: Joel Spolsky

Du kommer att upptäcka att de bästa programmerarna har mycket god erfarenhet av mönstermatchning och kan även göra mycket komplexa felsökningar som en mindre bra programmerare helt enkelt inte skulle kunna göra. Källa:

2. De förstår varför de ska göra det

Du måste ha en passion för problemet och förstå det utan och innan för att verkligen vara en 10x-utvecklare.

Källa: Stackify

Om du förstår problemet i grunden kan du fatta rätt beslut. En 10x-utvecklare är trots allt inte bara 10x för att han/hon kan arbeta snabbt, han/hon är 10x för att han/hon inte slösar bort tid på att gå åt fel håll. De har vanligtvis en förståelse för den maskin de arbetar på (operativsystemet och andra komponenter) och har en god teoretisk kunskap om den teknik de arbetar med Källa:

3. De vet när de ska göra varje sak

En 10x mjukvaruutvecklare förstår var tid och resurser ska läggas för att få det mest optimala resultatet. En sann 10x-programvaruutvecklare börjar inte bara koda omedelbart och spottar ut vad de än kommer fram till. Istället kommer de att bestämma hur de bäst ska använda sin tid. Källa: Stackify

Om de förstår arkitekturen för det projekt de arbetar med innan de börjar arbeta kan det leda till stora tidsbesparingar. Det hindrar dem från att gå in i fel gränd, lägga ner onödigt arbete och i allmänhet arbeta med tidskrävande projekt som har minimal nytta.

Med andra ord kommer en 10x mjukvaruutvecklare att skära bort en del av projektet som kan bidra med 5% av det totala resultatet men som resulterar i 80% av den tid och ansträngning som investerats Källa:

4. De bidrar till arbetskulturen

10x-utvecklaren bidrar till arbetskulturenDet finns en stor debatt om 10x programmerare, vilket gör att många människor tycker att det är en dålig idé. Det centrala är att man ofta får högpresterande programmerare som helt enkelt inte fungerar tillsammans med resten av teamet. Dessa personer kallas ibland för ninjaprogrammerare och kan ge fantastiska resultat men kan inte lyfta teamet runt omkring dem. I extrema fall kommer deras arrogans att få resten av teamet att lämna dem, vilket gör att alla fördelar som de gav upphov till går förlorade. Källa: Nyhetsstapeln

Faktum är att Rand Fishkin, VD för Moz, varnar för att anställa 10x idioter av just den här anledningen och säger att han skulle föreslå att anställa en genomsnittlig lagbyggare hellre än deras 10x motsvarigheter när som helst, eftersom det helt enkelt är ett nöje att arbeta tillsammans med dem. Källa: Kodmentor

Men om idén med 10x är att du skapar 10x mer resultat. Om du har en utvecklare som ger 10 andra personer möjlighet att öka sin produktivitet, vilket i slutändan leder till 10x produktivitet för teamet, är han eller hon en 10x-utvecklare. Källa: Stack Overflow

Ta denna anekdot från en medarbetare pradn på Hacker News. Medarbetaren ger ett perfekt exempel på hur en person kan skapa ett enormt värde för det team som han eller hon ingår i.

Jag ingår just nu i ett team som jag tror har en 10 gånger större programutvecklare. Han valde en enkel trådmodell för att förhindra massor av slösad tid på dödslås och andra trådproblem. Det är också lättare att resonera om och att få nya personer med på tåget. När han granskar koden hittar han fel som förhindrar flera dagars felsökning och föreslår enklare arkitekturer som gör koden lättare att förstå och ändra. Han har haft denna effekt på ~20 personer under ~5 år. Jag skulle inte bli förvånad om han sparade oss ~1 års utvecklingstid tillsammans.

Källa: Hacker News

Bidraget från just den här lagmedlemmen höjer inte bara honom eller henne själv, utan hela laget. Den här personen fungerar som en multiplikator för laget och det är de verkliga resultat som du vill ha när du anställer. Källa: Sean Cassidy

5. En 10x mjukvaruutvecklare passar in i den roll som du vill att han/hon ska fylla.

En annan fråga som ofta dyker upp i samband med idén om 10x mjukvaruutvecklare är att de kan sättas in i vilken roll som helst och prestera på 10x nivå oavsett vilken teknisk miljö de råkar arbeta i. Källa: Kodning eller

Det är säkert sant att en 10x-utövare kommer att kunna producera avancerade resultat i de flesta situationer, men det motsäger det faktum att vissa personer kan vara 10x för specifika situationer och specifika tekniska miljöer. På andra ställen kommer de egentligen bara att producera normala resultat. Det är viktigt att försäkra sig om att en utvecklare kommer att vara 10x i ditt företag.

6. De försöker alltid förbättra sig

En 10x bör alltid lära sig nya saker. Varje ny färdighet, varje nytt verktyg och varje nytt tillvägagångssätt är ett nytt sätt att lösa ett problem. Inte bara det, utan de håller sig också uppdaterade om tekniska förändringar, vilket gör att de kan producera på en 10x-nivå.

Hur man testar kompetensen hos en 10x mjukvaruutvecklare

Hur man testar en 10x-utvecklares färdigheterDet är ganska svårt att få tag på 10x mjukvaruutvecklare som inte utnyttjar sitt rykte som rockstjärnor. De kräver en mer noggrann genomgång än en vanlig kandidat.

Kontrollera deras specialistkompetens

Om du hittar en utvecklare som du misstänker kommer att hjälpa ditt team att uppnå 10 gånger högre produktivitet och resultat, bör du först och främst börja med deras yrkeskunskaper. Det bästa sättet att se på detta är förmodligen att se på var arbetsprov test. Testet med arbetsprover är unikt anpassat för att identifiera färdigheter som förstärker produktionen. Detta beror på att till skillnad från ett algoritmiskt test testar ett arbetsprov affärsproblem snarare än enkel kodningsförmåga. Och det är väldigt enkelt att göra med DevSkiller.

Säg att din kandidat är mest bekväm med Java. Ge dem ett avancerat Java-test och se hur de klarar sig.

Kontrollera hur anpassningsbara de är till nya programmeringsmiljöer.

Men ett Java-test räcker inte. En 10x-utvecklare bör i viss mån kunna anpassa sig till andra tekniska miljöer när han eller hon behöver det. Låt oss säga att din kandidat säger att han/hon är mycket bekväm med Java men aldrig använder Python. Ge dem, utöver deras Java-uppgift, en lätt Pythonuppgift. Även om de aldrig har använt Python tidigare bör en sann 10x-utvecklare kunna räkna ut hur han eller hon ska utföra en grundläggande uppgift på den tilldelade tiden.

Kontrollera deras färdigheter i felsökning

Ett av de verkliga kännetecknen för en 10x-utvecklare är deras förmåga att göra komplexa felsökningar på hög nivå. Detta är den typ av felsökning som en normal utvecklare skulle kunna få oändligt mycket tid på sig och ändå inte klara av att göra. Detta eftersom de helt enkelt inte har de färdigheter och den förståelse för tekniken som krävs.

Återigen kan du använda en automatiserad plattform som DevSkiller för att ge kandidaten avancerad kod med avancerade fel som de måste hitta och ta bort. Du kommer att upptäcka att en utvecklare som kan göra detta kommer att ge en produktivitetsfördel på hundra till ett jämfört med en vanlig utvecklare. Källa: Nevo

Bjud in dina bästa kandidater till en kodningsintervju för att se hur bra de arbetar tillsammans med andra.

En del av testet av någons kodningsskicklighet är att se om de har den tekniska kunskapen för att verkligen ge ett 10x större bidrag. Men den andra halvan av att vara en 10x-utvecklare är att kunna höja de andra personerna i teamet så att teamet självt bidrar 10x. För att göra detta måste du ta reda på hur bra kandidaten arbetar med andra och hur han eller hon kan förbättra teamets resultat.

Det bästa sättet att göra detta är förmodligen att göra en intervju om parkodning. Under intervjun samarbetar intervjuaren med kandidaten för att lösa ett affärsproblem. Den här typen av intervju handlar inte bara om att få en uppfattning om hur väl de förstår kodning. Den kan också visa vilken typ av beslut de fattar, hur de reagerar på feedback och hur väl de samarbetar med andra. Även om utvecklaren inte är tillgänglig för en personlig intervju är det lätt att ordna en sådan intervju på distans med hjälp av en plattform som DevSkiller.

Det är dags att hitta din 10x-utvecklare

Innan du går på jakt efter unicorn 10x-utvecklare är det viktigt att förstå att de är nästan lika sällsynta som de mytiska djuren. Du kommer förmodligen att hitta många genomsnittliga utvecklare och sanningen att säga om du har en 10x-utvecklare i teamet kan de kraftigt öka produktiviteten hos de genomsnittliga programmerarna runt omkring dem så det är fortfarande värt att leta efter den ena förstärkaren.

Det viktigaste att komma ihåg är att:

  • Hitta en utvecklare som passar dina behov (du kan börja med att kolla in deras bidrag till öppen källkod). Detta innebär att du är en person som kommer att vara 10x bättre både i företagets tekniska och administrativa miljö.
  • Se till att de är både utmärkta på egen hand och utmärkta i ett team. Du vill inte ha någon som är fantastisk på egen hand men som sedan drar ner resten av företaget.
  • Gör omfattande tester både för att se hur bra de är inom sitt valda område, hur väl de kan anpassa sig till nya miljöer och hur bra de kan arbeta med andra.

Nu när du är redo är det dags att gå ut och hitta din 10x-utvecklare. Belöningen kommer att bli fantastisk för dig och ditt företag.

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