Chiunque sviluppa software ha l’esigenza di comprendere quello che il proprio Cliente, utente, committente gli sta chiedendo; di comprenderlo profondamente, altrimenti il rischio di fare qualcosa che non serve è alto. Non è uno scherzo, al punto che ci sono approcci come il Domain Driven Design che sulla comprensione del “dominio” si basano al punto da creare un lessico comune, che riduca la possibilità di incomprensioni: L’Ubiquitous Language.

Ora, che c’entra il greco antico?

Diciamo che c’entrerebbe molto se non fosse una lingua morta. Siamo nel caso dell’IRREALTA’ (ci arriveremo dopo), ma nonostante sia impossibile far rivivere il greco antico, trovo che una lingua con una tale capacità espressiva possa ancora insegnarci molto su come comprendere le cose (dominio, in primis) e quindi, ad essere informatici migliori.

Poco tempo fa, dopo tante (troppe) letture a carattere tecnico, ho deciso di leggere un libro “non da nerd” e mi è capitato per le mani questo:

La lingua Geniale di Andrea Marcolongo. In realtà, anche questo è un libro da nerd grecisti (quale non sono), ma mi ha acceso alcune “lampadine” e mi ha dato qualche spunto interessante di riflessione, o, come dovrei effettivamente dire in questo caso, εὕρηκα!!!

A questo punto il target dei possibili lettori di questo articolo sarà crollato vertiginosamente; non credo siano molti gli informatici con trascorsi da liceo classico (o lettere classiche). Giusto?

Ma per quei pochi rimasti, un lenitivo: gli anni passati sopra il dizionario di greco vi possono insegnare davvero qualcosa di concreto. E quindi, sono serviti.

Stranezze che illuminano il senso

Nella lingua greca esistono dei verbi politematici, le diverse forme dei quali sfuggono a qualunque regola: sembrano verbi quasi impazziti, ma perfettamente logici per un greco antico. Questo è l’aspetto che mi interessa (e che certamente non apprezzavo quando li studiavo rigorosamente a memoria sui banchi di scuola), cioè il fatto che queste “stranezze” verbali, nelle quali tutte le varie forme sono estranee le une alle altre, erano perfettamente comprensibili e naturali per un greco, come tutte le altre forme verbali, che (solo) a noi sembrano più semplici.

Per come le vedo ora, sono le tipiche eccezioni che confermano la regola; anzi di più, sono le eccezioni che svelano la reale regola; infatti, per un greco antico, non era importante che il verbo descrivesse il TEMPO (passato, presente, futuro), ma descrivesse il COME intrinseco nell’azione del verbo.

Riprendo un esempio dal libro: il verbo οράω (“orào” - guardare). Ecco il suo paradigma:

  • οράω (“orào”) = sto guardando
  • όψομαι (“òpsomai”) = ho intenzione di guardare, guarderò
  • είδον (“eìdon”) = guardo
  • οίδα (“oida”) = so, perchè ho guardato
  • ώφθην (“òfthen”) = sono guardato (e qualcuno poi saprà)

Da informatico l’insegnamento che ne traggo è che dobbiamo comprendere e spesso cercare le eccezioni, le stranezze, quelle casistiche che sembrano deviare dall’“happy path” che abbiamo compreso perchè spesso portano con sè il vero senso del processo, la piega distintiva, la caratteristica che spesso i “nostri greci” (cliente, utente, ecc.) non riescono nemmeno a spiegarci, tant’è loro naturale!

Quindi, cercate le eccezioni per comprendere, ma fate attenzione a capire quando sono sfumature dello stesso argomento o sono due argomenti diversi.

Un esempio che sarà chiarissimo a tutti quelli che hanno avuto a che fare, anche di sponda, con “Merge&Aquisition” (in italiano suona pure peggio in fusioni ed acquisizioni). Capita che nell’esplorare un processo le eccezioni arrivino dalla “divisione X” o più esplicitamente “dall’azienda Y del Gruppo”. Ecco, quelle spesso non sono eccezioni ad un processo comune, ma sono (ancora?) processi diversi; sono popoli barbari invasori o invasi, che devono ancora comprendere le leggi e assimilare la nuova cultura. Non c’è ancora una “popolazione aziendale unita”, ma sono popoli diversi, che quindi hanno usi, costumi e lingua diversi. Non è tanto un problema dell’informatico, ma è un problema (o una risorsa) dell’azienda stessa. Il consiglio da amico: non sviluppate niente di comune quando vi imbattete in cose del genere.

Il senso profondo sta nelle cose vissute, non in quelle raccontate

Ed aggiungo purtroppo.

Ma ripartiamo dal greco. In greco esistevano tre generi e tre numeri, uno in più di quel che è rimasto nell’italiano (e nella maggior parte delle lingue moderne) e questo scarto, unito alla loro sensibilità, permetteva ai greci di aggiungere molto più valore semantico alle loro parole.

Generi: maschile, femminile e neutro. I greci distinguevano i generi animati (di cose con un’anima) maschile e femminile dal genere neutro inanimato.

Numeri: singolare, plurale e duale che descriveva l’entità duplice, formata da due cose o due persone, della coppia, dell’accordo. La cosa particolare del duale è che i greci lo usavano senza una reale regola, ma quando sentivano di usarlo, sulla base della loro sensibilità.

In tutte le lingue, queste sfumature semantiche fanno parte della “coscienza linguistica”, intrinseca, che nessuno spiega realmente e che si apprende da bambini con l’uso. E sono anche quindi, tra le cose più difficili da apprendere da adulti o da stranieri.

Questo è quello che, in qualche modo, accade anche quando, da esterni, entriamo e cerchiamo di capire i processi e l’organizzazione di un’azienda e lo facciamo per portare dei cambiamenti (piccoli o grandi che siano). Non è da biasimare se alcune volte siamo visti come invasori e non siamo aiutati da tutti allo stesso modo nel cambiare le loro vite. Mai capitato?

Ma in realtà spesso facciamo opera di traduzione (dal latino traduco: trasferire, condurre aldilà), ovvero cerchiamo di trasferire il senso di un processo esistente in un nuovo processo. Ma il processo, come il software, è solo uno strumento per arrivare ad un obiettivo.

L’aspetto che deve tenere sempre in mente un traduttore (quali noi siamo) è il senso che deve emergere invariato. Ma come?

Non c’è una ricetta sempre vincente, ma sicuramente ci sono cose che aiutano a far bene (leggi “sbagliare meno”).

  • Cercare all’interno dell’organizzzione dei nostri Clienti, chi ha intrinsicamente quella sensibilità inconscia e, magari, che sia in grado di trasferirla, tradurla.

  • Quando possibile, parlare sempre con un team di persone all’interno dell’azienda. Vi aiuterà a selezionare e trovare il vostro o i vostri miglior alleati, che sapranno spiegarvi cosa accade davvero.

  • Cercare di essere presenti, di verificare cosa davvero accade in un processo, di guardare; ricordate οίδα? So, perchè ho guardato. Dovrebbe essere il mantra di ogni buon informatico.

I diversi gradi di realtà

Una perdita enorme nelle lingue moderne come l’italiano è quella di aver perso il modo OTTATIVO, che esprime il desiderio. I greci invece avevano differenti modi verbali che consentivano ad un greco di esprimere (senza ombra di dubbio) il “grado di realtà” con cui valutava gli eventi della vita.

In italiano non c’è alcuna differenza linguistica tra i gradi di realtà delle azioni espresse e sono lasciate esclusivamente al giudizio e alla sensibilità del parlante (non scrivente…ecco perchè occorre esserci)

Facciamo un esempio per capirci e supponiamo di ascoltare la frase

“Vorrei programmare meglio”

Un greco antico poteva riuscire a passare quattro diversi gradi di realtà della stessa frase (mentre noi siamo costretti a ripiegare verso periodi ipotetici se ci affidiamo alla sola scrittura):

  • REALTA’: “vorrei programmare meglio…mi prendo un po’ di tempo per fare refactoring di questo pezzo di codice, so come farlo e lo farò”
  • EVENTUALITA’: “vorrei programmare meglio…se non ci fossero queste continue interruzioni e telefonate”. Sono i fattori esterni, oggettivi che lo impediscono.
  • POSSIBILITA’: “vorrei programmare meglio…se studiassi di più ed organizzassi meglio il mio tempo”. Qui ci sono fattori interni, soggettivi. Non sono impedimenti semplici da rimuovere e forse non saranno mai rimossi, c’è la possibilità però. Qui, c’era l’ottativo che è scomparso.
  • IRREALTA’: “vorrei programmare meglio…vorrei programmare come Gian Maria Ricci”. E’ un desiderio irrealizzabile, incomprensibile ai più, ma irrealizzabile. ;-)

Ok, ma che c’entra con noi informatici? Purtroppo mi rendo conto che ancora stiamo elaborando il lutto per questa enorme perdita e spesso dobbiamo investire molto tempo a cercare di capire quando si è di fronte ad un’eventualità e quando ad una possibilità. E non è una cosa da poco, è la differenza tra:

  • realizzare del codice che toglie degli impedimenti (esterni), introduce un cambiamento e trasforma una possibilità in una realtà
  • realizzare del codice che non servirà a niente (anzi) perchè il cambiamento non può essere portato o semplificato dall’esterno, ma solo dall’interno, ad es. con una modifica organizzativa, di processo, di persone che ne hanno responsabilità, fino ad arrivare ad un cambiamento culturale aziendale, che pochi informatici possono dire di aver vissuto in aziende altrui.

Capito di che stiamo parlando? Di quando ha senso scrivere codice e quando proprio non ce l’ha!!

Capirlo deve essere una delle prime responsabilità di chi scrive codice e per farlo deve comprendere il grado di realtà dei desideri dei nostri Clienti e dei nostri referenti. Purtroppo molto più semplice a scriverlo che a farlo.

Aver perso queste sfumature nella nostra lingua scritta è davvero una grave perdita e noi informatici siamo costretti a riunioni ed incontri continui per comprendere la reale realtà.

Vorrei usare l’ottativo anche oggi (IRREALTA’…sigh…)

L’importanza del COME e non del QUANDO

Uno dei punti importanti su cui l’autrice si sofferma è l’importanza dell’aspetto verbale nella lingua greca (vi rimando a wikipedia per una definizione).

La cosa che mi preme sottolineare ancora è che nella lingua greca il valore aspettuale dei verbi (presente, aoristo o perfetto) indicano il COME un’azione si sta svolgendo o si è svolta, la durata e le conseguenze dell’azione e poco interessava ai greci del tempo, del QUANDO l’azione si svolge.

L’aspetto può esprimere come avviene un’azione, può esprimere l’idea di un’azione, il voler compierla, il desiderio di compierla, ma anche le conseguenze di quell’azione. I greci si esprimevano in un modo che considerava l’effetto delle azioni su coloro che parlavano più importante di quando l’azione avvenisse.

Per chi ha sentito parlare di Impact Mapping, diciamo che considerare gli “impatti” era naturale per i greci, che tra l’altro li ritenevano più interessanti che piazzarli nel Gantt del tempo.

Sì, lo ammetto, questa l’ho tirata un po’…ma tanto a leggere fin qui non ci sarà arrivato nessuno.

Comments