Gamification – Building House Game

La Gamification è uno dei modi più efficaci per coinvolgere le persone, abbiamo utilizzato questa pratica diverse volte in azienda, sia per le retrospettive sia come introduzione a una discussione.
L’ultima volta è stato in occasione di una retrospettiva che coinvolgeva alcuni componenti dei team di produzione e di customer service per riflettere sul temi della Collaborazione, Comunicazione, Qualità e come questi influenzano il Valore che forniamo al Cliente.
Abbiamo creato questo gioco che tramite l’uso dei Lego oltre a divertirci ci ha permesso  di riflettere su alcuni comportamenti e interazioni, simulando la realtà in un contesto diverso.

IMG-20150214-WA0005

Come funziona

L’obiettivo del gioco è realizzare una casa di Lego quanto più simile al modello iniziale.
Abbiamo diviso i partecipanti in 2 team, la squadra Rossa e la squadra Blu.
Ogni team era composto da:

  • 1 Una figura che si preoccupa di raccogliere i requisiti, per semplicità chiameremo Product Owner
  • 1 Una figura sia tecnica che di coordinamento che chiameremo Team Leader
  • 1 o N Figure prettamente tecniche che chiameremo Developers

Il gioco è diviso in iterazioni ad ogni iterazione ogni team deve riuscire a rilasciare una casa di Lego il più simile possibile al modello di partenza.
L’iterazione del team Blu è organizzata così:

  • Il PO ha 3 minuti per guardare il modello della casa e descriverlo attraverso un elenco di specifiche scritte in linguaggio naturale senza usare ne disegni, schizzi o colori.
    Nel nostro caso abbiamo realizzato delle foto della casa fatta di lego in tutte le prospettive.
    Il PO è l’unico che può guardare il modello originale (le foto).
    Un esempio di specifiche del PO potrebbe essere: La casa è fatta principalmente di mattoni bianchi, ci sono 2 finestre sul lato destro della casa, sul tetto c’è un camino alto 3 mattoncini …
  • A questo punto il TL ha 1 minuto per leggere le specifiche, e fare le domande che ritiene opportune per migliorare la descrizione della casa
  • Partendo dalle specifiche i TL e i Developer hanno 5 minuti per provare a realizzare la casa
  • La prima iterazione finisce e la casa viene consegnata.
    Si può quindi iniziare una nuova iterazione dove il PO integra le specifiche partendo da ciò che è stato realizzato nella prima iterazione

L’iterazione del team Rosso è simile a quella del team Blu ma:

  • il TL non ha a disposizione il minuto per affinare le specifiche
  • il TL invece di partecipare allo sviluppo ordina ai Developer come realizzare la casa

I due team lavorano contemporaneamente e i tempi sono scanditi da una persona esterna al gioco.
Si possono fare 3\4 iterazioni a seconda della complessità della casa e del divertimento dei partecipanti.

Cosa è emerso

Ovviamente la squadra Blu era avvantaggiata e ha realizzato una casa più simile al modello potendo sfruttare una migliore collaborazione e comunicazione nel team.
Entrambi i team si sono concentrati nelle prime iterazioni sui dettagli (l’albero davanti alla casa, il camino …) trascurando informazioni importanti come l’orientamento della casa e questo ha provocato la necessità di dover ricostruire la casa da 0.
Spesso quello che veniva consegnato a fine iterazione non era una casa, anche se non perfetta, ma un insieme di pareti e quindi senza valore per il cliente.
In un caso una modifica dell’ultimo secondo ha provocato il crollo di una parte della casa, ricordandoci dinamiche che accadono anche nello sviluppo software.

 In generale è stato un bell’esperimento che oltre ad averci fatto divertire ci ha permesso di introdurre una discussione sulla collaborazione e la comunicazione dentro e fuori dai team.

 20150219_164611 20150219_165021 20150219_165103 20150219_165348 20150219_170050 20150219_165829 20150219_170806 20150219_170753

Comments Off on Gamification – Building House Game  

Kanban e Pronto Soccorso

In azienda la maggior parte dei team lavora su più progetti e la difficoltà maggiore è quella di gestire attività di customer service e attività più corpose di sviluppo.

Quello che abbiamo fatto è utilizzare Scrum come metodologia per gestire i progetti le cui attività possono essere organizzare in iterazioni (sprint).
Utilizziamo invece Kanban per gestire tutti gli interventi di customer service.

Abbiamo organizzato la board come nella figura.

kanbanprontosoccorso

L’obiettivo di Kanban è quello di far scorrere il flusso completando il più velocemente possibile le attività, il team però deve mantenere il focus anche sulle iterazioni.

Per migliorare quindi la gestione degli interventi abbiamo preso spunto dal pronto soccorso, introducendo i codici colore per definire la priorità.
I post-it Verdi devono essere completati entro 3 giorni, i post-it Gialli devo essere completati nella giornata e i post-it Rossi invece interrompono l’attività in corso e devono essere fatti subito.

Questo ci ha permesso di ridurre il context switch, tutte le mail e le telefonate dei clienti vengono catalogate secondo questi criteri.
Durante lo stand-up meeting aggiungiamo una stanghetta ai post-it che sono ancora nella colonna ToDo, così possiamo sapere da quanti giorni sono in attesa.

Comments Off on Kanban e Pronto Soccorso  

Community Days 2014

I community days 2014 sono finiti da qualche giorno ed è arrivato il momento di tirare le somme.
Questa è la 4 edizione a cui ho avuto il piacere di partecipare e l’evento negli anni si è ingrandito e consolidato diventando un must per sviluppatori e it pro in campo Microsoft.
Il numero dei partecipanti è stato da record e bisognava dotarsi di un po’ di pazienza, nonostante la spaziosa sede di Peschiera Borromeo e l’organizzazione con sale duplicate.
Gli spunti come sempre sono stati molti, si torna a casa con tante temi da approfondire.

communitydays

Ecco l’elenco di cosa mi ha interessato maggiormente:

Napa

Un nuovo toolset che consente di realizzare personalizzazioni all’interno di Office 365 e quindi ambienti multi tenant con il Cloud App Model.
Introducing “Napa” – Office 365 Development Tools

Power BI on premises

Microsoft sembra spingere molto sulla BI, aveva già fatto un buon lavoro in Excel con Power Pivot e Power View, ora è stato aggiunto Power Maps una di quelle funzionalità che farà aprire la bocca a molti manager .
Pover View è un buon prodotto anche se non al livello di Qlikview e con una identità ancora offuscata dai normali grafici di Excel.

Power BI Office 365

I Power BI Q&A sono pazzeschi, viene usato il linguaggio naturale per fare analisi e visualizzare i dati in grafici e mappe, veramente bello.

Azure Web Site

Introdotti i Backup, l’Auto scaling e Scheduled Jobs. I Web Site si avvicinano sempre di più ai Web Role.

Mobile Service

Introdotta la possibilità di utilizzare .Net come linguaggio di backend.

Javascript

Unit test con Jasmine, un tema complesso ed efficace solo quando si analizzano controller e viewmodel. Come in C# è necessario un design for testability.
Requirejs altro framework interessante, conosciuto per essere integrato in Durandal e utile per organizzare le dipendenze tra moduli\framework.

Sql Server 2014

Grandi novità con Hekaton l’in-Memory OLTP e miglioramenti per quanto riguarda la modifica dei Column Store Index.
Le altre novità riguardano l’integrazione con Azure, la parola d’ordine è “hybrid cloud”. Backup automatici su File Storage di Azure, istanze su VM con File Group su File Storage, alta affidabilità con data center distribuiti …

Event Storming

Nella sessione intitolata event storming veniva mostrato come analizzare un processo business complesso, unendo tecniche di modellazione agile, e l’approccio event-driven caratteristico delle ultime evoluzioni di Domain-Driven Design.

 

Comments Off on Community Days 2014  

SilverDay

La prima volta che ho sentito parlare dei FedEx Day è stato nel libro Drive di Daniel Pink, poi mi sono documentato sulle tecniche utilizzate della aziende per migliorare la creatività e la motivazione e ne è uscito un post sul mio blog 20 percent time.

Queste idee però sono quelle che ti attraggono da un lato e ti tormentano dall’altro, perché sei consapevole che le aziende di cui senti parlare sono Big e non sono Italiane e quindi hanno una mentalità e un approccio agli investimenti diverso.

Be … non so bene come sia successo, ma il 13 Settembre 2013 in Azienda si è svolto il primo e speriamo non ultimo SilverDay.
Il nome è stato scelto anche per ricordare i 25 anni dalla fondazione di Elfo.

Non posso nascondere che lo sforzo per realizzare un evento di questo tipo, in una azienda di 60 persone, è stato notevole, sia dal punto di vista organizzativo e logistico, sia da quello economico per farvi un’idea immaginate una azienda che si ferma per 24 ore e sommate stipendi, costi dell’evento e mancato fatturato.
Il risultato però ha stupito gli scettici, ma soprattutto ha stupito me.

In due parole il SilverDay si è svolto così: è stato chiesto a tutti i dipendenti che volevano partecipare di creare un team con formazioni inedite e proporre un’idea.
Il Giovedì alle 14.00 i team si sono riuniti e hanno potuto lavorare sui propri progetti per 24 ore fino a Venerdì alle 14.00.
Ogni team ha avuto 20 minuti di tempo per presentare ciò che aveva realizzato in una sorta di pitch.
Poi tutti i dipendenti hanno votato il progetto migliore che è stato premiato.
In fine abbiamo festeggiato con birra e hamburger e la BoyRockBluesBand Elfo.

Cosa è uscito dal SilverDay:

  • Innovazione e Creatività

    Le tecnologie trattate sono state: applicazioni per smartphone su Android e Windows Phone,  dispositivi NFC e sensori con tecnologia BLE,  messaggistica istantanea (push notification e sms), Cloud Computing su Azure, database non relazionali (MongoDB e RavenDB), piattaforme javascript (Node.Js) e framework per lo sviluppo di SPA come Angular Durandal.
    Insomma veramente tanta roba, che sicuramente ci darà uno sprint tecnologico forte, anche ambiti diversi da quello aziendale fortemente focalizzato su Microsoft.

  • Qualità e Professionalità

    Veramente impressionante il livello delle presentazioni, mi aspettavo di vedere qualche “ricerca delle medie” e invece ho visto Progetti, pensati per andare in produzione e curati nei dettagli.

  • Motivazione e Passione e Divertimento

    Alla fine si è creata quella sana competizione tra team ed è stato un evento divertente che è servito per rafforzare l’affiatamento aziendale.
    Le persone e la loro passione sono il motore dello sviluppo, è una cosa che si sa, che si legge, ma quando la si vive è tutta un’altra cosa.

  • Condivisione e Formazione

    Un evento come questo aiuta a rimescolare le persone e i team per diffondere le conoscenze e unificare le pratiche, cose che vorresti fare tutti i giorni ma che non è sempre facile mette in pratica.
    Il SilverDay ha aiutato anche a far emergere quelle persone che nell’organizzazione o per il ruolo, non hanno sufficiente spazio per poter dimostrare le loro capacità.

L’occasione persa però è stata quella di non essere riusciti ad aprire l’evento all’esterno e ai nostri clienti, poiché sarebbe stato un bel modo per mostrare una Azienda innovativa e all’avanguardia.

Finito il SilverDay arriva la parte difficile, riuscire a trasformare le idee in progetti e prodotti, ma per questo siamo già al lavoro…

3  

Caliburn Micro risorse

Sto lavorando su una interessante applicazione per Windows Phone 8 insieme a @cafedo84 e al momento dello start up del progetto  ci siamo chiesti quale framework MVVM utilizzare.

Solitamente per applicazioni Wpf o Windows 8 abbiamo sempre utilizzato MVVM Light di Laurent Bugnion, questa volta abbiamo voluto sperimentare e provare Caliburn Micro.

Caliburn Micro si basa sulle convenzioni ed oltre a essere semplice da usare è estremamente produttivo.

Il framework può essere scaricato da Nuget all’indirizzo http://www.nuget.org/packages/Caliburn.Micro/

Per iniziare abbiamo trovato interessanti gli articoli scritti da Matteo Pagani, li trovate a questo indirizzo http://wp.qmatteoq.com/tag/caliburn/ e alcuni tradotti in italiano qui http://www.qmatteoq.com/tags/archive/caliburn.

Comments Off on Caliburn Micro risorse  

Nuget – Aggiornare i pacchetti tramite console

NuGet è un’estensione di Visual Studio che rende più semplice gestire i riferimenti alle librerie esterne.

In Azienda lo utilizziamo sia per gestire le reference ai pacchetti presenti sul feed ufficiale sia per gestire i pacchetti dei framework aziendali.

Internamente abbiamo creato un feed, la configurazione è molto semplice e i passi per sono riportati in questo articolo.

La distribuzione dei framework interni sul feed privato viene interamente gestita dai server di buid di Tfs in modalità continus delivery.
In un altro post racconterò come abbiamo fatto, ma ora volevo riepilogare alcuni comandi per aggiornare i pacchetti dal package manager console powershell di NuGet .

La gestione del versioning dei pacchetti è gestita tramite una numerazione che dovrebbe seguire la Semantic Versioning Convention.

L’aggiornamento di un package può essere fatto da sia tramite la dialog si tramite console.

Quando i progetti della soluzione diventano tanti e probabilmente anche i package crescono la gestione tramite dialog può risultare scomoda, ecco allora alcuni comandi che possono tornarci utili:

Update-Package
Aggiorna indistintamente tutti i package della soluzione.
Attenzione a seconda del Package Source selezionato vi aggiornerà i pacchetti presenti su tutti i feed (All), oppure solo i pacchetti su feed ufficiale (NuGet official package source) o anche solo quelli sul vostro feed privato.

Update-Package –IncludePrerelease
Aggiorna tutti i package della soluzione includendo anche i package che sono marcati come prerelease (alfa,beta).
Risulta comodo lavorare con le prerelease per componenti in fase di test non ancora pronti per essere rilasciati ufficialmente.

Update-Package Elfo.Kernel -version 01.01.00
Aggiorna il pacchetto “Elfo.Kernel” in tutta la soluzione alla versione specifica.
Questo comando è utile quando si vuole aggiornare ad una versione che non è l’ultima.

Get-package | where-object { $_.id -like “Elfo.Kernel*” } | Update-Package -Version 03.16.01
Aggiorna tutti i pacchetti che iniziano con “Elfo.Kernel” presenti nella soluzione alla versione specificata.
Molto comodo quando un framework è composto da più pacchetti, i quali non sono legati da una dipendenza, ma pre chiarezza conveniente mantenerli tutti allineati nella stessa solution.

 

Comments Off on Nuget – Aggiornare i pacchetti tramite console