Voglio diventare... un Senior Software Developer

  • Di
  • 2021-09-14 - 7 minuti
banner

Questa settimana diamo spazio ad un altro professionista del settore: Marco Breveglieri (qui il link al suo blog!) ci racconterà cosa vuol dire essere un Senior Software Developer e quali sono le esperienze che ha maturato finora, anche grazie al canale Twitch il cui nome è tutto un programma: Compila Quindi Va trasmette sessioni di live coding settimanali a tema programmazione web e non!

Descriviti in 100 parole

Se l’abilità di Neo era quella di “vedere” il codice, il mio compito è quello di scriverlo, o almeno ci provo!

Mi definisco in generale uno “sviluppatore software”, nel senso che scrivendo codice cerco di dare vita ad applicazioni vere e proprie, sia per ambienti desktop o per dispositivi mobili, fino ad arrivare a servizi che girano in background.

In ambito Web, lavoro sia sulla parte relativa al backend che al frontend di siti e applicazioni Web. Quello che imparo da queste esperienze, cerco di divulgarlo a livello professionale con corsi di formazione o, più recentemente, partecipando a community e facendo qualche “live”.

In cosa consiste il ruolo di Senior Software Developer?

Partiamo dall’appellativo “Senior”: principalmente, serve a cercare di essere pagati di più, più di un Junior appunto… Scherzo! 😉

In realtà sta a indicare che sono un po’ più vecchio… No, scherzo ancora (anche se un pochino è vero). 😁

Semplicemente, cerco ogni giorno di mettere a disposizione le mie conoscenze nell’ambito dello sviluppo software e del coding, nella speranza che 25 anni di attività vogliano effettivamente dire qualcosa.

Oltre a lavorare su progetti specifici della mia azienda (ABLS Team), mi offro anche come consulente esterno e sviluppatore “on demand” presso clienti, in outsourcing, entrando a far parte di altri team di sviluppo (di cui poi mi sento comunque parte integrante).

Per consolidare le mie conoscenze e abilità poi, mi offro per corsi di formazione, organizzati in prima persona o tramite enti per fornire a chi richiede tutte le conoscenze indispensabili per poter fare la mia stessa attività. Credo fortemente che sarebbe bello se ci fosse almeno un developer in ogni tipo di azienda!

Qual è la soft skill più importante che deve possedere un Senior Software Developer?

C’è una abilità, credo, che uno sviluppatore debba necessariamente avere, in quantità proporzionale alla propria maturità, senza però che questa lo faccia passare al Lato Oscuro di ogni “developer”, ovvero la cosiddetta Sindrome dell’Impostore, la cui caratteristica fondamentale è l’umiltà.

Non so se sia il termine adatto, ma piuttosto che farsi sottomettere in ogni occasione dalle persone che abbiamo di fronte, è bene avere la capacità di confrontarsi con chiunque in merito a questioni tecniche esponendo con calma e tranquillità il proprio parere, soprattutto motivandolo, senza sovrastare l’altro.

Questo a mio avviso crea le condizioni affinché il proprio parere venga raccolto senza pregiudizi che non siano tecnici, ponendo l’interlocutore in condizioni di assorbirlo ma anche, se vuole, di contestarlo.

In breve, si escludono tutte quelle intollerabili situazioni (quasi simili a quelle che si creano nel rapporto tra adolescenti e genitori) del “sono più vecchio (quindi più esperto) di te”, che possono fare anche molto male quando alla fine di una lunga discussione si scopre, dall’alto della propria “seniority”, di avere torto marcio. 😅

Racconta il tuo più grande fallimento da quando lavori nel settore, che però ti ha reso ciò che sei.

Potrei citarne più di uno, ma in realtà tutti i fallimenti di cui ho memoria avevano una radice comune: l’assenza di una precisa organizzazione dell’attività di sviluppo, una abilità che solo con il tempo e l’esperienza si può maturare, e su cui non ho mai smesso di lavorare perché credo che in quell’ambito non riuscirò mai a raggiungere la perfezione.

Mi riferiscoin particolare a tutte quelle abilità che girano attorno a una corretta pianificazione e stima delle complessità, al dare il giusto equilibrio tra precisione nella realizzazione tecnica (soprattutto nella scrittura del codice) che va controbilanciata con il rilascio della funzionalità richiesta (dove spesso questo aspetto non è visibile).

Io purtroppo sono un perfezionista, e questo da un lato tende ad allungare i tempi e ad aumentare l’impegno necessario a raggiungere un risultato; per contro, essendo sicuro dei miei mezzi, ottimista e modestamente capace in alcuni ambiti, riesco nella maggior parte dei casi a uscirne portando a casa entrambe le cose, ma non senza correre pericoli.

Come fare per diventare Senior Software Developer

La mia filosofia assomiglia un pochino a quella di Auguste Gusteau, lo chef di Ratatouille, riguardo la cucina: “chiunque può programmare”.

Quando leggo questa domanda all’interno di gruppi e forum di discussione, spesso vedo il discorso vagare tra diversi estremi: chi suggerisce come imprescindibile un percorso universitario, chi lo sconsiglia e suggerisce basti un corso di pochi giorni, chi invece ritiene servano mesi ma solo per una conoscenza di base, chi distoglie l’interessato dal suo proposito tracciando scenari infausti, paghe da fame e altri eventi tragici.

A mio avviso, è impossibile dare una risposta precisa, soprattutto quando non si conosce la persona che si ha davanti, quanto è convinto del percorso che vuole intraprendere e cosa è disposto a fare per raggiungere i propri obiettivi.

Èovvio che l’esperienza pluriennale conta, ma io penso che, usando determinati linguaggi e tecnologie, lo sforzo necessario per poter raggiungere un risultato proficuo, ossia produrre qualcosa che abbia un valore (per sé, per la propria azienda o per un ipotetico cliente) in termini di software non sia così elevato una volta che si sono apprese le tecniche fondamentali, purché si abbia un certo talento personale e un interesse reale verso questa disciplina.

Parlando di successi, qual è il tuo prossimo obiettivo?

Da quando ho iniziato a scrivere codice, ho sempre pensato che avrei finito i miei giorni facendo questa attività. Tralasciando discorsi macabri e fatalisti, diciamo che la programmazione riserva ogni giorno sempre nuove sorprese: nascono continuamente nuove tecnologie, framework, librerie, strumenti e metodologie che richiedono un aggiornamento costante.

Detto questo, da qui ai prossimi tre anni vedo me stesso ricoprire sempre il medesimo ruolo, ma non come una nostalgica cozza incrostata che si aggrappa passivamente al proprio scoglio, bensì come un professionista che giorno dopo giorno migliora i propri difetti, consolida le proprie conoscenze e riesce ad essere un Senior Developer sempre più “Senior” e sempre più “Developer”. 😄

Oggi come oggi, mi accontenterei di riuscire ad avere più tempo di fare un maggior numero di live sul mio canale Twitch (https://www.twitch.tv/compilaquindiva), possibilmente con meno imbarazzo e più spigliatezza. 😉

Conosci il tema gender gap in ambito STEM? Se sì, cosa puoi fare nel tuo piccolo per combattere questo problema?

Sin dai tempi scolastici, scegliendo un percorso specificatamente orientato al mio attuale lavoro, proseguendo poi nei primi incarichi come dipendente, mi sono trovato in luoghi dove la presenza maschile era in netta prevalenza. Parliamo degli anni attorno al 2000.

Oggi lo scenario mi sembra stia cambiando, o quantomeno vedo un crescente coinvolgimento del genere femminile, specie nel ramo della programmazione front-end, ed è ironico perché vedendo alcune “stranezze” del linguaggio JavaScript nello specifico, viene naturale pensare che “solo un uomo possa aver creato una robaccia del genere”.

Ovviamente la mia esperienza aneddotica non è un dato considerabile come campione, e se questo discorso emerge ancora, allora do per scontato che il problema sussista e abbia sempre più bisogno di una soluzione urgente.

Ho iniziato recentemente a interessarmi alle questioni legate al genere in senso generale e non necessariamente legato all’ambito STEM, e credo che non vi sia assolutamente nulla di precluso a un genere o un altro, tantomeno nell’ambito informatico, e che le capacità di ciascuna persona prescindano completamente da esso.

La prima cosa che intendo fare per combattere questo problema è innanzitutto informarmi su ciò che evidentemente ancora non conosco a riguardo del fenomeno; in seguito, in base a questo, credo sia giusto promuovere e condividere tutto ciò che possa essere utile per mitigarlo e portarlo progressivamente allannullamento, poiché credo che nell’ambito dello sviluppo software e in tutto ciò che vi ruota attorno vi sia bisogno dell’apporto di chiunque, e tanto maggiore è la diversificazione in termini di genere, pensiero e talento, meglio è!

Un enorme grazie a Marco per il suo tempo e per aver condiviso le sue esperienze!

Post correlati

Partners

Community, aziende e persone che supportano attivamente il blog

Logo di Codemotion
Logo di GrUSP
Logo di Python Milano
Logo di Schrodinger Hat
Logo di Python Biella Group
Logo di Fuzzy Brains
Logo di Django Girls
Logo di Improove
Logo del libro open source

Iscriviti alla newsletter

Per non perderti gli ultimi articoli e per vincere biglietti e gadget TheRedCode

Riceverai una volta al mese (o anche meno) gli articoli più interessanti pubblicati sul blog, e potrai provare a vincere un biglietto per uno dei prossimi eventi!

Andiamo!