Learn

La prima UNCONFERENCE del 2021 – Intré Virtual Camp di aprile

12 Maggio 2021 - ~ 12 minuti di lettura

A distanza di poche settimane dalla gildonferenza, Il 27 aprile è andata in scena la seconda parte del primo Intré Camp del 2021.

Abbiamo organizzato la nostra unconference, ovviamente (e sperabilmente ultima volta) da remoto.

Siamo stati tanti a partecipare, noi di Intré più alcuni ospiti esterni sulla scia di un esperimento iniziato l’estate scorsa e decisamente riuscito e apprezzato. Dopotutto più si è e meglio è, più conoscenza e scambio di idee e opinioni.

Ma…che cos’è una unconference? Ho dedicato il primo paragrafo alla spiegazione di questo formato di conferenza e all’organizzazione nella modalità “virtual”.

Il resto dell’articolo è dedicato al resoconto delle sessioni che hanno animato ognuna delle quattro stanze virtuali:

Non solo talk in questa unconference, ma anche la prima edizione della Coppa Sapiens. Di cosa si tratta?

Buona lettura.

Unconference

Basata sulla metodologia Open Space Technology [1], una unconference (o open conference) è una conferenza la cui agenda è organizzata al momento. L’idea è che le proposte arrivino dal basso, dai partecipanti stessi, affinché si abbiano argomenti tutti di reale interesse.
Non solo argomenti da proporre, ma anche richieste di aiuto, dubbi, spunti che possano generare una discussione costruttiva.

Esiste una sola legge, la Legge dei due piedi, ossia che abbiamo il dovere di andare dove possiamo trarre/apportare valore, e si basa su quattro principi:

  • Quando comincia è il momento giusto.
  • Chiunque venga è la persona giusta.
  • Quando è finita, è finita.
  • Qualsiasi cosa accada, è l’unica che poteva accadere.

Come i calabroni e le farfalle, i partecipanti sono liberi di spostarsi di stanza in stanza, trasportando in questo caso informazione e conoscenza.

La nostra unconference…virtuale

Alessandro Giardina, nostro Agile Delivery Manager (se volete saperne di più, vi invito a iscrivervi a questo gruppo LinkedIn) e cerimoniere ufficiale delle unconference, ha curato l’evento avvalendosi di Miro e Microsoft Teams per le stanze virtuali. Brevemente, Miro è una online collaborative whiteboarding platform che consente a team distribuiti di lavorare efficacemente insieme, dal brainstorming con sticky notes digitali alla pianificazione e gestione di flussi di lavoro Agili. Miro mette a disposizione una serie completa di funzionalità di collaborazione tra cui video, chat, presentazione e condivisione, per rendere più semplice il lavoro cross-funzionale di team e semplificare la collaborazione.

Come è organizzata la whiteboard della nostra unconference?

Alessandro, con l’aiuto di uno dei nostri UX/UI designer Giacomo Nava, ha allestito tre spazi ben definiti:

  • Marketplace, contenente immagini evocativi dei quattro principi e la regola dei due piedi, e appunto la scaletta dell’unconference con i talk proposti.
  • Parking lot, un vero e proprio parcheggio di tutte le proposte fatte e magari scartate.
  • Una tabella che rappresenta l’agenda. Tante colonne quante sono le stanze virtuali e solitamente sette righe che scandiscono i tempi dell’unconference: apertura, due sessioni di talk, coffee break, altre due sessioni, e chiusura dell’evento.
  • Feedback, con tre poster per collezionare feedback sullo schema Mad Sad Glad [2].

Il resto della whiteboard è a disposizione dei partecipanti per creare qualunque nota relativa a spunti acquisiti, link a slide o altro materiale inerente alle sessioni.

Qual è l’agenda della nostra unconference?

Dopo una fase introduttiva in cui Alessandro spiega il format per i nuovi, vengono dedicati una quindicina di minuti per proporre i talk/discussioni/domande in cerca di risposta.
Terminato questo momento, viene fatta un’attività di marketplace dove ogni post-it contenente la proposta viene spiegato in pochi secondi e poi collocato in uno degli slot.
Come accennato prima, ognuna delle quattro stanze è rappresentata da una room con Microsoft Teams. Il link a ogni stanza virtuale è raggiungibile dall’intestazione della colonna della tabella nel marketplace.

Coppa Sapiens

Il nome di questa competizione, pensata da Marco Loregian, prende il nome da i3 Sapiens.
i3 Sapiens è una piattaforma web, sviluppata nel corso di due gilde, per la valutazione delle skill tecniche in stile Codewars. Il 27 aprile abbiamo dato vita al utilizzata sia internamente (durante un colloquio) che esternamente, con approccio gamification (per ogni problema risolto si guadagna un badge).

La competizione, aperta a tutti gli invitati, è durata il tempo di uno slot (all’incirca 45 minuti) e ha riguardato la risoluzione dell’esercizio “Numeri di Armstrong”.

I numeri di Armstrong sono numeri per i quali la somma delle k cifre che li costituiscono, ognuna elevata alla k-esima potenza, equivale al numero di partenza.

Ogni partecipante doveva scrivere una funzione che restituisse “OK” in caso di numero di Armstrong passato come input, altrimenti “KO”.

Per l’implementazione della soluzione è stato possibile usare uno dei  tre linguaggi supportati dalla piattaforma (Java, JavaScript, Python) e usare qualsiasi risorsa disponibile online nonché la propria IDE abituale, purché il codice girasse obbligatoriamente sulla piattaforma.

Al termine della unconference Marco ha annunciato i vincitori: chi ha risolto per primo il problema, chi lo ha risolto con tutti e tre i linguaggi e il più veloce tra gli under 30.

Bravi tutti!

Main Room

Nella stanza principale si è parlato di:

  • Notion.so, una soluzione online per la gestione dei propri task e dati.
  • VisualBOT, un progetto universitario relativo allo sviluppo di un bot Telegram con intelligenza artificiale.
  • Protocollo di comunicazione MQTT.
  • Apache ZooKeeper, un servizio di sincronizzazione e gestione utile per sistemi distribuiti.

Notion.so

Stefano Maffeis ha parlato di Notion, una applicazione web sviluppata in React per la gestione dei documenti. Gli elementi fondamentali di Notion sono due: le pagine e i database. In ogni pagina è possibile aggiungere To-do list, appunti semplici, immagini, link e quant’altro. I database sono il vero “game changer” perché è possibile configurare tabelle aggiungendo dati di diverso tipo e combinarli tra loro tramite relazioni e formule. Tabelle che possono essere all’interno di una stessa pagina o in una pagina diversa.
Un uso tipico di Notion è quello di “task manager” per appunto tenere traccia dei task inerenti sia alla vita privata che lavorativa. Stefano ad esempio mantiene quotidianamente una pagina con l’elenco degli articoli/libri da leggere e un’altra invece relativa al materiale da studiare, possibili gilde o note sui task del progetto al quale sta lavorando.
Visto la tendenza al proliferarsi di pagine e quindi generare caos nel proprio spazio in Notion, sempre più utenti stanno applicando un sistema: P.A.R.A [3]. L’acronimo sta per Projects, Areas, Resources, Archives ovvero aree entro le quali racchiudere tutti i nostri appunti/documenti.

VisualBOT

Andrea Caglio, insieme ai suoi compagni di corso di laurea di informatica dell’Università degli Studi di Milano-Bicocca, hanno presentato un progetto di Visual Information Processing and Management e precisamente un bot Telegram che, ricevuto in input un’immagine di un oggetto, ne riconosce il tipo (una maglietta, una giacca ad esempio) sfruttando alcuni processi di machine learning e intelligenza artificiale. La presentazione è ruotata intorno alle fasi del progetto, dalla creazione e preparazione del dataset, la classificazione dei dati, gli algoritmi per stabilire la similarità dell’immagine, le logiche di correzione delle immagini e infine il bot Telegram. Tutti argomenti che verranno approfonditi in un articolo che uscirà nei prossimi giorni.

Protocollo di comunicazione MQTT

Claudio Volpi ha parlato di MQTT, acronimo che sta per Message Queuing Telemetry Transport, un protocollo binario di trasmissione TCP/IP molto diffuso in ambiti M2M (Machine to Machine) e IoT (Internet of Things) basato sul modello Publish/Subscribe [4]. Gli attori coinvolti sono tre: Publisher e Subscriber, di tipo client, che possono comunicare esclusivamente con il Message Broker lato server. A livello architetturale i tre elementi si scambiano una stringa, definita Topic, che identifica il messaggio. Il Publisher pubblica uno o più Topic che vengono recapitati dal Message Broker al/ai Subscriber che sono sottoscritti.
Claudio ha descritto le caratteristiche che fanno di MQTT un protocollo tanto semplice da implementare (tre funzioni, Connect, Publish e Subcribe) quanto affidabile: garanzie di comunicazione, Quality of Service [5] e il payload.

“Si potrebbe andare tutti quanti allo zoo comunale” – Apache ZooKeeper

Marco Testa ha scelto un titolo di una nota canzone italiana per introdurre l’oggetto del suo intervento, ZooKeeper, un progetto software di Apache Foundation che offre un servizio di sincronizzazione per grandi sistemi distribuiti. Marco ha parlato del perché della scelta di ZooKeeper, delle caratteristiche principali (API, Leader Election), degli spunti e riflessioni dall’esperienza d’uso del servizio. Trovate ulteriori approfondimenti in questo articolo.

The Oval Room

Queste le sessioni che hanno animato la stanza ovale.

  • JetBrains tips & tricks, ovvero una carrellata di shortcut utili per lavorare al meglio con gli IDE prodotti da JetBrains.
  • Workflow, di un progetto React, che facilita il lavoro di designer e sviluppatori.
  • Brainstorming sul processo di selezione del personale in Intré.
  • Team Happiness: dalle origini del termine felicità sino ad arrivare a un tool interno che misura la felicità in un team.

JetBrains suite: tips & tricks

Fabio Fortini ha dedicato lo speech al mondo JetBrains e in particolare alcuni trucchi e shortcut da usare nell’IDE che si utilizza (IntelliJ IDEA, PyCharm e Rider solo per citarne alcuni). Dopo aver spiegato come è oganizzata l’interfaccia di un IDE (schermata con il codice, menu, tab principali) Fabio ha mostrato alcune shortcut utili, ovvero combinazioni di comandi per interagire velocemente con l’IDE.
Nota: Per possessori di MacBook, sostituite ctrl con il tasto command.

  • ctrl + shift + a: la a sta per action, per cercare funzionalità dell’IDE, metodi/parole/classi nel codice…di tutto.
  • ctrl + spazio: l’auto-completamento dell’istruzione di codice che stai scrivendo. Ovviamente i suggerimenti variano a seconda del linguaggio di programmazione.

Altre shortcut utili sono quelle relative all’integrazione con git:

  • ctrl+k: per committare un file e inserire eventuale commento.
  • ctrl + shift + k: per committare e pushare sul branch.

Shortcut utili sul codice:

  • alt + invio: l’IDE suggerisce azioni migliorative sul codice, in base ovviamente alla posizione del cursore.
  • alt + shift + freccia su/giù: per spostare la riga di codice selezionata.
  • ctrl + d: per duplicare una riga.
  • ctrl + y: per eliminare una riga.
  • shift + F6: seleziona tutte le occorrenze della parola. Utile per piccole operazioni di refactoring, magari quando si vuole rinominare una variabile. Modifico il nome ad una e me lo applica a tutte.

Workflow di un progetto in React

Roberto Aceti ha parlato del workflow, per un progetto React, che viene applicato nel suo team per agevolare il lavoro e la collaborazione tra designer e sviluppatori.
Il primo importante componente di questo workflow è la React Styleguidist, un ambiente di sviluppo componenti condiviso con il team. Roberto ha spiegato le caratteristiche e mostrato i vantaggi attraverso una piccola demo.
Il secondo componente è il workflow stesso, ovvero una serie di step che designer e sviluppatore seguono per l’implementazione di un componente, nuovo o noto che sia: briefing, installazione, implementazione e check.
In conclusione Roberto ha parlato di SCSS, ovvero un superset del più noto CSS che aggiunge diverse feature quali uso di variabili, funzioni matematiche, cicli e quant’altro.
Nei prossimi giorni verrà pubblicato un articolo di approfondimento, vi terremo informati.

Processo di selezione del personale in Intré

Marco Loregian e Alessandro Giardina hanno dedicato una sessione di brainstorming su una attività molto importante, ovvero i colloqui di lavoro. Un processo che ha visto un’evoluzione, soprattutto per quel che riguarda la parte di screening tecnico del candidato, che a oggi vede due fasi:

  • risoluzione di un semplice problema nella nostra piattaforma interna i3 Sapiens, sviluppata grazie alle gilde, per la valutazione di diversi aspetti: comprensione del problema, approccio alla soluzione, eleganza del codice della soluzione (pulizia del codice, refactoring), utilizzo degli strumenti (IDE) e comunicazione, ovvero la spiegazione dell’elaborato;
  • sessione con il team, utile sia al candidato che al team.

Il brainstorming è stato organizzato in due momenti: un primo in cui ai partecipanti del talk è stato chiesto di raccogliere idee, tramite post-it su Miro, in merito a “cosa funziona”, “cosa non funziona” e “cosa è migliorabile” dell’organizzazione di un colloquio, test delle soft skill e test delle hard skill. Nella seconda fase si è chiesto di scrivere cosa è successo nella sessione e dopo la sessione, chiedendo di vestire i panni o del candidato o del selezionatore.

Team Happiness

Damiano Salvi, insieme a Marco Loregian, ci hanno parlato di Team Happiness. Che la felicità sia importante nella sfera privata è abbastanza ovvio, ma lo è anche sul piano professionale. Molti studi correlano lo stato di felicità con: produttività, creatività, qualità del lavoro svolto, capacità di acquisizione di nuove skill ed efficacia nella condivisione della conoscenza (quando si è di buon umore è più facile parlare con gli altri effettivamente). Quasi tutti pensiamo di saper riconoscere quando siamo felici, ma la consapevolezza emotiva non è per nulla scontata perché le persone fanno molta fatica a riconoscere tristezza e stress. Inoltre, se è complicato riconoscere lo stato emotivo altrui, sarebbe utile avere una visione del contesto emotivo, può sicuramente aiutarci nelle relazioni. Come fare? Con questionari estensivi, polling a intervalli regolari, o altre tecniche, è possibile rilevare lo stato d’animo.
Uno strumento utile per il team è quello dei Mood marbles, dove ogni mattina ogni membro del team mette in un vaso una pallina o un foglietto che esprime come si sente. Questo è utile per avere lo stato d’animo del team magari prima di ogni cerimonia, per capire come uno sprint. Inoltre rinforza fiducia e coraggio.
Ed è qui che interviene Damiano che da bravo sviluppatore ha realizzato un’applicazione dal nome Intré mood marbles. La pagina presenta due grafici relativi ai voti ottenuti da ciascuna emoji. Il progetto ha appunto l’intento di permettere a ogni team (idem per le gilde) di misurare lo stato d’animo. Di seguito una schermata presa dalla demo di Damiano:

Il progetto è ovviamente in fase embrionale, chissà che in futuro non vi parlerò di qualcosa di più strutturato e aperto a tutti.

Panic Room

In questa stanza virtuale sono state trattate diverse tematiche.

  • Feedback: darli e riceverli non è semplice. Hanno trattato la tematica due nostri amici: Francesco Agozzino e Pierpaolo Muzzolon.
  • CDC Testing: una discussione aperta sulla tematica, a cura di Raffaele Colace, co-founder di 20tab, altro nostro gradito ospite.
  • Kotlin-Ascii-Art: a cura del nostro Damiano Salvi, come implementare un editor per immagini in Ascii art con poche righe di codice Kotlin.
  • XD Component library: sulla scia del talk di Roberto Aceti nella Oval Room, Diego Chierichetti riprende il tema del lavoro designer-sviluppatori mostrandoci la libreria di componenti XD.

Il feedback

Pierpaolo Muzzolon ci ha parlato dell’importanza del feedback, dell’impatto che ha su di noi spiegandoci il modello S.C.A.R.F. elaborato da David Rock nel 2008. Per approfondimenti rimando alla lettura di un mio articolo su un webinar tenuto da Pierpaolo. Dare feedback non è semplice, per dimostrarlo Pierpaolo ha organizzato una sessione interattiva chiedendo ai partecipanti di riconoscere, in 10 frasi, dove c’è osservazione e dove c’è giudizio.

Perché fa bene dare spesso feedback? Francesco Agozzino ne parla a livello di team individuando, secondo la sua esperienza, quattro tipologie: negativo (“questo lavoro che hai fatto non va bene”), precauzionale (“se vai avanti così le cose non andranno bene”), futuro positivo (“se continui così verrà fuori un bel lavoro”) e positivo (“bravo, bel lavoro!”). Che qualità deve avere il feedback per essere efficace? Con questa domanda Francesco ha generato una discussione tra i partecipanti, con un’attiva partecipazione da parte di tutti.

CDC Testing – Contract Testing

Raffaele Colace, sulla scia del tema del feedback trattato nel talk precedentemente, ha aperto una discussione sui test. Ricordando la celebre piramide del test [6], Raffaele ha spiegato le varie categorie di test: test di unità, test di componente, test di integrazione, e GUI, quindi test della UI. E il contract testing [7]? È una metodologia per garantire che due sistemi separati (ad esempio due microservizi) siano compatibili e in grado di comunicare tra loro. Cattura le interazioni che vengono scambiate tra ogni servizio, memorizzandole in un contratto, che può poi essere utilizzato per verificare che entrambe le parti aderiscano a esso.
Da qui è nata un acceso dibattito per comprendere meglio la metodologia del contract testing.

Kotlin Ascii Art

Damiano Salvi presenta un suo progetto, scritto in linguaggio Kotlin e sfruttando la libreria per applicazioni client JavaFX, per implementare le tipiche funzionalità di un editor di immagini (crop, enlarge canvas, flip horizontal, rotate ecc.) da applicare a immagini realizzate da una lista di stringhe Ascii. Damiano, in una sessione di live coding, ha implementato tutte le funzionalità spiegando, per ognuna, i metodi utilizzati sugli oggetti List e Map facendo emergere una delle caratteristiche di Kotlin, ovvero la semplicità e chiarezza della sintassi del linguaggio.

Libreria di componenti XD

Diego Chierichetti ha parlato di uno strumento utilizzato per creare librerie di componenti software. Lo strumento in questione è XD della suite Adobe, e per questa unconference Diego ha realizzato e spiegato un semplice progetto relativo al Design System del sito Intré dove sono definiti i colori, gli stili dei testi, le icone e quant’altro. Durante la sessione Diego ha dimostrato alcune potenzialità di XD quali l’export e la condivisione di librerie Tramite una delle funzionalità di XD sarà possibile esportare e condividere (anche per altri tool quali Zeplin) il progetto agli sviluppatori i quali, per ogni componente, potranno accedere a parametri stilistici.

The Chamber of Secrets

Quali sessioni hanno animato la Camera dei Segreti durante questa prima unconference del 2021?

Di tutto un po’…dcast

A chi non è capitato di sentire il termine podcast o di farne uso, soprattutto nell’ultimo anno e mezzo. Ma che vuol dire podcast? Qual è l’etimologia di questa parola? Nella prima parte del talk ho risposto a queste domande, raccontando le tappe della breve storia del podcast dal 2001, con i primi iPod Apple, sino ai giorni nostri. Ho poi illustrato le principali caratteristiche e perché un’azienda dovrebbe adottare i podcast, riportando esempi sia di grandi realtà (Gatorade, Eni) che di realtà più inerenti al nostro mondo dell’Agilità, quali OfficinaAgile e Agile For Italy, e due esempi di podcast tecnici curati da Flowing e SparkFabrik. In chiusura ho poi coinvolto i partecipanti chiedendo quali tematiche potrebbero essere trattate in un nostro ipotetico podcast: i3 Podcast.

User Story Mapping

Gabriele Giaccari ha diviso la sessione in due momenti. La prima dedicata al suo talk “USER STORY MAPPING – Alla ricerca della Comprensione Condivisa”. Lo strumento, ideato da Jeff Patton e descritto nel suo libro [8] del 2014, è utile per ogni team in fase di analisi e gestione dei progetti.
Come si utilizza? Nel corso di un workshop tutto il team si riunisce per realizzare una mappa che, rappresentante gli step da svolgere per il prodotto, fondata su quattro importanti punti:

  • Individuare il problema e l’obiettivo da raggiungere. Prima si fa chiarezza su questo, poi si inizia la discussione.
  • Durante la conversazione, appuntare tutto su dei post-it.
  • È importante avere una visione chiara, e tirare fuori i dettagli just-in-time, ovvero man mano. Quando serve.
  • Creare una comprensione condivisa. Se sappiamo quello che stiamo facendo, lo faremo bene.

Per comprendere lo strumento lo stesso Jeff Patton suggerisce un esercizio, la “morning map”, ovvero elencare tutto ciò che facciamo da quando ci svegliamo a quando andiamo a lavoro. Riorganizzare poi i task evidenziando un “goal task”, ovvero un’aione che non ha senso interrompere volontariamente. Disporre i task da sinistra a destra, per creare una mappa.
Allargando l’esercizio a una situazione lavorativa sul progetto nel quale lavoriamo, creiamo la mappa insieme al team. Di tutti i task che si producono, accorpiamoli per sintetizzare la mappa creando una sorta di spina dorsale.
Gabriele ci ha regalato qualche consiglio d’uso dello strumento, frutto della sua esperienza. Ad esempio, usare la U.S. Map legando gli  obiettivi con le attività, dopo essersi posti le seguenti domande: “Perché utilizzi questo prodotto?”, “Quali attività devi svolgere?”. E una volta definite le attività, creare tanti task quanti sono gli step per l’attività specifica.
In un’ottica di “continuous delivery e continuous improvement”, tenere in considerazione il concetto di MVP, ovvero Minimum Valuable Product. Scegliere il minor numero di obiettivi e step che diano valore al prodotto per l’utente.

Nella seconda parte della sessione si è animata una discussione sullo strumento. Usare pareti, pennarelli e post-it o un tool elettronico? E in caso, la versione digitale manterrebbe la caratteristica di visualizzazione bidimensionale? Gabriele ha poi mostrato un tool realizzato internamente in 20tab.

Professionalità e dintorni

La professionalità è un tema molto delicato, come la viviamo nel quotidiano? Secondo Manuel Togni intorno a questo termine ruotano diversi concetti da tenere tutti in considerazione: apprendimento, esperienza, abilità, crescita, competenza, training e conoscenza. Tutto questo bagaglio di conoscenza, se non sostenuto da uno stato mentale sereno o la giusta energia, serve a poco. Da questa riflessione è nata un’interessante discussione che ha coinvolto tutti i partecipanti, che hanno toccato argomenti quali la comfort zone (“Quanto è importante uscire dalla comfort zone?'”) e l’efficacia del team (“Outcome vs output: un team orientato al risultato è più efficace di un team orientato all’output”).

Gather Town

Alessandro ci ha presentato Gather (Gather Town), una nuova piattaforma di collaborazione virtuale utilizzabile sia come ufficio che come luogo di ritrovo per amici e parenti.
L’aspetto divertente è dato dalla grafica in 2D, che richiama videogiochi di successo tra fine anni ’90 e primi 2000 quali Pokémon – Prima generazione, con formati predefiniti che riproducono una casa, una chiesa o altri luoghi di aggregazione. Gather non è solo questo: dato che si possono costruire luoghi anche più grandi, viene spesso usato per eventi quali conferenze, in cui gli utenti possono rivivere gli scambi casuali, incontrando altre persone e scambiando quattro chiacchiere come se stessero faccia a faccia.
Gather è gratuito per spazi fino a 25 utenti oltre i quali sono previsti dei piani a pagamento che permettono anche di costruire delle raccolte di spazi, proprio come fossero delle città, e di personalizzare gli spazi con molti più oggetti.

Conclusioni

Che dire di questo pomeriggio di unconference. Le quattro ore sono letteralmente volate, e questo grazie sia alla qualità delle sessioni proposte che alla partecipazione molto attiva di tutte le persone, che ringrazio.

Con la speranza di potervi raccontare di una prossima unconference o gildonferenza organizzate in presenza, vi saluto e vi ringrazio.

Articolo scritto da