<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://www.dtsato.com/blog/wp-atom.php">
	<title type="text">Danilo Sato</title>
	<subtitle type="text">We can change!</subtitle>

	<updated>2010-03-02T16:21:01Z</updated>
	<generator uri="http://wordpress.org/" version="2.9.2">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://www.dtsato.com/blog" />
	<id>http://www.dtsato.com/blog/feed/atom/</id>
	

			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/dtsato" /><feedburner:info uri="dtsato" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
		<author>
			<name>Danilo Sato</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[[Agile Brazil 2010] Session submission postponed and logo contest]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dtsato/~3/-bXYj-w8R7o/" />
		<id>http://www.dtsato.com/blog/?p=379</id>
		<updated>2010-03-02T16:21:01Z</updated>
		<published>2010-03-02T16:21:01Z</published>
		<category scheme="http://www.dtsato.com/blog" term="Uncategorized" /><category scheme="http://www.dtsato.com/blog" term="agile" /><category scheme="http://www.dtsato.com/blog" term="agilebrazil" /><category scheme="http://www.dtsato.com/blog" term="brazil" /><category scheme="http://www.dtsato.com/blog" term="conference" />		<summary type="html"><![CDATA[Clique aqui para ler em Português
As I&#8217;ve already mentioned here, the Agile Brazil 2010 conference is accepting session proposals to be part of our program. Already with more than 90 sessions proposed, the program committee decided to postpone the deadline for session submissions until next Sunday (7th March 2010) due to requests and to allow [...]]]></summary>
		<content type="html" xml:base="http://www.dtsato.com/blog/2010/03/02/agile-brazil-2010-session-submission-postponed-and-logo-contest/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2010%2F03%2F02%2Fagile-brazil-2010-session-submission-postponed-and-logo-contest%2F" onclick="urchinTracker('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.dtsato.com_2Fblog_2F2010_2F03_2F02_2Fagile-brazil-2010-session-submission-postponed-and-logo-contest_2F&amp;referer=');"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2010%2F03%2F02%2Fagile-brazil-2010-session-submission-postponed-and-logo-contest%2F" height="61" width="51" /></a></div><p><a href="#agile-brazil-2010-session-submission-postponed-and-logo-contest-pt_br">Clique aqui para ler em Português</a></p>
<p>As I&#8217;ve already <a href="http://www.dtsato.com/blog/2010/02/03/agile-brazil-2010-opens-for-session-submissions/">mentioned here</a>, the Agile Brazil 2010 conference is accepting session proposals to be part of our program. Already with more than 90 sessions proposed, the program committee decided to <strong>postpone the deadline for session submissions until next Sunday (7th March 2010)</strong> due to requests and to allow more time for the community to interact and help us build the program. Some new functionality was also released:</p>
<ul>
<li>Users are now able to <strong>add comments</strong> to the sessions. We want the community to provide feedback to help our authors to improve their sessions prior to the deadline;</li>
<li>You can now <strong>vote and help us choose the conference logo</strong>. We received many proposals, and narrowed it down to 3, and we&#8217;re now asking the community to vote on the winner.</li>
</ul>
<p>In order to participate voting or adding comments, you don&#8217;t have to fill out the full author profile, so visit our <a href="http://submissoes.agilebrazil.com/?locale=en" onclick="urchinTracker('/outgoing/submissoes.agilebrazil.com/?locale=en&amp;referer=');">website</a> (if you haven&#8217;t created your account yet) and participate!</p>
<hr />
<h2><a name="agile-brazil-2010-session-submission-postponed-and-logo-contest-pt_br">[Agile Brazil 2010] Prazo de envio de sessões prorrogado e concurso do logo</a></h2>
<p>Como já <a href="http://www.dtsato.com/blog/2010/02/03/agile-brazil-2010-opens-for-session-submissions/">publiquei aqui</a>, a Agile Brazil 2010 está aceitando propostas de sessões para fazer parte do nosso programa. Com mais de 90 sessões propostas, o comitê de programa decidiu <strong>prorrogar o prazo de submissões até o próximo domingo (7 de Março de 2010)</strong> devido a pedidos e para dar mais tempo para a comunidade interagir e nos ajudar a montar o programa da conferência. Algumas novas funcionalidades foram lançadas:</p>
<ul>
<li>Usuários agora podem <strong>adicionar comentários</strong> nas propostas existentes. Queremos que a comunidade nos ajude fornecendo feedback aos autores e ajudando-os a melhorar suas propostas antes do prazo final;</li>
<li>Você pode agora <strong>votar e nos ajudar a escolher o logotipo da conferência</strong>. Nós recebemos diversas propostas de logotipo e escolhemos 3 para a votação final, onde a comunidade vai decidir o vencedor.</li>
</ul>
<p>Para participar da votação ou adicionar comentários, você não precisa preencher o perfil completo de autor, então visite <a href="http://submissoes.agilebrazil.com/?locale=pt" onclick="urchinTracker('/outgoing/submissoes.agilebrazil.com/?locale=pt&amp;referer=');">nosso website</a> (se ainda não criou uma conta) e participe!</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=RT+@dtsato+%5BAgile+Brazil+2010%5D+Session+submission+postponed+and+logo+contest+http://bit.ly/bFrAFV" title="Post to Twitter" onclick="urchinTracker('/outgoing/twitter.com/home/?status=RT+_dtsato+_5BAgile+Brazil+2010_5D+Session+submission+postponed+and+logo+contest+http_//bit.ly/bFrAFV&amp;referer=');"><img class="nothumb" src="http://www.dtsato.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>

<p>Related posts:<ol><li><a href='http://www.dtsato.com/blog/2010/02/03/agile-brazil-2010-opens-for-session-submissions/' rel='bookmark' title='Permanent Link: Agile Brazil 2010 opens for session submissions!'>Agile Brazil 2010 opens for session submissions!</a></li>
<li><a href='http://www.dtsato.com/blog/2010/02/11/agile-brazil-2010-martin-fowler-first-time-in-brazil/' rel='bookmark' title='Permanent Link: [Agile Brazil 2010] Martin Fowler for the first time in Brazil!'>[Agile Brazil 2010] Martin Fowler for the first time in Brazil!</a></li>
<li><a href='http://www.dtsato.com/blog/2009/02/09/coding-dojo-london-next-session-is-february-12th/' rel='bookmark' title='Permanent Link: Coding Dojo London: Next session is February 12th'>Coding Dojo London: Next session is February 12th</a></li>
</ol></p>]]></content>
		<link rel="replies" type="text/html" href="http://www.dtsato.com/blog/2010/03/02/agile-brazil-2010-session-submission-postponed-and-logo-contest/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.dtsato.com/blog/2010/03/02/agile-brazil-2010-session-submission-postponed-and-logo-contest/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.dtsato.com/blog/2010/03/02/agile-brazil-2010-session-submission-postponed-and-logo-contest/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Danilo Sato</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[[Agile Brazil 2010] Martin Fowler for the first time in Brazil!]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dtsato/~3/f8Nny7gqzIw/" />
		<id>http://www.dtsato.com/blog/?p=365</id>
		<updated>2010-02-10T23:13:24Z</updated>
		<published>2010-02-10T23:13:24Z</published>
		<category scheme="http://www.dtsato.com/blog" term="Uncategorized" /><category scheme="http://www.dtsato.com/blog" term="agile" /><category scheme="http://www.dtsato.com/blog" term="agilebrazil" /><category scheme="http://www.dtsato.com/blog" term="brazil" /><category scheme="http://www.dtsato.com/blog" term="conference" /><category scheme="http://www.dtsato.com/blog" term="fowler" /><category scheme="http://www.dtsato.com/blog" term="interview" /><category scheme="http://www.dtsato.com/blog" term="martin" /><category scheme="http://www.dtsato.com/blog" term="thoughtworks" />		<summary type="html"><![CDATA[Clique aqui para ler em Português
I&#8217;m one of the organizers of the program committee for Agile Brazil 2010, and we&#8217;re very happy to announce that ThoughtWorks has agreed to sponsor the visit of Martin Fowler, our Chief Scientist, as one of our keynote speakers. Since this is Martin&#8217;s first visit to Brazil, I decided to [...]]]></summary>
		<content type="html" xml:base="http://www.dtsato.com/blog/2010/02/11/agile-brazil-2010-martin-fowler-first-time-in-brazil/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2010%2F02%2F11%2Fagile-brazil-2010-martin-fowler-first-time-in-brazil%2F" onclick="urchinTracker('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.dtsato.com_2Fblog_2F2010_2F02_2F11_2Fagile-brazil-2010-martin-fowler-first-time-in-brazil_2F&amp;referer=');"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2010%2F02%2F11%2Fagile-brazil-2010-martin-fowler-first-time-in-brazil%2F" height="61" width="51" /></a></div><p><a href="#agile-brazil-2010-martin-fowler-first-time-in-brazil-pt_br">Clique aqui para ler em Português</a></p>
<p>I&#8217;m one of the organizers of the program committee for <a href="http://www.agilebrazil.com" onclick="urchinTracker('/outgoing/www.agilebrazil.com?referer=');">Agile Brazil 2010</a>, and we&#8217;re very happy to announce that <a href="http://www.thoughtworks.com" onclick="urchinTracker('/outgoing/www.thoughtworks.com?referer=');">ThoughtWorks</a> has agreed to sponsor the visit of <a href="http://www.martinfowler.com" onclick="urchinTracker('/outgoing/www.martinfowler.com?referer=');">Martin Fowler</a>, our Chief Scientist, as one of our keynote speakers. Since this is Martin&#8217;s first visit to Brazil, I decided to ask him some questions that I thought would be of interest to the participants, and he has kindly agreed to participate in this mini-interview:</p>
<p><strong>Q: What have been keeping you busy lately?</strong></p>
<p><em>Martin Fowler: Overwhelmingly it&#8217;s my upcoming <a href="http://martinfowler.com/bliki/DslBookRoadmap.html" onclick="urchinTracker('/outgoing/martinfowler.com/bliki/DslBookRoadmap.html?referer=');">book on DSLs</a>. I found writing books to be hard work, and it&#8217;s actually getting harder. By June I expect all of the content will be cast so my mind will be able to get away from it &#8211; which I&#8217;m very much looking forward to.</em></p>
<p><strong>Q: What are your expectations about Agile Brazil 2010?</strong></p>
<p><em>MF: I try not to have expectations about things, that way my mind can be open to the reality when I see it. I&#8217;ve been doing conferences frequently for two decades now, so it&#8217;s hard to get excited about them. I am excited about coming to Brazil. It will be my first time in South America and both I and my wife have long wanted to come down.</em></p>
<p><strong>Q: What are you going to talk about in your keynote?<br />
</strong><br />
<em>MF: I have no idea. I often don&#8217;t decide on my keynote until very close to speaking &#8211; often doing extemporaneous talks &lt;<a href="http://martinfowler.com/bliki/ExtemporarySpeaking.html" target="_blank" onclick="urchinTracker('/outgoing/martinfowler.com/bliki/ExtemporarySpeaking.html?referer=');">http://martinfowler.com/bliki/ExtemporarySpeaking.html</a>&gt;. Recently I&#8217;ve been doing keynote talks consisting of three or so talklets, some with slides, some without. But exactly how I&#8217;ll do it is something I may only decide the night before.</em></p>
<p><strong>Q: How do you see the Brazilian software community influencing the future of Agile?<br />
</strong><br />
<em>MF: It&#8217;s hard to say, as I&#8217;m not that familiar with the Brazilian software world. I&#8217;ve been very impressed by the Brazilian ThoughtWorkers I&#8217;ve met over the years, so I know there&#8217;s great potential here. I&#8217;m generally keen to see more varied cultures contribute to the software world, I think it&#8217;s an important part of us growing as a profession.</em></p>
<p><a href="http://www.agilebrazil.com" onclick="urchinTracker('/outgoing/www.agilebrazil.com?referer=');">Agile Brazil 2010</a> is going to be an incredible conference, and we&#8217;re inviting speakers to <a href="http://submissoes.agilebrazil.com/?locale=en" onclick="urchinTracker('/outgoing/submissoes.agilebrazil.com/?locale=en&amp;referer=');">submit session proposals</a> (the deadline is approaching: <strong>28/Feb!</strong>). Don&#8217;t miss the chance to see and talk to Martin Fowler, as he&#8217;s one of the few speakers I know of that can put together a first-class keynote on the night before :-)</p>
<p>Don&#8217;t forget to follow <a href="http://twitter.com/agilebrazil" onclick="urchinTracker('/outgoing/twitter.com/agilebrazil?referer=');">@agilebrazil</a> on Twitter for conference news, and hope to see you there!</p>
<hr />
<h2><a name="agile-brazil-2010-martin-fowler-first-time-in-brazil-pt_br">[Agile Brazil 2010] Martin Fowler pela primeira vez no Brasil!</a></h2>
<p>Como um dos organizadores do comitê de programa da <a href="http://www.agilebrazil.com" onclick="urchinTracker('/outgoing/www.agilebrazil.com?referer=');">Agile Brazil 2010</a>, estamos felizes em anunciar que a <a href="http://www.thoughtworks.com" onclick="urchinTracker('/outgoing/www.thoughtworks.com?referer=');">ThoughtWorks</a> aceitou patrocinar a visita de <a href="http://www.martinfowler.com" onclick="urchinTracker('/outgoing/www.martinfowler.com?referer=');">Martin Fowler</a>, nosso Cientista-Chefe, como um dos keynotes do evento. Como esta será a primeira vez que Martin visita o Brasil, decidi fazer algumas perguntas que julguei interessantes para os participantes do evento, e ele concordou gentilmente em participar desta mini-entrevista:</p>
<p><strong>P: O que tem te mantido ocupado ultimamente?</strong></p>
<p><em>Martin Fowler: Surpreendentemente é o meu novo <a href="http://martinfowler.com/bliki/DslBookRoadmap.html" onclick="urchinTracker('/outgoing/martinfowler.com/bliki/DslBookRoadmap.html?referer=');">livro sobre DSLs</a>. Eu acho que escrever livros é um trabalho árduo e na verdade isso tem se tornado cada vez mais difícil. Até Junho eu espero que todo o conteúdo esteja definido assim isso vai poder sair um pouco da minha cabeça &#8211; algo que estou realmente ansioso para acontecer.</em></p>
<p><strong>P: Quais são suas expectativas para a Agile Brazil 2010?</strong></p>
<p><em>MF: Eu tento não criar expectativas sobre essas coisas, assim minha mente pode estar aberta para a realidade quando eu a ver. Eu tenho participado de conferências frequentemente há duas décadas, então acho difícil me empolgar com elas. Mas estou empolgado em visitar o Brasil. Esta será minha primeira vez na América do Sul e tanto eu quanto minha esposa estamos ansiosos há tempos por essa visita.</em></p>
<p><strong>P: O que você irá abordar no seu keynote?<br />
</strong><br />
<em>MF: Eu não tenho idéia. Eu geralmente não decido o assunto do meu keynote até uma data muito próxima do evento &#8211; geralmente fazendo palestras extemporâneas (improvisadas) &lt;<a href="http://martinfowler.com/bliki/ExtemporarySpeaking.html" target="_blank" onclick="urchinTracker('/outgoing/martinfowler.com/bliki/ExtemporarySpeaking.html?referer=');">http://martinfowler.com/bliki/ExtemporarySpeaking.html</a>&gt;. Recentemente eu tenho feito keynotes com em torno de três pequenas palestras, algumas com slides, outras não. Porém decidir exatamente como irei fazê-lo vai ser algo que eu possivelmente decida na noite anterior.</em></p>
<p><strong>P: Como você vê a comunidade brasileira de software influenciando o futuro dos Métodos Ágeis?<br />
</strong><br />
<em>MF: É difícil dizer, pois não estou tão familiarizado com o mundo de software brasileiro. Eu tenho me impressionado bastante com os ThoughtWorkers brasileiros que conheci ao longo dos anos, então eu sei que existe um grande potencial aqui. Em geral eu gosto de ver uma variedade maior de culturas contribuindo para o mundo do software, pois acredito que seja uma parte importante para crescermos como profissão.</em></p>
<p>A <a href="http://www.agilebrazil.com" onclick="urchinTracker('/outgoing/www.agilebrazil.com?referer=');">Agile Brazil 2010</a> vai ser uma conferência incrível, e estamos convidando palestrantes para <a href="http://submissoes.agilebrazil.com/?locale=pt" onclick="urchinTracker('/outgoing/submissoes.agilebrazil.com/?locale=pt&amp;referer=');">submeterem propostas de sessão</a> (a data limite está se aproximando: <strong>28/Fev!</strong>). Não perca a oportunidade de ver e conhecer o Martin Fowler pessoalmente, pois ele é um dos poucos palestrantes que conheço que consegue preparar um keynote da mais alta qualidade na noite anterior :-)</p>
<p>Não esqueça de seguir <a href="http://twitter.com/agilebrazil" onclick="urchinTracker('/outgoing/twitter.com/agilebrazil?referer=');">@agilebrazil</a> no Twitter para notícias da conferência, e espero ver vocês por lá!</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=RT+@dtsato+%5BAgile+Brazil+2010%5D+Martin+Fowler+for+the+first+time+in+Brazil%21+http://bit.ly/cFgHSP" title="Post to Twitter" onclick="urchinTracker('/outgoing/twitter.com/home/?status=RT+_dtsato+_5BAgile+Brazil+2010_5D+Martin+Fowler+for+the+first+time+in+Brazil_21+http_//bit.ly/cFgHSP&amp;referer=');"><img class="nothumb" src="http://www.dtsato.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>

<p>Related posts:<ol><li><a href='http://www.dtsato.com/blog/2010/02/03/agile-brazil-2010-opens-for-session-submissions/' rel='bookmark' title='Permanent Link: Agile Brazil 2010 opens for session submissions!'>Agile Brazil 2010 opens for session submissions!</a></li>
<li><a href='http://www.dtsato.com/blog/2010/03/02/agile-brazil-2010-session-submission-postponed-and-logo-contest/' rel='bookmark' title='Permanent Link: [Agile Brazil 2010] Session submission postponed and logo contest'>[Agile Brazil 2010] Session submission postponed and logo contest</a></li>
<li><a href='http://www.dtsato.com/blog/2006/07/23/agile-2006-dia-0-dia-1/' rel='bookmark' title='Permanent Link: Agile 2006 &#8211; Dia 0 / Dia 1'>Agile 2006 &#8211; Dia 0 / Dia 1</a></li>
</ol></p>]]></content>
		<link rel="replies" type="text/html" href="http://www.dtsato.com/blog/2010/02/11/agile-brazil-2010-martin-fowler-first-time-in-brazil/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.dtsato.com/blog/2010/02/11/agile-brazil-2010-martin-fowler-first-time-in-brazil/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.dtsato.com/blog/2010/02/11/agile-brazil-2010-martin-fowler-first-time-in-brazil/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Danilo Sato</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Agile Brazil 2010 opens for session submissions!]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dtsato/~3/B1xYWmuVb9o/" />
		<id>http://www.dtsato.com/blog/?p=361</id>
		<updated>2010-02-03T18:34:13Z</updated>
		<published>2010-02-03T18:34:13Z</published>
		<category scheme="http://www.dtsato.com/blog" term="Uncategorized" /><category scheme="http://www.dtsato.com/blog" term="agile" /><category scheme="http://www.dtsato.com/blog" term="agilebrazil" /><category scheme="http://www.dtsato.com/blog" term="brazil" /><category scheme="http://www.dtsato.com/blog" term="conference" /><category scheme="http://www.dtsato.com/blog" term="thoughtworks" />		<summary type="html"><![CDATA[I&#8217;m helping to organise the first nation-wide Agile conference in Brazil, that will take place in Porto Alegre next 22-25th June. Agile Brazil 2010 is a joint effort to bring together all the Agile communities around Brazil (industry and academy), and the conference goal is to promote communication and collaboration among its attendees aiming to [...]]]></summary>
		<content type="html" xml:base="http://www.dtsato.com/blog/2010/02/03/agile-brazil-2010-opens-for-session-submissions/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2010%2F02%2F03%2Fagile-brazil-2010-opens-for-session-submissions%2F" onclick="urchinTracker('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.dtsato.com_2Fblog_2F2010_2F02_2F03_2Fagile-brazil-2010-opens-for-session-submissions_2F&amp;referer=');"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2010%2F02%2F03%2Fagile-brazil-2010-opens-for-session-submissions%2F" height="61" width="51" /></a></div><p>I&#8217;m helping to organise the first nation-wide Agile conference in Brazil, that will take place in Porto Alegre next 22-25th June. <a href="http://www.agilebrazil.com" onclick="urchinTracker('/outgoing/www.agilebrazil.com?referer=');"><strong>Agile Brazil 2010</strong></a> is a joint effort to bring together all the Agile communities around Brazil (industry and academy), and the conference goal is to promote communication and collaboration among its attendees aiming to disseminate the Agile culture in the whole country. Some of the confirmed international guest speakers are ThoughtWorks&#8217; Chief Scientist <strong><a href="http://martinfowler.com/" onclick="urchinTracker('/outgoing/martinfowler.com/?referer=');">Martin Fowler</a></strong>, <strong><a href="http://philippe.kruchten.com/" onclick="urchinTracker('/outgoing/philippe.kruchten.com/?referer=');">Philippe Kruchten</a></strong>, and <strong>David Hussman</strong>.</p>
<p>After working the past month on building the submission system, I&#8217;m happy to announce that we&#8217;re inviting you to join as a speaker of this great event too! Tell Brazil about your experiences, present your research and share your products and learnings! You can find the deadlines and the <a href="http://submissoes.agilebrazil.com/guidelines?locale=en" onclick="urchinTracker('/outgoing/submissoes.agilebrazil.com/guidelines?locale=en&amp;referer=');">submission guidelines</a> at:</p>
<p><a href="http://submissoes.agilebrazil.com/?locale=en" onclick="urchinTracker('/outgoing/submissoes.agilebrazil.com/?locale=en&amp;referer=');">http://submissoes.agilebrazil.com</a></p>
<p>To find out more about the conference, please visit our <a href="http://www.agilebrazil.com" onclick="urchinTracker('/outgoing/www.agilebrazil.com?referer=');">website</a>, or follow <a href="http://twitter.com/agilebrazil" onclick="urchinTracker('/outgoing/twitter.com/agilebrazil?referer=');">@agilebrazil</a> on Twitter.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=RT+@dtsato+Agile+Brazil+2010+opens+for+session+submissions%21+http://bit.ly/atCXbM" title="Post to Twitter" onclick="urchinTracker('/outgoing/twitter.com/home/?status=RT+_dtsato+Agile+Brazil+2010+opens+for+session+submissions_21+http_//bit.ly/atCXbM&amp;referer=');"><img class="nothumb" src="http://www.dtsato.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>

<p>Related posts:<ol><li><a href='http://www.dtsato.com/blog/2010/03/02/agile-brazil-2010-session-submission-postponed-and-logo-contest/' rel='bookmark' title='Permanent Link: [Agile Brazil 2010] Session submission postponed and logo contest'>[Agile Brazil 2010] Session submission postponed and logo contest</a></li>
<li><a href='http://www.dtsato.com/blog/2010/02/11/agile-brazil-2010-martin-fowler-first-time-in-brazil/' rel='bookmark' title='Permanent Link: [Agile Brazil 2010] Martin Fowler for the first time in Brazil!'>[Agile Brazil 2010] Martin Fowler for the first time in Brazil!</a></li>
<li><a href='http://www.dtsato.com/blog/2009/02/09/coding-dojo-london-next-session-is-february-12th/' rel='bookmark' title='Permanent Link: Coding Dojo London: Next session is February 12th'>Coding Dojo London: Next session is February 12th</a></li>
</ol></p>]]></content>
		<link rel="replies" type="text/html" href="http://www.dtsato.com/blog/2010/02/03/agile-brazil-2010-opens-for-session-submissions/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.dtsato.com/blog/2010/02/03/agile-brazil-2010-opens-for-session-submissions/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.dtsato.com/blog/2010/02/03/agile-brazil-2010-opens-for-session-submissions/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Danilo Sato</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Project Inception Workshop at XP2010]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dtsato/~3/NH_tX4yljdo/" />
		<id>http://www.dtsato.com/blog/?p=359</id>
		<updated>2010-02-03T00:08:13Z</updated>
		<published>2010-02-03T00:08:13Z</published>
		<category scheme="http://www.dtsato.com/blog" term="Uncategorized" /><category scheme="http://www.dtsato.com/blog" term="business analysis" /><category scheme="http://www.dtsato.com/blog" term="conference" /><category scheme="http://www.dtsato.com/blog" term="inception" /><category scheme="http://www.dtsato.com/blog" term="workshop" /><category scheme="http://www.dtsato.com/blog" term="xp2010" />		<summary type="html"><![CDATA[Agile has shown that doing prolonged analysis upfront bears little to no value to the customer. However, doing none means the project lacks the direction that it needs. The question is, how much analysis is enough before the project starts? This will be the theme of my recently accepted &#8220;Inception Workshop: Kickstarting an Agile project&#8221; [...]]]></summary>
		<content type="html" xml:base="http://www.dtsato.com/blog/2010/02/03/project-inception-workshop-at-xp2010/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2010%2F02%2F03%2Fproject-inception-workshop-at-xp2010%2F" onclick="urchinTracker('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.dtsato.com_2Fblog_2F2010_2F02_2F03_2Fproject-inception-workshop-at-xp2010_2F&amp;referer=');"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2010%2F02%2F03%2Fproject-inception-workshop-at-xp2010%2F" height="61" width="51" /></a></div><p>Agile has shown that doing prolonged analysis upfront bears little to no value to the customer. However, doing none means the project lacks the direction that it needs. The question is, <strong><em>how much analysis is enough before the project starts?</em></strong> This will be the theme of my recently accepted <a href="http://xp2010.agilealliance.org/node/5380" onclick="urchinTracker('/outgoing/xp2010.agilealliance.org/node/5380?referer=');">&#8220;Inception Workshop: Kickstarting an Agile project&#8221;</a> that will be pair-presented with <a href="http://jcwong.wordpress.com/2010/02/02/xp2010-kickstarting-an-agile-project/" onclick="urchinTracker('/outgoing/jcwong.wordpress.com/2010/02/02/xp2010-kickstarting-an-agile-project/?referer=');">Jenny</a> at <a href="http://www.xp2010.org" onclick="urchinTracker('/outgoing/www.xp2010.org?referer=');">XP2010</a>, in Trondheim, Norway.</p>
<p>My journey to find the right balance between a <a href="http://www.dtsato.com/blog/2008/02/11/generalist-or-specialist-why-not-both/">generalist/specialist</a> in software has led me to projects where I had to play not only the developer role, but several to varying degrees (PM, BA, QA, Architect, Coach, team lead, &#8230;) This is my attempt to share my knowledge towards those different areas, by pairing with an experienced BA and talking about Agile project initiation.</p>
<p>In this workshop, we will share our experience of participating in several project inceptions. Participants will work in a condensed project inception, solving a business problem and using some tools to shape the project for delivery. Our goal is also to learn from other practitioners about the tools and techniques they&#8217;re using successfully in their projects.</p>
<p>More details about the session can be found at the XP2010 session description:</p>
<p><a href="http://xp2010.agilealliance.org/node/5380" onclick="urchinTracker('/outgoing/xp2010.agilealliance.org/node/5380?referer=');">http://xp2010.agilealliance.org/node/5380</a></p>
<p>We are very excited about this session, and we hope to see you in Norway to participate and share your experiences too!</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=RT+@dtsato+Project+Inception+Workshop+at+XP2010+http://bit.ly/aPHdvU" title="Post to Twitter" onclick="urchinTracker('/outgoing/twitter.com/home/?status=RT+_dtsato+Project+Inception+Workshop+at+XP2010+http_//bit.ly/aPHdvU&amp;referer=');"><img class="nothumb" src="http://www.dtsato.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>

<p>Related posts:<ol><li><a href='http://www.dtsato.com/blog/2008/11/05/agiles-2008-lean-lego-workshop-in-buenos-aires/' rel='bookmark' title='Permanent Link: [Agiles 2008] Lean Lego Workshop in Buenos Aires'>[Agiles 2008] Lean Lego Workshop in Buenos Aires</a></li>
</ol></p>]]></content>
		<link rel="replies" type="text/html" href="http://www.dtsato.com/blog/2010/02/03/project-inception-workshop-at-xp2010/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.dtsato.com/blog/2010/02/03/project-inception-workshop-at-xp2010/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.dtsato.com/blog/2010/02/03/project-inception-workshop-at-xp2010/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Danilo Sato</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[GQM: Metrics come last]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dtsato/~3/chcxHof1xFE/" />
		<id>http://www.dtsato.com/blog/?p=354</id>
		<updated>2010-01-06T12:49:05Z</updated>
		<published>2010-01-06T12:46:50Z</published>
		<category scheme="http://www.dtsato.com/blog" term="Uncategorized" /><category scheme="http://www.dtsato.com/blog" term="agile" /><category scheme="http://www.dtsato.com/blog" term="lean" /><category scheme="http://www.dtsato.com/blog" term="management" /><category scheme="http://www.dtsato.com/blog" term="metrics" />		<summary type="html"><![CDATA[Inspired by a post on the Lean Blog, Pat reminds us that you can&#8217;t measure everything effectively. Having written my Master&#8217;s thesis on metrics for Agile projects, I&#8217;ve learned and read about this in a lot of different places. One approach that is very known to Empirical Software Engineering researchers is the Goal-Question-Metric approach, first [...]]]></summary>
		<content type="html" xml:base="http://www.dtsato.com/blog/2010/01/06/gqm-metrics-come-last/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2010%2F01%2F06%2Fgqm-metrics-come-last%2F" onclick="urchinTracker('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.dtsato.com_2Fblog_2F2010_2F01_2F06_2Fgqm-metrics-come-last_2F&amp;referer=');"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2010%2F01%2F06%2Fgqm-metrics-come-last%2F" height="61" width="51" /></a></div><p>Inspired by a post on the <a href="http://www.leanblog.org/2010/01/10-lean-things-to-not-say-2010/" onclick="urchinTracker('/outgoing/www.leanblog.org/2010/01/10-lean-things-to-not-say-2010/?referer=');">Lean Blog</a>, Pat reminds us that <a href="http://www.thekua.com/atwork/2010/01/you-cant-measure-everything-effectively/" onclick="urchinTracker('/outgoing/www.thekua.com/atwork/2010/01/you-cant-measure-everything-effectively/?referer=');">you can&#8217;t measure everything effectively</a>. Having written my Master&#8217;s thesis on metrics for Agile projects, I&#8217;ve learned and read about this in a lot of different places. One approach that is very known to Empirical Software Engineering researchers is the <a href="http://en.wikipedia.org/wiki/GQM" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/GQM?referer=');">Goal-Question-Metric</a> approach, first <a href="ftp://ftp.cs.umd.edu/pub/sel/papers/gqm.pdf">published</a> by Vitor Basili et al. in the 90&#8217;s.</p>
<p>The GQM model suggests a hierarchical view of three levels to define which metrics to use:</p>
<ul>
<li><strong>Conecptual level (goal):</strong> the motivation for measurement. Measuring things without a purpose and a thorough understanding of the problem will lead to meaningless metrics. This level imposes the hardest questions: what&#8217;s the purpose? what&#8217;s the object of measurement (your product, process, people)? what&#8217;s the motivation? who is interested in this goal? what are the quality attributes?</li>
<li><strong>Operational level (question):</strong> at this level, a set of questions are defined to try and correlate the object to the quality attributes we are interested in. These questions should help in understanding and assessing the current situation, but also in identifying ways to determine whether the goal is achieved.</li>
<li><strong>Quantitative level (metric):</strong> only then a set of metrics is associated to the questions, to try and find a quantitative way to measure and answer it. These can be objective (like code coverage), or subjetive (individual&#8217;s ranking of current code quality). Finding these metrics is not easy either.</li>
</ul>
<p>It&#8217;s easy to try to cut corners and get into the things that are easy to measure first, specially when you can collect lots of quantitative data to work with these days. However, if you you don&#8217;t stop to think about the goals and motivations for measurement, it&#8217;s easy to forget the systemic complexity that surrounds us and look only for the easy-to-track numbers.</p>
<p>Lean management and problem solving is known for taking a very thorough and detailed approach in the understanding phase. To many people this is a paradigm-shift approach to management. Don&#8217;t let the numbers fool you, use them to your advantage.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=RT+@dtsato+GQM%3A+Metrics+come+last+http://bit.ly/5r3IDL" title="Post to Twitter" onclick="urchinTracker('/outgoing/twitter.com/home/?status=RT+_dtsato+GQM_3A+Metrics+come+last+http_//bit.ly/5r3IDL&amp;referer=');"><img class="nothumb" src="http://www.dtsato.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>

<p>Related posts:<ol><li><a href='http://www.dtsato.com/blog/2009/07/12/velocity-gone-wrong-3-used-as-a-performance-measure/' rel='bookmark' title='Permanent Link: Velocity gone wrong #3: Used as a performance measure'>Velocity gone wrong #3: Used as a performance measure</a></li>
<li><a href='http://www.dtsato.com/blog/2008/08/26/agile-2008-expanding-agile-the-five-dimensions-of-systems/' rel='bookmark' title='Permanent Link: [Agile 2008] Expanding Agile: the Five Dimensions of Systems'>[Agile 2008] Expanding Agile: the Five Dimensions of Systems</a></li>
<li><a href='http://www.dtsato.com/blog/2008/08/26/agile-2008-estimating-considered-wasteful-introducing-micro-releases/' rel='bookmark' title='Permanent Link: [Agile 2008] Estimating Considered Wasteful: Introducing Micro-Releases'>[Agile 2008] Estimating Considered Wasteful: Introducing Micro-Releases</a></li>
</ol></p>]]></content>
		<link rel="replies" type="text/html" href="http://www.dtsato.com/blog/2010/01/06/gqm-metrics-come-last/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://www.dtsato.com/blog/2010/01/06/gqm-metrics-come-last/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://www.dtsato.com/blog/2010/01/06/gqm-metrics-come-last/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Danilo Sato</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Merging named scopes without performing a query]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dtsato/~3/QZmiVnURz1M/" />
		<id>http://www.dtsato.com/blog/?p=344</id>
		<updated>2009-11-16T19:44:51Z</updated>
		<published>2009-11-16T19:44:51Z</published>
		<category scheme="http://www.dtsato.com/blog" term="Uncategorized" /><category scheme="http://www.dtsato.com/blog" term="activerecord" /><category scheme="http://www.dtsato.com/blog" term="named_scope" /><category scheme="http://www.dtsato.com/blog" term="rails" /><category scheme="http://www.dtsato.com/blog" term="ruby" />		<summary type="html"><![CDATA[It all started when I tweeted:
wish I could get hold of a chain of named_scopes without performing any query (which means it can&#8217;t be dynamically composed) #activerecord
My team has currently been performing some refactorings on our Rails app and one of our goals is to move complex find queries into more composable/meaningful/maintainable named scopes. Contrary [...]]]></summary>
		<content type="html" xml:base="http://www.dtsato.com/blog/2009/11/16/merging_named_scopes_without_performing_a_query/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2009%2F11%2F16%2Fmerging_named_scopes_without_performing_a_query%2F" onclick="urchinTracker('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.dtsato.com_2Fblog_2F2009_2F11_2F16_2Fmerging_named_scopes_without_performing_a_query_2F&amp;referer=');"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2009%2F11%2F16%2Fmerging_named_scopes_without_performing_a_query%2F" height="61" width="51" /></a></div><p>It all started when I <a href="http://twitter.com/dtsato/status/5770647837" onclick="urchinTracker('/outgoing/twitter.com/dtsato/status/5770647837?referer=');">tweeted</a>:</p>
<blockquote><p>wish I could get hold of a chain of named_scopes without performing any query (which means it can&#8217;t be dynamically composed) <a title="#activerecord" href="http://twitter.com/search?q=%23activerecord" onclick="urchinTracker('/outgoing/twitter.com/search?q=_23activerecord&amp;referer=');">#activerecord</a></p></blockquote>
<p>My team has currently been performing some refactorings on our Rails app and one of our goals is to move complex find queries into more composable/meaningful/maintainable named scopes. Contrary to my expectations, when you call a named scope, Active Record performs a <code>find(:all)</code> query implicitly as you finish your statement:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#9966CC; font-weight:bold;">class</span> Shirt <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Base</span>
  named_scope <span style="color:#ff3333; font-weight:bold;">:red</span>, <span style="color:#ff3333; font-weight:bold;">:conditions</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>:color <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'red'</span><span style="color:#006600; font-weight:bold;">&#125;</span>
  named_scope <span style="color:#ff3333; font-weight:bold;">:clean</span>, <span style="color:#ff3333; font-weight:bold;">:conditions</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>:clean <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span><span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#006600; font-weight:bold;">&gt;&gt;</span> red_proxy = Shirt.<span style="color:#9900CC;">red</span>
  Shirt <span style="color:#CC0066; font-weight:bold;">Load</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">0</span>.3ms<span style="color:#006600; font-weight:bold;">&#41;</span>   <span style="color:#CC0066; font-weight:bold;">SELECT</span> <span style="color:#006600; font-weight:bold;">*</span> FROM <span style="color:#996600;">&quot;shirts&quot;</span> WHERE <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;shirts&quot;</span>.<span style="color:#996600;">&quot;color&quot;</span> = <span style="color:#996600;">'red'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#006600; font-weight:bold;">+----+-------+-------------------------+-------------------------+-------+</span>
<span style="color:#006600; font-weight:bold;">|</span> id <span style="color:#006600; font-weight:bold;">|</span> color <span style="color:#006600; font-weight:bold;">|</span> created_at              <span style="color:#006600; font-weight:bold;">|</span> updated_at              <span style="color:#006600; font-weight:bold;">|</span> clean <span style="color:#006600; font-weight:bold;">|</span>
<span style="color:#006600; font-weight:bold;">+----+-------+-------------------------+-------------------------+-------+</span>
<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006666;">5</span>  <span style="color:#006600; font-weight:bold;">|</span> red   <span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006666;">2009</span><span style="color:#006666;">-11</span><span style="color:#006666;">-16</span> <span style="color:#006666;">18</span>:<span style="color:#006666;">36</span>:<span style="color:#006666;">37</span> UTC <span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006666;">2009</span><span style="color:#006666;">-11</span><span style="color:#006666;">-16</span> <span style="color:#006666;">18</span>:<span style="color:#006666;">36</span>:<span style="color:#006666;">37</span> UTC <span style="color:#006600; font-weight:bold;">|</span> <span style="color:#0000FF; font-weight:bold;">false</span> <span style="color:#006600; font-weight:bold;">|</span>
<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006666;">6</span>  <span style="color:#006600; font-weight:bold;">|</span> red   <span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006666;">2009</span><span style="color:#006666;">-11</span><span style="color:#006666;">-16</span> <span style="color:#006666;">18</span>:<span style="color:#006666;">36</span>:<span style="color:#006666;">37</span> UTC <span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006666;">2009</span><span style="color:#006666;">-11</span><span style="color:#006666;">-16</span> <span style="color:#006666;">19</span>:<span style="color:#006666;">15</span>:<span style="color:#006666;">18</span> UTC <span style="color:#006600; font-weight:bold;">|</span> <span style="color:#0000FF; font-weight:bold;">true</span>  <span style="color:#006600; font-weight:bold;">|</span>
<span style="color:#006600; font-weight:bold;">+----+-------+-------------------------+-------------------------+-------+</span>
<span style="color:#006666;">2</span> rows <span style="color:#9966CC; font-weight:bold;">in</span> set
<span style="color:#006600; font-weight:bold;">&gt;&gt;</span> red_proxy.<span style="color:#9900CC;">clean</span>
  Shirt <span style="color:#CC0066; font-weight:bold;">Load</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">0</span>.4ms<span style="color:#006600; font-weight:bold;">&#41;</span>   <span style="color:#CC0066; font-weight:bold;">SELECT</span> <span style="color:#006600; font-weight:bold;">*</span> FROM <span style="color:#996600;">&quot;shirts&quot;</span> WHERE <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;shirts&quot;</span>.<span style="color:#996600;">&quot;clean&quot;</span> = <span style="color:#996600;">'t'</span> <span style="color:#9966CC; font-weight:bold;">AND</span> <span style="color:#996600;">&quot;shirts&quot;</span>.<span style="color:#996600;">&quot;color&quot;</span> = <span style="color:#996600;">'red'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#006600; font-weight:bold;">+----+-------+-------------------------+-------------------------+-------+</span>
<span style="color:#006600; font-weight:bold;">|</span> id <span style="color:#006600; font-weight:bold;">|</span> color <span style="color:#006600; font-weight:bold;">|</span> created_at              <span style="color:#006600; font-weight:bold;">|</span> updated_at              <span style="color:#006600; font-weight:bold;">|</span> clean <span style="color:#006600; font-weight:bold;">|</span>
<span style="color:#006600; font-weight:bold;">+----+-------+-------------------------+-------------------------+-------+</span>
<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006666;">6</span>  <span style="color:#006600; font-weight:bold;">|</span> red   <span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006666;">2009</span><span style="color:#006666;">-11</span><span style="color:#006666;">-16</span> <span style="color:#006666;">18</span>:<span style="color:#006666;">36</span>:<span style="color:#006666;">37</span> UTC <span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006666;">2009</span><span style="color:#006666;">-11</span><span style="color:#006666;">-16</span> <span style="color:#006666;">19</span>:<span style="color:#006666;">15</span>:<span style="color:#006666;">18</span> UTC <span style="color:#006600; font-weight:bold;">|</span> <span style="color:#0000FF; font-weight:bold;">true</span>  <span style="color:#006600; font-weight:bold;">|</span>
<span style="color:#006600; font-weight:bold;">+----+-------+-------------------------+-------------------------+-------+</span>
<span style="color:#006666;">1</span> row <span style="color:#9966CC; font-weight:bold;">in</span> set
<span style="color:#006600; font-weight:bold;">&gt;&gt;</span></pre></div></div>

<p>So, even though I can compose named scopes, I can&#8217;t defer the query to the point I define which operation to execute. I&#8217;m obviously not the first one who had this problem, but it seems like this <a href="https://rails.lighthouseapp.com/projects/8994/tickets/1331-allow-arbitrary-named_scope-instances-to-be-merged" onclick="urchinTracker('/outgoing/rails.lighthouseapp.com/projects/8994/tickets/1331-allow-arbitrary-named_scope-instances-to-be-merged?referer=');">won&#8217;t be fixed until a new solution is proposed in Rails 3</a>.</p>
<p>In our particular case, we didn&#8217;t even need the proxy object, but just a hash representation of the composed query parameters. We&#8217;re using ActiveRecord::Extensions (ar-extensions) to perform some UNION queries to aggregate results, and it expects a list of hashes that represent each query. It would be nice if I could grab the hash from my named scopes without performing the query&#8230;</p>
<p>The documentation points to a <code>proxy_options</code> method that you can use to test your named scope, but it didn&#8217;t solve my problem, since it only returns the hash for the last scope in your chain:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#006600; font-weight:bold;">&gt;&gt;</span> Shirt.<span style="color:#9900CC;">red</span>.<span style="color:#9900CC;">proxy_options</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>:conditions<span style="color:#006600; font-weight:bold;">=&gt;</span><span style="color:#006600; font-weight:bold;">&#123;</span>:color<span style="color:#006600; font-weight:bold;">=&gt;</span><span style="color:#996600;">&quot;red&quot;</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#006600; font-weight:bold;">&gt;&gt;</span> Shirt.<span style="color:#9900CC;">red</span>.<span style="color:#9900CC;">clean</span>.<span style="color:#9900CC;">proxy_options</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>:conditions<span style="color:#006600; font-weight:bold;">=&gt;</span><span style="color:#006600; font-weight:bold;">&#123;</span>:clean<span style="color:#006600; font-weight:bold;">=&gt;</span>true<span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#125;</span></pre></div></div>

<p>The solution, after digging a while through the source code, was to use an internal method that&#8217;s used during the merge algorithm, called <code>current_scoped_methods</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#006600; font-weight:bold;">&gt;&gt;</span> Shirt.<span style="color:#9900CC;">red</span>.<span style="color:#9900CC;">clean</span>.<span style="color:#9900CC;">current_scoped_methods</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:find</span><span style="color:#006600; font-weight:bold;">&#93;</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>:conditions<span style="color:#006600; font-weight:bold;">=&gt;</span><span style="color:#996600;">&quot;(&quot;</span>shirts<span style="color:#996600;">&quot;.&quot;</span>clean<span style="color:#996600;">&quot; = 't' AND &quot;</span>shirts<span style="color:#996600;">&quot;.&quot;</span>color<span style="color:#996600;">&quot; = 'red')&quot;</span><span style="color:#006600; font-weight:bold;">&#125;</span></pre></div></div>

<p>This is not a perfect solution, but saved me the trouble of performing the merge myself. I hope the Rails 3 solution addresses these issues and that this post saves me some time digging through ActiveRecord source code if I need this before then :)</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=RT+@dtsato+Merging+named+scopes+without+performing+a+query+http://bit.ly/1nZHXF" title="Post to Twitter" onclick="urchinTracker('/outgoing/twitter.com/home/?status=RT+_dtsato+Merging+named+scopes+without+performing+a+query+http_//bit.ly/1nZHXF&amp;referer=');"><img class="nothumb" src="http://www.dtsato.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>

<p>No related posts.</p>]]></content>
		<link rel="replies" type="text/html" href="http://www.dtsato.com/blog/2009/11/16/merging_named_scopes_without_performing_a_query/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.dtsato.com/blog/2009/11/16/merging_named_scopes_without_performing_a_query/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.dtsato.com/blog/2009/11/16/merging_named_scopes_without_performing_a_query/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Danilo Sato</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[[Agile 2009] Coding Dojo: Kake format at Open Jam]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dtsato/~3/ht2497HuvYs/" />
		<id>http://www.dtsato.com/blog/?p=304</id>
		<updated>2009-08-27T15:51:47Z</updated>
		<published>2009-08-27T15:51:47Z</published>
		<category scheme="http://www.dtsato.com/blog" term="Uncategorized" /><category scheme="http://www.dtsato.com/blog" term="agile2009" /><category scheme="http://www.dtsato.com/blog" term="conference" /><category scheme="http://www.dtsato.com/blog" term="dojo" /><category scheme="http://www.dtsato.com/blog" term="kake" />		<summary type="html"><![CDATA[I&#8217;m here having a great time in Chicago, at Agile 2009. I will write more about the sessions in later posts, but I wanted to talk about the Coding Dojo we ran at the Open Jam. Organised by my friends from the Dojo@SP (thanks Hugo, Mari, and Thiago!), we tried a projector-less format that went [...]]]></summary>
		<content type="html" xml:base="http://www.dtsato.com/blog/2009/08/27/agile-2009-coding-dojo-kake-format-at-open-jam/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2009%2F08%2F27%2Fagile-2009-coding-dojo-kake-format-at-open-jam%2F" onclick="urchinTracker('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.dtsato.com_2Fblog_2F2009_2F08_2F27_2Fagile-2009-coding-dojo-kake-format-at-open-jam_2F&amp;referer=');"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2009%2F08%2F27%2Fagile-2009-coding-dojo-kake-format-at-open-jam%2F" height="61" width="51" /></a></div><p>I&#8217;m here having a great time in Chicago, at Agile 2009. I will write more about the sessions in later posts, but I wanted to talk about the Coding Dojo we ran at the Open Jam. Organised by my friends from the <a href="http://groups.google.com/group/dojo_sp" onclick="urchinTracker('/outgoing/groups.google.com/group/dojo_sp?referer=');">Dojo@SP</a> (thanks <a href="http://codeache.blogspot.com/" onclick="urchinTracker('/outgoing/codeache.blogspot.com/?referer=');">Hugo</a>, <a href="http://twitter.com/marivb" onclick="urchinTracker('/outgoing/twitter.com/marivb?referer=');">Mari</a>, and <a href="http://twitter.com/ticolucci" onclick="urchinTracker('/outgoing/twitter.com/ticolucci?referer=');">Thiago</a>!), we tried a projector-less format that went really well. I <a href="http://www.dtsato.com/blog/2008/10/29/uberdojo-sao-paulo-coding-dojo/">wrote</a> about the <strong>Kake Format</strong> a while ago, although the name changed.</p>
<p>It was a lot of fun, and we were lucky to bump into <a href="http://emmanuelgaillot.blogspot.com/" onclick="urchinTracker('/outgoing/emmanuelgaillot.blogspot.com/?referer=');">Emmanuel Gaillot</a> around in Chicago, who made it to the session as well. We solved the <a href="http://codingdojo.org/cgi-bin/wiki.pl?KataBowling" onclick="urchinTracker('/outgoing/codingdojo.org/cgi-bin/wiki.pl?KataBowling&amp;referer=');">Kata Bowling</a> in three different stations: one in <em>Ruby</em>, one in <em>Haskell</em>, and one in <em>Java</em>. The code is available on <a href="http://github.com/dojosp/participant-s-projects/tree/master/05-KakeAgile2009" onclick="urchinTracker('/outgoing/github.com/dojosp/participant-s-projects/tree/master/05-KakeAgile2009?referer=');">GitHub</a>, and these are some pictures I took during the session:</p>
<p style="text-align: center;"><a title="Coding Dojo @ Agile 2009 by dtsato, on Flickr" href="http://www.flickr.com/photos/dtsato/3861612433/" onclick="urchinTracker('/outgoing/www.flickr.com/photos/dtsato/3861612433/?referer=');"><img class="aligncenter" src="http://farm3.static.flickr.com/2523/3861612433_ecf4a33c0d.jpg" alt="Coding Dojo @ Agile 2009" width="500" height="375" /></a></p>
<p style="text-align: center;"><a title="Retrospective after the Dojo by dtsato, on Flickr" href="http://www.flickr.com/photos/dtsato/3861612499/" onclick="urchinTracker('/outgoing/www.flickr.com/photos/dtsato/3861612499/?referer=');"><img class="aligncenter" src="http://farm4.static.flickr.com/3519/3861612499_d6c3010236.jpg" alt="Retrospective after the Dojo" width="500" height="375" /></a></p>
<p>If you want to try out a dynamic format, where people have more chance to participate and train different skills, and you don&#8217;t have a projector available, I urge you to try out the <strong>Kake Format</strong> on your Dojo and share your experiences!</p>
<p style="text-align: center;"><a title="New format and rules by dtsato, on Flickr" href="http://www.flickr.com/photos/dtsato/3861612469/" onclick="urchinTracker('/outgoing/www.flickr.com/photos/dtsato/3861612469/?referer=');"><img class="aligncenter" src="http://farm4.static.flickr.com/3422/3861612469_5d03b292f7.jpg" alt="New format and rules" width="375" height="500" /></a></p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=RT+@dtsato+%5BAgile+2009%5D+Coding+Dojo%3A+Kake+format+at+Open+Jam+http://bit.ly/g0X6q" title="Post to Twitter" onclick="urchinTracker('/outgoing/twitter.com/home/?status=RT+_dtsato+_5BAgile+2009_5D+Coding+Dojo_3A+Kake+format+at+Open+Jam+http_//bit.ly/g0X6q&amp;referer=');"><img class="nothumb" src="http://www.dtsato.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>

<p>Related posts:<ol><li><a href='http://www.dtsato.com/blog/2009/02/09/coding-dojo-london-next-session-is-february-12th/' rel='bookmark' title='Permanent Link: Coding Dojo London: Next session is February 12th'>Coding Dojo London: Next session is February 12th</a></li>
<li><a href='http://www.dtsato.com/blog/2008/10/29/uberdojo-sao-paulo-coding-dojo/' rel='bookmark' title='Permanent Link: ÜberDojo @ São Paulo Coding Dojo'>ÜberDojo @ São Paulo Coding Dojo</a></li>
<li><a href='http://www.dtsato.com/blog/2008/02/24/coding-dojo-sao-paulo-agile-2008/' rel='bookmark' title='Permanent Link: Coding Dojo São Paulo @ Agile 2008'>Coding Dojo São Paulo @ Agile 2008</a></li>
</ol></p>]]></content>
		<link rel="replies" type="text/html" href="http://www.dtsato.com/blog/2009/08/27/agile-2009-coding-dojo-kake-format-at-open-jam/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://www.dtsato.com/blog/2009/08/27/agile-2009-coding-dojo-kake-format-at-open-jam/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://www.dtsato.com/blog/2009/08/27/agile-2009-coding-dojo-kake-format-at-open-jam/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Danilo Sato</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Velocity gone wrong #3: Used as a performance measure]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dtsato/~3/uL396hjGrX0/" />
		<id>http://www.dtsato.com/blog/?p=291</id>
		<updated>2009-07-14T20:58:31Z</updated>
		<published>2009-07-12T17:15:47Z</published>
		<category scheme="http://www.dtsato.com/blog" term="Uncategorized" /><category scheme="http://www.dtsato.com/blog" term="anti-pattern" /><category scheme="http://www.dtsato.com/blog" term="capability" /><category scheme="http://www.dtsato.com/blog" term="diagnostics" /><category scheme="http://www.dtsato.com/blog" term="lean" /><category scheme="http://www.dtsato.com/blog" term="measure" /><category scheme="http://www.dtsato.com/blog" term="metrics" /><category scheme="http://www.dtsato.com/blog" term="performance" /><category scheme="http://www.dtsato.com/blog" term="velocity" />		<summary type="html"><![CDATA[Continuing with the series, this time I want to highlight a very dangerous anti-pattern: using velocity as a performance metric. Before getting into the examples of how it applies to velocity, I want to first explain my view on metrics. I am in favour of metrics and coming up with interesting ways of displaying data [...]]]></summary>
		<content type="html" xml:base="http://www.dtsato.com/blog/2009/07/12/velocity-gone-wrong-3-used-as-a-performance-measure/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2009%2F07%2F12%2Fvelocity-gone-wrong-3-used-as-a-performance-measure%2F" onclick="urchinTracker('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.dtsato.com_2Fblog_2F2009_2F07_2F12_2Fvelocity-gone-wrong-3-used-as-a-performance-measure_2F&amp;referer=');"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2009%2F07%2F12%2Fvelocity-gone-wrong-3-used-as-a-performance-measure%2F" height="61" width="51" /></a></div><p>Continuing with the series, this time I want to highlight a very dangerous anti-pattern: using velocity as a performance metric. Before getting into the examples of how it applies to velocity, I want to first explain my view on metrics. I am in favour of metrics and coming up with interesting ways of displaying data (information visualization is a very interesting topic). However, the problem lies in the way that these metrics are used. There are two main types of metrics that I like to categorise as:</p>
<ul>
<li><strong>Diagnostics Metrics:</strong> these are informative measurements that the team uses to evaluate and improve it&#8217;s own process. The purpose of collecting them is to gain insight into where to improve, and to track whether the proposed improvements are taking effect. They are not associated to a particular individual or to how much value is being produced. They&#8217;re merely informative and should have a relatively short life-cycle. As soon as the process improves, another bottleneck will be identified and the team will propose new metrics to measure and improve that area.</li>
<li><strong>Performance Metrics:</strong> these are measurements of how much value your process is delivering. These are the ones you should use to track your organisation&#8217;s performance, but they should be chosen very carefully. A good approach is to &#8220;measure up&#8221;. Value should be measured at the highest level possible, so that it doesn&#8217;t fall into one team&#8217;s (or individual&#8217;s) span of control. People tend to behave according to how they&#8217;re measured and if this metric is easy to game, it will be gamed. There should also be just a few of these metrics. An example of one such metric would be a <a href="http://en.wikipedia.org/wiki/Net_Promoter" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Net_Promoter?referer=');">Net Promoter Score</a> (that measures how much your custumer is willing to recommend you to a friend) or some financial metric like <a href="http://en.wikipedia.org/wiki/Net_present_value" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Net_present_value?referer=');">Net Present Value</a> (read <a href="http://www.amazon.co.uk/gp/product/0131407287?ie=UTF8&amp;tag=danisatospers-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=0131407287" onclick="urchinTracker('/outgoing/www.amazon.co.uk/gp/product/0131407287?ie=UTF8_amp_tag=danisatospers-21_amp_linkCode=as2_amp_camp=1634_amp_creative=6738_amp_creativeASIN=0131407287&amp;referer=');">Software By Numbers</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=danisatospers-21&amp;l=as2&amp;o=2&amp;a=0131407287" border="0" alt="" width="1" height="1" /> if this interests you). As you can see, these are very much outside of a team&#8217;s control and to be able to score high on them, they should try and do a good job (instead of gaming the numbers).</li>
</ul>
<p>Going back to velocity, a very common mistake is to use it as a performance metric instead of diagnostics. Velocity doesn&#8217;t satisfy my criteria for a good performance measure. Quite the opposite, it&#8217;s a very easy metric to game (as mentioned in my <a href="http://www.dtsato.com/blog/2009/07/04/velocity-gone-wrong-2-making-up-points/">previous</a> <a href="http://www.dtsato.com/blog/2009/07/03/velocity-gone-wrong-done-is-not-done/">posts</a>). When approached as a performance metric, it&#8217;s common to see things like:</p>
<ul>
<li><strong>Comparing velocity between teams:</strong> <em>&#8220;Why is Team A slower than Team B?&#8221;</em> Maybe because they estimate in different scales? Maybe their iteration length is different? Maybe the team composition is different? So many factors can influence velocity that it&#8217;s only useful to compare it within the same team, and even then just to identify trends. The absolute value doesn&#8217;t mean much.</li>
<li><strong>Measuring individual velocity:</strong> as <a href="http://www.thekua.com/atwork/2009/07/be-careful-what-you-measure/" onclick="urchinTracker('/outgoing/www.thekua.com/atwork/2009/07/be-careful-what-you-measure/?referer=');">highlighted</a> by Pat, this is a VERY DANGEROUS use of velocity, and it can actually harm your process and discourage collaboration.</li>
<li><strong>A push to always increase velocity:</strong> it&#8217;s common to have a lower velocity in the beginning of a project, and that it tends to increase after a number of iterations. Inspite of that, I&#8217;ve seen teams pushing themselves to improve it when they reach a natural limit (Who doesn&#8217;t want to go faster, right?). Velocity measures the capability of your team to deliver and, as such, tends to stabilise itself (if you have a stable process and the number is not being gamed). A <a href="http://en.wikipedia.org/wiki/Control_chart" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Control_chart?referer=');">Control Chart</a> could help you visualise that. As noted by Deming, in a stable process, the way to improve is to change the process.</li>
</ul>
<p>It&#8217;s important to remember that velocity is a by-product of your current reality (your team, your processes, your tools). You can only improve your process once it&#8217;s stable and you know it&#8217;s current capacity. Velocity is just a health-check number that will tell your team&#8217;s capability. It will not tell you about how much value is being delivered or how fast you&#8217;re going. You can deliver a lot of points and make trade-offs on quality which, no matter how you measure it, will impact your ability to go fast in the long run. As uncle Bob <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=51769" onclick="urchinTracker('/outgoing/www.artima.com/weblogs/viewpost.jsp?thread=51769&amp;referer=');">says</a>:</p>
<blockquote><p>&#8220;The way to go fast, is to go <em>well&#8221;</em></p></blockquote>
<p>So let&#8217;s stop using velocity to measure performance and look at it as a diagnostic metric to improve our software delivery process.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=RT+@dtsato+Velocity+gone+wrong+%233%3A+Used+as+a+performance+measure+http://bit.ly/E7PzA" title="Post to Twitter" onclick="urchinTracker('/outgoing/twitter.com/home/?status=RT+_dtsato+Velocity+gone+wrong+_233_3A+Used+as+a+performance+measure+http_//bit.ly/E7PzA&amp;referer=');"><img class="nothumb" src="http://www.dtsato.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>

<p>Related posts:<ol><li><a href='http://www.dtsato.com/blog/2009/07/03/velocity-gone-wrong-done-is-not-done/' rel='bookmark' title='Permanent Link: Velocity gone wrong #1: Done is not done'>Velocity gone wrong #1: Done is not done</a></li>
<li><a href='http://www.dtsato.com/blog/2009/07/04/velocity-gone-wrong-2-making-up-points/' rel='bookmark' title='Permanent Link: Velocity gone wrong #2: Making up points'>Velocity gone wrong #2: Making up points</a></li>
<li><a href='http://www.dtsato.com/blog/2008/08/26/agile-2008-estimating-considered-wasteful-introducing-micro-releases/' rel='bookmark' title='Permanent Link: [Agile 2008] Estimating Considered Wasteful: Introducing Micro-Releases'>[Agile 2008] Estimating Considered Wasteful: Introducing Micro-Releases</a></li>
</ol></p>]]></content>
		<link rel="replies" type="text/html" href="http://www.dtsato.com/blog/2009/07/12/velocity-gone-wrong-3-used-as-a-performance-measure/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.dtsato.com/blog/2009/07/12/velocity-gone-wrong-3-used-as-a-performance-measure/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.dtsato.com/blog/2009/07/12/velocity-gone-wrong-3-used-as-a-performance-measure/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Danilo Sato</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Velocity gone wrong #2: Making up points]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dtsato/~3/w5X3QCARhSA/" />
		<id>http://www.dtsato.com/blog/?p=284</id>
		<updated>2009-07-04T20:18:14Z</updated>
		<published>2009-07-04T20:18:14Z</published>
		<category scheme="http://www.dtsato.com/blog" term="Uncategorized" /><category scheme="http://www.dtsato.com/blog" term="anti-pattern" /><category scheme="http://www.dtsato.com/blog" term="tracking" /><category scheme="http://www.dtsato.com/blog" term="velocity" />		<summary type="html"><![CDATA[Continuing with the series on how to misuse velocity, the second anti-pattern I would like to highlight is when teams start making up points. Because the definition of velocity is so simple, it&#8217;s easy to game the metric to show what looks like apparent progress. If a team is being measured on velocity (more about [...]]]></summary>
		<content type="html" xml:base="http://www.dtsato.com/blog/2009/07/04/velocity-gone-wrong-2-making-up-points/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2009%2F07%2F04%2Fvelocity-gone-wrong-2-making-up-points%2F" onclick="urchinTracker('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.dtsato.com_2Fblog_2F2009_2F07_2F04_2Fvelocity-gone-wrong-2-making-up-points_2F&amp;referer=');"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2009%2F07%2F04%2Fvelocity-gone-wrong-2-making-up-points%2F" height="61" width="51" /></a></div><p>Continuing with the series on how to misuse velocity, the second anti-pattern I would like to highlight is when teams start making up points. Because the definition of velocity is so simple, it&#8217;s easy to game the metric to show what looks like apparent progress. If a team is being measured on velocity (more about this on later posts), it&#8217;s quite easy to just start increasing estimates: <em>&#8220;If we just double all estimates, the relative sizes stay the same, but our velocity doubles!</em>&#8220;. This is an extreme behaviour that would be quickly noticed as a discrepancy, but the same thing could happen in a smaller scale and pass unnoticed.</p>
<p>This problem can not only be originated from the team, but I&#8217;ve also seen Project Managers/Scrum Masters coming up with &#8220;clever&#8221; ways of making up points to count as velocity:</p>
<ul>
<li>Counting percentage or half points (as mentioned in my <a href="http://www.dtsato.com/blog/2009/07/03/velocity-gone-wrong-done-is-not-done/">previous post</a>)</li>
<li>Deciding to split a story to count the partially finished work as complete, and track whatever is left in a separate story (<strong>splitting should be business-driven and not tracking-driven</strong>: it should only happen when you come up with simpler/incremental ways of delivering value in smaller chunks)</li>
<li>Counting points on technical tasks. I&#8217;ve seen a team that spent a lot of effort in an iteration to make up for accumulated technical debt, and did not have a lot of time to work on new stories. The Project Manager decided to come up with a &#8220;refactoring card&#8221; and gave it a 16 to try and demonstrate how much effort was spent on such refactoring</li>
<li>Counting points for in-release bug fixing. In a team, stories were deemed completed on the first iteration, but bugs started to show up in later iterations, impacting he team&#8217;s ability to deliver new functionality. Instead of allowing the decrease in velocity to demonstrate how the lack of focus on quality was impacting the team (bugs should be prevented in the first place, right?), the Project Manager decided to estimate and count points on bugs, which kept velocity apparently constant, when in fact a lot less value was being delivered</li>
</ul>
<p>The next time you catch yourself asking <em>&#8220;Should X count as velocity?&#8221;</em>, stop, reflect, and ask instead <em>&#8220;Should I worry about X happening at all?&#8221;</em>. If you are worried about having to track or show progress on things that should be embedded parts of the process (such as activities to prevent bugs or refactoring), chances are that the problem lies somewhere else. Some of these questions might make as much sense as <em>&#8220;Should time spent on retrospectives count as velocity?&#8221; </em>or <em>&#8220;Should going to the bathroom count as velocity?&#8221;</em> :-)</p>
<p>I&#8217;m sure that these examples drawn from my personal experience are just a few examples of how to make up points and misuse velocity. <strong>What other similar experiences did you have in your own projects?</strong></p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=RT+@dtsato+Velocity+gone+wrong+%232%3A+Making+up+points+http://bit.ly/1Ou5b" title="Post to Twitter" onclick="urchinTracker('/outgoing/twitter.com/home/?status=RT+_dtsato+Velocity+gone+wrong+_232_3A+Making+up+points+http_//bit.ly/1Ou5b&amp;referer=');"><img class="nothumb" src="http://www.dtsato.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>

<p>Related posts:<ol><li><a href='http://www.dtsato.com/blog/2009/07/03/velocity-gone-wrong-done-is-not-done/' rel='bookmark' title='Permanent Link: Velocity gone wrong #1: Done is not done'>Velocity gone wrong #1: Done is not done</a></li>
<li><a href='http://www.dtsato.com/blog/2009/07/12/velocity-gone-wrong-3-used-as-a-performance-measure/' rel='bookmark' title='Permanent Link: Velocity gone wrong #3: Used as a performance measure'>Velocity gone wrong #3: Used as a performance measure</a></li>
<li><a href='http://www.dtsato.com/blog/2008/08/26/agile-2008-estimating-considered-wasteful-introducing-micro-releases/' rel='bookmark' title='Permanent Link: [Agile 2008] Estimating Considered Wasteful: Introducing Micro-Releases'>[Agile 2008] Estimating Considered Wasteful: Introducing Micro-Releases</a></li>
</ol></p>]]></content>
		<link rel="replies" type="text/html" href="http://www.dtsato.com/blog/2009/07/04/velocity-gone-wrong-2-making-up-points/#comments" thr:count="6" />
		<link rel="replies" type="application/atom+xml" href="http://www.dtsato.com/blog/2009/07/04/velocity-gone-wrong-2-making-up-points/feed/atom/" thr:count="6" />
		<thr:total>6</thr:total>
	<feedburner:origLink>http://www.dtsato.com/blog/2009/07/04/velocity-gone-wrong-2-making-up-points/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Danilo Sato</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Velocity gone wrong #1: Done is not done]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dtsato/~3/nSjnhoes-WI/" />
		<id>http://www.dtsato.com/blog/?p=277</id>
		<updated>2009-07-03T00:12:15Z</updated>
		<published>2009-07-03T00:12:15Z</published>
		<category scheme="http://www.dtsato.com/blog" term="Uncategorized" /><category scheme="http://www.dtsato.com/blog" term="anti-pattern" /><category scheme="http://www.dtsato.com/blog" term="lean" /><category scheme="http://www.dtsato.com/blog" term="tracking" /><category scheme="http://www.dtsato.com/blog" term="value stream" /><category scheme="http://www.dtsato.com/blog" term="velocity" />		<summary type="html"><![CDATA[Dan North wrote an interesting post about the perils of estimation, questioning our approach to inceptions, release planning, and setting expectations about scope. This made me think about the implications of those factors once a project starts, and I came up with some anti-patterns on the usage of velocity to track progress. This is my [...]]]></summary>
		<content type="html" xml:base="http://www.dtsato.com/blog/2009/07/03/velocity-gone-wrong-done-is-not-done/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2009%2F07%2F03%2Fvelocity-gone-wrong-done-is-not-done%2F" onclick="urchinTracker('/outgoing/api.tweetmeme.com/share?url=http_3A_2F_2Fwww.dtsato.com_2Fblog_2F2009_2F07_2F03_2Fvelocity-gone-wrong-done-is-not-done_2F&amp;referer=');"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.dtsato.com%2Fblog%2F2009%2F07%2F03%2Fvelocity-gone-wrong-done-is-not-done%2F" height="61" width="51" /></a></div><p>Dan North wrote an interesting post about the <a href="http://dannorth.net/2009/07/the-perils-of-estimation" onclick="urchinTracker('/outgoing/dannorth.net/2009/07/the-perils-of-estimation?referer=');">perils of estimation</a>, questioning our approach to inceptions, release planning, and setting expectations about scope. This made me think about the implications of those factors once a project starts, and I came up with some anti-patterns on the usage of velocity to track progress. This is my first attempt at writing about them.</p>
<p>Before we start, it&#8217;s important to understand what velocity means. My simple definition of <strong>velocity is the total number of <em>estimation units</em> for the <em>items</em> delivered in an <em>iteration</em></strong>. <em>Estimation unit</em> can be whatever the team chooses: ideal days, hours, <a href="http://www.pomodorotechnique.com/" onclick="urchinTracker('/outgoing/www.pomodorotechnique.com/?referer=');">pomodoros</a>, or story points. The nature of <em>items</em> may vary as well: features, use cases, and user stories are common choices. <em>Iteration</em> is a fixed amount of time where the team will work on delivering those items. Sounds simple? Well&#8230; there&#8217;s one concept that is commonly overlooked and that&#8217;s the source of the first anti-pattern: <strong>what does <em>delivered</em> means?</strong></p>
<p>One of the most common anti-patterns I&#8217;ve seen is not having a clear definition of done. Lean thinking tells us that nothing is really done until it&#8217;s delivering value, which in software means: code running in production and being used by real users. Although I know very few teams who can deploy code to production at the end of every iteration (some even do more than once per iteration), once a story is considered done, it could be potentially shipped, if the business decides so. There shouldn&#8217;t be a lot of extra work after that.</p>
<p>Another bad implication of this anti-pattern is that some teams decide to change the definition of done and count half-completed work to show progress. Some of the symptoms to help diagnose if your team is suffering from this anti-pattern are:</p>
<ul>
<li>The team starts tracking <a href="http://blog.franktrindade.com/2009/05/12/dev-complete-no" onclick="urchinTracker('/outgoing/blog.franktrindade.com/2009/05/12/dev-complete-no?referer=');">dev-complete</a> stories</li>
<li><em>&#8220;It&#8217;s done, but [we need to write the acceptance test/it's not integrated with the other system/...]&#8220;</em></li>
<li><em>&#8220;It&#8217;s done, but not done-done&#8221;<br />
</em></li>
<li>It takes a lot of extra work to get the story deployed to production</li>
<li>After finished, the story goes into the next team&#8217;s backlog</li>
<li>Hearing terms like &#8220;development team velocity&#8221; or &#8220;test team velocity&#8221;</li>
<li>Counting half-points or percentages because <em>&#8220;if we don&#8217;t count it will look like we haven&#8217;t worked&#8221;</em></li>
</ul>
<p>The solution? Remember that velocity is just a number that provides information for the team to understand and improve it&#8217;s process. Forget that you&#8217;re tracking it and focus on the entire Value Stream and on what&#8217;s really value-added to get things into production. Anything else is just waste. <strong>If it&#8217;s not done, it&#8217;s not done</strong>. Accept it, move on, and don&#8217;t overcomplicate, because it will only add noise and mask what could have been important information to the team.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=RT+@dtsato+Velocity+gone+wrong+%231%3A+Done+is+not+done+http://bit.ly/gAgNb" title="Post to Twitter" onclick="urchinTracker('/outgoing/twitter.com/home/?status=RT+_dtsato+Velocity+gone+wrong+_231_3A+Done+is+not+done+http_//bit.ly/gAgNb&amp;referer=');"><img class="nothumb" src="http://www.dtsato.com/blog/wp-content/plugins/tweet-this/icons/tt-twitter-micro3.png" alt="Post to Twitter" /></a></p>

<p>Related posts:<ol><li><a href='http://www.dtsato.com/blog/2009/07/04/velocity-gone-wrong-2-making-up-points/' rel='bookmark' title='Permanent Link: Velocity gone wrong #2: Making up points'>Velocity gone wrong #2: Making up points</a></li>
<li><a href='http://www.dtsato.com/blog/2009/07/12/velocity-gone-wrong-3-used-as-a-performance-measure/' rel='bookmark' title='Permanent Link: Velocity gone wrong #3: Used as a performance measure'>Velocity gone wrong #3: Used as a performance measure</a></li>
<li><a href='http://www.dtsato.com/blog/2008/08/26/agile-2008-estimating-considered-wasteful-introducing-micro-releases/' rel='bookmark' title='Permanent Link: [Agile 2008] Estimating Considered Wasteful: Introducing Micro-Releases'>[Agile 2008] Estimating Considered Wasteful: Introducing Micro-Releases</a></li>
</ol></p>]]></content>
		<link rel="replies" type="text/html" href="http://www.dtsato.com/blog/2009/07/03/velocity-gone-wrong-done-is-not-done/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://www.dtsato.com/blog/2009/07/03/velocity-gone-wrong-done-is-not-done/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://www.dtsato.com/blog/2009/07/03/velocity-gone-wrong-done-is-not-done/</feedburner:origLink></entry>
	</feed>
