Potreste aver visto un thread che circola su Twitter di recente sui “ingegneri 10x”. Se non l’avete fatto, potete leggerlo in tutto il suo splendore:
Shekhar Kirani @Accel@skirani10x ingegneri
Fondatori se mai vi imbattete in questa rara razza di ingegneri, prendeteli. Se avete un ingegnere 10x come parte dei vostri primi ingegneri, aumentate significativamente le probabilità di successo della vostra startup.
OK, ecco una domanda difficile.
Come si fa a individuare un ingegnere 10x?13:02 PM – 11 Jul 2019La sintesi di esso è, a meno che non si adatti a qualche visione super stretta e stereotipata di essere uno sviluppatore, non sei un “ingegnere 10x”.
Molti diranno che un “ingegnere 10x” non esiste perché essere 10 volte meglio di qualcuno o della maggior parte delle persone in qualcosa sarebbe dannatamente difficile. Anche se la persona non intende letteralmente “10x”, sta ancora cercando di dire che c’è qualcuno significativamente migliore in tutto.
Personalmente odio il termine “ingegnere 10x”. Come “sviluppatore rockstar”, sono descrizioni e definizioni povere di ciò che sono i grandi sviluppatori.
Sarebbe falso dire che tutti gli sviluppatori sono uguali. Solo pochi minuti di osservazione di diversi sviluppatori su Twitter, posso già vedere molti sviluppatori che sanno molto più di me. Detto questo, parlare di questo “ingegnere 10x” come se potesse aumentare significativamente le probabilità di successo del tuo business è piuttosto ridicolo.
Basta parlare di battere quel terribile stereotipo di “ingegnere 10x”, parliamo delle cose che rendono davvero grandi gli sviluppatori (aka il vero “ingegnere 10x”).
- 1. Sono intelligenti ma conoscono i loro limiti
- 2. Forte in modo indipendente, ma sempre in una squadra che spacca
- 3. Aiutano gli altri con problemi
- 4. Sono gentili e comprensivi
- 5. Ti sfidano (nel modo giusto)
- 6. Capiscono che il “nuovo splendore” non è la soluzione per tutto
- 7. Sanno che non importa quando programmi e quale tema di editor usi
- 8. Non vanno fuori del loro modo di fare qualcosa di più complesso
- 9. Non pensano al “me” in “team”
- 10. Vuoi davvero lavorare con loro
1. Sono intelligenti ma conoscono i loro limiti
A meno che non si tratti di una base di codice banalmente piccola, non conoscono ogni linea di codice che è andata in produzione. Certo possono risolvere molti problemi da soli, ma sanno quando sono bloccati e sanno quando chiedere aiuto.
Non c’è niente di male nel chiedere aiuto, non importa il tuo livello di abilità!
2. Forte in modo indipendente, ma sempre in una squadra che spacca
Ci sono momenti per programmare in modo indipendente e ci sono momenti per programmare in una squadra. Questi sviluppatori non si limitano a prendere un compito e correre in un angolo a lavorarci in silo rispetto a tutti gli altri. Lo sviluppo oltre la scala più piccola richiede una costante collaborazione con un team – sia che si tratti di programmazione in coppia, revisione del codice, rimbalzo di idee, aiuto nel debugging ecc.
Questo non vuol dire che un grande sviluppatore non sia più a suo agio a lavorare da solo su certi compiti, ma lo sviluppo su larga scala è praticamente impossibile senza una forte collaborazione.
3. Aiutano gli altri con problemi
Hai mai chiesto aiuto ad un collega e lui lo ha fatto? Congratulazioni, potrebbe essere un grande sviluppatore. Potremmo guardare la documentazione o anche Stack Overflow per aiuto, ma a volte abbiamo davvero bisogno di aiuto da qualcuno che conosce il nostro codice base. Se sei uno sviluppatore che sa qualcosa che potrebbe aiutare un collega, aiutalo!
4. Sono gentili e comprensivi
Essere un grande sviluppatore non significa fare il saputello, mostrare il tuo intelletto, ignorare le riunioni perché sei meglio di quelle persone. Essere un grande sviluppatore significa anche essere bravo con le cose non tecniche. Se stai “aiutando” un collega urlandogli contro e criticando il suo codice, smettila.
5. Ti sfidano (nel modo giusto)
Questo potrebbe sembrare controverso ma un grande sviluppatore non ti darà sempre le risposte. Questo potrebbe sembrare in contraddizione con #2 e #3, tuttavia questo non è inteso a tenere qualcosa su di te. Un grande sviluppatore è qualcuno che può darti quel tanto che basta perché tu possa risolverlo da solo. Queste piccole sfide aiutano a renderti uno sviluppatore migliore e ti permettono di capire quali cose potresti aver bisogno di imparare di più.
6. Capiscono che il “nuovo splendore” non è la soluzione per tutto
Non per dire che questi sviluppatori non stanno controllando nuovi strumenti e linguaggi (possono fare quello che vogliono a questo proposito) ma capiscono che i nuovi strumenti non risolvono magicamente ogni problema.
James Hickey 🇨🇦👨💻@jamesmh_devSiamo ossessionati dall’imparare più strumenti e linguaggi!
Se la tua architettura è sbagliata, se stai risolvendo i problemi sbagliati, se il tuo cliente non capisce quando cerchi di spiegare le cose… allora gli strumenti scintillanti non aiutano.
E questi sono fondamentali per il successo del tuo business!18:54 PM – 27 Giu 20197. Sanno che non importa quando programmi e quale tema di editor usi
Stereotipi di programmatori a parte, perché l’ora in cui programmi dovrebbe davvero fare la differenza? Programma nel cuore della notte se vuoi/ti è permesso dall’azienda e non farlo se non vuoi. L’unica ragione per cui il tempo dovrebbe entrare in gioco è quando stai programmando da troppo tempo e non hai dormito! L’ora effettiva del giorno non ha importanza a meno che non influisca sul tuo team (ad esempio, lavori a mezzanotte programmando per evitare intenzionalmente tutti).
Lo stesso vale per i temi degli editor, perché un tema scuro ti renderebbe effettivamente migliore? Ti do un indizio, non lo fa. I temi scuri hanno il loro scopo, ma sicuramente non è questo.
8. Non vanno fuori del loro modo di fare qualcosa di più complesso
Questo potrebbe essere ovvio ma c’era un altro thread su Twitter la settimana precedente che parlava di programmare qualcosa di complesso come se fosse una buona cosa da fare. Quando è stata una buona cosa rendere il nostro lavoro e quello dei nostri colleghi più difficile?
Ci sono sicuramente delle volte che possiamo finire per programmare una soluzione complessa come se forse non comprendessimo (ancora) completamente il problema. Questo può accadere al nostro primo tentativo di programmare la soluzione, è allora che di solito si sente parlare di refactoring del codice o di non essere “orgogliosi” del codice che hanno scritto la settimana/mese/anno precedente.
9. Non pensano al “me” in “team”
A meno che non abbiano veramente scritto ogni linea di codice sorgente da soli dal compilatore fino a tutta la logica di business, sanno che è stato un lavoro di squadra. Non cercano di togliere i riflettori a nessun altro del team – evidenziano tutti i contributi che hanno reso un progetto un successo.
Quando un progetto va male, non vanno avanti e incolpano tutti. I progetti di squadra falliscono come squadra, non come individuo (a meno di intenti malevoli). Aiutano l’intera squadra ad imparare dagli errori e ad evitare che si ripetano.
10. Vuoi davvero lavorare con loro
Alla fine della giornata, questi grandi sviluppatori sono persone con cui ti piace davvero lavorare. Ti presenti al lavoro (o in remoto) e sei felice di lavorare con una squadra così fantastica.
Se conosci qualche sviluppatore che suona così, digli quanto sono fantastici e quanto sei felice di lavorare con loro. 🙂