C'è un futuro oltre la scrittura di un ottimo codice?
Pubblicato: 2022-03-10Facciamo un esercizio veloce. Supponiamo che tu abbia lavorato professionalmente come sviluppatore per più di cinque anni. Hai acquisito esperienza pratica attraverso dozzine di progetti e hai mantenuto affilate le tue competenze imparando nuove tecniche, strumenti e framework. Contribuisci a diverse librerie, effettua regolarmente il refactoring del codice che scrivi e scambia periodicamente le revisioni del codice con i tuoi colleghi.
Ma poi qualcuno si avvicina e ti fa quella domanda che non hai avuto la possibilità di capire: dove ti vedi, tra dieci anni?
Potresti essere preoccupato per l'idea che se continui sulla stessa strada, sarai semplicemente uno sviluppatore più anziano che codifica un po' meglio e un po' più velocemente. Alcuni sviluppatori sono contenti di questo pensiero e semplicemente non vedono l'ora di continuare su questa strada. Ma altri potrebbero rendersi conto che queste montagne russe di lezioni e crescita che hai attraversato stanno rapidamente passando alla modalità di controllo automatico della velocità.
Una volta che senti di avere il controllo completo del tuo ruolo di sviluppatore, inizi a sentire il desiderio di fare di più. Non più la stessa cosa, ma invece una maggiore crescita personale. Forse qualcosa di diverso.
Negli ultimi anni della mia carriera, ho cercato risposte. Ho avuto la possibilità di lavorare con (e imparare da) molti sviluppatori di successo che sono riusciti a passare a ruoli altamente influenti in cui traggono il massimo dal loro background tecnico. Ognuno di loro ha esplorato un percorso diverso in cui è stato in grado di compiere una transizione organica, basata su un equilibrio tra le proprie competenze fondamentali e le competenze complementari.
Dove possiamo andare da qui?
Ci sono alcuni nuovi percorsi che possiamo esplorare, che possono costringerci a crescere oltre le nostre zone di comfort e allo stesso tempo beneficiare delle competenze che abbiamo lavorato così duramente per coltivare.
Come sviluppatori, la maggior parte degli articoli che leggiamo, i libri di programmazione e persino i consigli dei nostri colleghi, sono tutti fatti su misura per aiutarci a concentrarci solo sulla scrittura di codice migliore. A parte questo, non ci viene insegnato come lavorare meglio o, per dirla in una prospettiva più filosofica, come evolvere.
Di solito non abbiamo idea di cosa viene dopo aver raggiunto gli obiettivi che ci siamo prefissati quando abbiamo iniziato la nostra carriera o se c'è anche qualcosa che vogliamo fare oltre a programmare otto ore al giorno, per il resto della nostra vita. È comune persino sottovalutare il nostro possibile contributo al team se dovessimo fare qualcosa di diverso dalla scrittura di codice nel prossimo futuro. Non siamo sicuri di come possiamo avere un impatto maggiore, anche se la nostra prospettiva e le nostre capacità sono sicuramente necessarie in posizioni più influenti.
Ascolta l'industria
Nel 2008, quando ho iniziato la mia carriera come sviluppatore frontend, non c'era persona al mondo che non avesse sentito parlare di Mark Zuckerberg, il giovane programmatore che è diventato milionario cambiando il modo in cui le persone comunicano. I millennial iniziarono a romanticizzare l'idea di arricchirsi legalmente indossando una felpa con cappuccio. Improvvisamente, quasi tutte le persone della mia generazione volevano diventare sviluppatori.
Ora, più di un decennio dopo, stiamo iniziando a sentire il vero impatto di questo boom di programmatori. Attraverso lo Stack Overflow Survey di quest'anno, abbiamo appreso che più di due terzi degli intervistati ha meno di dieci anni di esperienza di codifica professionale.
Possiamo vedere chiaramente che gli sviluppatori esperti con capacità di leadership sono scarsi, quindi ora le aziende devono trovare modi creativi per prenotare i loro migliori talenti in modo da poter supervisionare più sviluppatori junior e mantenere la qualità del lavoro. Questo crea una struttura di leadership organica all'interno di team in crescita.
Il settore continua a crescere a un ritmo rapido, così come i nostri ruoli di sviluppatori. È diventato più comune trovare direttori e manager che hanno iniziato come programmatori e le aziende stanno ora aprendo più posizioni di leadership che richiedono background di sviluppo.
È sicuro dire che, anche se la programmazione è stata considerata come il prossimo lavoro da colletto blu, il ruolo dello sviluppatore sta crescendo in posizioni altamente influenti all'interno delle organizzazioni. Ma non esiste una tabella di marcia scritta o una formula comprovata che ci guidi attraverso quella transizione.
Quali sono alcune delle nostre opzioni?
È arrivato un momento della mia carriera in cui mi è stata posta la temuta domanda sul futuro che immagino per me stesso. Non avevo risposta. In effetti, ha innescato ancora più domande che non mi erano passate per la mente.
Stavo già lavorando come frontend lead, quindi mi erano state assegnate sempre più responsabilità oltre alla scrittura del codice, il che mi ha fatto pensare a un possibile futuro in cui probabilmente non avrei programmato. La possibilità di avere un maggiore impatto su diversi progetti era decisamente allettante.
Così ho deciso di ricercare quali opzioni potrebbero essere interessanti per il mio futuro. Ho esaminato il percorso intrapreso da alcuni colleghi in cui erano passati con successo dal ruolo di sviluppatori a posizioni importanti all'interno dell'azienda. La maggior parte dei casi consisteva nel fare piccoli passi ed essere nel posto giusto al momento giusto. Ma nel complesso, hanno finito per coinvolgersi tutti in questi tre gruppi principali di attività:
- Gestione team e progetti
Guidare un gruppo di persone verso la grandezza sembra eccitante, ma non è facile. Come sviluppatori esperti, ci sono molte opzioni di crescita che coinvolgono la gestione di un gruppo di colleghi sviluppatori come un team o la gestione di progetti attraverso team multidisciplinari. Sebbene sia un'opzione altamente gratificante, richiede di allontanarsi dalla tastiera e imparare a delegare, il che può essere molto complicato per gli sviluppatori abituati a risolvere personalmente tutti i loro problemi.
Passare a una posizione in cui abbiamo un maggiore controllo del processo e del team coinvolto attorno ad esso molto probabilmente porterà alla necessità di sacrificare il controllo che siamo abituati ad avere quando si tratta di codice. - Tutoraggio e sviluppo del talento
Quanti boss hanno fantasticato di clonare i loro migliori sviluppatori? Nel mondo reale, è ancora improbabile che ciò accada, quindi i capi intelligenti fanno la cosa migliore: impostano processi in cui i programmatori più esperti possono trasmettere attivamente le loro conoscenze ai loro colleghi.
Dobbiamo tenere a mente che anche se alcuni sviluppatori lo fanno in modo naturale nella loro vita quotidiana, è sempre più efficace se agli sviluppatori senior viene assegnato un ruolo più formale in cui possono regolarmente allocare il loro tempo per lavorare sulla crescita del loro squadre. Questo può essere fatto con revisioni del codice, workshop e valutazioni individuali con alcuni colleghi. - Essere nel business della tecnologia
È molto comune sentire gli sviluppatori lamentarsi di come i progetti sono stati presentati o definiti quando sono stati venduti ai clienti. E, nella maggior parte dei casi, di solito è troppo tardi per lamentarsi.
Nella mia esperienza, mi sono trovato più felice a lavorare su progetti in cui gli sviluppatori erano stati coinvolti durante la vendita. È sempre fantastico avere un alleato logico che segnala potenziali problemi tecnici in una stanza in cui nessun altro aveva la più pallida idea.
I ruoli di consulenti e direttori tecnici sono cruciali nei grandi progetti digitali. Il coinvolgimento degli sviluppatori nei workshop dei clienti e la stesura della documentazione tecnica all'inizio di qualsiasi progetto possono potenzialmente cambiare le regole del gioco per il ciclo di vita di un progetto.
Lavorando su un nuovo set di strumenti
Diciamo che vogliamo continuare a crescere e vogliamo imbarcarci in un futuro in cui vogliamo fare molto di più della semplice scrittura di codice. Una volta che abbiamo un'idea di dove siamo diretti, è molto probabile che non siamo ancora preparati per il salto. Dopotutto, ci siamo appena concentrati sull'acquisizione di competenze che ci rendono sviluppatori migliori.
Una volta che ci rendiamo conto che abbiamo molto da imparare, dobbiamo iniziare a lavorare sul giusto insieme di abilità. Questa volta sarà diverso: non impareremo nuovi linguaggi, framework o librerie. Avremo bisogno di fare scorta di competenze che potrebbero non essere ritenute importanti in passato, ma che sono cruciali per compiere i prossimi passi in questi territori incerti.
Comunicazione
Per chiunque abbia un lavoro in qualsiasi azienda, questo sarebbe un gioco da ragazzi. La comunicazione è nota per essere il fulcro della collaborazione all'interno di qualsiasi tipo di organizzazione. Sfortunatamente, i programmatori hanno ricevuto un pass gratuito in quest'area per molti anni. La necessità di trovare individui logici, laboriosi e appassionati ci ha permesso di prosperare senza la necessità di avere davvero grandi capacità comunicative e persino di essere un gruppo socialmente molto imbarazzante.
Se abbiamo aspirazioni a lavorare con team e clienti diversi, è molto chiaro che dovremo lavorare per migliorare tutti gli aspetti della nostra comunicazione. Riunioni individuali, presentazioni ed e-mail importanti dovranno essere tutti accuratamente rifiniti d'ora in poi.
Proprietà
Avere una mentalità logica ha influenzato il modo in cui organizziamo il nostro lavoro. Come sviluppatori, di solito abbiamo un'idea in bianco e nero di dove inizia il nostro lavoro e dove finisce. Questo è positivo quando ci consente di avere una chiara comprensione del lavoro che deve essere svolto da noi, ma a volte ci impedisce di superare i nostri confini e lavorare al di fuori delle nostre zone di comfort.
Il primo ordine del giorno è iniziare ad assumerci la responsabilità di tutti gli aspetti del lavoro in cui siamo coinvolti. Sfuocando la linea che definisce dove finisce il lavoro di uno sviluppatore, siamo in grado di assumerci nuove responsabilità ed eventualmente passare a ruoli diversi.
Comando
Ovunque andremo nella nostra carriera, avremo bisogno che i nostri compagni di squadra si fidino di noi. Avremo bisogno che sappiano che stiamo andando nella giusta direzione, anche se per un momento non è del tutto chiaro.
Per raggiungere questo obiettivo, dovremo essere in grado di dimostrare le nostre conoscenze, dovremo essere fiduciosi nelle nostre decisioni e dovremo sicuramente essere in grado di riconoscere i nostri errori e imparare rapidamente da essi.
Questo non è un compito semplice e non è qualcosa che potrai spuntare da un elenco. Richiederà la nostra dedizione per tutto il tempo in cui desideriamo continuare a crescere al di fuori della bolla dello sviluppo.
Andare al lavoro
Una volta che siamo sicuri di voler fare un salto di qualità nella nostra carriera, dobbiamo iniziare a muoverci nella giusta direzione. Il primo passo sarebbe esplorare le opzioni, decidere quale percorso vuoi seguire e vedere come quel percorso si allinea con il tuo ruolo attuale.
La tua azienda offre uno spazio in cui potresti essere un mentore o un manager? Pensi che ci sia una possibilità di realizzarlo lì o pensi di dover continuare la tua crescita altrove? Queste sono solo alcune delle domande che ti devi porre e porteranno anche a una conversazione con alcuni dei tuoi compagni di squadra e manager.
Fare un passo in una nuova direzione richiederà il duro lavoro, avere una mente aperta ed essere abbastanza resilienti da fallire e riprovare, tutte le volte che è necessario.