TL;DR

Le comunità dei vari linguaggi, come quelle di Rust e Go, fanno del loro meglio per mantenere un clima rispettoso nei vari luoghi di incontro, fisici e virtuali.

Però capita purtroppo che qualcuno non si comporti con lo stesso rispetto quando entra in contatto con persone di altre comunità.

Le conferenze Develer sono un contenitore trasversale a più comunità. Come meta-comunità abbiamo lo stesso obiettivo: creare un ambiente rispettoso delle idee di tutti.

Non abbiamo una ricetta per farlo, ma abbiamo visto con l’esperienza che un po’ di umiltà e tanta voglia di raccontare le proprie passioni hanno aiutato a creare questo clima in Develer. 

Vorremmo lo stesso clima all’interno delle conferenze, principalmente quando si incontrano linguaggi e tecnologie diverse. È proprio a livello trasversale che ci può essere il confronto sulle cose fondamentalmente diverse che possono cambiare il nostro modo di pensare.

Questo post è un po’ complicato, vuole unire tanti aspetti collegati in un’unica narrazione. Il flusso del discorso sarà più o meno questo:

Flusso

Evento scatenante

Venerdì, ora di pranzo, è proprio l’ora di staccare dal lavoro e vedere un po’ che succede nel mondo. Twitter insomma, il mondo vero è mezzo blindato.

C’è un thread interessante, parla di un particolare problema di scheduling, di come in Go sia stato risolto e come, secondo l’autore, sia difficile applicare una soluzione analoga in Rust.

Come organizzatore di conferenze sono interessato, mi piace l’idea di parlare di un runtime evoluto come quello di Go, con migliaia di ore uomo investite e testato su scala globale. Anche ad una conferenza Rust. Allora proviamo ad invitare l’autore del thread ad approfondire la sua opinione.

Però c’è un fatto inatteso. Per questa serie di messaggi l’autore è stato sommerso da commenti, purtroppo anche ostili; commenti di principio e non di sostanza o persino attacchi personali, e quindi ha scritto che, no, non aveva voglia di affrontare di nuovo quello stesso destino.

In effetti a chi piacerebbe ricevere commenti senza capo né coda su una cosa a caso che ci piace e che una persona a caso nel mondo può liberamente non apprezzare? C’è differenza tra «Taci, il Tofu fa schifo!» e «Il Tofu non mi piace». Prendo il Tofu per farvi capire quanto sia facile cadere nella trappola. La diffusione di una comunicazione sgradevole non ne cambia la natura.

Questo mi ha fatto pensare alla realtà delle persone con cui parlo di argomenti tecnici e con cui posso condividere o meno opinioni alte o basse di ogni argomento senza degenerare ed uscendone sempre un po’ arricchito. Quale è la ricetta per avere una comunità con questo spirito?

Analisi del passato

Può una singola storia raccontare lo spirito con cui la tecnologia ed il lavoro viene vissuto da tante persone? Non lo so, ma ci posso provare.

Anni fa Develer scommise in modo forte su Python. In quegli anni gli sviluppatori Python italiani erano pochi, ci conoscevamo tutti per nome e ci siamo fisicamente ritrovati in una stanza per dar vita a quella che poi sarebbe diventata l’Associazione Python Italia https://associazione.python.it/. All’inizio l’azienda si fermava nel periodo del PyCon, perché molti dipendenti erano volontari durante l’evento ed altri partecipavano come pubblico. Ed i clienti accettavano questa realtà (non so quanto volentieri :P, ma a volte erano anche in conferenza). Un cliente in particolare, Comelz, ha confermato qualche anno fa di condividere la visione per cui la formazione e la passione di sviluppatori e sviluppatrici sono fondamentali sia per la salute di un’azienda, ma anche per la riuscita di un buon prodotto. Lo ha fatto acquisendo una quota di maggioranza di Develer e dandoci una grande responsabilità sui suoi prodotti.

C/C++, Python, poi Go… Develer ha sempre avuto un approccio molto pragmatico nelle scelte tecnologiche: cercare di usare lo strumento adatto per ogni lavoro ma senza esagerare nel numero di linguaggi o tecnologie usate, sempre alla ricerca di un buon compromesso.

Però c’è un problema: lo stack tecnologico di un’azienda si può rinnovare ogni qualche anno, ma nel frattempo come trattenere 20, poi 30, poi 50 sviluppatori appassionati dal proporre l’uso delle tecnologie che apprezzano e che ritengono più adatte?

Un primo modo è dare spazio per parlarne assieme. Condividere le proprie conoscenze è sia un modo per… condividerle, che per essere sicuri di aver tutto abbastanza chiaro in testa da poterlo raccontare e rispondere alle domande. Da questa abitudine, che da sempre accompagna ogni team, sono nati prima gli Workshop (ora TechLabs) e poi le altre conferenze Develer. Così Go è entrato in azienda: prima per un interesse diffuso, poi qualcuno è diventato abbastanza esperto da poterne parlare (… il CTO) e fare qualche serata a tema, e poi Go è diventata una competenza diffusa e “vendibile”.

Riflessione

Un aspetto che ha sempre contraddistinto la cultura degli sviluppatori (e da qualche anno sviluppatrici) in Develer è la consapevolezza di non poter essere esperti in tutto, ma magari esperti in qualcosa sì. Ognuno tende a crearsi una competenza approfondita sulle proprie passioni e quindi diventa un punto di riferimento per domande su questo o quell’argomento. Quella stessa persona che è un riferimento per domande su Go, può chiedere ad altri consigli su Python. E con l’esplosione delle tecnologie disponibili (ed anche maledettamente interessanti) tutti sanno bene di essere principianti in qualcosa.

Con questa cultura di formazione continua abbiamo cominciato a organizzare conferenze su linguaggi o tecnologie che ancora in Italia non avevano diffusione. Come in passato gli argomenti degli workshop interni (o aperti ad amici) emergevano in modo naturale dagli interessi dei develeriani, anche oggi con le conferenze cerchiamo di muoverci nello stesso modo: cerchiamo usi interessanti, approfondimenti, prospettive innovative che ci possano aiutare a pensare in modo più aperto.

Ognuno infatti ha le sue preferenze, i suoi linguaggi e le sue librerie preferite, ma senza arroganza, anzi, è normale apprezzare una parte di qualcosa e ritenere che invece l’altra parte potrebbe essere migliorabile. È normale apprezzare l’uso idiomatico della concorrenza in Go e la qualità della sua libreria standard e poi rimpiangere l’assenza (per ora) della programmazione generica stile C++ o della facilità con cui sia possibile ovviare con le macro all’assenza di introspezione in Rust (oppure il contrario di tutto questo). Questo dialogo positivo porta a cercare di prendere il meglio da ogni linguaggio o tecnologia ed a portarlo dove se ne sente la mancanza.

Azioni per il futuro

Con questa prassi di impollinazione incrociata abbiamo avviato varie conferenze, prima QtDay, poi GoLab e RustLab (e LinuxLab ☹️). Proprio in queste conferenze cerchiamo di portare alla luce sia quello che funziona che quello che potrebbe andare meglio, perché solo in questo modo le cose possono migliorare. È inutile raccontarci che tutto va bene se non è vero o se ci siamo adagiati su una soluzione sub-ottimale. A volte un occhio esterno è quello che serve per uscire dal minimo locale e trovare nuovi ottimi. Però serve da una parte la capacità di porre una critica costruttiva e dall’altra l’umiltà di saperla ascoltare.

Una vecchia trasmissione scientifica italiana (Quark) ci ha insegnato fin da piccoli che le conoscenze raccontate con passione sono in grado di arricchire anche chi non riesce a comprendere ogni singolo dettaglio, alla fine chiunque saprà almeno che 1) esistono 2) come si chiamano 3) a chi chiedere.

Questo è quello che chiediamo a tutti gli speaker ed ai partecipanti delle nostre conferenze: arrivare con la mente aperta a scoprire cosa appassiona un collega o una collega che fa un lavoro diverso magari in un posto diverso nel mondo.

Vorremmo che ogni persona si sentisse libera di esprimere le proprie opinioni. Vorremmo creare un posto dove tutti possano esprimersi cercando di non offendere nessuno ed assumere che anche gli altri facciano le stessa cosa. Anche quando usciamo dalla “nostra” comunità e ci affacciamo in quella dei nostri vicini.

E poi chiederò di nuovo all’autore del thread se ha voglia di venirci a raccontare la sua storia e vi farò sapere com’è andata a finire.