Quali sono le fasi tipiche della carriera di un ingegnere del software?

  • Rookie: 0 anni di esperienza. Fa quello che gli viene detto e cerca di non fare troppi errori. Si sente un impostore che non potrà mai padroneggiare l'enorme base di codice, e aspetta di essere licenziato ogni giorno.
  • Nuovo arrivato: 1-2 anni di esperienza. Fa quello che gli viene detto e di solito non sembra troppo stupido. A volte si dà grandi arie su quanto sia più intelligente dello staff più anziano, ma commette comunque errori da principiante abbastanza spesso da mantenerli umili.
  • Giovane: 2-8 anni di esperienza. Se sono stati davvero intelligenti, hanno imparato alcune cose, e sono generalmente capaci di una ragionevole indipendenza sui progetti. Se non sono stati molto intelligenti, hanno ancora bisogno di molta supervisione.
  • Disoccupato: crisi aziendale. Licenziati con tutta la loro squadra. Non se l'aspettavano. Nonostante sia la persona più impiegabile che conoscono, ci vogliono tre mesi per trovare un nuovo lavoro, perché nessuno assume durante una crisi aziendale.
  • Esperto: 8-15 anni di esperienza. Generalmente capace di un ragionevole lavoro indipendente senza drammi. È spesso a questo punto della carriera che il burnout diventa una seria possibilità. Ogni sviluppatore ha un numero fisso di volte per sbattere la testa contro il muro a causa di orari impossibili, colleghi irascibili o capi disumani. Alcuni sviluppatori hanno la testa più grossa di altri. Alcuni sono più fortunati di altri. Ma alla fine, chiunque può cedere. Alcuni sviluppatori hanno problemi di salute a causa dello stress e del burnout e devono smettere. Altri continuano a venire al lavoro, ma sono così esausti e frustrati che non sono più adatti a progetti seri. Non credo che le persone migliorino davvero dal burnout. I loro sintomi peggiori possono diminuire, ma perdono la spinta che avevano prima.
  • Disoccupati: crisi aziendale. Si scopre che un datore di lavoro può assumere 2-3 novellini per la stessa quantità di denaro. Molte delle offerte di lavoro che ricevono devono essere rifiutate. Sto parlando di offerte al ribasso da parte di manager posseduti dal demonio, ovvie marce della morte in buchi infernali distopici, che lo sviluppatore a metà carriera può ora riconoscere e diagnosticare in un secondo.
  • Vecchio: 15-20 anni di esperienza. Ora, un vecchio in ingegneria meccanica o civile ha 60 anni, e ha 40 anni di esperienza. Ma questo è software, quindi anche se questo sviluppatore ha ancora dei figli alle elementari, sono vecchi. Un commentatore l'ha messa così. "Se avessi avuto qualsiasi altra carriera, ora sarei prezioso". Il Vecchio può raccontare storie che fanno ridere i novellini, su come era prima che avessimo... Tutti i linguaggi di programmazione che questa persona ha imparato al college, e tutti gli O/S che i computer a scuola usavano sono ormai storia, quindi molte delle sue esperienze più facilmente descritte non sono impressionanti per un manager di linea che si è laureato solo 10 anni fa. Naturalmente, il vecchio sa molto di più sul business dello sviluppo del software di quanto ne sappia il manager, ma non è per questo che sono stati assunti. Infatti, il giovane manager li odia per questo. È così esasperante quando le persone che lavorano per te sono in grado di chiamare gli errori del tuo manager principiante con così tanto anticipo. Questi ragazzi devono andarsene.
  • Disoccupati: Disadattamento della cultura. Il capo apprezza solo i dipendenti che lavorano 14 ore al giorno e che sfornano codice di merda velocemente, ma il Vecchio sa che i clienti hanno bisogno di codice che funzioni più di quanto abbiano bisogno di funzioni implementate a metà. Questo ti fa licenziare per "non-performance". Ci vuole molto più tempo per trovare lavoro quando la tua esperienza più facilmente descritta (linguaggio di programmazione, esperienza O/S) non è più rilevante nel mercato del lavoro. Lo stipendio come sviluppatore di solito si ferma a questo punto.
  • Codificatore anziano: 20+ anni di esperienza. Nessuno sa cosa succede qui, perché praticamente tutti gli ingegneri del software sono più giovani di questo. Alcuni sviluppatori vanno avanti verso carriere manageriali. Ma ad altri piace troppo il codice. Alcune persone che ce la fanno qui passano il resto della loro carriera a scrivere libri, fare conferenze, ecc. Alcuni diventano consulenti, facendo progetti a breve termine che coinvolgono qualsiasi parte del ciclo di codifica (di solito la parte di codifica) che trovano divertente. Alcuni di loro trovano una libreria di codice da sostenere a scopo di lucro. Troppi di loro escono dal software, comprano una piccola attività, come una panetteria senza glutine, e spariscono.
  • Senza lavoro: tra un lavoro e l'altro. Puoi guadagnare il doppio di quello che sei abituato a fare quando fai consulenza, ma stai lavorando solo la metà del tempo, quindi il tuo stipendio annuale rimane in stallo.
  • Pensionato. Se colpisci la startup giusta, forse hai abbastanza risparmiato per andare in pensione a 45 anni. Forse a 55 anni. Forse a 70 anni. Se sei ricco, ti trasferisci nella regione vinicola dell'Oregon occidentale, costruisci una casa di cedro di 5.000 piedi quadrati e una cantina, e installi un armadio pieno di server per il tuo hobby (l'ho visto davvero). Se sei meno fortunato, smetti di trovare lavoro a 55 anni. Dopo aver bussato per 10 anni, ti trasferisci in una residenza assistita con gli altri vecchi. Mentre i pronipoti degli ingegneri civili guidano ancora sui ponti che hanno costruito, ogni linea di codice che hai scritto non è più in uso. Sei meno di un ricordo, anche per le persone che ti conoscevano. In questo modo, sei come la maggior parte delle persone nella casa di riposo con te. Almeno non sei morto sul lavoro per eccesso di lavoro.