Una transizione pragmaticamente agile Stefania Brandolese Manuela Munaretto Chiara Zambelli [email_address]
Agenda Introduzione Sinapsi I Wallabiez La Transizione Le Pratiche Utilizzate La giornata tipo di un Wallaby Gestione di più progetti Diamo i numeri
Introduzione
Introduzione – 1 Perchè raccontiamo di noi esperienza positiva  incoraggia il cambiamento Perchè pragmaticamente agile pragmatica: concreta e mirata a risolvere i problemi che si sono presentati agile: tutto è iniziato con la lettura di “eXtreme Programming” di Kent Beck agile: pratiche introdotte in modo critico e personalizzato
Introduzione - 2 Positiva per noi responsabilità condivise con decisioni collettive complessità di progetto inferiore quando condivisa codice condiviso grazie all'aiuto reciproco inserimento di figure di qualsiasi livello facilitato  team che “adotta” altri membri della società
Introduzione – 3 Positivo per il cliente qualità del codice consegnato aumentata intervento di chiunque su qualsiasi parte del codice visibilità del cliente sulle funzionalità consegnate definizione delle specifiche facilitata dalla costruzione di un vocabolario comune ascolto del cliente e soddisfazione delle sue necessità
Introduzione - 4 Positivo per la società un team agile è innovazione aiuta a reclutare persone di valore collaboratori e cliente soddisfatti le insoddisfazioni degli sviluppatori sono sostituite da proposte di cambiamento
Sinapsi S.p.A.
L'azienda: system integrator  votata allo sviluppo web in ambiente J2EE e con tecnologie FOSS tra le società pioniere di internet in Italia  nata nel 1996 due sedi operative: Milano e Zagabria (Croazia)‏ azienda di piccole dimensioni  Sinapsi S.p.A.
Know how: formazione specialistica su tecnologie di sviluppo web J2EE e FOSS competenze sui domini applicativi dei mercati su cui operano i clienti competenze sui problemi di streaming audio/video e sulla gestione della proprietà intellettuale Sinapsi S.p.A.
Tipologie di attività in Sinapsi: manutenzione evolutiva di applicazioni finance sviluppo a progetto di applicazioni Java servizi professionali Sinapsi S.p.A.
I Wallabiez
Nel giugno 2006 nasce il team Wallabiez inizialmente comprendente le persone che lavoravano su uno specifico cliente (Banca Popolare di Sondrio) motivazione: da gruppo di lavoro diventare una squadra, un unione di persone che  lavora insieme  per un obiettivo comune, valorizzando al massimo il talento di ognuno I Wallabiez
Il team si è dato: un nome un logo uno spazio comune di riunione un insieme di regole e comportamenti  agili  che sono variati nel tempo in maniera  autoadattativa I Wallabiez
Nel corso di questo anno e ½ i componenti sono cambiati ma il team è rimasto... Attualmente: 6 componenti (a cui si aggiunge una volta alla settimana il nostro esperto agile Gabriele Lana)‏ non più collegato ad un solo cliente gestiti sino a tre clienti diversi I Wallabiez
Caratteristica particolare del team è la sua notevole eterogeneità: età: dai 20 anni agli over30‏ esperienza: 3 senior e 3 junior  formazione: laureati e non, e non necessariamente in informatica! sesso: 3 baldi uomini e 3 donzelle! I Wallabiez
La Transizione
La Transizione Il cambiamento:  sinergia di persone nel tempo nato dalla volontà delle persone e da un percorso di evoluzione Elevato turn over nel team Arriva lo XPUG in Sinapsi Partecipazione all'Italian Agile Day 2006 Arriva il prezioso aiuto del nostro evangelizzatore :-)  Gabriele Lana
Le Pratiche
Le Pratiche Ci confrontiamo con  l'eXtreme Programming perchè tutto nasce da lì Non vogliamo però diventare un team XP: vogliamo lavorare bene e in modo soddisfacente Il nostro lavoro: manutenzione evolutiva di codice legacy Il nostro obiettivo: la soddisfazione nostra e del cliente
Planning Game Decidiamo le priorità con il cliente in base a card e task Obiettivo :  capire insieme al cliente le sue necessità
Brevi Cicli di Rilascio Per rilasciare valore in modo costante nel tempo La nostra iterazione è di 15 giorni Obiettivo :  dare e avere feedback
Semplicità di Progetto Abbiamo introdotto il task blu:  test refactoring affidabilità dei test Obiettivo :  maggiore manutenibilità e modificabilità
Testing Perchè scriviamo test: aumentano la nostra sicurezza e quella del cliente sul codice che scriviamo aumentano la nostra conoscenza del codice individuano eventuali regressioni velocizzano i tempi di sviluppo test automatici contro test manuali (web app) Quando possibile preferiamo il test first Obiettivo :  aumentare la copertura del codice
Refactoring Facciamo del refactoring quando: il codice è coperto da test il codice è complesso al terzo cut & paste ;-)  Alcuni task blu sono concordati col cliente: razionalizzazione del codice Obiettivo :  semplicità e manutenibilità
Pair Programming Abbiamo “La Giornata del Navigatore”: un pair programming “custom” un giorno a turno uno del team dedica il suo tempo alla programmazione in coppia Obiettivo :  aumentare la proprietà collettiva
Proprietà Collettiva Cerchiamo di far girare le persone sui progetti: favorisce la proprietà e la conoscenza collettive aumenta la crescita stimola la curiosità tutti possono intervenire sul codice di produzione che non hanno rilasciato Obiettivo :  la crescita personale e professionale dei membri del team; l'indipendenza del singolo dal progetto; l'indipendenza del progetto dal singolo
Integrazione Continua Lavoriamo per migliorare ulteriormente il nostro ambiente di integrazione continua: credibilità dei test tempi dei test unitari tempi dei test funzionali indipendenza dei test Obiettivo:  un progetto sempre funzionante; individuare eventuali problemi prima del cliente; acquisire sicurezza
Settimana di 40 Ore “ Al mattino voglio essere fresco e desideroso di cominciare; alla sera mi piace essere stanco e soddisfatto. Al venerdì, voglio essere abbastanza stanco e soddisfatto da sentirmi autorizzato a pensare ad altro per due giorni. Al lunedì, poi, voglio arrivare pieno di entusiamo e di idee.” Kent Beck  Programmazione Estrema  Introduzione Obiettivo:  avere voglia di far bene il proprio lavoro
Cliente sul Posto Sviluppiamo in sede e andiamo dal cliente una volta a settimana per: avere feedback su quanto prodotto pianificare insieme le attività rilasciare in sviluppo assistere il cliente durante i rilasci in produzione Obiettivo:  consegnare al cliente quello di cui ha effettivamente bisogno
Standard di Codifica Nessuna regola particolare La modifica collettiva crea uno standard interno Cerchiamo di scegliere nomi di classi, metodi e variabili parlanti seguendo un vocabolario comune a noi e al cliente Obiettivo:  facilitare la comprensione e la conoscenza
La Retrospettiva Il tempo e il luogo dove il team prende le decisioni per: risolvere problemi  tecnici modificare il  processo di sviluppo discutere soddisfazioni  e insoddisfazioni decidere un nome per  grafici, progetti, inziative Obiettivo:  decidere insieme cosa è meglio per noi
Il pomodoro L'unità di tempo che scandisce le nostre giornate: 25 + 5 minuti I pomodori: 12 al giorno per 5 giorni 60 pomodori settimanali ciascuno 360 pomodori settimanali di team Obiettivo:  far fruttare il nostro tempo
Il Frodo del pomodoro A turno ogni membro del team è il “frodo del pomodoro” ovvero il custode da proteggere del nostro tempo Obiettivo:  raccogliere pomodori
La   giornata tipo di un wallaby
La giornata tipo di un wallaby Stand Up Meeting  Tracking 4 pomodori di sviluppo Pausa 1 pomodoro di sviluppo Pausa pranzo 4 pomodori di sviluppo Pausa 2 pomodori di sviluppo 1 o  pomodoro
Stand Up Meeting Momento fondamentale nella giornata del wallaby 2 minuti ciascuno Non riunione Aggiornamento veloce
Domande Per comodità abbiamo deciso di stilare una lista di domande alle quali rispondere per semplificare e velocizzare la comunicazione:
Lavagna - 1 La lavagna è divisa in più parti:
Lavagna - 2 In alto troviamo le storie che devono essere sviluppate, ancora da assegnare
Lavagna - 3 Al centro ci sono le storie in sviluppo, la loro posizione rispetto alla barra di avanzamento indica a che punto si è arrivati
Lavagna - 4 In basso ci sono due spazi: uno per le storie concluse da mettere in ambiente di  sviluppo  dal cliente, uno per le storie che dopo i test in sviluppo possono essere messe in  produzione
Lavagna - 3 Ogni storia ha un  owner Durante lo Stand Up Meeting si aggiorna la posizione della storia lungo la barra di avanzamento
Tracking Registrazione sul timesheet aziendale del tempo dedicato ai vari progetti Registrazione interna al team dei pomodori di ogni componente per produrre statistiche E' utile per capire  quanto tempo è stato  speso su ogni task  e poi perfezionare  le stime
La giornata del Navigatore A turno ogni componente del team per un giorno si stacca dalla sua storia e partecipa allo sviluppo delle storie degli altri owner Questo perchè:  è un modo veloce e pratico di entrare in contatto con i progetti seguiti dagli altri membri del team si riesce in maniera produttiva a condividere le conoscenze acquisite senza fermare lo sviluppo del team con riunioni e presentazioni in cui ognuno espone a tutti le problematiche affrontate
Gestione di più progetti
Gestione di più progetti Per un periodo di tempo c'è stata l'esigenza di gestire 3 progetti contemporaneamente. Come è stata organizzata questa gestione?   applicando il più possibile le tecniche agili apprese dal team: preparazione delle “storie” e dei “task”  stima dei tempi di realizzazione suddivisione del lavoro tra i componenti del team fatto in modo da rispettare tempistiche e scadenze monitoraggio giornaliero dei progressi fatti sui singoli progetti
Diamo i numeri
Diamo i numeri: ccn
Diamo i numeri: Scrigno
Diamo i numeri: WS
Sinapsi Spa  Viale Bligny 27  20136 Milano (MI)  Telefono: 02 582095.1 Fax: 02 582095.21 Web:  www.sinapsi.com Info:  [email_address] Wallabiez:  [email_address]

Slide Wallabiez Agile Day 2007

  • 1.
    Una transizione pragmaticamenteagile Stefania Brandolese Manuela Munaretto Chiara Zambelli [email_address]
  • 2.
    Agenda Introduzione SinapsiI Wallabiez La Transizione Le Pratiche Utilizzate La giornata tipo di un Wallaby Gestione di più progetti Diamo i numeri
  • 3.
  • 4.
    Introduzione – 1Perchè raccontiamo di noi esperienza positiva incoraggia il cambiamento Perchè pragmaticamente agile pragmatica: concreta e mirata a risolvere i problemi che si sono presentati agile: tutto è iniziato con la lettura di “eXtreme Programming” di Kent Beck agile: pratiche introdotte in modo critico e personalizzato
  • 5.
    Introduzione - 2Positiva per noi responsabilità condivise con decisioni collettive complessità di progetto inferiore quando condivisa codice condiviso grazie all'aiuto reciproco inserimento di figure di qualsiasi livello facilitato team che “adotta” altri membri della società
  • 6.
    Introduzione – 3Positivo per il cliente qualità del codice consegnato aumentata intervento di chiunque su qualsiasi parte del codice visibilità del cliente sulle funzionalità consegnate definizione delle specifiche facilitata dalla costruzione di un vocabolario comune ascolto del cliente e soddisfazione delle sue necessità
  • 7.
    Introduzione - 4Positivo per la società un team agile è innovazione aiuta a reclutare persone di valore collaboratori e cliente soddisfatti le insoddisfazioni degli sviluppatori sono sostituite da proposte di cambiamento
  • 8.
  • 9.
    L'azienda: system integrator votata allo sviluppo web in ambiente J2EE e con tecnologie FOSS tra le società pioniere di internet in Italia nata nel 1996 due sedi operative: Milano e Zagabria (Croazia)‏ azienda di piccole dimensioni Sinapsi S.p.A.
  • 10.
    Know how: formazionespecialistica su tecnologie di sviluppo web J2EE e FOSS competenze sui domini applicativi dei mercati su cui operano i clienti competenze sui problemi di streaming audio/video e sulla gestione della proprietà intellettuale Sinapsi S.p.A.
  • 11.
    Tipologie di attivitàin Sinapsi: manutenzione evolutiva di applicazioni finance sviluppo a progetto di applicazioni Java servizi professionali Sinapsi S.p.A.
  • 12.
  • 13.
    Nel giugno 2006nasce il team Wallabiez inizialmente comprendente le persone che lavoravano su uno specifico cliente (Banca Popolare di Sondrio) motivazione: da gruppo di lavoro diventare una squadra, un unione di persone che lavora insieme per un obiettivo comune, valorizzando al massimo il talento di ognuno I Wallabiez
  • 14.
    Il team siè dato: un nome un logo uno spazio comune di riunione un insieme di regole e comportamenti agili che sono variati nel tempo in maniera autoadattativa I Wallabiez
  • 15.
    Nel corso diquesto anno e ½ i componenti sono cambiati ma il team è rimasto... Attualmente: 6 componenti (a cui si aggiunge una volta alla settimana il nostro esperto agile Gabriele Lana)‏ non più collegato ad un solo cliente gestiti sino a tre clienti diversi I Wallabiez
  • 16.
    Caratteristica particolare delteam è la sua notevole eterogeneità: età: dai 20 anni agli over30‏ esperienza: 3 senior e 3 junior formazione: laureati e non, e non necessariamente in informatica! sesso: 3 baldi uomini e 3 donzelle! I Wallabiez
  • 17.
  • 18.
    La Transizione Ilcambiamento: sinergia di persone nel tempo nato dalla volontà delle persone e da un percorso di evoluzione Elevato turn over nel team Arriva lo XPUG in Sinapsi Partecipazione all'Italian Agile Day 2006 Arriva il prezioso aiuto del nostro evangelizzatore :-) Gabriele Lana
  • 19.
  • 20.
    Le Pratiche Ciconfrontiamo con l'eXtreme Programming perchè tutto nasce da lì Non vogliamo però diventare un team XP: vogliamo lavorare bene e in modo soddisfacente Il nostro lavoro: manutenzione evolutiva di codice legacy Il nostro obiettivo: la soddisfazione nostra e del cliente
  • 21.
    Planning Game Decidiamole priorità con il cliente in base a card e task Obiettivo : capire insieme al cliente le sue necessità
  • 22.
    Brevi Cicli diRilascio Per rilasciare valore in modo costante nel tempo La nostra iterazione è di 15 giorni Obiettivo : dare e avere feedback
  • 23.
    Semplicità di ProgettoAbbiamo introdotto il task blu: test refactoring affidabilità dei test Obiettivo : maggiore manutenibilità e modificabilità
  • 24.
    Testing Perchè scriviamotest: aumentano la nostra sicurezza e quella del cliente sul codice che scriviamo aumentano la nostra conoscenza del codice individuano eventuali regressioni velocizzano i tempi di sviluppo test automatici contro test manuali (web app) Quando possibile preferiamo il test first Obiettivo : aumentare la copertura del codice
  • 25.
    Refactoring Facciamo delrefactoring quando: il codice è coperto da test il codice è complesso al terzo cut & paste ;-) Alcuni task blu sono concordati col cliente: razionalizzazione del codice Obiettivo : semplicità e manutenibilità
  • 26.
    Pair Programming Abbiamo“La Giornata del Navigatore”: un pair programming “custom” un giorno a turno uno del team dedica il suo tempo alla programmazione in coppia Obiettivo : aumentare la proprietà collettiva
  • 27.
    Proprietà Collettiva Cerchiamodi far girare le persone sui progetti: favorisce la proprietà e la conoscenza collettive aumenta la crescita stimola la curiosità tutti possono intervenire sul codice di produzione che non hanno rilasciato Obiettivo : la crescita personale e professionale dei membri del team; l'indipendenza del singolo dal progetto; l'indipendenza del progetto dal singolo
  • 28.
    Integrazione Continua Lavoriamoper migliorare ulteriormente il nostro ambiente di integrazione continua: credibilità dei test tempi dei test unitari tempi dei test funzionali indipendenza dei test Obiettivo: un progetto sempre funzionante; individuare eventuali problemi prima del cliente; acquisire sicurezza
  • 29.
    Settimana di 40Ore “ Al mattino voglio essere fresco e desideroso di cominciare; alla sera mi piace essere stanco e soddisfatto. Al venerdì, voglio essere abbastanza stanco e soddisfatto da sentirmi autorizzato a pensare ad altro per due giorni. Al lunedì, poi, voglio arrivare pieno di entusiamo e di idee.” Kent Beck Programmazione Estrema Introduzione Obiettivo: avere voglia di far bene il proprio lavoro
  • 30.
    Cliente sul PostoSviluppiamo in sede e andiamo dal cliente una volta a settimana per: avere feedback su quanto prodotto pianificare insieme le attività rilasciare in sviluppo assistere il cliente durante i rilasci in produzione Obiettivo: consegnare al cliente quello di cui ha effettivamente bisogno
  • 31.
    Standard di CodificaNessuna regola particolare La modifica collettiva crea uno standard interno Cerchiamo di scegliere nomi di classi, metodi e variabili parlanti seguendo un vocabolario comune a noi e al cliente Obiettivo: facilitare la comprensione e la conoscenza
  • 32.
    La Retrospettiva Iltempo e il luogo dove il team prende le decisioni per: risolvere problemi tecnici modificare il processo di sviluppo discutere soddisfazioni e insoddisfazioni decidere un nome per grafici, progetti, inziative Obiettivo: decidere insieme cosa è meglio per noi
  • 33.
    Il pomodoro L'unitàdi tempo che scandisce le nostre giornate: 25 + 5 minuti I pomodori: 12 al giorno per 5 giorni 60 pomodori settimanali ciascuno 360 pomodori settimanali di team Obiettivo: far fruttare il nostro tempo
  • 34.
    Il Frodo delpomodoro A turno ogni membro del team è il “frodo del pomodoro” ovvero il custode da proteggere del nostro tempo Obiettivo: raccogliere pomodori
  • 35.
    La giornata tipo di un wallaby
  • 36.
    La giornata tipodi un wallaby Stand Up Meeting Tracking 4 pomodori di sviluppo Pausa 1 pomodoro di sviluppo Pausa pranzo 4 pomodori di sviluppo Pausa 2 pomodori di sviluppo 1 o pomodoro
  • 37.
    Stand Up MeetingMomento fondamentale nella giornata del wallaby 2 minuti ciascuno Non riunione Aggiornamento veloce
  • 38.
    Domande Per comoditàabbiamo deciso di stilare una lista di domande alle quali rispondere per semplificare e velocizzare la comunicazione:
  • 39.
    Lavagna - 1La lavagna è divisa in più parti:
  • 40.
    Lavagna - 2In alto troviamo le storie che devono essere sviluppate, ancora da assegnare
  • 41.
    Lavagna - 3Al centro ci sono le storie in sviluppo, la loro posizione rispetto alla barra di avanzamento indica a che punto si è arrivati
  • 42.
    Lavagna - 4In basso ci sono due spazi: uno per le storie concluse da mettere in ambiente di sviluppo dal cliente, uno per le storie che dopo i test in sviluppo possono essere messe in produzione
  • 43.
    Lavagna - 3Ogni storia ha un owner Durante lo Stand Up Meeting si aggiorna la posizione della storia lungo la barra di avanzamento
  • 44.
    Tracking Registrazione sultimesheet aziendale del tempo dedicato ai vari progetti Registrazione interna al team dei pomodori di ogni componente per produrre statistiche E' utile per capire quanto tempo è stato speso su ogni task e poi perfezionare le stime
  • 45.
    La giornata delNavigatore A turno ogni componente del team per un giorno si stacca dalla sua storia e partecipa allo sviluppo delle storie degli altri owner Questo perchè: è un modo veloce e pratico di entrare in contatto con i progetti seguiti dagli altri membri del team si riesce in maniera produttiva a condividere le conoscenze acquisite senza fermare lo sviluppo del team con riunioni e presentazioni in cui ognuno espone a tutti le problematiche affrontate
  • 46.
  • 47.
    Gestione di piùprogetti Per un periodo di tempo c'è stata l'esigenza di gestire 3 progetti contemporaneamente. Come è stata organizzata questa gestione? applicando il più possibile le tecniche agili apprese dal team: preparazione delle “storie” e dei “task” stima dei tempi di realizzazione suddivisione del lavoro tra i componenti del team fatto in modo da rispettare tempistiche e scadenze monitoraggio giornaliero dei progressi fatti sui singoli progetti
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
    Sinapsi Spa Viale Bligny 27 20136 Milano (MI) Telefono: 02 582095.1 Fax: 02 582095.21 Web: www.sinapsi.com Info: [email_address] Wallabiez: [email_address]