Faccio lo sviluppatore da circa quindici anni e dal 2018 lavoro in smart working. Oggi lavoro quasi completamente da casa e vado in presenza soltanto per alcune attività di formazione, quando devo insegnare a un ente pubblico a utilizzare il proprio sito WordPress. Non è stata una scelta dettata da una particolare filosofia lavorativa: è semplicemente il contesto in cui mi trovo a lavorare.

Sette anni sono abbastanza per farsi un'idea concreta di cosa significhi programmare da remoto, senza fermarsi alle solite discussioni sui vantaggi della flessibilità o sui rischi dell'isolamento. Lo smart working viene spesso raccontato attraverso due posizioni opposte: da una parte chi lo considera il futuro inevitabile del lavoro, dall'altra chi pensa che senza un ufficio le persone smettano magicamente di collaborare. La realtà, almeno per come l'ho vissuta io, è decisamente meno ideologica.

Programmare non significa soltanto scrivere righe di codice. Significa capire problemi, mantenere in testa una struttura complessa, valutare alternative e individuare errori che spesso emergono soltanto dopo aver ragionato a lungo. Per questo il luogo in cui lavoriamo può influenzare il risultato, ma non sempre nel modo in cui immaginiamo.

La mia conclusione è abbastanza netta: preferisco il remoto per sviluppare software, ma non considero inutile la presenza fisica. Ci sono situazioni in cui vedersi di persona aiuta davvero, soprattutto quando bisogna sbloccare una dipendenza organizzativa o recuperare quella sensazione di lavorare insieme che una chat non riesce sempre a trasmettere.

Perché lo smart working migliora la concentrazione di chi programma

Il vantaggio principale del lavoro da remoto, per me, è la possibilità di lavorare con meno interruzioni. Sembra una considerazione banale, ma chi programma sa quanto possa essere costoso interrompere un ragionamento a metà.

Quando lavoro su una funzionalità complessa, non devo soltanto scrivere codice. Devo ricordare come sono organizzate le classi, quali componenti dipendono da quelli che sto modificando, quali effetti potrebbe avere una determinata scelta e quali problemi ho già escluso durante l'analisi. Una parte consistente del lavoro avviene nella testa, prima ancora che nell'editor.

Un'interruzione di pochi minuti può costringermi a ricostruire mentalmente tutto questo contesto. Il costo reale, quindi, non coincide con la durata della conversazione: comprende anche il tempo necessario per ritrovare la concentrazione.

Da casa riesco a organizzare meglio le mie giornate e a dedicare periodi più lunghi alle attività che richiedono attenzione. Per me è un vantaggio concreto, soprattutto quando devo affrontare problemi che non si risolvono con una modifica veloce o con una ricerca su Google.

Questo non significa che ogni sviluppatore sia automaticamente più produttivo da remoto. Significa che, nel mio caso, la concentrazione migliora quando posso gestire le interruzioni. Lavorare meglio non vuol dire necessariamente lavorare più ore, ma riuscire a utilizzare meglio quelle disponibili.

I limiti del lavoro da remoto: quando la presenza dei colleghi è utile

Il lavoro da remoto ha anche un limite che non liquiderei con la solita frase secondo cui basta organizzarsi meglio. Quando ci si trova fisicamente nello stesso posto, si percepisce una forma di supporto reciproco che attraverso uno schermo può risultare meno immediata.

Sapere che un collega è lì, che sta affrontando un problema simile o che puoi confrontarti con lui senza dover organizzare una chiamata dà una sensazione di tranquillità. Non è necessariamente una questione tecnica: è anche il modo in cui si condivide la responsabilità di un lavoro.

In presenza, un dubbio può diventare una conversazione spontanea. Da remoto, spesso bisogna decidere quale canale usare, scrivere un messaggio, aspettare una risposta e verificare che l'altra persona abbia effettivamente capito il problema. Sono passaggi piccoli, ma quando si accumulano possono rendere la collaborazione meno fluida.

Non credo, però, che questo basti per sostenere che lavorare in ufficio sia sempre meglio. Se devo passare diverse ore a sviluppare una funzionalità, non vedo perché dovrei rinunciare alla concentrazione soltanto per condividere lo stesso ambiente con altre persone.

La presenza fisica aiuta quando esiste una reale necessità di confronto immediato. Il remoto, invece, è particolarmente efficace quando bisogna lavorare in autonomia per periodi prolungati. Non serve trasformare questa differenza in una guerra di religione aziendale: basta riconoscere che attività diverse richiedono condizioni diverse.

Gestione dei ticket: quando parlare direttamente con un collega fa risparmiare tempo

C'è una situazione in cui la differenza tra presenza e lavoro remoto diventa particolarmente evidente: i rapporti con i reparti che gestiscono ogni richiesta esclusivamente attraverso un sistema di ticket.

Il ticketing è utile. Permette di registrare le richieste, assegnare le responsabilità, mantenere uno storico e verificare lo stato delle attività. Il problema nasce quando lo strumento diventa l'unico modo possibile per comunicare, anche quando una conversazione di pochi minuti sarebbe sufficiente a chiarire tutto.

Immaginiamo di avere bisogno di un'informazione da un altro reparto per completare una funzionalità. Apriamo un ticket, spieghiamo il problema e aspettiamo. La richiesta entra in una coda insieme alle altre, viene presa in carico secondo le priorità previste e, nel frattempo, il nostro lavoro rimane bloccato.

Se siamo in ufficio e il collega si trova qualche piano più in alto, possiamo semplicemente salire le scale e chiedergli cosa serve. Magari scopriamo che mancava un'informazione, che la richiesta era stata interpretata male o che bastava una decisione condivisa per procedere.

In questi casi, la presenza fisica riduce la distanza organizzativa tra le persone. Non perché il ticket sia uno strumento sbagliato, ma perché un processo pensato per tracciare il lavoro non dovrebbe diventare un ostacolo alla comunicazione.

La soluzione ideale non consiste nell'eliminare i ticket. Consiste nel riconoscere quando servono e quando, invece, è più ragionevole parlare direttamente con chi può sbloccare la situazione. Il ticket deve aiutare il lavoro, non sostituire ogni forma di dialogo.

Da remoto questa possibilità può diventare meno immediata, soprattutto se il reparto coinvolto non è abituato a confrontarsi attraverso chat o chiamate. In questi casi, però, non è necessariamente lo smart working a creare il problema: è un'organizzazione che dipende dalla presenza fisica per far circolare le informazioni.

Collaborazione tra sviluppatori: il team conta più della distanza fisica

Una delle obiezioni più frequenti al lavoro da remoto riguarda il rischio di sentirsi isolati o meno coinvolti nel gruppo. È una preoccupazione legittima, ma non credo che la distanza fisica sia l'unica variabile da considerare.

Il senso di appartenenza dipende molto da come lavora il team e da quanto sono regolari le occasioni di confronto. In alcuni gruppi esistono appuntamenti quotidiani, come il daily meeting, che permettono di sapere su cosa stanno lavorando gli altri, condividere gli impedimenti e mantenere un contatto costante.

In altri contesti, invece, ci si sente soltanto quando c'è un problema da risolvere o qualcuno ha bisogno di una mano. La comunicazione diventa sporadica e il rapporto con il gruppo rischia di ridursi a una sequenza di richieste operative.

La differenza è significativa. Nel primo caso il remoto può funzionare bene perché esiste un ritmo di comunicazione riconoscibile. Nel secondo, la distanza rende più evidente una debolezza organizzativa che probabilmente esisteva già.

Non penso che un daily meeting sia una soluzione magica. Anche una riunione quotidiana può diventare un rituale inutile se tutti ripetono meccanicamente le proprie attività e i problemi vengono ignorati. Il punto è avere occasioni di confronto che servano davvero a coordinare il lavoro, non semplicemente a riempire il calendario.

Un buon team non si costruisce obbligando tutti a stare nella stessa stanza, ma creando condizioni in cui le persone riescano a collaborare anche quando sono lontane. La presenza può rafforzare il rapporto tra colleghi, ma non può compensare indefinitamente una comunicazione disorganizzata.

Code review: come gestisco le attese senza interrompere il lavoro

La code review è una parte importante dello sviluppo software. Quando apro una pull request, mi aspetto che un collega analizzi le modifiche, verifichi la soluzione e segnali eventuali problemi prima che il codice venga integrato.

Non sempre la revisione arriva immediatamente. La mia strategia, in questi casi, è piuttosto semplice: non passo la giornata a sollecitare chi deve occuparsene. Nel frattempo mi dedico a un altro task.

Lavorare su più attività in parallelo mi permette di utilizzare meglio i tempi morti. Se una pull request è in attesa, posso portare avanti un'altra funzionalità, sistemare un problema differente o affrontare un'attività che non dipende da quella revisione.

Questo approccio funziona quando il lavoro è organizzato in modo da permettere una certa autonomia e quando esistono attività alternative realmente disponibili. Non significa che le code review possano essere ignorate o che i ritardi non abbiano conseguenze. Una revisione bloccata può rallentare altre persone e, se il problema si ripete, richiede un intervento organizzativo.

Preferisco evitare di trasformare ogni attesa in un'interruzione aggiuntiva. Se posso continuare a lavorare, continuo a lavorare. Il mio obiettivo è far avanzare il progetto, non passare il tempo a controllare se qualcuno ha risposto a una notifica.

Pair programming: perché preferisco il confronto mirato

Il pair programming è una pratica conosciuta nello sviluppo software: due programmatori lavorano insieme sulla stessa attività, spesso alternandosi tra chi scrive il codice e chi osserva, analizza e suggerisce modifiche.

Capisco l'obiettivo. Il confronto continuo può aiutare a individuare errori, trasferire conoscenze e valutare alternative che una sola persona potrebbe non considerare. Non metto in discussione questi vantaggi.

Semplicemente, il pair programming tradizionale non è il mio metodo preferito. Non mi trovo particolarmente bene nella situazione in cui una persona scrive codice e l'altra rimane a osservare per un periodo prolungato. Per come lavoro io, preferisco poter ragionare autonomamente e chiedere un confronto quando esiste una necessità concreta.

La mia alternativa è utilizzare la condivisione dello schermo durante una chiamata su Google Meet. Quando incontro un problema che richiede un confronto, oppure devo spiegare una parte del codice a un collega, ci colleghiamo, guardiamo insieme la situazione e cerchiamo una soluzione.

Il vantaggio è che il confronto rimane concentrato sul problema. Non è necessario trasformare un'intera sessione di sviluppo in un'attività condivisa quando bastano pochi minuti per chiarire un dubbio o individuare un errore.

Questo metodo non sostituisce tutte le possibili applicazioni del pair programming. Su attività particolarmente complesse, nella formazione di una persona o quando è necessario prendere insieme decisioni architetturali, lavorare fianco a fianco può avere un valore maggiore.

Per il mio modo di lavorare, tuttavia, la collaborazione funziona meglio quando è mirata. Non serve condividere ogni minuto di sviluppo per collaborare bene. Serve sapere quando coinvolgere un'altra persona e utilizzare quel confronto per ottenere un risultato concreto.

Riunioni online e in presenza: il problema non è lo strumento

Le riunioni sono uno degli argomenti che emergono spesso quando si confrontano lavoro remoto e ufficio. Si tende a pensare che incontrarsi di persona renda automaticamente le riunioni più produttive, mentre quelle online sarebbero fredde, impersonali o meno efficaci.

La mia esperienza non mi porta a considerare questa differenza così determinante. Le riunioni esistono in entrambe le modalità e il semplice fatto di trovarsi nella stessa stanza non garantisce che siano utili.

Una riunione senza un obiettivo chiaro rimane una riunione senza un obiettivo chiaro. Se non ci sono decisioni da prendere, informazioni da condividere o problemi da risolvere, la presenza fisica non trasforma magicamente il tempo trascorso insieme in lavoro produttivo.

Allo stesso modo, una riunione online può funzionare molto bene quando i partecipanti sanno perché sono stati coinvolti e cosa devono ottenere. Il mezzo utilizzato è importante, ma viene dopo la qualità dell'organizzazione.

Ci sono naturalmente confronti in cui la presenza aiuta, soprattutto quando è necessario discutere argomenti complessi o costruire un rapporto tra persone che collaborano poco. Non credo, però, che la soluzione consista nel riportare automaticamente tutte le riunioni in ufficio.

Prima di chiedersi se una riunione debba svolgersi online o in presenza, bisognerebbe chiedersi se sia davvero necessaria e quale risultato debba produrre.

Orari flessibili nello smart working: autonomia senza disponibilità continua

Lavorare da casa modifica anche il rapporto con gli orari. Il confine tra lavoro e tempo libero diventa meno netto, perché non esiste più una separazione fisica altrettanto evidente tra l'ambiente professionale e quello personale.

Nel mio caso lo vivo come uno scambio. Può capitare di iniziare un po' più tardi oppure di fare una pausa pranzo più lunga. In cambio, non considero necessariamente un problema rispondere a un'email alle sette di sera, quando è ragionevole farlo e quando il lavoro lo richiede.

Non considero questo approccio una regola universale. È il modo in cui interpreto la flessibilità nel mio contesto lavorativo. Per me ha senso se esiste un equilibrio tra autonomia personale e disponibilità professionale, senza trasformare ogni momento della giornata in un'estensione permanente dell'orario di lavoro.

Il problema nasce quando lo scambio diventa a senso unico. Se la flessibilità significa che il lavoratore deve essere sempre disponibile, ma non può gestire autonomamente le proprie pause o organizzare la giornata, allora non stiamo parlando di una vera libertà organizzativa.

La flessibilità dovrebbe permettere di conciliare meglio le esigenze del lavoro con quelle personali, mantenendo chiari gli obiettivi e le responsabilità. Non dovrebbe diventare un modo per rendere indefinito il tempo che un'azienda può richiedere a una persona.

Per uno sviluppatore, che spesso deve alternare attività di concentrazione, riunioni, revisioni e confronto con i colleghi, poter organizzare la giornata può fare una differenza concreta. La condizione essenziale è che questa autonomia sia accompagnata da aspettative ragionevoli e condivise.

Meglio programmare da remoto o lavorare in ufficio?

Dopo circa quindici anni nello sviluppo software e sette anni di lavoro prevalentemente da remoto, la mia posizione è chiara: preferisco lavorare da casa quando devo programmare, ma riconosco il valore della presenza fisica quando serve a migliorare la collaborazione o a risolvere problemi organizzativi.

Il remoto mi permette di concentrarmi meglio, gestire le attività con maggiore autonomia e ridurre le interruzioni. Non elimina la necessità di confrontarmi con i colleghi, ma mi consente di farlo in modo più mirato, senza trasformare ogni dubbio in una conversazione che interrompe il lavoro.

La presenza, invece, può essere particolarmente efficace quando bisogna sbloccare rapidamente una dipendenza tra reparti, chiarire una questione complessa o ritrovare quella sensazione di supporto reciproco che talvolta manca attraverso uno schermo.

Non credo che esista una modalità perfetta per tutti gli sviluppatori. Ci sono persone che lavorano meglio in un ambiente condiviso e altre che rendono di più quando possono organizzare autonomamente il proprio tempo. Anche il tipo di progetto, la struttura del team e la cultura aziendale incidono sul risultato.

Quello che considero sbagliato è trasformare la scelta tra remoto e ufficio in una battaglia ideologica. Non è necessario sostenere che lo smart working sia sempre superiore, così come non ha senso affermare che per lavorare seriamente sia indispensabile entrare ogni mattina in un edificio.

Per me la questione si riduce a questo: la concentrazione si protegge, la collaborazione si organizza e i problemi si risolvono nel modo più diretto possibile. Se per scrivere codice lavoro meglio da casa, non vedo perché dovrei rinunciarci. Se per sbloccare un problema è più efficace parlare direttamente con un collega, non vedo perché dovrei difendere il remoto a tutti i costi.

Dopo sette anni, è questa la lezione più utile che ho ricavato dalla mia esperienza: non è il luogo in cui lavoriamo a determinare da solo la qualità del nostro lavoro. Sono le condizioni che riusciamo a creare per lavorare bene.