Il lavoro dell'informatico: Cosa fa un programmatore?


luca.terribili avatar
Luca Terribili

Come programmatore, le mie giornate sono spesso piene delle sfide e delle soddisfazioni che derivano dalla progettazione e dallo sviluppo di software complessi. Che io stia lavorando ad una nuova applicazione o all’implementazione di una funzionalità in un’applicazione esistente, c'è sempre qualcosa da fare.

La mia routine quotidiana può essere piuttosto intensa. In genere inizio la giornata consultando la mia posta elettronica per tenermi aggiornato su eventuali problemi segnalati dai clienti o aggiornamenti nei progetti in corso di sviluppo. Una volta che mi sono fatto un'idea di com’è la situazione del giorno in questione, di solito passo un po' di tempo a meditare sul divano, organizzando i miei pensieri e pianificando le prossime azioni da compiere. 

Il passo successivo è accendere il telefono e controllare le chat di lavoro. Anche se non amo particolarmente questo sistema, Whatsapp è diventato lo strumento più usato quando si tratta di rimanere in contatto con i colleghi, soprattutto per un programmatore full-remote che lavora in smart working. Whatsapp permette di inviare e ricevere facilmente messaggi e documenti, nonché di rimanere aggiornati sugli aspetti che coinvolgono il nostro team.

Tuttavia, l'uso di Whatsapp per le comunicazioni di lavoro presenta alcuni svantaggi. Innanzitutto, molti dei partecipanti alle chat sembrano non capire come utilizzare al meglio questo strumento. Tendono a essere eccessivamente loquaci e a inviare troppi messaggi, intasando così la memoria del telefono. Per non parlare dei vocali che possono arrivare anche a 5 minuti. Di conseguenza, mi ritrovo spesso a dover affrontare stress e frustrazione inutili quando cerco di smistare tutte le informazioni in arrivo.

Chat di lavoro

Nonostante questi problemi, Whatsapp rimane una parte importante della mia vita professionale. Anche se cerco sempre di dirottare le persone verso altri strumenti, come Telegram o Slack.

Il rito dell’avvio del computer

Chiunque abbia mai cercato di essere produttivo al mattino sa che iniziare la giornata può essere una vera sfida. Ci sono così tante distrazioni che si contendono la nostra attenzione che può essere quasi impossibile concentrarsi su ciò che conta di più. 

Per me una delle chiavi per iniziare bene la giornata è preparare una bella tazza di caffè caldo. L'aroma ricco e il sapore deciso dei chicchi appena macinati mi mettono sempre di buon umore e mi danno l'energia necessaria per affrontare la routine mattutina. 

Caffè di fronte il computer

Il caffè lo bevo alla mia postazione lavorativa in smart working, mentre faccio partire il mio Acer Aspire 3 equipaggiato con Linux Mint 20 Cinnamon. L’avvio è molto rapido, niente a che vedere con i sistemi Windows. Ma in questa fase della giornata sono ancora in modalità stand by, quindi prendo tempo, fumando la sigaretta elettronica.

Le call con clienti e colleghi

Come programmatore in smart working, una delle mie attività più ricorrenti è quella di interagire con clienti e colleghi in video call. Le calls possono riguardare una serie di argomenti, dalle specifiche sul software alle segnalazioni di problemi tecnici. Indipendentemente dalla natura della call, è importante rimanere sempre professionali e cortesi. 

Video Call

Mi sforzo sempre di ascoltare attivamente le parole dei miei interlocutori, cercando di rispondere con pazienza alle loro necessità, fornendo raccomandazioni o soluzioni, se necessario. Allo stesso tempo, mi preoccupo di comunicare in modo chiaro ed efficace con i miei colleghi per garantire che tutti siano sulla stessa lunghezza d'onda nel corso di ogni interazione. 

In ogni modo è un aspetto del lavoro da programmatore che personalmente non amo particolarmente.

GitLab e le issues di bug fixing

Oltre alla codifica, il programmatore si occupa anche di test e debug per assicurarsi che i suoi programmi funzionino in modo corretto ed efficiente. Tutte le società di consulenza informatica, degne di questo appellativo, utilizzano uno strumento chiamato GitLab. Si tratta di una piattaforma che sfrutta il programma Git. Git è uno strumento per versionare i software e consentire lo sviluppo simultaneo da parte di programmatori diversi. 

GitLab incorpora questo sistema e fornisce altre funzionalità, come la bacheca per segnalare le issues. Queste issues possono essere di vario tipo, per semplificare riporto solo le due macro categorie principali

  • bug
  • miglioramento 

È abbastanza intuitivo che i bugs hanno la priorità. Quindi se trovo delle segnalazioni relative a dei bugs, analizzo subito il problema e lo risolvo nel più breve tempo possibile.

Bug Fixing

Analisi di un nuovo progetto

All'inizio di ogni progetto, in genere dedico un po' di tempo a familiarizzare con i requisiti e le specifiche del software che andrò a realizzare. Le specifiche le scrive il PM (Project Manager) e possono essere più o meno chiare. Dipende dal PM…

Di solito questa parte del lavoro consiste nella lettura delle specifiche, analizzare le caratteristiche dell’ambiente di produzione, fare ricerche su sistemi simili già esistenti, prendere decisioni su come strutturare il codice in modo appropriato e se necessario, configurare il proprio ambiente di sviluppo locale in modo che si avvicini il più possibile a quello che il cliente ha in produzione.

C’è gente che per ogni progetto crea una nuova macchina virtuale, ma questi stanno fuori dal mondo. Oggi abbiamo Docker, la possibilità di virtualizzare separatamente qualsiasi servizio. Quindi io uso Docker, dove monto quello che mi serve per il determinato progetto, dal database al web server.

Una volta che ho una solida comprensione di ciò che il prodotto finito deve fare, mi metto al lavoro per la codifica.

Questa parte non la spiegherà, perchè ho già scritto in altri articoli come si programma un software. E in ogni modo non è una disciplina che si può imparare leggendo qualche articolo. Basti sapere che il lavoro di un programmatore comprende anche la scrittura di codice.

Il deploy in produzione o in ambiente di collaudo

Quando sono arrivato quasi a fine giornata, e se il lavoro svolto è consolidato (non ha bugs), distribuisco il sistema in ambiente di produzione o di test. Questo è un processo importante e spesso complesso. Per garantire che il software sia pronto per questa transizione, è essenziale pianificare e testare attentamente tutti i componenti e le funzionalità del sistema. Questo include la risoluzione di qualsiasi problema di prestazioni, interoperabilità o sicurezza che possa sorgere prima che il sistema venga distribuito nel nuovo ambiente. 

Fatte le opportune verifiche, lo step successivo è inviare a GitLab le nuove implementazioni. Successivamente si fonde il nuovo ramo nel ramo master. Se è stata implementata la Continuous integration e la Continuous delivery, il sistema sarà automaticamente distribuito anche nel server di destinazione finale.

Aggiornamento degli stati di avanzamento

Prima di chiudere il computer, dobbiamo rendere conto di quello che abbiamo fatto durante la giornata. Le aziende di sviluppo software utilizzano delle piattaforme, come ad esempio Open Project, dove il PM assegna i tasks agli sviluppatori e questi registrano il tempo speso per ogni attività. 

Fine lavoro

Fatta questa piccola attività siamo liberi, ma ricordiamoci di silenziare le chat di lavoro. Perché molti programmatori tendono a non saper distinguere l’orario di lavoro con il tempo libero e possono disturbare il nostro riposo.

 

Condividi