Deploy Value

Intré Camp 14 settembre 2021 – Finalmente in presenza!

22 Settembre 2021 - 11 minuti di lettura

Bentrovati cari lettori, è da un po’ che non vi racconto di una giornata di Intré Camp vissuta in presenza…
Quando è stata l’ultima nostra volta insieme? Ora ricordo, era il 29 ottobre 2019…ciò che poi abbiamo vissuto è inutile ricordarlo. Una situazione che ha probabilmente cambiato per sempre alcuni aspetti della nostra vita. Una situazione che stiamo vivendo, ma dalla quale ne stiamo pian piano uscendo.

Torniamo al presente e al racconto di questa splendida (e non solo meteorologicamente) giornata di Intré Camp vissuta alla Villa Medici Giulini di Briosco, a due passi da Monza, il 14 ettembre 2021.

Come da tradizione, la mattina è stata dedicata all’unconference, sfruttando i meravigliosi spazi esterni e interni della villa.
Dopo una gradevole pausa pranzo tra buon cibo, chiacchiere e una passeggiatina nel giardino della villa, il pomeriggio è stato dedicato alla tanto attesa gildonferenza, ovvero la conferenza durante la quale ogni gilda appena conclusa presenta gli obiettivi, il percorso di lavoro, e i risultati.

Come sempre abbiamo messo tantissima carne al fuoco, ciò che posso dirvi è di mettervi comodi e dedicarci qualche minuto alla lettura di questo articolo.

Buona lettura.

Unconference

…non prima di un caffé e un bell’icebreaker!

Un’altra grande tradizione dei nostri Intré Camp, l’icebreaker è un’attività, nell’ambito del team building,  che serve a rompere il ghiaccio – appunto – prima di passare al lavoro di gruppo vero e proprio.
Fabio Ghislandi, Executive Agile Coach nonché partner di Intré, ha come sempre organizzato e gestito questo momento, e per l’occasione ci ha catapultati sopra di una zattera (lo spazio cementato antistante il teatrino della villa).
In cosa consiste questo icebreaker? Ogni volta che Fabio gridava “Jack says <fate qualcosa>” ognuno di noi doveva compiere un’azione ben precisa, rimanendo all’interno della zattera. Abbiamo camminato all’indietro, ci siamo presentati a una persona mai vista prima (sì, dall’ultimo camp in presenza qualche nuovo collega è arrivato) e anche disposti in fila ordinati per età o numero di scarpe. Insomma, è stato un bel momento di risate e allegria che ci ha dato la giusta carica per iniziare la unconference.

L’agenda dell’unconference

Una unconference è una conferenza la cui agenda è organizzata al momento. L’idea è che le proposte di talk (ma anche richieste di aiuto, semplici chiacchierate) arrivino dal basso, dai partecipanti stessi, affinché si abbiano argomenti tutti di reale interesse. Per ulteriori approfondimenti rimando alla lettura di questo paragrafo contenuto nell’articolo dell’Intré Virtual Camp di aprile 2021.

Anche per questo Intré Camp di settembre non sono mancate le proposte. Eccovi dunque una foto dell’agenda organizzata per la unconference:

Come sempre è stata complicato scegliere a quale sessione assistere, perché tutte le proposte sono interessanti.
Nei prossimi paragrafi vi farà un breve resoconto delle sessioni che ho seguito:

Trunk Based Development

Fabio ha dedicato il suo intervento sui vantaggi della pratica del Trunk Based Development.

In cosa consiste?

Tutto gira intorno al trunk, ovvero il ramo principale in cui ogni sviluppatore lavora e rilascia, o in gergo committa, il proprio codice più volte al giorno in una sequenza di piccoli passi incrementali. I test vengono eseguiti direttamente sul trunk dal quale partono anche i rilasci, o meglio le release, per la produzione (sebbene si usino branch appositi per quest’ultime, che vengono tenuti in vita per brevi periodi di tempo).

Primo vantaggio: Compatibilità con Continuous Integration

L’approccio Trunk Based Development così descritto si sposa perfettamente anzi, pare essere proprio un’implementazione pratica dei concetti alla base della Continuous Integration. Ogni componente del team effettua ogni giorno svariati commit sul trunk e questo costringe oltretutto a scomporre la codebase in elementi piccoli e modulari, il che è un passo importante verso una necessaria semplificazione.

Riduce il Cognitive Overload, o Carico Cognitivo

Senza entrare nel merito di cosa si intende per Carico Cognitivo, ogni sviluppatore non ha il problema di dover pensare a quanti e quali branch gestire. Per lavorare con questo metodo è però richiesto uno sforzo da parte di tutto il team perché:

  • bisogna cambiare mindset, è un approccio allo sviluppo completamente diverso;
  • si deve entrare nell’ottica di rilasciare più spesso e meno, in termini di righe di codice;
  • occhio sempre alla quality awareness: mai dimenticarsi della qualità;
  • always deployable: ricordiamoci che ogni piccola modifica al codice fa partire una pipeline con tutti i test che vengono eseguiti e che devono passare affinché avvenga il rilascio. Ogni commit, anche il più piccolo, è un push in produzione.
Bene, ma se dovessi arrivare a fine giornata e la feature al quale sto lavorando è parzialmente completa? Come fare per pushare e deployare?

Si dovrebbe lavorare a Story che siano il più piccole possibile, così da avere appunto meno codice da scrivere. A tal proposito entrano in gioco alcune pratiche.

  • Dark Launching, ovvero nascondere la funzionalità fintantoché è incompleta.
  • Branch by Astraction.
  • Feature Toggles, o Feature Flags, un approccio consigliabile per sviluppi lunghi (magari che durano diversi sprint). Attraverso ad esempio una variabile booleana – magari gestita in un file di configurazione esterno al progetto – si potrebbero nascondere/abilitare porzioni di codice.
Ma se pusho frequentemente e meno, che fine fanno le code review?

Nessun problema. Applicando una delle pratiche dell’eXtreme Programming (XP), come ad esempio il Pair Programming, potrai sempre condividere e divulgare la conoscenza della codebase e allo stesso tempo migliorare le skill tecniche del team, e quindi la qualità della codebase.

Team Topologies

Alessandro Giardina, uno dei nostri Agile Delivery Manager, ha tratto la tematica delle Team Topologies, un concetto del quale ho sentito parlare spesso ultimamente.

Di che si tratta brevemente?

Con i termini Team Topologies non stiamo parlando di un framework specifico bensì di un approccio Agile al cambiamento profondamente ispirato ai concetti umanistici di DevOps e Domain-Driven Design. Il focus è sul team e la sua struttura, proponendo infatti nuove composizioni e modalità di interazione.

Nel suo intervento Alessandro ci ha illustrato il mondo delle Team Topologies a tutto tondo, raccontandoci della Legge di Conway, del Carico Cognitivo, delle quattro tipologie di team e di come poter “affettare” un monolite  – e di conseguenza organizzare i team – e molto altro. Non ho intenzione di anticiparvi – o spoilerarvi per usare un gergo attuale – nulla di quest’affascinante tematica, prossimamente pubblicheremo sul nostro blog un articolo molto dettagliato scritto dal nostro Alessandro.

Intelligenza Collettiva

Pierpaolo – tra gli ospiti di questo Intré Camp di Settembre – è un business coach, mentor e trainer con il quale Intré ha avuto il piacere di collaborare con un corso sulla comunicazione efficace e strategie negoziali per la gestione dei conflitti.

Torniamo al tema del suo intervento e partiamo dal seguente assunto (che è anche il titolo dell’articolo dal quale ha preso spunto Pierpaolo per questa sua sessione)

Dovremmo essere meno d’accordo con noi stessi

Pierpaolo ci ha spiegato come alcuni studi sull’intelligenza collettiva dicono che le decisioni migliori derivano dalla considerazione di opinioni eterogenee.

L’aneddoto del peso del bue

Nell’autunno del 1906 Francis Galton, studioso di statistica, partecipò a una fiera in campagna vicino a Plymouth, in Inghilterra. Decise di partecipare a un concorso a premi che richiedeva ai partecipanti di stimare a occhio il peso esatto di un bue esposto al pubblico: nessuno riuscì a indovinare. Incuriosito da quel gioco, a fine gara Galton chiese di poter raccogliere le 787 ipotesi formulate da tutti i concorrenti, molti dei quali non esperti di animali da fattoria. Una volta tornato a casa, rimase molto sorpreso scoprendo che la media ricavata da quelle stime (542,95 kg) differiva di pochi etti dal peso reale del bue (543,40 kg).

Che cosa ci dice questo aneddoto?

Tra gli studiosi di sociologia e antropologia che si occupano di intelligenza collettiva, questo aneddoto illustra un modello di intelligenza basato sugli effetti delle interazioni di più individui all’interno di una comunità. Il giornalista americano James Surowiecki lo citò nel 2004 come introduzione al suo libro di grande successo “The Wisdom Of Crowds”. Il libro contiene una lunga analisi sulle implicazioni economiche, politiche e sociali del principio secondo cui le decisioni prese da un gruppo molto numeroso di persone possano essere, a determinate condizioni, migliori di quelle prese da pochi individui esperti.

Un primo esempio: Chi vuol essere milionario

Per chi come me ricorda il quiz show “Chi vuol essere milionario?” sa che il concorrente, tra gli altri, ha a disposizione l’“aiuto da casa tramite telefonata” e l’“aiuto del pubblico”. La percentuale di risposte esatte date in base all’aiuto ricevuto tramite telefonata – pochi individui esperti o meno – si aggira intorno al 65%. Sapete invece a che valore si aggira la percentuale di risposte esatte date dal pubblico? Intorno al 91%.

Un secondo esempio: il disastro del Challenger

Surowiecki nel libro del 2004 riprende un caso piuttosto noto tra gli addetti, risalente al 1986. Alle 11:38 del 28 gennaio lo Space Shuttle Challenger lasciò la rampa di lancio di Cape Canaveral, in Florida, e si disintegrò sull’Oceano Atlantico dopo 73 secondi. La prima notizia sul disastro fu riportata dal Dow Jones NewsWire 8 minuti dopo l’esplosione.
Il prezzo delle azioni dei quattro principali appaltatori coinvolti in quella missione della NASA – Rockwell International, Lockheed, Martin Marietta e Morton Thiokol – scese rapidamente e in modo uniforme nei primi venti minuti, dopodiché le azioni di tre di queste quattro aziende risalirono, tranne quelle di Thiokol.
Nei mesi successivi i tecnici della NASA scoprirono che a causare l’incidente fu il malfunzionamento di una guarnizione su uno dei due razzi, forse determinato dalla scarsa resilienza del materiale alle basse temperature prima del lancio.
Sapete quale azienda si occupò delle guarnizioni? Thiokol.
Ora…sarà stato o meno un caso, ma la “saggezza della folla” rappresentata dal mercato azionario fu in grado di identificare le responsabilità prima del lavoro di qualsiasi commissione di inchiesta guidata dagli esperti.

Le 4 condizioni per una “saggezza di folla”

Sempre Surowiecki, nel suo libro del 2004, ha elencato 4 proprietà necessarie in un gruppo molto numeroso di individui affinché si possa attribuire una forma di saggezza a una folla:

  • Diversità di giudizio.
  • Indipendenza delle opinioni: ogni persona deve formulare la propria ipotesi senza conoscere quella delle altre persone (come negli esempi di “Chi vuol essere milionario” o del concorso di Galton sul peso del bue).
  • Decentralizzazione, ovvero occorre che le persone formulino le loro ipotesi attingendo ciascuna dalla propria conoscenza privata.
  • Aggregazione, cioè ci sia modo di aggregare le ipotesi in un’unica ipotesi collettiva.
Consideriamo l’opinione opposta

Questo discorso sull’intelligenza collettiva è applicabile anche al singolo individuo, a noi stessi. È come se “ognuno di noi avesse una folla interiore”, e studi dimostrano che quanto più siamo in grado di interiorizzare e integrare una ricca varietà di punti di vista contrastanti tanto più sarà corretto il pensiero che avremo in determinate situazioni.
La storica statunitense Doris Kearns Goodwin, autrice di un’acclamata biografia di Abramo Lincoln uscita nel 2005 e intitolata “Team of Rivals: The Political Genius of Abraham Lincoln”, racconta che per formare il suo governo Lincoln riunì una squadra di suoi avversari politici. “La grande fiducia in sé stesso” dice Goodwin “gli permise di essere di fatto il primo a rompere con la convenzione di “nominare persone che la pensano come te””.

Arte generativa

Roberto, UX/UI designer con forti tendenze verso il mondo dello sviluppo software, ci ha parlato di Arte generativa, un tipo di arte del quale francamente non ho mai sentito parlare.

Di che si tratta?

Prendendo spunto dalla pagina Wikipedia, con il termine Arte generativa ci si riferisce al concetto di

Arte che genera arte” dove l’opera artistica è il prodotto di un sistema autonomo in grado di determinare le caratteristiche (forme, suoni, colori, ecc.) di un’opera che altrimenti richiederebbe decisioni prese direttamente dall’artista.

Opere d’arte generativa possono essere create attraverso sistemi meccanici, robotici, informatici, chimici, di randomizzazione e altro. Roberto ci ha portato alcuni esempi di arte generativa legata al mondo dell’informatica.

Piet Mondrian e Creative Alghoritms

Chi non ha mai visto un quadro di Piet Mondrian raffigurante una serie di forme geometriche con colori primari. In tema di arte generativa in rete trovate un sacco di programmi che vi permettono di simulare queste sue composizioni…addirittura algoritmi che vi permettono di creare vostre versioni di quadri in stile Piet Mondrian.
Qualora voleste cimentarvi, provate a scrivere il vostro quadro in questo editor online.

Roberto ci ha mostrato un video che dimostra la potenza dell’arte generativa, per la precisione un susseguirsi di immagini e colori realizzate dall’artista Patrik Hübner il quale utilizza algoritmi creativi, data-driven design e tecniche di coding basate sull’intelligenza artificiale per produrre interazioni significative tra design, arte e dati.

TouchDesigner

Non solo teoria in questa sessione proposta da Roberto, ma anche una demo di un’opera d’arte generativa da lui realizzata utilizzando TouchDesigner, un linguaggio di programmazione visuale per contenuti multimediali interattivi in tempo reale. È utilizzato da artisti, programmatori, progettisti di software e artisti per creare performance, installazioni e contenuti media.
L’idea che sta alla base di questo linguaggio è la possibilità di combinare tra loro diverse tipologie di contenuti multimediali (audio, video ecc.) trascinando nell’editor dei nodi e connettendoli tra loro.
Con un po’ di pratica è possibile realizzare delle belle opere d’arte generativa, come quella che ci ha mostrato Roberto. Occhio però alle risorse, perché un progetto gestito in locale, magari utilizzando una macchina ben equipaggiata, una volta pubblicato sul web può risultare pesante e non performante.

Gildonferenza

Siamo sempre più numerosi, e una dimostrazione la si ha dalla quantità di gilde che sono state presentate in questa gildonferenza:

  • L’Arte della Fuga
  • Giochiamo da remoto
  • CEH 2
  • Libreria di componenti JS di Thanks
  • Reactiva 2
  • i3Portal
  • Team Topologies: studio individuale da parte di Alessandro Giardina.
  • UX / Scrum / Sketch: una gilda dedicata al ruolo del designer in Scrum, e approfondimento dello strumento di design Sketch. Dedicata ai nuovi colleghi di Thanks Design.
  • Kubernetes e Docker: studio individuale di Kubernetes e Docker da parte di Gabor Heves.

Per approfondimenti su quest’ultima tornata di gilde e tutte le precedenti vi invitiamo a visitare la pagina dedicata nel nostro sito intre.it/gilde.

Conclusioni

Che dire di questo ritorno dell’Intré Camp in presenza…è stato come se fosse una prima volta.

Per molti, compreso il sottoscritto, è stata la prima occasione per vedere di persona nuovi colleghi e tornare a ridere e scherzare con tante persone, compresi i nostri ospiti – che ringraziamo – Luca Giovenzana, Pierpaolo Muzzolon e Marco Loche. Perché un conto è sentirsi attraverso uno schermo con cuffie e microfono, ben altro è avere l’altro/a davanti ai propri occhi in carne e ossa.

Vi saluto lasciandovi con un’ultima carrellata di foto scattate durante questo bellissimo Intré Camp del 14 Settembre 2021.

Articolo scritto da