19 Ottobre 2017
Intré Camp – 5 Ottobre 2017

Giovedì 5 ottobre si è svolto il consueto camp aziendale nella tranquilla e accogliente atmosfera dell’agriturismo La Camilla a Concorezzo, dove una volta vi erano tutti campi.

Posati gli zaini e goduto di un buon caffè di benvenuto, Fabio ha richiamato tutti all’ordine per dare ufficialmente inizio alla giornata.
Visti i tanti volti assonnati, cosa c’era di meglio di un po’ di attività fisica per rompere il ghiaccio ? Ice breaker !!

Disposti in cerchio, Fabio ci ha chiesto di sfidarci a coppie a morra cinese, gara secca.
Ok… e il coinvolgimento?
La parte divertente è stata nel fatto che di volta in volta lo sconfitto doveva incitare il vincitore, così da arrivare allo scontro finale con i contendenti supportati da un vero e proprio gruppo.
E’ stato molto divertente notare come pian piano da una flebile voce “dai, dai, dai!” si fosse passati a cori ed urla, degni del Maracanã !

Sull’onda dell’entusiasmo, Fabio ci ha coinvolti nel secondo ice breaker: le opere viventi.
No, non si sta parlando delle opere di arte mobile di un certo personaggio tristemente noto su Youtube bensì di come, suddivisi in 3 gruppi, si dovesse rappresentare un oggetto\animale scelto di volta in volta da Fabio.
Per l’occasione, ogni gruppo si è organizzato come meglio potesse per rappresentare:

  • un pavone
  • un elefante
  • un elicottero

Scherzi e risate a parte, cosa è emerso da questi ice breaker? Un team deve essere affiatato, si deve credere nelle capacità di ognuno e muoversi all’unisono per raggiungere l’obiettivo.
Ghiaccio decisamente rotto, ora tutti in sala per organizzare la mattinata.

Open space

Sull’onda del precedente camp, si è deciso di organizzare le 3 ore della mattina con talk proposti e votati da tutti.
Sotto l’attenta supervisione di Fabio, ognuno ha scritto la sua proposta su di uno sticky note poi attaccato su di una flip chart.
Dopo aver raggruppato le proposte simili, si è proceduto con il dot-voting (3 voti a testa) per capire quali fossero le idee più interessanti e da questa fase la scelta dei 9 candidati per organizzarli secondo le 3 location a nostra disposizione (2 sale e esterno).

La time table in foto è il risultato di un’effervescente discussione che ha portato più volte Fabio a spostare i foglietti da uno slot ad un altro, sintomo del fatto che tutte le proposte fossero interessanti. Dopotutto, ognuno di noi può trovarsi in un solo luogo allo stesso momento, peccato davvero 🙂

Architettura esagonale

Stesso camp, stesso problema per Ferdinando 🙂
Tentato dal non proporre un bel niente (un talk approvato equivale ad un talk in meno da poter seguire 🙁 ), si è infine offerto di condurre una presentazione sulle architetture esagonali, tema rivelatosi decisamente interessante dato il buon numero di colleghi che hanno scelto di partecipare.

L’idea iniziale era quella di prendere un kata con del codice legacy e rifattorizzarlo seguendone i princìpi, ma alla fine il tempo non era sufficiente così si è preferito discutere e confrontarsi sui temi esposti a suo tempo da Alistair Cockburn per capirne meglio l’idea di fondo e verificare se già si stesse mettendo in pratica qualcosa di simile nel lavoro quotidiano, o se fosse il caso di approfondire l’argomento ed iniziare a pensare per poligoni più che per layer.

Com’è andata a finire ? Nonostante qualcuno pensasse fosse una “cosa nuova”, ci si è resi conto del fatto che più o meno tutti già applicassero il principio di “Port and Adapter” nelle applicazioni alle quali si lavora, solo non si sapeva che qualcuno gli avesse dato un nome più di 12 anni fa 😊

Il talk è proseguito con un excursus sul’architettura dei software che si è soliti vedere nel corso degli anni, composta di strati più o meno isolati, ed insieme si è convenuto sul fatto che dopo lo spaghetti code, anche quest’altro modo di fare software, definibile come lasagna code, difficilmente si sposa con le applicazioni che il mercato di oggi ci richiede; non si tratta più di costruire un’interfaccia grafica che con qualche click pesca e scrive dati su un database, piuttosto di creare esperienze utente ricche ed interconnesse, pronte a scambiarsi dati con sistemi ed apparati esterni che di giorno in giorno producono dati da elaborare e conservare.

L’architettura proposta offre un punto di vista interessante ed una soluzione semplice ed efficace per permettere al nostro software di crescere in maniera ordinata, mantenendo ben chiari e limitati i punti di aggancio con il mondo esterno.

Si è anche discusso sul potenziale overhead che questa architettura potrebbe indurre: vale sempre la pena investire del tempo per disaccoppiare fortemente il proprio dominio da un attore esterno? Qual è il trade-off rispetto ad un più breve time-to-market?

La discussione non è mancata, ed i punti di vista e le esperienze differenti hanno fatto nascere un interessante confronto, smorzato solo dal suono della campanella… vorrà dire che ne parleremo ancora al prossimo Camp! 😊

Bravo Nando!

Java++

Damiano, da buon anzi ottimo javista quale è, ha raccontato di come Java, dalla versione 1.1 in avanti, si sia sempre migliorato portando novità stilistiche e non solo, novità che non sempre però siamo disposti a comprendere e far nostre, vuoi perché “il codice è vecchio ma così già funziona” oppure “non ho tempo”.
Tra un esempio di codice ed un altro, un Vector anziché un Set, interventi dei presenti e qualche risata, il tempo a disposizione del buon Damiano è letteralmente volato… Proprio quando eravamo arrivati alla ciccia: gli Stream introdotti da Java 8. I più attenti sapranno che dalla release 5 si è deciso di cambiare la notazione da Java 1.<number> a Java <number>.

Diciamocelo Damiano, saremmo rimasti tutti molto volentieri almeno un’altra ora 🙂

Object Calisthenics

Calisthenics? Non è un framework, non è un pattern, non è un sistema operativo… E’ un termine che deriva dalle parole kalòs (καλός) che significa bello, e sthénos (σθένος) che significa forza. Il calisthenics può essere inteso come sport o come disciplina fitness (per migliorare il proprio corpo).

E Object?

Quello che Francesco ha voluto proporre è un esercizio di programmazione, usando un linguaggio ad oggetti a scelta, seguendo 9 regoline:

Per l’occasione, a coppie si doveva cercare di implementare il gioco del tris.
Facile starete pensando… E invece no!
Questo perchè ad ogni riga di codice che si provava a scrivere, il pensiero prima e gli occhi poi finivano su quel benedetto foglietto, per la paura di infrangere le regole.
Francesco, che di tanto in tanto passava tra i tavoli, si sarà fatto delle belle risate.

Ovviamente, al termine del tempo a disposizione ogni coppia aveva concluso ben poco… Però, che bella esperienza!
Tutti i partecipanti volevano continuare, ora che mente era bella allenata e riscaldata.

καλός Francesco!

Agile o non Agile ?

Questo talk è stata un’occasione per ripercorrere i valori e i princìpi del Manifesto Agile e soprattutto verificarne lo stato di applicazione all’interno dei progetti nel quale ognuno dei partecipanti è coinvolto, con particolare riferimento a quelle situazioni che i presenti percepiscono come disfunzionali.

Al talk ha partecipato anche Johan Duke il quale sta definendo i contenuti del suo talk, proprio su questo argomento, che terrà ai prossimi Agile Day di Urbino del 17 e 18 Novembre 2017.

Vert.x

Marco ha preparato un talk su Vert.x, un toolkit per creare applicativi secondo il manifesto Reactive:

  • Responsive, deve rispondere in un tempo certo.
  • Resistente agli errori
  • Scalare in base al carico di lavoro
  • Usare una coda di messaggi asincroni

Uno dei vantaggi di utilizzare questo toolkit è quello di non vincolarsi ad un framework specifico (può essere inserito in contenti già esistenti molto facilmente) . Inoltre è poliglotta, nel senso che permette l’uso di diversi linguaggi di programmazione ad es. Java, Javascript, Scala, e Kotlin.

La base del talk è stata una presentazione e del codice che ha permesso di mostrare la semplicità e le caratteristiche base del toolkit.
I contenuti presentati hanno generato una sessione di Question & Answer dove si è potuto discutere alcuni concetti in maniera più approfondita, nonchè testimoniare il valore ed interesse della presentazione 🙂

Per maggiori approfondimenti:

Ux, scrum e gilde

Durante la sessione di Emanuele, sono stati raccolti spunti e considerazioni per il suo talk Ux, scrum e gilde…, che verrà presentato ai prossimi Italian Agile Day del 17 e 18 Novembre a Urbino.

La discussione si è incentrata principalmente sui punti identificativi delle gilde Intré, su cosa significhi lavorare in team cross-funzionali e su quali modalità di lavoro possono esistere tra designer e developer all’interno di un progetto.

Da un grande potere derivano grandi responsabilità

No, Giulio non ha voluto parlare di Spider-man, tantomeno di altri supereroi, bensì delle responsabilità che un team ha nel progetto software per il quale lavora.
Responsabilità che derivano da poteri. Sì, perchè ogni volta che si committano delle modifiche al software, o comunque si prendono decisioni, si esercitano dei poteri. Ma tutto ciò va fatto pensando all’effetto che potrebbe avere sul business applicativo.
Siccome si è tutti calati in un contesto agile, una delle regole è proprio il poter cambiare le regole. E ogni team ha questo potere, ma per cambiare le regole del gioco bisogna coinvolgere tutte le figure, non solo rimanere nel proprio team.
Si dovrebbe imparare a dare voce ed ascoltare tutti all’interno ed all’esterno di un team, e accettare quindi il ruolo, la responsabilità e quindi il potere di queste figure.

Per il bene del team e di conseguenza del progetto.

Un’ultima nota: tra i poteri di Giulio c’è anche la conoscenza della piattaforma Docker per il build e deploy di progetti su ambienti distribuiti. Conoscenza diffusa nel talk dall’omonimo titolo.

Gilde

Rifocillati dall’ottimo pasto, la giornata è proseguita con indovinate un po’ ? Un ice-breaker 🙂

Dopo averci suddiviso in 3 squadre, Fabio a turno ha chiesto ad ogni squadra di portare a termine un semplice compito: appoggiare a terra un tubo.
La piccola difficoltà sta nel fatto che il team, disposto su 2 file una persona di fronte all’altra, deve portare a termine il compito senza mai staccare le dita dall’asta… Fidatevi, è stata una Caporetto (perlomeno, il team al quale ho fatto parte).

E’ tempo di gilde!!
Rientrati in sala, Francesco ha dato il via alla seconda parte della giornata, così organizzata:

  • Presentazione del lavoro svolto nelle gilde
  • Retrospettiva sulle vecchie gilde e definizione nuove gilde

Blackbelt keypunchers

L’obiettivo di questa gilda, alla quale ho preso parte, è stato un’attività di studio e messa in pratica di alcuni dei più utilizzati pattern per lo sviluppo di software.
Definito un backlog di patten, ogni incontro il team si è così organizzato (sembrerebbe un pattern…):

  • discussione sul pattern precedente\chiusura lavori sull’implementazione del pattern
  • studio del pattern fatto al momento o tramite spiegazione di chi già ne avesse esperienza d’uso
  • scelta di un Kata ed implementazione pattern

Come esempio applicativo per i pattern, abbiamo spesso scelto un giochino matematico: Fizz Buzz.
Molto semplicemente, l’obiettivo del gioco è iniziare a contare e dire Fizz se il numero è divisibile per 3, Buzz se divisibile per 5, FizzBuzz se divisibile per entrambi.

Qui potete trovare le slide della presentazione.

Gilda design pattern

I colleghi designer hanno presentato un tool interno dal nome Design Pal, cioè amico.
Questo tool è un sito contenente casi d’uso e pattern frutto di progetti passati, e vuole proporsi come aiuto, o meglio amico, qual’ora si dovesse applicare una certa configurazione di un  elemento di UI. Per ogni elemento di UI infatti, si ha la possibilità di ottenere il codice e vedere a runtime il comportamento atteso.

Update and Commit

L’obiettivo di questa gilda è stato: realizzazione di una app adottando, sia lato front-end che back-end, 2 differenti tecnologie
Per il back-end:

Per il front-end:

Lo scopo quindi è quello di far emergere i pro e i contro nell’adottare una soluzione Node.js\Angular piuttosto che Java\ReactJs.
Ma non solo.
Infatti la gilda si è anche impegnata nel decidere e definire il set di API da implementare, e per questo hanno utlizzato Swagger.

Retrospettiva e decisione di nuove gilde

Applausi per tutti, è emerso del lavoro di qualità e svolto con molta passione 🙂
Ma come sempre, cosa è effettivamente piaciuto, e cosa meno ? Cosa si potrebbe migliorare in fatto di modalità, orari, spazi ?
Parola uno alla volta, concessa solo se si fosse in possesso dello scettro del potere dato da un astuccio, si è fatta la retrospettiva

Morta una gilda, se ne fa un’altra!
Che entrino le nuove proposte di gilde, quindi 🙂
Come per  i talk della mattinata, Francesco ha dato il via ad uno spazio di raccolta proposte ed esposizione.
Ora penserete: “Adesso leggeremo della fase di dot-voting”.
E invece no, Francesco ha voluto sperimentare una diversa metodologia di voto.
Se sei un nostalgico degli show televisivi in voga negli anni ’90, conoscerai sicuramente l’applausometro.
Per ogni proposta letta, si è espressa la preferenza applaudendo\fischiando lasciando a Francesco la decisione di scartare o meno la proposta… Risultato? Fallimento totale 🙂
Anzi no, dato che 3 proposte sono state scartate per ghiaccio e freddo generato tra in sala (non si offendessero le persone che hanno proposto le idee di gilda scartate, sarà per la prossima volta 🙂 )
Dot-voting sulle proposte rimaste quindi… Et voilà!

Per dovere di cronaca, la gilda Birra++ non è stata nemmeno presa in considerazione perchè si presuppone che chiunque apprezzi la birra. La birra è la birra.

Le gilde emerse sono:

  • Missione DeLorean design (studio dell’esperienza utente del futuro, aspettate il prossimo camp per saperne di più)
  • Studio di Docker ed orchestrator per esecuzioni applicazioni in ambiente distribuito
  • Studio del linguaggio Kotlin: ne faccio parte, quindi sarà sicuramente la migliore (questa gilda fu scartata lo scorso camp, n.d.r.)
  • Studio del linguaggio Go (o Golang)

Fabio ha chiuso questo momento ricordandoci ancora una volta come le gilde debbano essere un momento non di svago bensì di studio e impegno, perchè si accresce il valore individuale e quindi di tutti 🙂
Infine ci ha esposto il calendario dei prossimi incontri e camp, lo cito perchè tale calendario è stato realizzato a mano da sua figlia.

La foto parla da sola, bravissima!!!

Conclusione giornata

Prima di salutarci, ci siamo riuniti nelle gilde per decidere giusto il modus operandi, guardarsi in faccia e dirci “dobbiamo essere la miglior gilda e stupire gli altri al prossimo camp”.

Giornata finita, baci e abbracci e al prossimo camp.
E invece no!
Vuoi non organizzare un ultimo ice-breaker ?
Tutti fuori in giardino quindi!
Sull’onda del Fizz Buzz, lo scopo del gioco è dire ognuno un numero, ed applaudire anziché parlare ad numero suddivisibile per 3 o contenente il numero 3. Chi sbaglia, esce dal cerchio.

In foto potete ammirare i 3 finalisti (compreso il sottoscritto). Concedetemelo, raramente arrivo sul podio nelle competizioni 🙂

Terminato quest’ultimo simpatico giochino, è arrivato davvero il momento dei saluti… Ma la foto di gruppo?
Eccola!

Al prossimo camp gente!!

Lo sai che ?

Caro lettore,
lo sai che che nell’anno solare Ottobre 2016 – Ottobre 2017 i camp di Intré sono stati 3?
Lo sai che il 3 compare sia nel gioco FizzBuzz che nell’ultimo ice breaker di Fabio?
Lo sai che sono arrivato in finale? 🙂
Lo sai che sono stati organizzati 3*3=9 talk?
Lo sai che avevamo 3 Location a disposizione?
Lo sai che sono state chiuse 3 gilde?
Lo sai che ci sono stati 3 momenti in cui abbiamo mangiato?
Lo sai che a pranzo ci sono state 3 portate?
Lo sai che sono stati fatti 3 esercizi nell’ice breaker dell’abbassamento dell’asta?
Lo sai che a pranzo abbiamo occupato 3 tavoloni?
Lo sai che la parola 3 contiene 3 lettere?
Lo sai che Intré, o In3, sta cercando nuovi collaboratori?

Tag
Intré Camp – 30 Ottobre 2018

Racconto del camp aziendale svoltosi a Erba, castello di Casiglio.

Intré Camp – 26 Giugno 2018

Racconto del camp aziendale svoltosi all'agriturismo La Camilla

Agile Venture Prato 2018

Il racconto della giornata della prima edizione di un agile venture in quel di Prato.

A reactive programming example
Milan Kotlin Community Conf

The first Kotlin related Italian conference made from the community to the community!

Let's see how was it...

DroidCon IT, Turin, 19 & 20 April 2018: our report
Milan Kotlin Community Conference

How, why and what has lead us to the Milan Kotlin Community Conference.

Intré Camp – 13 Febbraio 2018

Racconto del camp aziendale svoltosi a Pontida, agriturimo Polisena

Vert.x – 4o articolo su Mokabyte!

4o articolo sul mondo Vert.x a cura di Marco

Vert.x – 3o articolo su Mokabyte!

3o articolo sul mondo Vert.x a cura di Marco

NoSlidesConf 2017

NoSlidesConf: una conferenza diversa dal solito

Vert.x – 2o articolo su Mokabyte!

2o articolo sul mondo Vert.x a cura di Marco

Vert.x – 1o articolo su Mokabyte!
IAD Urbino 2017 – Conferenza 18 Novembre

Racconto della conferenza presso l'università degli studi Carlo Bo di Urbino

IAD Urbino 2017 – Unconference 17 Novembre

#IAD17: Racconto della giornata di unconference presso l'Università degli Studi Carlo Bo di Urbino

Intré Camp – 5 Ottobre 2017

Racconto del camp aziendale svoltosi all'agriturismo La Camilla

Intré Camp – 18 Maggio 2017

Resoconto del camp aziendale svoltosi all'Oasi di Galbusera Bianca

CloudConf Torino 2017

CloudConf 2017 a Torino. Come è andata?

Mini IAD Vimercate 2017

Il racconto della giornata al Mini Italian Agile Day tenutasi a Vimercate.

Codemotion Milano 2016

Nel week-end del 25-26 novembre 2016 si è svolto il Codemotion Milano 2016.
Francesco Sacchi e Ferdinando Santacroce ci raccontano com'è andata.

Angular Conf 2016

Il racconto della nostra giornata alla Angular Conf 2016 a Torino, sia come spettatori e soprattutto come sponsor.

Intré Camp – 3 Novembre 2016

Un racconto di come è andata la nostra giornata di team building, tra sorrisi e battaglie ;)

Node.Js Italian conference – V edition

Cronistoria sulla nostra partecipazione alla 5^ edizione della Node.Js Italian Conference, con tante belle foto, stickers e...leggete :)

Business24 TV: Fabio Ghislandi presenta Intré

In questo breve intervista viene presentata Intré e il suo innovativo approccio allo sviluppo di software.

Come cambia il mondo dei linguaggi
WebRTC – #1 Video-Chat in javascript

Con la tecnologia WebRTC (Real Time Communication www.webrtc.org) è possibile integrare, all’interno di applicazioni che comprendono javascript, funzionalità di audio e video-chat, registrazione chat, condivisione schermo e signaling.

Future e Promise in Scala

Primo post sulla programmazione in Scala dedicato a future e promise, due costrutti fondamentali per la programmazione concorrente.

Come inviare dati live da un’applicazione C# Desktop al web usando le WebSocket

Questa è una guida passo passo su come esporre dati live da un'applicazione C# console ad un web browser usando le WebSocket. L'esempio è stato testato su Windows 7.

IOS Push notifications iOS 6 con Sencha Touch 2.2

Se state cercando di inviare una Push Notification al vostro iOS6 iPhone/iPad usando Sencha Touch 2.2 probabilmente avrete incontrato diversi problemi. In questo articolo vedremo passo passo come configurare i certificati, impostare il file Sencha package.json ed inviare una push notification con uno script PHP o C#.

Creare una issue in Jira con i sub-task predefiniti

E' possibile programmare script in Atlassian Jira usando Groovy. Questi script possono essere eseguiti allo scattare di un evento come alla creazione di una issue o al suo aggiornamento. Sfruttando questo principio vediamo come creare uno script che crea i sub-task in automatico alla creazione di una Issue.

Lego controllato con Cloudfoundy via WebSockets

Questo è un breve test di come è possibile controllare Lego Mindstorm con Cloudfoundry usando HTML5 e WebSockets.

Beaglebone how-to. Come cambiare lo stato di una pagina web premendo un pulsante con node.js

Questo articolo descrive come intercettare l'interrupt GPIO di una beagle bone e aggiornare, via web sockets, una pagina web usando node.js.

youSCADA presentato al Graphical Web 2012

Come controllare e monitorare i device usando una piattaforma Cloud? La soluzione è stata presentata al Graphical Web 2012 a Zurigo.

Chiamare una REST API con node.js

Node.js sta rivoluzionando il modo di programmare le piattaforme software. Basato sul Google V8 JavaScript Engine permette di scrivere codice lato server in JavaScript.

Top
Ogni nostro Sprint ha l'obiettivo di massimizzare il Valore per l'utente finale
Il tuo browser non è aggiornato!
Aggiornalo per vedere questo sito correttamente.Aggiorna ora

×