Lo zen e la nobile arte della programmazione

Lo sanno tutti…

La programmazione è un’arte!

O almeno questo è ciò che piace credere a molti di noi, che smanettiamo col codice.

C’è però un piccolo problema:

Se la programmazione è un’arte, come mai non esistono musei di “codice”?

Ho parafrasato un po’ il pensiero di Charlie Poole, ascoltato l’anno scorso, ad Urbino, in occasione dell’Italian Agile Day ‘17. Il messaggio però è chiaro, e sicuramente vale la pena di rifletterci su.

Se da un lato, prendere consapevolezza dell’estrema labilità del nostro lavoro e di ciò che creiamo può avere per molti l’effetto di un pugno nello stomaco, dall’altro ci dà l’occasione di analizzare le cose con maggiore obiettività e di trarne insegnamento.

Pensare… lateralmente

Tempo fa un mio vecchio collega mi consigliò un libro: Il pensiero laterale di Edward De Bono. Leggendolo ebbi un’illuminazione:

“Ecco, cos’è! Ecco come si chiama quell’intuizione sfuggente e imprevedibile che ci fa trovare una soluzione dopo giornate di tormento!”

È quindi innegabile che la programmazione, intesa come risoluzione di problemi tramite l’analisi e l’elaborazione di algoritmi, richieda uno sforzo creativo che va oltre il “semplice” pensiero logico (o verticale, come lo definisce De Bono).

A pensarci bene, noi programmatori siamo degli enigmisti (sì, qualcuno è anche un po’ sadico, ma ora non mi riferisco a questo). Affrontare un problema e risolverlo in modo elegante ci entusiasma nello stesso modo in cui uno schema di Bartezzaghi infervora un appassionato di cruciverba.

Ed è facile capire che in questa sfida non basta il pensiero logico e lineare. Serve cultura, ingegno, spirito d’osservazione, pazienza… e sicuramente tanta passione.

Sul tema “passione” tornerò tra non molto; ora invece voglio concentrarmi sulla creatività

Giocare non è roba (solo) per bambini

Creatività, dunque; come asso nella manica. Per fare la differenza. Per riuscire a vedere e a creare, là dove la rigidità del pensiero logico riesce solo a spiegare.

Ma come sviluppare la propria creatività?

Dal libro di De Bono emerge un concetto chiave: l’importanza del gioco.

Il gioco, inteso in tutta la vastità del suo termine, è probabilmente il metodo migliore [per elaborare idee nuove], purché si tratti di un esercizio disinteressato, senza scopi né direzioni prestabilite.

Ecco allora che, oltre all’esperienza lavorativa e allo studio, diventa fondamentale ritagliarsi del tempo da dedicare alla sperimentazione, al gioco.

Un esercizio che può sembrare fine a se stesso, ma che in realtà crea incredibili possibilità di crescita e di apprendimento, che saranno poi estremamente spendibili in ambito lavorativo.

Sviluppare progetti personali, sperimentare nuove tecnologie, nuovi strumenti, nuovi approcci al lavoro. Senza uno scopo preciso. Spinti dalla pura curiosità. Tutte queste esperienze possono arricchirci di competenze e di idee che probabilmente non saremmo mai riusciti a concepire in un ambiente lavorativo.

Ovviamente tutto questo richiede una buona dose di passione. Però… c’è un però…

La passione e i suoi effetti collaterali

Di recente mi è capitato di vedere su YouTube il video di un talk del Codemotion Milano 2014 (se vi interessa, questo è il link). Il titolo è: “La professione dello sviluppatore”.

Le osservazioni di Gabriele Lana sul tema sono tutte molto interessanti e a momenti spassose, ma il punto che mi ha colpito di più, e su cui sono pienamente d’accordo, è quello relativo alla passione, sentimento che rappresenta quasi un’arma a doppio taglio per chi fa il nostro mestiere (come molti altri, in realtà).

La passione ci spinge a studiare, a migliorare, a dare il massimo anche se, molto probabilmente, in cambio ci tornerà poco o nulla (soprattutto in termini economici). Un vero e proprio “amore non corrisposto”.

È dunque importante mantenere viva la nostra passione. Per alimentare la nostra voglia di crescere e stimolare la nostra creatività. Ma è altrettanto saggio imparare a dosare bene la propria passione e ad usarla nel modo giusto, senza svenderla.

Perché in qualunque contesto lavorativo ci troviamo, è sempre bene ricordare che:

Stiamo vendendo la nostra professionalità e non la nostra passione.

In conclusione…?

Questo post nasce più come un flusso di coscienza che come un vero e proprio articolo, per cui non necessariamente sento l’esigenza di arrivare ad una conclusione.

Posso però dire che, sì, mi piace pensare che la programmazione sia un’arte. Un’arte che, però, non nasce per essere esposta, ma per creare valore per l’utente (o il cliente).

Questo valore deriva dalla nostra esperienza. Dalla capacità di analizzare un progetto da tante diverse angolazioni, ed infine realizzare qualcosa che abbia un’utilità. Che risolva un problema, ottimizzi un processo e, perché no, magari migliori la vita di qualcuno.

Se riusciamo ad “accontentaci” di questo, in quanto “artisti”, credo proprio che non ci sia bisogno di musei per le nostre “opere”. :-)

Alla prossima,

David