10x-ontwikkelaars zijn de mythische wezens van onze tijd.
Wat zijn ze? Wat doen ze om zo speciaal te zijn?
Wat betekent 10x eigenlijk? Een 10x ontwikkelaar is iemand die net zo productief is (denkt te zijn) als 10 anderen. Hij/zij zou dus in staat zijn om 10 keer het resultaat van zijn collega’s te produceren.
Waar hebben we het eigenlijk over?
Natuurlijk zou een Senior Engineer 10 keer productiever kunnen zijn dan een stagiair, maar zou dat echt mogelijk zijn onder collega’s met dezelfde jaren ervaring en tenminste op papier hetzelfde vaardigheidsniveau?
Vaak als je leest over prestaties en productiviteit in teams, kom je dingen tegen als de Wet van Pareto en de Gaussische Curve. (ook wel Power Law en Bell Curve genoemd).
De wet van Pareto is de beroemde 80-20 regel, die voor bijna alles geldt: van de verdeling van rijkdom en mondiale ongelijkheid tot tijdmanagement en productiviteit.
Als je het hebt over Teamprestatie, resulteert dit in :
80% van de ontwikkelaars doet slechts 20% van het werk. Dit betekent dat de resterende 20%, de Top Performers, in staat zijn om 80% van alle taken te voltooien.
De Bell-curve wordt vaak gebruikt om de verdeling van het prestatievermogen van werknemers te beschrijven, waarbij wordt gesteld dat ongeveer 80% van de werknemers zich rond het gemiddelde bevindt, terwijl de rest ofwel toppresteerders ofwel slecht presteerders zijn.
Hoe we ook naar die grafieken en getallen kijken, het verschil tussen de best presterende en de slechtst presterende in een team kan enorm zijn. Misschien bedoelen we dat gewoon als we het hebben over een 10x dev? Of moeten we het verschil gewoon afzetten tegen het gemiddelde van de andere dev. Of zoiets nu statistisch mogelijk is of niet, we kunnen niet ontkennen dat sommige ontwikkelaars veel performanter zijn dan anderen.
Dus waar komt deze grootsheid vandaan?
Is het door jarenlange ervaring? Niet echt.
10 jaar ervaring kan gewoon betekenen dat een ervaring van 1 jaar 10 keer is herhaald.
Als je vastzit in dezelfde baan en elke dag en elk jaar dezelfde taken uitvoert, en als je niet de drang voelt om een stapje hoger te komen en nieuwe dingen te leren, zul je misschien verbaasd zijn wanneer een gewone ontwikkelaar met slechts 3 jaar ervaring razendsnel is en meer weet dan jij (niet alleen over de nieuwste, coolste technologiestack).
Is het omdat ze tot laat werken en geen leven hebben? Niet echt.
Een 10x dev maakt geen lange uren. Het betekent niet langer werken. Het betekent zeker harder werken, maar meestal op een slimmere manier.
Ik ben nog lang geen 10x dev, maar in mijn carrière heb ik het geluk gehad om minstens een paar van zulke geweldige mensen te ontmoeten en met hen te werken, en ik kan u vertellen dat dit enkele van de eigenschappen/kwaliteiten zijn die ze gemeen hadden:
Werk aan de juiste dingen op de juiste manier
Effectiviteit en efficiëntie:
Effectief zijn betekent de juiste dingen doen, terwijl efficiënt zijn betekent dat je de dingen goed doet.
Wel, 10x devs doen normaal gesproken beide. Ze verspillen geen tijd door onnodige dingen op de meest perfecte manier te doen. Ze krijgen de juiste dingen gedaan, op de (genoeg) juiste manier.
Dit kan worden bereikt door:
Vragen stellen
waarom
Soms kunnen slechte requirements, onduidelijke specificaties, en verkeerde aannames ervoor zorgen dat u uren ontwikkeltijd verspilt. Niet alleen zult u uw schattingen moeten bijstellen of in het herwerk moeten knijpen, maar het kan ook zeer frustrerend zijn om alle geweldige code die u zojuist hebt gemaakt weg te moeten gooien.
hoe
Als u vastzit, als u hulp nodig hebt, vraag dan om hulp. vraag niet om een oplossing, vraag om een hint, om begeleiding, om een tip die je kan leiden om zelf de oplossing te vinden. wees niet bang. je wordt niet verondersteld alles te weten en het is goed dat je laat zien dat je leergierig bent.
Wees gefocust, vermijd afleiding
Hoeveel tijd besteden we echt aan het kijken naar youtube, het checken van onze telefoon, het beantwoorden van vrienden op WhatsApp of Snapchat, of gewoon het scrollen op Facebook wall?
Wat als ik je vertel dat je daar 1 tot 2 uur per dag aan besteedt? check het gebruik van die apps op je telefoon. je zult schrikken. (je kunt apps als deze gebruiken om het te bewijzen).
We hoeven niet per se te stoppen met dat alles. Gewoon erkennen hoeveel tijd aan deze dingen wordt verspild, terwijl we eigenlijk productief zouden moeten zijn, is de eerste stap en dan kunnen we hulpmiddelen zoals de Pomodoro-techniek gebruiken om ons te helpen weg te blijven van sociale netwerken en smartphone en de FLOW te behouden voor ten minste de volledige duur van een Pomodorotimer.
Ik zeg niet eens dat we geen pauze moeten nemen, het is meer dat we ons echt bewust moeten zijn van waar onze kostbare tijd wordt verspild. (Hoewel het zeker beter is om op te staan, een wandeling te maken, een praatje met een collega te maken, 10 minuten te gaan kicker- of tafeltennissen in plaats van Facebook te checken. Geef uw ogen en hersenen wat rust, weg van elk scherm!).
Een pauze nemen, even niets doen kan uw productiviteit daadwerkelijk verhogen
Gebruik hulpmiddelen die u versnellen, leer sneltoetsen
Wat we meestal doen is typen en klikken, het lijkt gek maar u kunt echt supersnel worden als u sneltoetsen gaat gebruiken in uw IDE en als u de Terminal / CommandLine uitgebreid gebruikt. grep version package.json
uitvoeren is veel sneller dan naar de Finder gaan, op package.json klikken openen en dan de versie parameter lezen.
Typing
git stash git pull git checkout -b my_new_feature git stash pop
is veel sneller dan hetzelfde doen met een visuele tool.
Je denkt misschien dat het maar een paar seconden zijn, maar om een 10X dev te worden is elke seconde belangrijk (en het is sowieso goed om van de muis weg te blijven om carpaal tunnel syndroom te voorkomen)
Hier kan je lezen over enkele tools en tips die me helpen om code beter en sneller te schrijven en te debuggen.
Gierig zijn om te leren
De hoeveelheid informatie die er is, is enorm. Soms moet je ervoor betalen, meestal is het gratis. Er zijn geen excuses om geen tijd te besteden aan persoonlijke ontwikkeling. Lees artikelen, luister naar podcasts, bekijk tutorials en volg online cursussen. Het hoeft niet eens altijd over coderen te gaan – anders zou je kunnen stellen dat een 10x dev inderdaad zijn hele dag “werkt” – (ik vind bijvoorbeeld Getting Smarter Every Day en You are not so smart erg geestverruimend).
Het is meer een houding, een gemoedstoestand. De nieuwsgierigheid, de dorst naar kennis maakt het verschil met het gemiddelde.
Omring jezelf met Top Performers / Zoek een Mentor
De snelste, slimste, meest bekwame ontwikkelaar in je team zijn is misschien goed voor je ego, maar het is niet voor je groei. Hoe comfortabel en bevredigend het ook mag zijn, probeer nooit de slimste persoon in de kamer te zijn, en kijk altijd uit naar mensen die heel goed zijn in wat ze doen, die beter zijn dan jij en blijf bij hen.
Geef terug. Deel je kennis
Zodra je iets leert, probeer dan iemand anders te helpen, leer andere collega’s, deel je leerpunten.
Het kan zijn dat je wat advies geeft na je dagelijkse standup, een korte presentatie geeft aan je team, een blogpost schrijft of mentor wordt op een online coderingsplatform.
Nooit arrogant of geïrriteerd zijn tegen iemand die minder weet dan jij.
Als we dit allemaal in ogenschouw nemen, beschikt een zeer goede ontwikkelaar natuurlijk over solide sterke programmeervaardigheden, maar wat echt het verschil kan maken zijn passie, houding en een aantal soft skills.
De collega’s voor wie ik ontzag had en die me het meest inspireerden om mezelf te verbeteren, waren zeer gemotiveerd en bekwaam, en natuurlijk supersnel in hun taken: niets leek hen tegen te houden of bang te maken, als ze iets niet wisten, onderzochten ze het een paar uur en voelden zich dan zelfverzekerd genoeg om de bug op te lossen of de functie over te nemen. En daarbovenop schreven ze documentatie, organiseerden workshops of mini-presentaties zodra ze iets gevonden of geleerd hadden dat nuttig kon zijn voor andere teamleden. Ze hielden ervan te delen.
En uiteindelijk denk ik dat dit de echte vermenigvuldigingsfactor zou kunnen zijn. Kennis delen, groei stimuleren, een voorbeeld zijn van passie en hard werken, dat is wat echt een ongelooflijk positieve impact kan hebben op andere mensen en de lat hoger kan leggen voor de prestaties van een team (zelfs als dat team maar uit “gemiddelde” ontwikkelaars bestaat).