Tu sei qui

Cosa significa essere un Full Stack Developer: intervista a Giovanni

Web development

Cosa significa essere un Full Stack Developer: intervista a Giovanni

Il nostro Giovanni Rocchini ci spiega chi è e cosa fa un full stack developer all'interno di un'azienda e perché ha scelto proprio questo lavoro, ogni giorno in cambiamento.

Vi siete mai chiesti cosa significhi essere un full stack developer? Chi meglio di Giovanni Rocchini, il nostro full stack developer, può spiegarlo?
Scopriamo insieme a lui di cosa si occupa questa figura professionale e quali sono gli aspetti più interessanti ed impegnativi di questo lavoro.

Che cosa vuol dire essere un full stack developer?

Un full stack developer è un programmatore che si occupa in contemporanea dei due aspetti principali di un sito web.

Un sito web, infatti, di solito presenta una parte di frontend e una di backend.
Il frontend è quello che vede il visitatore del sito, la rappresentazione dei contenuti nella pagina, i form, le gallerie fotografiche, ecc. 
Il backend è invece tutta la parte relativa all’implementazione delle business logic, ovvero le operazioni sui dati, l’elaborazione degli stessi, l’implementazione di funzionalità come prenotazioni, acquisti, ecc. 

In aziende di grandi dimensioni in genere le figure di frontend developer e backend developer sono separate. 
I full stack developer sono, invece, professionisti che uniscono le competenze di entrambe le figure e lavorano in contemporanea sui due aspetti.

In aggiunta a questo, un full stack developer deve avere anche competenze sulla parte sistemistica per poter configurare gli ambienti software ed interagire con le infrastrutture necessarie allo sviluppo, alla fruizione del prodotto ed al ciclo di vita dell’intero progetto (performance, sicurezza, backup, stabilità, ...).

Qual è il suo ruolo all’interno di un’agenzia di web marketing?

Il suo ruolo è quello di raccogliere le richieste del project manager e ricevere gli elaborati da parte di un grafico per trasformare il tutto nel prodotto richiesto. 
Il full stack developer deve quindi eseguire l’analisi preliminare dei requisiti insieme al project manager, elaborare la parte architetturale, funzionale e grafica al fine di ottenere un prodotto corrispondente alle aspettative del cliente e che possa, pertanto, rispondere correttamente alle esigenze della strategia di comunicazione definita.

In TourTools il mio ruolo si traduce nel dialogare spesso con Michaela per capire bene le esigenze e le specifiche che il progetto deve soddisfare e ancor più frequentemente con Silvia, insieme alla quale revisiono e controllo che quanto viene presentato lato frontend sia realizzato a regola d’arte, per garantire una user experience efficace.

Cosa significa essere un Full Stack Developer: intervista a Giovanni

 

Gli strumenti di un Full Stack Developer

Elaborazione grafica

Quali sono le competenze tecniche che deve avere questa figura? 

Il full stack developer è una figura poliedrica.
Come il programmatore frontend puro, deve utilizzare linguaggi specifici quali HTML, CSS e Javascript, integrando altri linguaggi, librerie e framework (come Angular, React o Foundation for sites). 

Per quanto riguarda le competenze backend si possono utilizzare vari linguaggi. 
Nel nostro caso utilizziamo PHP in modo preponderante, un linguaggio che permette l’elaborazione dei dati, la loro persistenza e la loro restituzione alla parte di presentazione del frontend. 

Ci sono ovviamente altre competenze richieste, come quelle di conoscere e saper gestire correttamente i database relazionali, conoscenze base dei protocolli di comunicazione web, ecc.

Infine, un full stack developer, deve avere competenze sistemistiche: il sito web viene installato su un server Linux che deve essere sicuro, aggiornato e performante.

Personalmente ho delle buone conoscenze su backend e frontend, ma le mie competenze come sistemista sono ancora da migliorare. Per fortuna in questo mi supporta (e sopporta) Daniele, che va a colmare le mie lacune e mi forma in tal senso.
Il gioco di squadra in Tourtools è davvero ben funzionante e parte fondamentale delle nostre giornate lavorative.

First solve the problem, then write the code

John Johnson

Quali sono invece le soft skills necessarie?

Il full stack developer sicuramente deve avere una mente analitica e con capacità di schematizzare le informazioni.
Sul mio desktop c’è una bellissima frase che sintetizza perfettamente questo concetto: “Think twice, code once” (“pensa due volte, scrivi il codice una volta"). 
È meglio perdere più tempo nella parte di analisi piuttosto che produrre qualcosa che debba essere rifatto in un secondo momento perché non è stato pensato per potersi evolvere seguendo le progressive esigenze del cliente.

Deve avere, inoltre, tanta passione per l’apprendimento: gli aggiornamenti nel nostro lavoro sono molto frequenti, le competenze da acquisire e gli argomenti da trattare sono molteplici, perciò è essenziale essere curiosi e pronti ad imparare ogni giorno.

Ancora, deve avere la capacità di dialogare con le molteplici figure professionali che intervengono sui differenti aspetti del suo lavoro. Gli attori in gioco non hanno ovviamente le 
sue stesse competenze e quindi bisogna saper spiegare le necessità ed i limiti al grafico, al project manager, al cliente ed al contempo ascoltare, capire e tradurre le argomentazioni e le esigenze di questi nel suo linguaggio per poter offrire le soluzioni tecniche corrispondenti.

Per mia grande fortuna, in TourTools lavoro con figure estremamente competenti e formate, e soprattutto aperte al confronto, pronti ad analizzare insieme tutti aspetti del progetto.
Silvia ed Elena riescono a trasformare gli obiettivi del sito in user interface (UI) decisamente efficaci, sia sul sito web che sui social.
Michaela mette tutta la sua competenza e la sua passione nell’ascoltare il cliente, capire le sue esigenze e trasformarle in obiettivi chiari, definiti e misurabili.
Daniele ha un’esperienza incredibilmente vasta in moltissimi settori, spaziando dalla programmazione alla sistemistica, dalla gestione del progetto alla grafica, senza mai trascurare il team nel suo complesso, motivando tutti noi in modo efficace e stimolante.

Quali sono i principali strumenti del tuo lavoro?

Quello che utilizziamo principalmente è un Integrated Development Environment (IDE - ambiente di sviluppo integrato), cioè un programma che ci permette di scrivere in modo agevole il codice nei vari linguaggi di programmazione e markup. 

Utilizziamo inoltre programmi grafici per fruire dei file che ci vengono forniti dai nostri colleghi che realizzano le UI.
Per uniformare il flusso di lavoro, tenere traccia dei task e coordinare tutti gli attori in gioco usiamo programmi come Trello, Slack, Drive e NextCloud.
Infine, per assicurarci che il risultato lato frontend sia perfetto utilizziamo vari browser, reali o simulati su macchine virtuali, per testare il nostro lavoro sui dispositivi più utilizzati.

In TourTools aggiungiamo a tutti questi strumenti il CMS Drupal (Content Management System). Drupal è, nella nostra realtà, il principale strumento che andiamo a configurare, e su cui sviluppiamo le soluzioni web per i nostri clienti.
Il livello di attenzione nello sviluppo e nello studio di questo CMS, fatto da me e Daniele, è tale da renderlo adatto a tutte le esigenze.
Non utilizziamo Drupal come un semplice CMS, ma come un framework di sviluppo per la maggior parte dei progetti, siano essi mirati a realtà piccole o grandi. Utilizziamo i suoi numerosi punti di forza per fornire uno strumento altamente performante, sicuro e stabile.

Quali sono le sfide più importanti che deve affrontare un full stack developer?

Ogni applicazione web presenta un grado di sfida più o meno elevato. Potrebbe essere una scadenza imminente, la complessità degli algoritmi da implementare o una sezione interattiva.

Ad esempio, un sito di prenotazione di parcheggi online come quello del nostro cliente ParkingMyCar, deve avere varie funzionalità complesse come un sistema di gestione multi-parcheggio, una gestione multi utenza e multi ruolo, configurazioni diverse per tariffe, ecc. La “sfida” in questo caso sta principalmente nello sviluppo del backend: bisogna assicurarsi che il pagamento vada a buon fine, che il parcheggio richiesto sia disponibile, che le giuste scontistiche siano applicate e così via.

In altre applicazioni web o siti web è invece richiesta una forte personalizzazione grafica, con molte animazioni e infografiche interattive, che rendono il lavoro di frontend predominante e perciò richiedono ottimizzazioni al fine di migliorare le performance necessarie per una user experience efficace.

Cosa ti ha spinto a scegliere questa professione?

Quando ho finito il terzo superiore ho capito che avrei voluto lavorare nel settore dell’informatica, nel settore del web o in quello della sicurezza informatica. 
Mi sono reso conto che il settore del web development mi interessava molto di più, perché dà la possibilità di scoprire ed esplorare cose nuove e differenti ogni giorno. 

Inoltre, non guasta il fatto che ancora oggi il mercato del lavoro richiede figure altamente specializzate nel nostro settore il che, quando si sceglie l’università (che per il nostro lavoro non è una condizione sine qua non), è una bella discriminante.

Quale aspetto ti piace di più del tuo lavoro?

Quello del full stack developer è un lavoro che permette di spaziare, sperimentare e studiare. Non mi piacerebbe un lavoro in cui sia obbligato a fare la stessa cosa ogni giorno.
Il mio lavoro mi permette di mettermi in gioco tutti i giorni con sfide diverse perché, seppur è vero che in ogni sito web c’è una base comune, ogni progetto richiede analisi ed implementazioni differenti.

In TourTools questo è ancora più vero! Nella nostra realtà tutti vengono coinvolti nel progetto e tutti hanno un ruolo fondamentale nella buona riuscita del sito. Tutti vengono ascoltati e l’esperienza di tutti viene valorizzata.

Inoltre, qui da noi si ha una particolare attenzione al dipendente, che non sono visti come una mera forza lavorativa, ma come persone fondamentali per il funzionamento del tutto.
Ecco quindi che il dipendente viene curato e coccolato in tutti i modi, dal welfare aziendale alla stipulazione di polizze contro il Covid

Ed ancora, si va al lavoro tutti i giorni felici perché si è valorizzati come professionisti e come persone, e si torna a casa puntali perché viene riconosciuta l’importanza del tempo passato con i propri cari.
In caso di necessità particolari, com’è successo a me con l'inizio della scuola primaria di primo grado di mia figlia, l’azienda mi è venuta incontro adattando l’orario di lavoro (negli ovvi confini del possibile) alle esigenze personali.

Cosa consiglieresti a chi vuole diventare un full stack developer?

Consiglio di studiare, di apprendere, di sperimentare e di mettersi costantemente in gioco.
Un altro consiglio che posso dare è anche quello di dimostrare molta umiltà: non si nasce full stack developer, e non lo si diventa se non dopo anni di esperienza, si deve studiare tanto e ci si deve porre nel mindset di non sopravvalutare mai le proprie capacità e le proprie prassi lavorative. 

Nel nostro lavoro bisogna essere sempre pronti a mettersi in discussione, perché non sempre quello che si sa fare o il modo in cui lo si fa, anche se rodato, è la strada corretta, migliore o più aggiornata in termini di tecnologia utilizzata per portare a compimento un determinato progetto.

Si può partire anche da una posizione di frontend developer per poi approcciare aspetti di backend. Questo in Tourtools è possibile, perché si da grande importanza alla formazione ed il bello è che si viene spinti sempre ad andare oltre le proprie competenze.
Quello che conta, lo ripeto, è la curiosità, la voglia di mettersi in gioco e di divertirsi lavorando.

Come pensi che evolverà questa professione in futuro?

Questa professione sicuramente continuerà ad esistere e ad evolversi, il settore dedicato ad Internet sarà sempre più vivo e presente nelle vite di tutti. 
Mi aspetto che il nostro lavoro migri progressivamente verso sistemi smart, come televisioni, auto, ecc., e verso nuovi linguaggi e tecnologie sempre più evolute e veloci.

La nostra professione dovrà quindi aggiornarsi seguendo i futuri trend e mantenendo al contempo la capacità di avere uno sguardo a tutto tondo. 

In Tourtools siamo alla ricerca di un full stack developer che affianchi Giovanni. 
Se pensi di avere tutte le carte in regola per diventare il nostro full stack developer, consulta la pagina dedicata alla candidatura e inviaci un’e-mail con il tuo CV aggiornato e dettagliato a job@tourtools.it
Ti aspettiamo!