Negli ultimi anni c’è un termine che è diventato quasi un requisito obbligatorio negli annunci di lavoro:
Full Stack Developer.
Si esatto, quella figura mitologica che deve avere le conoscenze di: Frontend, backend, database, API, cloud, Docker, CI/CD, testing, sicurezza…
Più tecnologie conosci, più sembri completo, ma c’è un problema.
Essere full stack non significa saper fare tutto.
E soprattutto, non significa essere esperti di tutto.
Il problema dell’etichetta
Quando ho iniziato a vedere quanto fosse grande l’ecosistema dello sviluppo software, una delle prime tentazioni è stata quella di pensare:
“Devo imparare tutto.”
Un framework frontend.
Un linguaggio backend.
Un database SQL.
Uno NoSQL.
Docker.
AWS.
Kubernetes.
CI/CD.
Testing.
Sicurezza.
E la lista continua.
Il problema è che ogni tecnologia apre una nuova porta e dietro quella porta ci sono altre dieci cose da imparare. Se provi a diventare competente in tutto contemporaneamente, rischi di ottenere l’esatto contrario di quello che stai cercando:
conoscere tante cose superficialmente senza padroneggiarne davvero nessuna.
Full stack non significa 50/50
Un developer può essere molto forte nel frontend e avere comunque competenze sufficienti per lavorare sul backend. Un altro può avere una grande esperienza backend e riuscire a gestire autonomamente anche la parte frontend. Entrambi possono essere definiti full stack. Non devono necessariamente avere lo stesso livello di competenza in ogni area.
Immagina un progetto in cui devi:
- Costruire l’interfaccia;
- Creare delle API;
- Progettare il database;
- Configurare il deployment.
Un buon full stack developer dovrebbe essere in grado di comprendere l’intero flusso, ma questo non significa che debba essere un esperto di UX, un DBA, un cloud architect e un security engineer contemporaneamente.
Sono competenze diverse.
La vera forza del full stack è capire le connessioni
Secondo me, questa è la parte più importante.
Il valore di un full stack developer non sta nel numero di tecnologie che può scrivere nel proprio CV, ma nella capacità di capire come una scelta in una parte del sistema influenza le altre.
Una modifica al frontend può richiedere un cambiamento nell’API.
Una modifica all’API può influenzare il database.
Una scelta nel database può avere conseguenze sulle performance dell’applicazione.
E una decisione apparentemente innocua può diventare un problema quando il progetto cresce.
Vedere queste connessioni è molto più importante che conoscere a memoria cento framework.
Il rischio di inseguire troppe tecnologie
C’è anche un’altra trappola. Ogni volta che compare una nuova tecnologia sembra necessario impararla immediatamente.
Nuovo framework? Devo studiarlo.
Nuovo database? Devo provarlo.
Nuovo tool AI? Devo integrarlo.
Nuovo cloud provider? Devo conoscerlo.
Dopo qualche anno rischi di passare più tempo a inseguire le tecnologie che a sviluppare competenze realmente trasferibili.
Le fondamenta contano più degli strumenti.
Se sai ragionare, progettare, fare debugging e comprendere un sistema, imparare una nuova tecnologia diventa molto più semplice. Se invece conosci dieci framework ma non sai come affrontare un problema nuovo, aggiungerne un undicesimo probabilmente non cambierà molto.
Quindi, bisogna diventare full stack?
Non necessariamente. E soprattutto non dovrebbe essere un obiettivo imposto.
Se ti piace il frontend e vuoi diventare molto bravo nel frontend, va benissimo. Se preferisci il backend, puoi costruire la tua carriera lì. Se invece ti interessa comprendere l’intero prodotto e lavorare tra frontend e backend, il percorso full stack può essere molto interessante.
La domanda non dovrebbe essere:
“Quante tecnologie devo conoscere per poter dire di essere full stack?”
Dovrebbe essere:
“Quanto bene riesco a comprendere e costruire un sistema nel suo insieme?”
Perché alla fine il valore di un developer non si misura dalla quantità di tecnologie che conosce, ma da quanto è capace di risolvere problemi con gli strumenti che ha a disposizione.
E forse il vero mito del full stack è proprio questo:
pensare che per essere completi dobbiamo sapere tutto.