| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Prima esperienza

This version was saved 17 years, 6 months ago View current version     Page history
Saved by PBworks
on September 7, 2006 at 11:18:04 am
 

06.09.2006 - sede Sinapsi, viale Bligny 27, Milano

 

19:00

Configurazioni varie

Gli altri stanno già preparando le postazioni di lavoro. Scaricano il progetto, modificano quelle due o tre impostazioni che servono

Obiettivo

  • vedere la barra verde dell'unico test di accettazione che passa "gratis" (grazie Gabriele)
  • poter lanciare un test unitario e vedere - a dipendenza - la barra rossa o verde

 

Introduzione al lavoro

Gabriele introduce il modo di lavorare ed io spiego brevemente in cosa consiste quella che chiamiamo "sfida".

Il pomodoro di 15 minuti suscita già qualche perplessità tra chi ha letto le mie considerazioni iniziali.

 

Il vantaggio di provare "la sfida" è principalmente che si potrà sperimentare - anche se in piccolo - un surrogato della metodologia stessa che però dovrebbe essere indicativo soprattutto perchè molto concreto e basato su qualcosa da produrre, in pratica un mini-xp.

 

Dopo questa brillante trovata di marketing mi ritrovo con cinque volontari e - nel gioco delle coppie per creare i pair - devo rinunciare a Matteo che farà coppia con Uberto. Nota personale: Matteo e Uberto praticano da tempo sia le metodologie agili che la programmazione in Java o per lo meno sono ben piazzati in entrambi, forse non sarebbe stato così interessante nè per loro nè per me in quanto non ci sarebbe stato molto da sperimentare.

 

Definizione dei pair e brevi spiegazioni

Le quattro persone a mia disposizione sono quindi: Roberto, Franco, Fabio e Luca.

Già da subito si capisce che sono molto motivati (d'altro canto sono volontari tra i volontari) ed hanno molta voglia di cominciare e questo è un fattore molto positivo!

 

Il meccanismo è abbastanza semplice, si prova come definito senza farsi troppe domande. Valutazioni alla fine.

 

20:00 - si parte

Riceviamo la storia dal nostro cliente, si tratta di visualizzare in html delle news già presenti in una cartella sul filesystem.

Mini pianificazione

L'obiettivo è spezzettare la storia in task dettaglio dei task, che abbiano uno o più test unitari e della dimensione massima di due pomodorini, altrimenti ci tocca dividerli ulteriormente.

 

Particolare: viene creato un task che dovrebbe leggere le news da una directory ma viene buttato perchè giudicato troppo pretenzioso.

Viene sostituito da:

  • Lettore directory, numero file: riceve una directory e restituisce il numero di file presenti
  • Lettore directory, nomi file: riceve una directory e restituisce i percorsi dei file presenti
  • Lettore news: riceve un percorso e restituisce una news (al momento non sappiamo ancora in che formato, speriamo che per allora la classe News sia già stata sviluppata in modo da poter creare oggetti di questo tipo)

 

I task vengono quindi stimati (1 o 2 pomodorini) e vengono ordinati in modo da parallellizzare il più possibile il lavoro.

 

20:21 - Primo pomodorino (inizio)

 

20:27 - Intervento

Una rapida occhiata ai codici evidenzia subito un'incongruenza:

Mentre da una parte i metodi si chiamano setTitle e getDescription, dall'altra c'è la classe LettoreDirectory.

Breve interruzione: "Adesso potete ancora scegliere, italiano o inglese, poi però dovete attenervi alla vostra scelta"

In pochi secondi il team vota per l'italiano e il team anglofono deve rinominare i suoi metodi.

 

20:30 - Problema

Il lettore directory legge anche i file nascosti nella directory, nel caso specifico un .svn

Quando ci si aspetta che ci siano quattro file quindi se ne trovano cinque.

La soluzione "volante" è quella di utilizzare una nuova cartella invece di quella dove risiedevano le news da caricare (così non ci sono file nascosti).

 

20:36 - Primo pomodorino (fine)

  • Classe News - Finito, test funzionante (stimato 1p, effettivo 1p)
  • Lettore Directory, numero file - Finito, test funzionante (stimato 1p, effettivo 1p)

 

Un buon inizio, anche gli sviluppatori sono felici, soprattutto chi è riuscito a far passare il test negli ultimi due secondi validi, vero Fabio?

Anche se è poco ci dà morale...

 

Un attimo di pausa e si riparte.

 

20:40 - Secondo pomodorino (inizio)

 

20:45 - Problema

Usando una directory locale i test non gireranno sull'altra macchina.

Una breve consultazione di team fa emergere la soluzione "volante": si decide una directory comune che verrà sincronizzata con gli altri file.

 

20:55 - Secondo pomodorino (fine)

  • Lettore File - Non finito (stimato 2p, effettivo 1p)
  • Lettore Directory, nomi file - Non finito, manca qualche minuto (stimato 1p, effettivo 1p)

 

Un attimo di pausa e si riparte.

 

20:59 - Terzo pomodorino (inizio)

Si continua con gli stessi due task.

 

21:06

  • Lettore File - Finito

 

21:08

  • Lettore Directory, nomi file - Finito

 

Sfruttato il tempo rimanente per correggere i percorsi (con quello appena definito qualche minuto fa) e per sincronizzare le due macchine.

 

Tutti si prendono un momento di respiro e c'è chi ne approfitta per fare conoscenza, soprattutto con Roberto che è con noi per la prima volta.

Un bell'ambiente insomma.

 

Chi aveva la classe News e il lettore di file (Fabio e Franco) lo passa all'altro pair (Roberto e Luca).

Così fa chi ha implementato i due task sul lettore di directory.

 

Dopo la sincronizzazione si fanno girare tutti i test unitari su entrambe le macchine: verde e verde!

 

21:14 - Terzo pomodorino (fine)

  • Lettore File - Finito, test funzionante (stimato 2p, effettivo 2p)
  • Lettore Directory, nomi file - Finito (stimato 1p, effettivo 2p)

 

Pausa infra-pomodorino, propongo di scambiare i pair, proposta accettata!

 

21:18 - Quarto pomodorino (inizio)

Due nuovi task:

  • Visualizzatore, una singola news
  • Lista News

 

21:34 - Quarto pomodorino (fine)

  • Visualizzatore, una singola news - Non finito (stimato 2p, effettivo 1p)
  • Lista News - Non finito, occorre altro tempo per un bug (stimato 1p, effettivo 1p)

 

Mini pausa, solo un minuto. Lo sappiamo come sono gli sviluppatori quando hanno un bug da correggere, la prendono sul personale! (c:

 

21:35 - Quinto pomodorino (inizio)

Anche l'altro task incappa in un bug. Situazione stazionaria, cominciano a vedersi i primi out.printl

 

21:43 - 21:59 Cena

Si mangia qualche pizza e qualche focaccia nel solito ambiente cordiale dell'xpug.

 

Rifletto sul fatto che uno switch pair potrebbe sbloccare la buggosa situazione.

Quando ricominciamo in effetti cambiamo i pair.

 

Manco a dirlo Fabio scova subito il bug del pair dove non lavorava.

La cosa particolare è che il bug è lo stesso dell'altro pair (ovvero lo stesso che c'era dall'altra parte)

La felicità di Luca viene sentita anche dagli altri due che si accorgono e correggono...

 

si riparte...

 

22:04 Lista News - Finito

 

22:06 - Quinto pomodorino (fine)

  • Lista News - Finito, test funzionante (stimato 1p, effettivo 2p)
  • Visualizzatore, una singola news - Non finito (stimato 2p, effettivo 2p)

Quest'ultimo suona molto male!

 

Il pair che ha finito si propone per aiutare l'altro...

Comments (0)

You don't have permission to comment on this page.