<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gabriele Lana &#187; scrum</title>
	<atom:link href="http://www.gabrielelana.it/archives/category/scrum/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gabrielelana.it</link>
	<description>on Agile Methodologies and Programming</description>
	<lastBuildDate>Fri, 07 May 2010 14:12:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Agile? Maybe in a perfect world</title>
		<link>http://www.gabrielelana.it/archives/67</link>
		<comments>http://www.gabrielelana.it/archives/67#comments</comments>
		<pubDate>Mon, 28 Apr 2008 20:38:49 +0000</pubDate>
		<dc:creator>Gabriele Lana</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[extreme]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://www.gabrielelana.it/archives/67</guid>
		<description><![CDATA[Vi avevo chiesto cosa avreste risposto alla domanda: “Apprezzo veramente i concetti e le pratiche che stanno alla base delle metodologie Agili, ma temo che possano funzionare solo in un mondo perfetto…”, ho apprezzato i diversi punti di vista che mi danno l&#8217;opportunità di scrivervi che cosa ho risposto io e per approfondire l&#8217;argomento
Cosa vuol [...]]]></description>
			<content:encoded><![CDATA[<p>Vi <a href="http://www.gabrielelana.it/archives/65">avevo</a> chiesto cosa avreste risposto alla domanda: <em>“Apprezzo veramente i concetti e le pratiche che stanno alla base delle metodologie Agili, ma temo che possano funzionare solo in un mondo perfetto…”</em>, ho apprezzato i diversi punti di vista che mi danno l&#8217;opportunità di scrivervi che cosa ho risposto io e per approfondire l&#8217;argomento</p>
<p>Cosa vuol dire che le metodologie Agili possono funzionare soltanto in un mondo perfetto? Considerando anche i <a href="http://www.gabrielelana.it/archives/65">commenti</a> degli altri, possiamo interpretarlo come: <em>&#8220;Le metodologie Agili possono funzionare solo in un mondo perfetto perchè nella realtà esistono dei vincoli che non possono essere superati&#8221;</em></p>
<p>La risposta che ho dato quando mi è stato esposto questo dubbio è perfettamente in linea con il commento di Vieri del Bianco </p>
<blockquote><p>
In una recente intervista è stato chiesto a Kent Beck cosa voglia dire “essere agili” (il DOMANDONE…). La sua risposta mi ha decisamente colpito (estremamente sintetica e in definitiva illuminante): “My definition is that you accept input from reality and you respond to it”.<br />
Ma questa è l’antitesi del mondo perfetto… io la interpreto con l’essere capaci di modificare gli strumenti/metodologie/pratiche/valori per plasmarsi sulla “realtà” (e la realtà non è solo il cliente, o l’ambiente di lavoro e le sue regole, ma anche la squadra con cui si ha a che fare).<br />
Questo è, a mio avviso, il cuore dei metodi agili (e l’Agile Manifesto sembra confermarlo).
</p></blockquote>
<p>Pensate solo al motore della natura evolutiva delle metodologie Agili: la retrospettiva. Il team si interroga continuamente sul proprio metodo di lavoro e lo fa basandosi sia su dati soggettivi, ma sopratutto su dati oggettivi = metriche raccolte durante il processo produttivo, metriche che vengono stabilite basandosi su quelli che sono i reali obiettivi del progetto e quindi del suo committente. Questo comporta un continuo adattamento del team e del metodo che deriva da un confronto costante con i risultati ottenuti. Questa è l&#8217;essenza delle metodologie Agili: un estremo realismo, una vocazione alla trasparenza e alla comunicazione</p>
<p>Tuttavia, come è stato accennato nei <a href="http://www.gabrielelana.it/archives/65">commenti</a>, a volte la realtà impedisce la corretta applicazione di alcune pratiche rendendole controproducenti, altre volte i <a href="http://agilemanifesto.org/">valori</a> e i <a href="http://agilemanifesto.org/principles.html">principi</a> vengono talmente disillusi da rendere impossibile l&#8217;adozione di una metodologia agile, è vero, non lo nego, anch&#8217;io mi sono trovato in situazioni simili e non ho potuto fare altro che arrendermi all&#8217;evidenza</p>
<p>Facciamo un ragionamento però: una delle critiche che vengono mosse alle metodologie Agili è quello di essere &#8220;acqua calda&#8221;, nient&#8217;altro che buon senso applicato, il che è sostanzialmente vero, ma quindi cosa vuol dire quando il <strong>buon senso</strong> non può essere utilizzato? Probabilmente quelli che consideriamo come <strong>vincoli</strong> sono in realtà <strong>vizi</strong> che possono e dovrebbero essere eliminati, <strong>vizi</strong> che in realtà rappresentano delle grosse opportunità di miglioramento</p>
<p>Al che sorge spontanea la domanda: <em>&#8220;Quando dovremmo sfruttare l&#8217;adattabilità delle metodologie Agili per aggirare un ostacolo e quando invece l&#8217;ostacolo dovrebbe essere abbattuto?&#8221;</em>. Ovviamente non esiste una risposta che può essere data a priori, un consiglio? In un momento di calma e lucidità identificate quali sono i vostri veri <strong>obiettivi</strong>,  <strong>valori</strong> e <strong>principi</strong>, confrontatevi sempre con essi in maniera obiettiva e misurabile, se lavorerete per migliorarvi continuamente, siete sulla buona strada :-) Ovviamente lo scrivo più che altro rivolgendomi a me stesso :-)</p>
<p>Se avete altri commenti a riguardo mi piacerebbe sentirli, altrimenti possiamo passare alla prossima domanda: <em>&#8220;Quale aumento di produttività possiamo aspettarci da un team che inizia ad adottare SCRUM? In quali tempi?&#8221;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gabrielelana.it/archives/67/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agile Training</title>
		<link>http://www.gabrielelana.it/archives/65</link>
		<comments>http://www.gabrielelana.it/archives/65#comments</comments>
		<pubDate>Sun, 20 Apr 2008 13:25:20 +0000</pubDate>
		<dc:creator>Gabriele Lana</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.gabrielelana.it/archives/65</guid>
		<description><![CDATA[Io e Matteo da qualche mese stiamo facendo attività di mentoring e formazione presso NSN, l&#8217;obiettivo è quello di dare una formazione di base sulle metodologie agili (in particolare SCRUM) e di aiutare i team che inizieranno ad utilizzare queste metodologie. Grazie a questa esperienza ho provato sulla mia pelle l&#8217;importanza di fare formazione (nel [...]]]></description>
			<content:encoded><![CDATA[<p>Io e <a href="http://matteo.vaccari.name/">Matteo</a> da qualche mese stiamo facendo attività di mentoring e formazione presso <a href="http://www.nokiasiemensnetworks.com/">NSN</a>, l&#8217;obiettivo è quello di dare una formazione di base sulle metodologie agili (in particolare SCRUM) e di aiutare i team che inizieranno ad utilizzare queste metodologie. Grazie a questa esperienza ho provato sulla mia pelle l&#8217;importanza di fare formazione (nel senso di insegnare qualcosa a qualcuno) come fonte di formazione (nel senso di imparare qualcosa da qualcuno), ovvero: &#8220;capisci veramente qualcosa solo quando la insegni a qualcun&#8217;altro&#8221; :-)</p>
<p>Uno degli strumenti che utilizziamo durante i corsi è il &#8220;Backlog delle domande&#8221;: se qualcuno ha una domanda, può farla subito, se la risposta viene stimata di costo inferiore ai 30&#8221;, la risposta viene data immediatamente, altrimenti viene inserita nel Backlog (una pagina di un flipchart che tutti possono vedere). Durante la giornata dedichiamo un paio di pomodori per rispondere alle domande: Io e Matteo facciamo il ruolo del team = stimiamo le domande a seconda della complessità; i partecipanti al corso giocano il ruolo dei clienti = ogni partecipante vota la domanda per la quale vuole una risposta; finita questa attività di planning, rispondiamo alle domande in ordine di voto fino a consumare il tempo a disposizione</p>
<p>Ad oggi abbiamo fatto corsi ad oltre 200 persone, alcuni avevano una formazione tecnica altri no, alcuni erano programmatori altri no, alcuni erano giovani altri meno, alcuni avevano letto qualcosa sulle metodologie Agili altri erano totalmente digiuni, ecc&#8230; E&#8217; facile immaginare la quantità di domande che sono state poste ed è altrettanto facile immaginare che non abbiamo avuto il tempo di rispondere a tutte :-) Ed eccoci arrivati al punto: volevo utilizzare il blog per riprendere alcune di queste domande, non per scrivere delle risposte, ma per continuare ad interrogarmi su delle questioni che troppo spesso do per scontante&#8230;</p>
<p>Durante l&#8217;ultimo corso che abbiamo tenuto, una ragazza ha espresso un dubbio che mi ha particolarmente colpito, la frase suonava più o meno così: <em>&#8220;Apprezzo veramente i concetti e le pratiche che stanno alla base delle metodologie Agili, ma temo che possano funzionare solo in un mondo perfetto&#8230;&#8221;</em></p>
<p>Voi cosa le avreste risposto?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gabrielelana.it/archives/65/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Reframing In The Agile World</title>
		<link>http://www.gabrielelana.it/archives/64</link>
		<comments>http://www.gabrielelana.it/archives/64#comments</comments>
		<pubDate>Mon, 17 Sep 2007 22:57:51 +0000</pubDate>
		<dc:creator>Gabriele Lana</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[extreme]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://www.gabrielelana.it/archives/64</guid>
		<description><![CDATA[Ho appena finito di leggere un articolo del venerabile Paul Graham, autore di libri quali &#8220;Hackers and Painters&#8221; e &#8220;On Lisp&#8221; (libro da me molto ambito, ma alquanto difficile da avere)
L&#8217;articolo indica alcune pratiche che possono essere utilizzate dai programmatori per &#8220;mantenere un programma nella propria testa&#8221;, inizialmente sia l&#8217;obiettivo dell&#8217;articolo che alcune delle pratiche [...]]]></description>
			<content:encoded><![CDATA[<p>Ho appena finito di leggere un <a href="http://www.paulgraham.com/head.html">articolo</a> del venerabile <a href="http://www.paulgraham.com/">Paul Graham</a>, autore di libri quali <a href="http://www.amazon.com/o/ASIN/0596006624">&#8220;Hackers and Painters&#8221;</a> e <a href="http://www.amazon.com/o/ASIN/0130305529">&#8220;On Lisp&#8221;</a> (libro da me molto ambito, ma alquanto difficile da avere)</p>
<p>L&#8217;articolo indica alcune pratiche che possono essere utilizzate dai programmatori per &#8220;mantenere un programma nella propria testa&#8221;, inizialmente sia l&#8217;obiettivo dell&#8217;articolo che alcune delle pratiche proposte mi hanno un po&#8217; disorientato in quanto in apparente netto contrasto con quanto dettato dalle metodologie Agili: <em>&#8220;Se Paul Graham è un mito, e ha ragione, allora hanno torto le metodologie Agili?&#8221;</em> No, hanno ragione entrambi, i principi che stanno alla base sono gli stessi, come al solito tutto torna :-)</p>
<p><span id="more-64"></span>Prendiamo per esempio una delle pratiche più forti fra quelle proposte: <strong>&#8220;Keep rewriting your program&#8221;</strong>; come dargli torto? Capita spesso che durante la scrittura di un programma un programmatore arrivi ad un momento in cui la sua conoscenza attuale del problema e della relativa soluzione non sia più rispecchiata dal codice, riscrivendolo potremmo inserire nel codice tale conoscenza e quindi otterremmo del codice migliore. D&#8217;altra parte molti conosceranno la <a href="http://en.wikipedia.org/wiki/Second-system_effect">&#8220;Sindrome del secondo sistema&#8221;</a> e sapranno quindi che la maggior parte delle riscritture dei progetti software risulta fallimentare. <em>&#8220;Come è possibile che entrambe queste evidenze empiriche siano vere? Come risolvono la questione le metodologie Agili?&#8221;</em></p>
<p>Cos&#8217;è il <strong>refactoring</strong> se non un&#8217;attività di continua riscrittura del codice? Kent Beck spiega perchè eXtreme Programming è eXtreme: tutte quelle pratiche che hanno dimostrato nel tempo di essere valide sono state portate all&#8217;estremo. La revisione del codice funziona? Bene, revisioniamo il codice sempre! = Pair Programming. La riscrittura di programmi porta a dei programmi con un design migliore? Bene, riscriviamo i nostri programmi continuamente! = Refactoring</p>
<p>Attraverso la pratica del refactoring possiamo trasformare (riscrivere) continuamente il nostro codice affichè rispecchi nella maniera migliore possibile la conoscenza che attualmente abbiamo del dominio del problema e della sua soluzione. Continuamente! Il trucco è sempre quello: se un&#8217;attività è rischiosa, difficile, costosa, ma potenzialmente di grande valore, quello che dobbiamo fare non è evitarla o prevenirla, ma trovare un modo per renderla meno rischiosa, meno difficile e meno costosa, mantenendone il valore inalterato (pensate per esempio alla Continuous Integration)</p>
<p>Al solito ci sono pratiche a corollario che portano il codice ad essere rappresentazione della nostra conoscenza:</p>
<ul>
<li>Unit Tests: come specifica eseguibile del comportamento dei componenti del nostro software</li>
<li>Acceptance Tests: come specifica eseguibile delle funzionalità esibite dal nostro software</li>
<li>Shared Code: fare in modo che il nostro codice sia leggibile a tutti i componenti del team (lo considero un super set di <strong>&#8220;Write rereadable code&#8221;</strong> dell&#8217;articolo di Graham)</li>
<li>Domain Driven Design: sviluppare un linguaggio di dominio (Ubiquitous Language) all&#8217;interno del codice. Questa pratica potrebbe essere portata all&#8217;estremo scrivendo un&#8217;interprete per un <span alt="Domain Specific Language">DSL</span> (Graham come Lisper a questo proposito ne sa qualcosa)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.gabrielelana.it/archives/64/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Burn Down Chart + Effort</title>
		<link>http://www.gabrielelana.it/archives/57</link>
		<comments>http://www.gabrielelana.it/archives/57#comments</comments>
		<pubDate>Thu, 21 Jun 2007 16:48:51 +0000</pubDate>
		<dc:creator>Gabriele Lana</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[extreme]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://www.gabrielelana.it/archives/57</guid>
		<description><![CDATA[Il burn down chart è decisamente uno dei miei grafici preferiti in quanto si adatta perfettamente alla filosofia Agile

  
E&#8217;  estremamente semplice da disegnare e da tenere aggiornato, potrebbe sembrare una sciocchezza, ma non lo è: la complessità di disegno del grafico ci potrebbe portare ad utilizzare uno o più programmi specifici per [...]]]></description>
			<content:encoded><![CDATA[<p>Il <a href="http://alistair.cockburn.us/index.php/Earned-value_and_burn_charts">burn down chart</a> è decisamente uno dei miei grafici preferiti in quanto si adatta perfettamente alla filosofia <a href="/archives/40">Agile</a></p>
<p><a class="on_the_left" href='http://www.gabrielelana.it/wp-content/uploads/2007/06/burndown_1.png' title='burndown_1.png'><br />
  <img src='http://www.gabrielelana.it/wp-content/uploads/2007/06/burndown_1.thumbnail.png' alt='burndown_1.png' /><br />
</a>E&#8217;  estremamente semplice da disegnare e da tenere aggiornato, potrebbe sembrare una sciocchezza, ma non lo è: la complessità di disegno del grafico ci potrebbe portare ad utilizzare uno o più programmi specifici per il plotting, il che ci porterebbe a dover inserire manualmente i dati relativi, il che probabilmente ci porterebbe a considerare la possibilità di utilizzare uno o più software per memorizzare i nostri dati di processo in modo da poter automatizzare la generazione del grafico. Ne vale la pena? A mio parere questo è un&#8217;antipattern abbastanza comune che dovrebbe essere accuratamente evitato, per questo consiglio tutti i miei team di disegnare i loro grafici di processo a mano e di fare il traking dopo o durante lo <a href="/archives/29">stand-up meeting</a>.</p>
<p><span id="more-57"></span><a class="on_the_left" href='http://www.gabrielelana.it/wp-content/uploads/2007/06/burndown_2.png' title='burndown_2.png'><br />
  <img src='http://www.gabrielelana.it/wp-content/uploads/2007/06/burndown_2.thumbnail.png' alt='burndown_2.png' /><br />
</a>E&#8217; estremamente intuitivo: sull&#8217;asse verticale sono rappresentati i punti storia, ovvero una misura della complessità (cumulativa) delle funzionalità che dovremmo implementare, sull&#8217;asse orizzontale sono rappresentati i giorni che abbiamo a disposizione per completare il nostro lavoro. L&#8217;ho definito &#8220;intuitivo&#8221; sia perchè è semplice identificare l&#8217;obiettivo (consumare i punti storia entro la data prevista), sia perchè basta un colpo d&#8217;occhio per capire se siamo in ritardo o se siamo in anticipo sulle nostre previsioni: se siamo sopra l&#8217;andamento ideale, siamo in ritardo, altrimenti siamo in anticipo</p>
<p><a class="on_the_left" href='http://www.gabrielelana.it/wp-content/uploads/2007/06/burndown_3.png' title='burndown_3.png'><br />
  <img src='http://www.gabrielelana.it/wp-content/uploads/2007/06/burndown_3.thumbnail.png' alt='burndown_3.png' /><br />
</a>Un&#8217;altra caratteristica &#8220;Agile&#8221; di questo tipo di grafico è la possibilità di identificare molto rapidamente dei trend, possiamo avere feedback immediato su quello che è lo stato del progetto oggi e sullo stato in cui sarà il progetto domani se non modificheremo il nostro processo produttivo.</p>
<p>Ultimamente ad uno dei miei team è stato affidato un progetto che dovrà essere sviluppato contemporaneamente al loro progetto principale. Ovviamente c&#8217;è stato dato un budget di tempo (e quindi di costo) all&#8217;interno del quale abbiamo negoziato le funzionalità che dovranno essere implementate. Durante una retrospettiva ho consigliato di tener traccia dell&#8217;andamento di questo progetto (che ha uno scope ben definito a dispetto del loro progetto principale) attraverso un burn down chart. In quel momento mi sono accorto che per questo tipo di progetti il burn down chart nel suo formato originale può portare a dei problemi.</p>
<p>Il progetto in questione è limitato nello scope e nel tempo, ma deve anche essere limitato nell&#8217;effort che il team può spendere per la sua realizzazione. Avendo come unica metrica il burn down chart tradizionale correremmo il rischio di dedicare troppe energie (leggi persone/ore) per mantenere ideale l&#8217;avanzamento di questo progetto secondario a discapito del progetto principale</p>
<p><a class="on_the_left" href='http://www.gabrielelana.it/wp-content/uploads/2007/06/burndown_4.png' title='burndown_4.png'><br />
  <img src='http://www.gabrielelana.it/wp-content/uploads/2007/06/burndown_4.thumbnail.png' alt='burndown_4.png' /><br />
</a>Quando ci si trova di fronte ad una situazione di questo genere una soluzione potrebbe essere quella di tener traccia, all&#8217;interno dello stesso grafico, anche dell&#8217;effort. Supponiamo che il nostro budget preveda 5 mesi uomo, calcolando 10 <a href="http://www.tecnicadelpomodoro.it/">pomodori</a>/giorno/uomo (un pomodoro è un&#8217;unita di tempo di 25 minuti), per 20 giorni/mese/uomo, fanno un totale di 1000 pomodori che possiamo spendere come team su questo progetto. In questo modo abbiamo un grafico che non solo ci comunica l&#8217;andamento del progetto, ma lo mette in relazione con l&#8217;effort spesa. Per esempio nell&#8217;immagine qui di fianco possiamo vedere come l&#8217;andamento del progetto sia praticamente perfetto, a discapito però di un&#8217;utilizzo eccessivo di risorse</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gabrielelana.it/archives/57/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Stand-Up Meeting in Small Teams</title>
		<link>http://www.gabrielelana.it/archives/29</link>
		<comments>http://www.gabrielelana.it/archives/29#comments</comments>
		<pubDate>Mon, 02 Apr 2007 12:58:59 +0000</pubDate>
		<dc:creator>Gabriele Lana</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.gabrielelana.it/archives/29</guid>
		<description><![CDATA[Software development is a complex process that requires lots of comunications. The Daily Scrum meeting is where the team comes to comunicate
Ken Schwaber inizia così il capitolo dedicato a questa pratica all&#8217;interno del suo libro, pratica che, come  altre cose nel caos informatico, ha molti altri nomi

Daily Scrum Meeting
Stand-Up Metting
Daily Stand-Up Meeting
Daily Status Meeting

In [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Software development is a complex process that requires lots of comunications. The Daily Scrum meeting is where the team comes to comunicate</p></blockquote>
<p><a href="http://en.wikipedia.org/wiki/Ken_Schwaber">Ken Schwaber</a> inizia così il capitolo dedicato a questa pratica all&#8217;interno del suo <a href="http://www.amazon.com/o/ASIN/0130676349">libro</a>, pratica che, come  altre cose nel caos informatico, ha molti altri nomi</p>
<ul>
<li>Daily Scrum Meeting</li>
<li>Stand-Up Metting</li>
<li>Daily Stand-Up Meeting</li>
<li>Daily Status Meeting</li>
</ul>
<p><span id="more-29"></span><em>In pochi secondi, cos&#8217;è lo Stand-Up Meeting?</em> E&#8217; un momento che si ripete tutti i giorni alla stessa ora, nel quale tutto il team si raduna in uno stesso luogo per fare il punto della situazione attuale. In particolare ogni componente del gruppo viene a conoscenza di cosa hanno fatto gli altri il giorno prima, quali difficoltà hanno incontrato e cosa faranno oggi</p>
<p>La stessa pratica viene citata in molti libri facendo riferimento a metodologie agili differenti, ma conservandone le caratteristiche</p>
<ul>
<li>Limitata nel tempo, 10/15 minuti al massimo</li>
<li>Tutti i partecipanti devono stare in piedi (ecco perchè Stand-Up) per sottolineare la brevità dell&#8217;evento</li>
<li>Si tiene tutti i giorni nello stesso posto e alla stessa ora, principalmente per dare la possibilità alle persone esterne al team di sincronizzarsi in modo da poter partecipare anche se passivamente (vedi dopo), ma anche per dare autorevolezza all&#8217;evento (non è una cosa fatta così per fare, fa parte del <strong>nostro</strong> processo produttivo). Molti utilizzano (e consigliano) questo momento come l&#8217;inizio della giornata lavorativa</li>
<li>Ci si riunisce in cerchio senza impedimenti nel mezzo, per enfatizzare il fatto che si vuole realizzare una comunicazione di tipo uno a molti</li>
<li>Si parla a turno uno alla volta, spesso per identificare chi ha la parola viene utilizzato un token (un pupazzo, un cappello, &#8230;) utile sopratutto nei team più numerosi</li>
<li>Chi ha la parola comunica al team rispondendo a tre domande
<ul>
<li>Cosa ho fatto ieri</li>
<li>Quali difficoltà/ostacoli ho incontrato</li>
<li>Cosa farò oggi</li>
</ul>
</li>
<li>Prevalentemente il flusso di comunicazione è interno al team, gli esterni al team possono (sono invitati a) partecipare solo in maniera passiva</li>
</ul>
<p>Molte persone credono che lo Stand-Up Meeting sia rispondere a queste tre domande, ma in realtà non è così importante a quali domande si da risposta, ciò che è veramente importante sono le informazioni che vengono scambiate all&#8217;interno del team e il raggiungimento degli obiettivi che questa pratica si prefigge</p>
<ul>
<li>Identificare/sottolineare gli obiettivi del team</li>
<li>Identificare/sottolineare gli ostacoli in modo che altri componenti del team possano rimuoverli</li>
<li>Identificare/sottolineare lo stato attuale, i progressi fatti e i piani futuri</li>
<li>Migliorare la comunicazione all&#8217;interno del team</li>
<li>Migliorare la collaborazione all&#8217;interno del team</li>
</ul>
<p>Raggiungere, anche parzialmente, questi obiettivi &#8220;spendendo&#8221; solo 10/15 minuti al giorno sembra proprio un buon affare. Iniziare con questa pratica è semplice, ma quali sono gli elementi che identificano un buon Stand-Up Meeting?</p>
<ul>
<li>Rapido: massimo 10/15 minuti, se andate oltre con una certa regolarità rendete evidente questo fatto facendo squillare un timer alla fine dei 15 minuti di modo che tutti sappiano che hanno &#8220;sforato&#8221;</li>
<li>Focalizzato: niente persone che si guardano in giro please! E&#8217; mancanza di rispetto verso chi sta parlando</li>
<li>Energico: deve essere un momento attivo, un momento in cui tutto il team è chiamato a partecipare</li>
<li>Di supporto: le persone devono sentirsi ascoltate, un buon modo per creare questa sensazione è di occuparsi dei problemi che vengono sollevati durante il meeting. Ci tengo a sottolineare questo aspetto perchè è un primo passo verso la costruzione di un team, ovvero un gruppo di lavoro dove le responsabilità vengono condivise</li>
<li>Auto organizzato: non ci deve essere un &#8220;centro&#8221;, la comunicazione deve essere uno a molti</li>
</ul>
<p>L&#8217;implementazione di questo tipo di pratica è sicuramente più semplice in team piccoli (< 8 persone), ma nella mia esperienza personale ho visto questi antipattern</p>
<ul>
<li>Chi parla si riferisce sempre alla stessa persona, generalmente al &#8220;capo&#8221; (project leader, project manange, &#8230;). Cosa fare?
<ul>
<li>Assicurarsi che il gruppo formi un cerchio senza ostacoli nel mezzo (effetto tavola rotonda)</li>
<li>Sottolineare all&#8217;inizio del meeting gli obiettivi dello stesso e il modello di comunicazione (uno a molti) che meglio li supporta, utilizzate magari una breve frase che segni anche l&#8217;inizio del meeting</li>
<li>Eleggere un facilitatore che faccia seguire le &#8220;regole&#8221; del meeting facendo ruotare spesso questo ruolo all&#8217;interno del team. Aiuterà tutti a responsabilizzarsi e a far proprie queste &#8220;regole&#8221;</li>
</ul>
</li>
<li>Il giro delle persone che prendono la parola è sempre quello, inizia sempre il più &#8220;brillante&#8221; e termina sempre il più &#8220;timido&#8221;. Trovate un modo creativo e divertente per scegliere l&#8217;ordine degli interventi
<ul>
<li>Ognuno pesca una carta da un mazzo di carte, il prossimo è chi ha pescato la carta più alta e non ha ancora parlato</li>
<li>Stessa cosa ma con un dato multifaccia</li>
<li>Chi ha la parola decide chi sarà il prossimo lanciandogli il token (un pupazzo, un cappello, &#8230;)</li>
</ul>
</li>
<li>Il team utilizza il tempo del meeting per risolvere i problemi anzichè individuarli. E&#8217; leggitimo chiarire un concetto se non lo è, ma la risoluzione dei problemi non deve essere affrontata durante il meeting, in quanto si rischia di togliere tempo alle altre persone (<strong>rispetto</strong>) e quindi si rischia di perdere la possibilità di individuare problemi magari più gravi o urgenti. A tutti gli effetti questa è <a href="http://www.xplabs.it/fc2.html">un&#8217;interruzione</a> di un&#8217;attività e come tale deve essere gestita
<ul>
<li>Uno dei partecipanti se ne accorge e richiama l&#8217;attenzione degli altri attraverso una frase di rito &#8220;Take Offline!&#8221;</li>
<li>A questo punto i partecipanti alla discussione (e gli eventuali interessati) allocano del tempo durante la giornata per proseguire</li>
<li>Quest&#8217;ultimo passo risulta fondamentale per instaurare quel clima di &#8220;supporto&#8221; di cui abbiamo parlato prima</li>
</ul>
</li>
<li>Il meeting si tiene alla macchinetta del caffè durante il tempo che il team solitamente dedicava alla colazione. Questa situazione è problematica in quanto priva di autorevolezza la pratica, non degna di ottenere del tempo dedicato, e indispone le persone perchè private di un momento dedicato a loro stessi e non al team. La soluzione è semplice, ricavate per questa pratica 15 minuti all&#8217;inizio della giornata lavorativa :-)
</li>
<li>Il meeting finisce senza che tutti abbiano una sensazione di &#8220;ordine&#8221;</li>
</ul>
<p>Quest&#8217;ultimo antipattern vorrei approfondirlo in maniera particolare perchè l&#8217;ho incontrato frequentemente proprio nei team di ridotte dimensioni, sopratutto in quei team in cui vengono già utilizzate pratiche per promuovere quella che <a href="http://alistair.cockburn.us/index.php/Main_Page">Cockburn</a> chiama <a href="http://alistair.cockburn.us/index.php/ASD_book_extract:_%22Communicating%2C_cooperating_teams%22">Osmotic Communication</a>. Questo succede perchè gli obiettivi dello Stand-Up Meeting sostanzialmente vengono già raggiunti da un ambiente progettato per massimizzare la comunicazione fra i componenti del team. <em>Ma allora il &#8220;disordine&#8221; da dove arriva?</em> Il tipo di comunicazione &#8220;ambientale&#8221; è molto efficace, ma non si può certo definire organizzata, lo Stand-Up Meeting è un buon momento per &#8220;riordinare&#8221; queste informazioni e in parte questo obiettivo viene raggiunto, ma si può fare di più.</p>
<p>Quello che propongo è la creazione di un deliverable, un artefatto che catturi in maniera organizzata quello che sarà il piano di lavoro della giornata<br />
<a class="on_the_left" href='http://www.gabrielelana.it/wp-content/uploads/2007/04/daily_planning.jpg' title='daily planning'><br />
  <img src='http://www.gabrielelana.it/wp-content/uploads/2007/04/daily_planning.thumbnail.jpg' alt='daily planning' /><br />
</a><br />
Su una lavagnetta magnetica viene creata una griglia: una riga per ogni task che verrà lavorato, una colonna per ogni <a href="http://www.tecnicadelpomodoro.it/">pomodoro</a> (unità di misura corrispondente a 25 minuti di lavoro non interrompibile) disponibile nella giornata, ogni componente del team viene rappresentato da una calamita di colore diverso. Durante lo Stand-Up Meeting l&#8217;owner di un task ne stima la durata ed alloca il tempo necessario al completamento del task, scegliendo il suo pair in base alle persone disponibili. Terminato lo Stand-Up Metting il team dispone di un piano d&#8217;azione per tutta la giornata, in questo modo tutti i componenti del team hanno sia una visione globale del progetto che un piano concreto di lavoro</p>
<p>Inoltre</p>
<ul>
<li>Il piano giornaliero può essere facilmente aggiornato nel caso di (sovra|sotto)stime</li>
<li>Il piano giornaliero è visibile a tutti, interni ed esterni al team, contribuendo alla comunicazione ambientale di cui parlavamo prima</li>
<li>E&#8217; una buona base di dati per lo Stand-Up Meeting del giorno successivo</li>
</ul>
<p>P.S. L&#8217;idea di utilizzare le calamite di colore diverso per identificare diversi componenti del team è veramente carina e divertente, ma come al solito i team d&#8217;oltre oceano sono più <a href="http://www.think-box.co.uk/blog/2006/11/team-on-planning-board.html">avanti</a> :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gabrielelana.it/archives/29/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
