Du kanske har sett en tråd som cirkulerade på Twitter nyligen om ”10x ingenjörer”. Om du inte har gjort det kan du läsa den i all sin prakt:
Shekhar Kirani @Accel@skirani10x ingenjörer
Författare, om ni någon gång stöter på denna sällsynta typ av ingenjörer, ta dem. Om du har en 10x ingenjör som en del av dina första ingenjörer ökar du oddsen för att ditt startup ska lyckas avsevärt.
OK, här kommer en svår fråga.
Hur upptäcker du en 10x ingenjör?13:02 PM – 11 Jul 2019
Sammanfattningen är att om du inte passar in i någon super smal och stereotypisk syn på att vara utvecklare så är du inte en ”10x engineer”.
Många kommer att säga att en ”10x ingenjör” inte existerar eftersom det skulle vara jävligt svårt att vara 10x bättre på något än någon/nästa människor. Även om personen inte bokstavligen menar ”10x” är det fortfarande ett försök att säga att det finns någon som är betydligt bättre på allting.
Personligen hatar jag termen ”10x ingenjör”. Precis som ”rockstar-utvecklare” är de dåliga beskrivningar och definitioner av vad bra utvecklare är.
Det skulle vara oseriöst att säga att alla utvecklare är lika. Redan efter några minuters tittande på olika utvecklare på Twitter kan jag se många utvecklare som vet jävligt mycket mer än jag. Med det sagt är det ganska löjligt att prata om den här ”10x-ingenjören” som om han eller hon kan öka oddsen för att ditt företag ska bli framgångsrikt.
Nu räcker det med att slå ner på den fruktansvärda stereotypen om ”10x-ingenjören”, låt oss prata om de saker som verkligen gör en bra utvecklare (även kallad den riktiga ”10x-ingenjören”).
- 1. De är smarta men känner till sina gränser
- 2. Starka självständigt men bildar ändå ett grymt team
- 3. De hjälper andra med problem
- 4. De är snälla och förstående
- 5. De utmanar dig (på rätt sätt)
- 6. De förstår att ”new shiny” inte är lösningen på allt
- 7. De vet att det inte spelar någon roll när du programmerar och vilket redigeringstema du använder
- 8. De gör inte allt för att göra något mer komplext
- 9. De tänker inte på ”jag” i ”team”
- 10. Du vill faktiskt arbeta med dem
1. De är smarta men känner till sina gränser
Om det inte är någon trivialt liten kodbas känner de inte till varje kodrad som har gått i produktion. Visst kan de lösa många problem själva, men de vet när de sitter fast och vet när de ska be om hjälp.
Inget är fel med att be om hjälp, oavsett vilken kunskapsnivå man har!
2. Starka självständigt men bildar ändå ett grymt team
Det finns tillfällen för att programmera självständigt och det finns tillfällen för att programmera i ett team. Dessa utvecklare tar inte bara en uppgift och springer in i ett hörn för att arbeta med den i silo till alla andra. Utveckling bortom den minsta skalan kräver konstant samarbete med ett team – oavsett om det är parprogrammering, kodgranskningar, bolla idéer, hjälpa till med felsökning etc.
Det betyder inte att en bra utvecklare inte är mer bekväm med att arbeta själv med vissa uppgifter, men storskalig utveckling är praktiskt taget omöjlig utan ett starkt samarbete.
3. De hjälper andra med problem
Har du någonsin bett en kollega om hjälp och de gjorde det? Grattis, de kan vara en fantastisk utvecklare. Vi kan titta på dokumentation eller till och med Stack Overflow för att få hjälp, men ibland behöver vi faktiskt hjälp från någon som kan vår kodbas. Om du är en utvecklare som vet något som kan hjälpa en kollega, hjälp dem!
4. De är snälla och förstående
Att vara en bra utvecklare handlar inte om att vara smart, visa upp sitt intellekt och strunta i möten för att man är bättre än dessa människor. Att vara en bra utvecklare handlar också om att vara bra på de icke-tekniska sakerna. Om du ”hjälper” en kollega genom att skrika åt dem och kritisera deras kod, sluta bara.
5. De utmanar dig (på rätt sätt)
Detta kanske låter kontroversiellt, men en bra utvecklare kommer inte att ge dig svaren hela tiden. Det kan låta som en motsägelse till #2 och #3 men detta är inte menat att hålla något över dig. En bra utvecklare är någon som kan ge dig precis tillräckligt så att du kan lösa det själv. Dessa små utmaningar bidrar till att göra dig till en bättre utvecklare och gör det möjligt för dig att förstå vilka saker du kanske behöver lära dig mer om.
6. De förstår att ”new shiny” inte är lösningen på allt
Inte att säga att dessa utvecklare inte kollar in nya verktyg och språk (de kan göra vad de vill i det avseendet) men de förstår att nya verktyg inte magiskt kommer att lösa alla problem.
James Hickey 🇨🇦👨💻.
@jamesmh_devVi är besatta av att lära oss om fler verktyg och språk!
Om din arkitektur är dålig, du löser fel problem, din kund förstår inte när du försöker förklara saker och ting… då hjälper inte glänsande verktyg.
Och dessa är grundläggande för ditt företags framgång!18:54 PM – 27 Jun 2019
7. De vet att det inte spelar någon roll när du programmerar och vilket redigeringstema du använder
Stereotyper om programmerare åsido, varför skulle tiden när du programmerar faktiskt göra någon skillnad? Programmera mitt i natten om du vill/har tillåtelse av företaget och gör det inte om du inte vill. Den enda anledningen till att tiden skulle spela in är när du har programmerat för länge och inte har sovit! Den faktiska tiden på dygnet spelar ingen roll om det inte påverkar ditt team (t.ex. om du arbetar vid midnatt med programmering för att avsiktligt undvika alla).
Samma sak med redaktörsteman, varför skulle ett mörkt tema faktiskt göra dig bättre? Jag ska ge dig ett tips, det gör det inte. Mörka teman har sitt syfte, men det är verkligen inte det.
8. De gör inte allt för att göra något mer komplext
Detta kanske är uppenbart, men det fanns en annan Twittertråd veckan innan som pratade om att det är bra att programmera något komplext som att det är en bra sak att göra. När var det bra att göra vårt jobb och våra kollegors jobb svårare?
Det finns definitivt tillfällen då vi kan hamna i att programmera en komplex lösning som att vi kanske inte (ännu) förstår problemet fullt ut. Detta kan hända vid vårt första försök att programmera lösningen, det är då man brukar höra folk prata om att refaktorisera kod eller att de inte är ”stolta” över den kod de skrev föregående vecka/månad/år.
9. De tänker inte på ”jag” i ”team”
Om de inte verkligen har skrivit varje rad av källkoden själva från kompilatorn upp genom all affärslogik, vet de att det var ett teamarbete. De försöker inte ta strålkastarljuset från någon annan i teamet – de lyfter fram alla bidrag som gjorde projektet framgångsrikt.
När ett projekt går dåligt går de inte ut och skyller på alla. Lagprojekt misslyckas som lag, inte som individ (om det inte är illvilligt uppsåtligt). De hjälper hela teamet att lära sig av misstagen och bidrar till att förhindra att de inträffar igen.
10. Du vill faktiskt arbeta med dem
I slutändan är dessa fantastiska utvecklare personer som du faktiskt tycker om att arbeta med. Du dyker upp på jobbet (eller fjärrstyrt) och är glad över att arbeta med ett så fantastiskt team.
Om du känner några utvecklare som låter så här, berätta för dem hur fantastiska de är och att du är glad över att arbeta med dem. 🙂