- ° quarter

Gilde: accrescere e condividere le conoscenze

Ogni settimana dedichiamo parte del nostro tempo per lavorare all'interno delle Gilde. La Gilda è gruppo spontaneo di 4-8 persone che nasce con lo scopo di apprendere e condividere le conoscenze. Ogni quattro mesi si formano nuove Gilde sulla base degli argomenti proposti liberamente da ogni persona.
2019 3Quarter

AgiLEGO

Obiettivo di questa gilda è stata la produzione di uno strumento a supporto dell’indottrinamento verso le metodologie Agili.
Nello specifico è stato creato un video sull’evento Daily Scrum avvalendosi la tecnica dello stop motion e utilizzando, come scenografia e interpreti, dei componenti LEGO®.
La realizzazione di un filmato è esso stesso essere parte del percorso di indottrinamento, sia come argomento trattato sia come organizzazione del lavoro stesso.
Nel video sono stati messi in scena gli errori tipici in cui i componenti del team possono incorrere.
Come è stato organizzato il lavoro? Di seguito gli step seguiti per la pianificazione della realizzazione del filmato:

  • coordinamento dei lavori in accordo alla consegna del materiale ordinato;
  • stesura del copione;
  • suddivisione dei compiti tra shooting e montaggio ha permesso di migliorare i legami tra i componenti del team.

Gumly

Una gilda composta sia da UX designer che da sviluppatori, con l’obiettivo di realizzare un prodotto per la experience transformation dei clienti: Gumly.
L’applicazione ha lo scopo di facilitare il lavoro designer durante le fasi evolutive di un progetto consentendo di mappare, monitorare e migliorare l’esperienza degli utenti.
Attraverso questo strumento è possibile:

  • identificare e rappresentare le tipologie di utenti/personas facendone emergere le aree di azione e i bisogni;
  • mappare i Customer Journey evidenziandone le interazioni e organizzandoli in macro flussi;
  • ottimizzare i processi tenendo traccia di tutti i pain point e di tutte le opportunità identificate durante la fase di ricerca qualitativa e quantitativa.

CobraML

Questa gilda è nata principalmente per due motivi:
  • acquisire una padronanza di base del linguaggio Python;
  • sfruttare la conoscenza di Python per apprendere i concetti fondamentali del Machine Learning.
Per mettere in pratica i concetti appresi è stato sviluppato uno script con lo scopo di mettere in comunicazione due sistemi (mediante API REST) trasformando i dati prima di salvarli.
Il primo contatto con il Machine Learning è avvenuto utilizzando una libreria per il riconoscimento facciale: in poco tempo è stato realizzato un software in grado di riconoscere con successo i volti dei membri del nostro team all’interno di foto di gruppo. Il gruppo ha poi approfondito la comprensione dei meccanismi implementati dalla libreria attraverso sessioni di studio e di implementazione di diversi approcci: reti neuralialgoritmi geneticialberi di decisione e reti bayesiane.

Test-Write-Share

Una gilda nata con l’obiettivo di implementare una libreria condivisibile all’interno dell’azienda (e pubblicarla come software open source) con particolare attenzione all’utilizzo di tecniche di test come garanzia di qualità.
Il codice è stato scritto utilizzando TDD e refactoring durante sessioni di mob programming.
I partecipanti, durante gli incontri, hanno affinato l’utilizzo degli strumenti di sviluppo messi a disposizione dall’IDE più utilizzato, IntelliJ.
Di seguito sono elencati alcune attività oggetto di approfondimento:

  • utilizzo di JUnit 5 anche per fare chiarezza sulla realizzazione dei test parametrici;
  • dry run del talk di Ferdinando Santacroce dal titolo “Testare l’intestabile“;
  • prove con la libreria PITest per verificare la test coverage del codice attraverso la tecnica del Mutation Testing.

Open Source

Questa gilda si è messa in gioco collaborando a un progetto open source.
Come primo, importante passo il gruppo ha scelto il progetto a cui contribuire, optando per Kibana, dopodiché ha selezionato un argomento su cui lavorare partendo dai problemi già noti.
Implementare la modifica richiesta è stato più facile del previsto, questo grazie alla buona organizzazione dello progetto e alla conoscenza delle tecnologie usate.
Nell’arco della durata della gilda sono state risolte due segnalazioni e questo è sicuramente un ottimo risultato, oltre che l’avere acquisito una maggiore consapevolezza di cosa voglia dire confrontarsi con il mondo dell’open source.

2019 2Quarter

Lambda: introduzione al Functional Programming

Questa gilda dedicata al Functional Programming è stata suddivisa in due macro momenti:

  • lettura del libro “Domain Modeling Made Functional” di Scott Wlaschin;
  • esercitazioni sulla programmazione funzionale, magari facendo refactoring di codice già scritto.

La lettura del libro è stata sia utile per capire in quali contesti applicare il Functional Programming, sia sorprendente, dato che viene trattato in più punti il tema del Domain Driven Design. Per quanto riguarda il lato pratico, il gruppo ha svolto esercizi utilizzando il linguaggio C# (nonostante nel libro gli esempi siano scritti in F#).

Alexa Skill

Una skill Alexa è un’applicazione che permette di estendere le funzionalità base di ciascun dispositivo della serie “Amazon Echo” e trarre il massimo dall’assistente digitale Alexa, incorporato in questi dispositivi.
L’obiettivo della nostra gilda è stato, quindi, l’implementazione di una nuova skill per la gestione della lista della spesa, con le seguenti funzionalità:
  • aggiunta di un prodotto;
  • eliminazione di un prodotto;
  • lettura della lista;
  • eliminazione di tutti i prodotti presenti;
  • invio della lista della spesa via e-mail;
  • gestione della lista tramite un bot di Telegram.

User Research Tools

L’obiettivo della gilda ha riguardato un lavoro di ricerca di nuovi strumenti da utilizzare in fase di ricerca utente per:
  • raccogliere gli insight da user testing in maniera efficiente;
  • fare convergere e organizzare i feedback raccolti attraverso i diversi strumenti (interviste, user testing, questionari ecc.);
  • definire uno standard a livello di report di usabilità.
Di seguito l’elenco degli strumenti analizzati e studiati:
  • hotjar: consente di rilevare il comportamento degli utenti di siti/Web app unendo le funzionalità di un’analisi quantitativa (per esempio Google Analytics) a un’analisi qualitativa;
  • UsabilityHub: una piattaforma che consente al designer di effettuare user testing da remoto attraverso una suite di strumenti volti a far emergere problematiche legate all’usabilità e a facilitare il processo progettuale;
  • User Testing: simile a UsabilityHub;
  • Airtable: piattaforma accessibile online che permette di creare e gestire spreadsheet contenenti sia testo che non, nonché la possibilità di creare report stampabili.

Reactive Canvas

L’obiettivo della gilda è stato la realizzazione del gioco della battaglia navale, con grafiche relative a cielo, mare e navi sviluppate utilizzando elementi canvas.
Aggiunto con HTML5 Canvas, o meglio HTML canvas è un elemento che può essere usato per disegnare elementi grafici tramite script (di solito JavaScript).
La comunicazione client-server è stata gestita tramite WebSocket mentre per gestire le animazioni 3d all’interno della pagina del browser è stata utilizzata three.js, una libreria JavaScript cross-browser che fornisce anche un API.

Transazioni distribuite: Saghe

Una gilda nata con lo scopo di approfondire il tema delle transazioni distribuite, riassumibile con il termine saga. Non solo saghe, anche event sourcing, CQRS e DDD.
Il punto di partenza delle saghe è un’analisi dettagliata, comprensiva di definizione dei domini e delle competenze. In altre parole, la base è il Domain Driven Design.
I partecipanti hanno seguito un corso sulle tematiche, in cui è stato appreso molto sulle saghe.
Una saga è un meccanismo che garantisce la consistenza dei dati tra i servizi. In caso di errore la saga riporta i dati a uno stato equivalente (quindi, non identico) a quello di partenza. Si definiscono una serie di transazioni ognuna delle quali implementa una parte della logica di business (T). Per ogni transazione bisogna prevedere una transazione di compensazione (C) che riporti i dati elaborati da T a uno stato equivalente a quello di partenza.
Una saga quindi risulta semplice da sviluppare se e solo se supportata da un’analisi architetturale dettagliata del sistema.
Top
Ogni nostro Sprint ha l'obiettivo di massimizzare il Valore per l'utente finale