Praticamente ogni sviluppatore o programmatore di software ha incontrato del codice scritto da qualcun altro che prova il cliché “chiunque può scrivere codice”. Ma avete mai incontrato il presunto mitico “sviluppatore 10x”? Essere uno sviluppatore 10x ha meno a che fare con l’eccellere nello scrivere codice e più a che fare con il sapere esattamente quale codice scrivere.
Molti di noi hanno iniziato a programmare per uno scopo specifico. Per esempio, ho iniziato a scrivere codice per eseguire automaticamente giochi MUD basati sul testo per me mentre dormivo e a scuola. A 13 anni ero uno script kiddie e non lo sapevo nemmeno. Potevo avere un’idea, scrivere il codice e testarlo – tutto da solo.
Lo sviluppo del software è difficile quando lo facciamo per qualcun altro perché spesso ci manca lo stesso tipo di motivazione ed eccitazione che ci guida quando perseguiamo la nostra visione. Non siamo noi a proporre le idee, passiamo ore in riunioni cercando di capirle, e poi passiamo la maggior parte del tempo a modificare il codice di qualcun altro – o almeno a contribuire ad esso. Questo può portare ad un livello di distacco che diminuisce la produttività.
Per essere uno sviluppatore 10x, devi imparare ad eccellere in questo ambiente o addirittura iniziare la tua azienda per guidare la carica.
Tutti possono essere sviluppatori 10x, almeno per una parte del giorno, ogni giorno. Credo che ci siano tre cose su cui tutti gli sviluppatori dovrebbero concentrarsi per diventare più produttivi e un miglior membro del team.
- Le 3 cose
- Conoscere il Cosa
- Comprendere il perché
- Sapere quando fare cosa
- Mastering the What, Why & When to Become a 10x Developer
- Start with Why
- Sei un buon sviluppatore & Eccellente risolutore di problemi, non il miglior programmatore
- Il quando è nel tuo istinto, o non lo è
- Sapere cosa fare e cosa chiedere
- Conclusione
Le 3 cose
Per essere uno sviluppatore 10x, hai bisogno di diversi anni di esperienza di lavoro con qualsiasi linguaggio di programmazione e set di strumenti tu usi. Devi essere bravo a risolvere problemi e a scrivere codice; questo è un dato di fatto.
È importante capire che il modo in cui scrivi codice non è ciò che ti rende uno sviluppatore 10x, un ingegnere 10x, un programmatore 10x, o come vuoi chiamarlo.
Conosci le 5 W: “Chi, cosa, dove, perché, quando”. Mentre tutte queste si applicano allo sviluppo del software, voglio concentrarmi sulle tre caratteristiche che definiscono gli sviluppatori 10x.Queste tre cose differenziano lo sviluppatore medio dallo sviluppatore 10x:
- Cosa
- Perché
- Quando
Conoscere il Cosa
Nel mondo aziendale, gli sviluppatori tendono a lavorare su progetti per cui non hanno molta passione e non capiscono. Per la maggior parte degli sviluppatori, questo non è un grosso problema, finché ricevono ottime indicazioni e le aspettative sono chiaramente definite.
Il problema è che agli sviluppatori di solito non vengono date istruzioni adeguate. Invece, usiamo questa cosa chiamata “sviluppo agile”. Riceviamo una nota Post-it con qualche parola sopra e ci si aspetta di sapere esattamente cosa deve essere fatto.
Lo sviluppo del software è tutta una questione di comunicazione. Gli sviluppatori hanno bisogno di sapere su cosa stiamo lavorando, quali problemi stiamo cercando di risolvere ed esattamente come deve essere il risultato. Più ne sappiamo in anticipo, più velocemente possiamo andare. Soprattutto, conoscere l’intento del lavoro e ciò che renderà il lavoro un successo è cruciale per il successo.
I cattivi sviluppatori passeranno ore ad andare nella direzione sbagliata su un progetto senza fare domande. Sono quelli che io chiamo sviluppatori -10x perché non ottengono nulla e sprecano il tempo di tutti i loro colleghi. Quasi tutti hanno incontrato alcuni di questi sviluppatori, e può essere frustrante lavorare con loro. E bisogna stare attenti a non prendere le loro abitudini!
Alcuni sviluppatori lavorano bene anche senza molti dettagli. Usano una grande quantità di creatività e fanno le domande giuste. Questi unicorni sono probabilmente sviluppatori 10x. Sanno come capire le cose e spesso alzano il livello dell’intera squadra che lavora intorno a loro.
La linea di fondo è che gli sviluppatori 10x sono davvero bravi a determinare rapidamente cosa deve essere realizzato e quali domande porre.
Comprendere il perché
Forse il più grande ostacolo dello sviluppo software è capire il perché. Se non capisci il problema che stai cercando di risolvere, è davvero difficile risolverlo.
Perché stavo mettendo insieme script di terminale per giocare al mio gioco MUD mentre dormivo ed ero a scuola? Volevo raggiungere il livello più alto nel gioco, naturalmente. Sapevo esattamente perché, e stavo facendo tutto il possibile per farlo accadere.
Lo stesso approccio si applica a qualsiasi progetto di sviluppo software. Gli sviluppatori che capiscono il settore verticale in cui si trovano e i problemi che stanno cercando di risolvere saranno molto più produttivi. Sapere perché e capire la verticale aiuta anche a prevenire il lavoro inutile, liberando tempo per concentrarsi sulle cose che renderanno un prodotto o una caratteristica più preziosi per gli utenti.
Il problema è che sapere perché non è abbastanza. Devi avere una passione per il problema e capirlo dentro e fuori per essere veramente uno sviluppatore 10x. Credo che la maggior parte degli sviluppatori 10x siano anche persone di prodotto nel cuore, dotati di una buona visione del prodotto.
Sapere quando fare cosa
Il tempismo è importante per i progetti di sviluppo software. Scegliere in quale ordine lavorare sugli elementi nel tuo back log è un compito apparentemente facile che è davvero critico. Lavorate su qualcosa che può aiutare la vostra azienda a ottenere un nuovo cliente o a ripulire un vecchio debito tecnico?
Come team di sviluppo, dobbiamo costantemente destreggiarci tra ciò su cui lavoriamo e quando lo facciamo.
Tutti i lavori di sviluppo del software rientrano in queste tre categorie:
- Cose che dobbiamo fare
- Cose che dobbiamo fare
- Cose che vogliamo fare
Dobbiamo fare questa nuova funzione per un cliente. Dobbiamo correggere dei bug nel nostro software. Vogliamo lavorare sul debito tecnico o su qualche nuova caratteristica del prodotto. È sempre un atto di bilanciamento.
Dovremmo fare elementi di lavoro da tutti e tre questi bucket contemporaneamente. Non possiamo dedicare tutto il nostro tempo al debito tecnico, ma forse dovremmo dedicarvi una piccola percentuale del nostro tempo.
Gli sviluppatori devono anche sapere quando costruire architetture complesse nel loro codice. Io preferisco mantenere il codice il più semplice possibile finché non sono costretto ad aggiungere un’architettura di cui non posso vivere senza.
Gli sviluppatori devono anche sapere quando evitare di inseguire gli oggetti luccicanti. Tendono a voler giocare con nuovi strumenti e tecnologie, ma queste soluzioni possono solo rallentare un progetto piuttosto che aiutarlo a realizzarlo più velocemente.
Gli sviluppatori 10x sono bravi a destreggiarsi tra le priorità e a capire quando investire tempo in architetture piuttosto che spaghetti di codice per far funzionare qualcosa. Ricordate, ai vostri utenti non interessa come funziona il vostro software o quanto sia sofisticata l’architettura. Vogliono solo che funzioni. Gli sviluppatori 10x lo capiscono.
Mastering the What, Why & When to Become a 10x Developer
Ora parliamo di come puoi padroneggiare le importanti abilità di What, Why, e When per diventare uno sviluppatore 10x.
Start with Why
Il primo passo per diventare uno sviluppatore 10x è diventare appassionati del software e dei problemi che stai cercando di risolvere. Devi capire il problema dentro e fuori. Questo inizia con l’essere entusiasti dell’azienda per cui lavorate e della loro missione come azienda.
Non fate semplicemente fare un pulsante per fare qualcosa perché è quello che qualcuno ha detto di fare. Sforzatevi di capire il perché ad un livello più alto. Sarai molto più prezioso per il tuo team e la tua azienda se rimani concentrato sul perché.
Sei un buon sviluppatore & Eccellente risolutore di problemi, non il miglior programmatore
Mi descriverei più come uno sviluppatore hacker. Sono il tipo che può mettere insieme del brutto codice per risolvere quasi tutti i problemi molto rapidamente. Il mio codice è raramente bello, ma funziona. E questo è ciò che conta.
Non è necessario scrivere codice perfettamente architettato con test unitari per essere uno sviluppatore 10x. Devi sapere quando e quando non fare queste cose per essere uno sviluppatore 10x.
Uno sviluppatore 10x è bravo a risolvere problemi specifici e a soddisfare i bisogni del business con il codice. La cosa più intelligente che puoi fare è sapere fino a che punto portare un progetto prima di passarlo a qualcun altro che potrebbe essere più bravo a finalizzare alcune architetture e altri piccoli dettagli.
Il quando è nel tuo istinto, o non lo è
Sapere quando costruire un’architettura complessa piuttosto che hackerare qualcosa insieme viene con l’esperienza e lo sviluppo dei tuoi sensi di ragno. O hai questa sensazione viscerale o non ce l’hai.
Alcuni degli sviluppatori più intelligenti con cui ho lavorato sono stati i peggiori nel dare priorità ai modelli e alle architetture rispetto alla funzionalità e alle scadenze. Volevano sovra-ingegnerizzare e riscrivere le cose più e più volte, cercando di ottenere “codice perfetto” piuttosto che “codice spedibile”.
Gli sviluppatori 10x devono usare la loro esperienza e il loro istinto per sapere quando concentrarsi sull’architettura e la perfezione piuttosto che fare qualcosa.
Sapere cosa fare e cosa chiedere
Tanta parte dello sviluppo del software si riduce alle capacità di comunicazione. Purtroppo, molte delle note e dei requisiti che riceviamo per i lavori non sono molto dettagliati. Uno sviluppatore 10x sa come leggerli, applicare il “perché” che conosce del business e fare domande pertinenti.
I migliori sviluppatori sanno quanto tempo passare su qualcosa prima di chiedere aiuto. Sanno anche quali domande fare per chiarire cosa deve essere fatto per portare avanti il progetto.
Conclusione
Scrivo codice da più di 15 anni. Direi che sono uno sviluppatore 10x, o almeno posso esserlo. So cosa sono bravo a fare. Quando faccio le cose in cui sono bravo, posso ottenere una seria quantità di lavoro fatto velocemente.
Se volete prototipare un nuovo prodotto, sono il vostro uomo. Se avete bisogno di aiuto con Angular, React o qualche altro sviluppo front-end, non sono sicuramente il vostro uomo. Sarei uno sviluppatore -10x in quei compiti.
Gli sviluppatori 10x non sono un mito. Esistono davvero. Molto probabilmente sono dev manager, architetti, sviluppatori principali o fondatori di società. Se non lo sono, probabilmente dovrebbero esserlo. Ho finito per essere il fondatore di un’azienda, per ben due volte.
Inoltre, nessuno sarà uno sviluppatore 10x ogni giorno, per tutto il giorno. Non abbiamo l’energia o la concentrazione per lavorare a quel ritmo ogni giorno. Non siamo robot.
Se capisci il “cosa, perché e quando” dello sviluppo del software, puoi essere più produttivo e un membro migliore del team – forse anche uno sviluppatore 10x per qualche ora al giorno. E questo può fare una grande differenza.
Mentre sei qui e cerchi come migliorare, controlla il nostro strumento di analisi dinamica del codice, Stackify Prefix. È gratuito e ti aiuterà a scrivere un codice migliore.
Mentre sei qui e cerchi di migliorare.