Gli sviluppatori 10x sono le creature mitiche dei nostri tempi.

Cosa sono? Cosa fanno per essere così speciali?
Che cosa significa 10x? Uno sviluppatore 10x è qualcuno che è (si pensa che sia) produttivo come altri 10. Lui/lei sarebbe, quindi, in grado di produrre 10 volte il risultato dei suoi colleghi.

Di cosa stiamo parlando veramente?
Ovviamente un ingegnere senior potrebbe essere 10 volte più produttivo di uno stagista, ma sarebbe davvero possibile tra colleghi con gli stessi anni di esperienza e almeno sulla carta lo stesso livello di competenze?

Spesso quando si legge di performance e produttività nei team si trovano cose come la legge di Pareto e la curva gaussiana. (anche riferite come Legge del potere e Curva di Bell).
La legge di Pareto è la famosa regola dell’80-20, valida per quasi tutto: dalla distribuzione della ricchezza e l’iniquità globale alla gestione del tempo e la produttività.
Quando si parla di Performance del Team risulta che :
80% degli sviluppatori fanno solo il 20% del lavoro. Questo significa che il restante 20%, i Top Performers, sono in grado di completare l’80% di tutti i compiti.
La curva di Bell è spesso usata per descrivere la distribuzione della capacità di esecuzione degli impiegati, affermando che circa l’80% degli impiegati sono posizionati intorno alla media mentre il resto sono o top performer o cattivi performer.

pareto

Comunque possiamo guardare questi grafici e numeri, la differenza tra il migliore e il peggiore esecutore in un team può essere enorme. Forse ci riferiamo solo a questo quando parliamo di un dev 10x? O dovremmo solo considerare la differenza rispetto alla media degli altri dev. Che una cosa del genere sia statisticamente possibile o meno, non possiamo negare che alcuni sviluppatori siano in realtà molto più performanti di altri.
Da dove viene questa meraviglia?

È a causa di anni di esperienza? Non proprio.

10 anni di esperienza potrebbero semplicemente significare un’esperienza di 1 anno ripetuta 10 volte.

Se sei bloccato nello stesso lavoro facendo lo stesso compito ogni giorno, ogni anno e se non senti la voglia di fare un passo avanti e imparare cose nuove, potresti essere sorpreso quando un normale sviluppatore con solo 3 anni sul suo curriculum è velocissimo e ne sa più di te (non solo sull’ultimo stack tecnologico più cool).

È perché lavorano fino a tardi e non hanno una vita? Non proprio.

Uno sviluppatore 10x non sta macinando lunghe ore. Non significa lavorare più a lungo. Significa sicuramente lavorare di più, ma soprattutto in modo più intelligente.

Sono lontano dall’essere uno sviluppatore 10x, ma nella mia carriera, ho avuto la fortuna di incontrare e lavorare con almeno un paio di individui così straordinari, e posso dire che questi sono alcuni dei tratti/qualità che avevano in comune:

Lavorare sulle cose giuste nel modo giusto

Efficacia ed efficienza:

Essere efficaci significa fare le cose giuste, mentre essere efficienti significa fare le cose nel modo giusto.

Bene, gli sviluppatori 10x normalmente fanno entrambi. Non perdono tempo a fare cose inutili nel modo più perfetto. Fanno le cose giuste, nel modo (abbastanza) giusto.
Questo si può ottenere con:

Fare domande

perché

A volte i cattivi requisiti, le specifiche poco chiare e i presupposti sbagliati possono farvi perdere ore di sviluppo. Non solo dovrai riadattare le tue stime o infilarci dentro la rilavorazione, ma può anche essere molto frustrante dover buttare via tutto il fantastico codice che hai appena creato.

come

Se sei bloccato, se hai bisogno di aiuto, chiedi aiuto. Non chiedere una soluzione, chiedi un suggerimento, una guida, un consiglio che possa portarti a trovare la soluzione da solo. Non avere paura. non si suppone che tu sappia tutto ed è bene che tu dimostri di essere desideroso di imparare.

Sii concentrato, evita le distrazioni

Quanto tempo passiamo davvero a guardare youtube, a controllare il nostro telefono, a rispondere agli amici su WhatsApp o Snapchat, o semplicemente a scorrere la bacheca di Facebook?
e se ti dicessi che ci passi da 1 a 2 ore al giorno? controlla l’uso di queste applicazioni sul tuo telefono. (puoi usare app come questa per provarlo).
Non dobbiamo necessariamente smettere con tutto questo. Solo riconoscere quanto tempo viene sprecato su queste cose, quando dovremmo essere produttivi è il primo passo e poi possiamo usare strumenti come la tecnica del Pomodoro per aiutarci a stare lontani da social network e smartphone e mantenere il FLOW per almeno tutta la durata di un Pomodoro timer.

Distrazioni da social network

Non sto nemmeno dicendo che non dovremmo fare una pausa, è più essere veramente consapevoli di dove il nostro prezioso tempo viene drenato. (anche se sicuramente è meglio alzarsi, fare una passeggiata, chiacchierare con un collega, andare a giocare a kicker o a ping-pong per 10 minuti, piuttosto che controllare Facebook. Dai ai tuoi occhi e al tuo cervello un po’ di riposo fuori dallo schermo!).

Avere una pausa, rilassarsi per un po’ può effettivamente aumentare la tua produttività

Utilizza strumenti che ti velocizzano, impara le scorciatoie

Quello che facciamo principalmente è digitare e cliccare, sembra assurdo ma puoi davvero diventare super veloce se inizi a usare scorciatoie nel tuo IDE e se usi ampiamente il Terminale / CommandLine. Eseguire grep version package.json è molto più veloce che andare nel Finder, cliccare su package.json open e poi leggere il parametro version.
Scrivere

git stash git pull git checkout -b my_new_feature git stash pop
Entrare in modalità schermo intero Uscire dalla modalità schermo intero

è molto più veloce che fare la stessa cosa con qualsiasi strumento visivo.

Potreste pensare che sia solo un risparmio di secondi, ma per diventare uno sviluppatore 10X ogni secondo è importante (e comunque stare lontano dal mouse è un bene per prevenire la sindrome del tunnel carpale)
Qui potete leggere di alcuni strumenti e consigli che mi aiutano a scrivere e fare il debug del codice meglio e più velocemente.

Digitazione veloce

Siate desiderosi di imparare

La quantità di informazioni là fuori è enorme. A volte devi pagare per averle, la maggior parte del tempo è gratis. Non ci sono scuse per non dedicare del tempo allo sviluppo personale. Leggi articoli, ascolta podcast, guarda tutorial e segui corsi online. Non deve nemmeno riguardare sempre il coding – altrimenti si potrebbe sostenere che in effetti uno sviluppatore 10x passa tutta la sua giornata a “lavorare” – (per esempio trovo Getting Smarter Every Day e You are not so smart molto stimolanti).
È più un atteggiamento, uno stato mentale. La curiosità, la sete di conoscenza stabilisce la differenza dalla media.

Circondati di Top Performers / Trova un Mentore

Essere lo sviluppatore più veloce, più intelligente, più abile del tuo team può essere buono per il tuo ego, ma non lo è per la tua crescita. Per quanto comodo e appagante possa essere, cerca di non essere mai la persona più intelligente nella stanza, e cerca sempre le persone che sono molto brave in quello che fanno, che sono migliori di te, e attieniti a loro.

Restituisci. Condividi le tue conoscenze

Appena impari qualcosa, cerca di aiutare qualcun altro, insegna ad altri colleghi, condividi le tue conoscenze.
Può essere dare qualche consiglio dopo il tuo standup quotidiano, fare una breve presentazione al tuo team, scrivere un post sul blog o diventare un mentore su una piattaforma di codifica online.
Non essere mai arrogante o irritato con qualcuno che sa meno di te.

Se consideriamo tutto questo, naturalmente un ottimo sviluppatore ha solide e forti competenze di programmazione, ma ciò che può davvero fare la differenza sono la passione, l’atteggiamento e alcune soft skills.
I colleghi a cui ho guardato con soggezione e che mi hanno ispirato di più nel migliorarmi erano altamente motivati e competenti, e naturalmente super veloci nei loro compiti: niente sembrava fermarli o spaventarli, se non sapevano qualcosa, facevano ricerche per un paio d’ore e poi si sentivano abbastanza sicuri da assumersi la responsabilità della correzione del bug o della funzionalità. E soprattutto, scrivevano documentazione, organizzavano workshop o mini presentazioni non appena trovavano o imparavano qualcosa che poteva essere utile agli altri membri del team. Amavano condividere.

E alla fine, credo che questo possa essere il vero fattore moltiplicatore. Condividere le conoscenze, favorire la crescita, essere un esempio di passione e duro lavoro, è ciò che può davvero avere un impatto incredibilmente positivo sulle altre persone e alzare l’asticella delle prestazioni di un team (anche se composto solo da sviluppatori “medi”).

continua ad alzare l'asticella

Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.