Blog

Perché i programmatori guardano fuori dalla finestra


Spesso capita che in azienda uno sviluppatore si senta un osservato speciale in quanto, erroneamente, il suo lavoro sembra essere giudicato per buona parte da quanto velocemente o da quanto frequentemente pigi sulla tastiera del suo computer. Deve scrivere codice dopotutto, e il codice si scrive digitando cose sulla tastiera. Tutto sembrerebbe quadrare, giusto? Sbagliato.

Se pensate che quel codice incomprensibile che i programmatori scrivono lo debbano buttare giù di getto come un tema di terza media, allora fareste bene prima a capire le basi di quel lavoro; potremmo partire dal concetto di algoritmo!

Un algoritmo è, per definizione, un procedimento logico composto da molteplici passaggi in grado di portarvi da un input iniziale a un risultato finale, attraverso elaborazioni di vario tipo.

Il codice è, invece, l’implementazione di questo algoritmo, ovvero una serie di istruzioni scritte in un certo linguaggio che indica alla macchina come deve comportarsi per mettere in pratica tutti i passaggi.

È scontato che – nella maggior parte dei casi – più è complicato il problema da risolvere, maggiore sarà anche la difficoltà nell’ideare l’algoritmo per risolverlo; il discorso analogo vale anche nella trasposizione algoritmo > codice, anche se mi è capitato di vedere blocchi di codice molto brevi risolvere problemi molto molto complessi, ma in quel caso si parla quasi più di arte che di programmazione.

Torniamo a noi!

Abbiamo appurato che dietro un algoritmo c’è tutta una fase teorica che deve essere pensata, modellata. Spesso gli sviluppatori in questa fase prediligono strumenti più rudimentali rispetto alla tastiera e al monitor, che spesso si rivelano essere un block notes o una lavagna. Se vedete un programmatore che sta in piedi vicino a una lavagna sbattendo forte la testa contro il muro, allora probabilmente sta ragionando su un algoritmo. Per gli algoritmi più complessi si arriva a utilizzare lo spigolo del muro, ma è una scena che mi auguro non dobbiate vedere mai.

Oltre all’algoritmo, spesso bisogna ideare e organizzare una struttura dati che possa immagazzinare in modo efficiente e comprensibile tutto ciò che concerne il progetto. Si parla di entità, di relazioni e di funzioni che devono essere attentamente organizzate, dato che un’errata ideazione potrebbe compromettere tutto il funzionamento e generare situazioni molto, molto brutte, tipo suicidi, fallimenti, cause giudiziarie e cose del genere.

Arrivati a questo punto in genere gli sviluppatori, che fino ad ora non hanno digitato assolutamente nulla sulla loro tastiera, sono stati bollati come lavativi e hanno fatto una scorta abbondante di occhiatacce dei colleghi (specialmente quelli del marketing!); tuttavia sanno che la loro missione è tutt’altro che finita!

Una volta partoriti l’algoritmo e la struttura dati, come dicevamo deve essere generato il codice. Ecco, questo passaggio è tutt’altro che scontato, e dovete sapere che esistono quasi infiniti modi per scrivere uno stesso procedimento logico con delle righe di codice; inoltre, spesso mentre si scrivono le istruzioni ci si trova davanti a problemi (senza scendere nel tecnico) di ottimizzazione, di relazione e di gestione.

Anche se la strada dell’algoritmo è tracciata, a meno che non abbiate effettuato una fase di progettazione ancora più lunga e terribilmente esaustiva, scrivendo il codice capiterà spesso di trovarsi a dei bivi, a dover prendere delle decisioni che potrebbero influenzare la velocità, la scalabilità e la manutenibilità del progetto.

Quell’incedere impetuoso di clic sulla tastiera si tramuterà d’un tratto in un gelido silenzio, in cui il prode sviluppatore, immerso nei ragionamenti logici nel suo cervello, fisserà ancora una volta quel puntino là all’orizzonte, lontano dallo schermo e fuori dalla finestra, mentre le idee si susseguono in un turbinio che, alla fine, porterà a prendere quella piccola ma decisiva decisione che concorrerà alla realizzazione finale.

Il lavoro dello sviluppatore è un lavoro di concetto (adesso l’avrete capito) in cui un problema non è mai uguale al precedente, perché ci sono una molteplicità di fattori che possono far cambiare il contesto in cui bisogna lavorare e risolvere la situazione.

Guardare fuori dalla finestra, distrarsi, alzarsi in piedi, andare a comprare e mangiare un cheeseburger sono modi per donare nuova freschezza al cervello e ai propri ragionamenti; gli ingranaggi che pensano e si districano nel problema che si sta risolvendo continueranno a lavorare in background, e incaponirsi sulla tastiera può produrre solo più danno che utile, perché ogni istruzione o procedimento dev’essere ponderato in modo lucido.

Per tutta questa serie di motivi, in Nucleo Web cerchiamo di mantenere sempre un ambiente stimolante, creativo, sereno, dove i programmatori – e non solo loro, tutti quanti! – sono liberi di autogestirsi.
Se vuoi saperne di più sul nostro modo di lavorare, o ti piace il nostro approccio e vuoi collaborare con noi, contattaci!





« Elenco articoli



CONTATTACI

Puoi chiederci informazioni, farti fare un preventivo per ciò che ti serve, o semplicemente invitarci a prendere un caffè insieme.

Qualunque sia la tua esigenza, noi sapremo ascoltarti e consigliarti, e magari instaurare una collaborazione.

Un cliente soddisfatto è il nostro miglior guadagno: mettici alla prova!


iubenda Certified Silver Partner