<?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>Mauricio Aniche &#187; agile</title>
	<atom:link href="http://www.aniche.com.br/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aniche.com.br</link>
	<description>Pensamentos sobre desenvolvimento de software</description>
	<lastBuildDate>Mon, 17 Oct 2011 00:59:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>É &#8220;Test-Driven Design&#8221; e não &#8220;Design Done by Tests&#8221;</title>
		<link>http://www.aniche.com.br/2010/12/eh-tdd-e-nao-ddt/</link>
		<comments>http://www.aniche.com.br/2010/12/eh-tdd-e-nao-ddt/#comments</comments>
		<pubDate>Sat, 25 Dec 2010 21:52:39 +0000</pubDate>
		<dc:creator>mauricioaniche</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[design ágil]]></category>
		<category><![CDATA[experiência do programador]]></category>
		<category><![CDATA[orientação à objetos]]></category>
		<category><![CDATA[SOLID]]></category>
		<category><![CDATA[tdd não faz milagre]]></category>

		<guid isPermaLink="false">http://www.aniche.com.br/?p=304</guid>
		<description><![CDATA[Muitos códigos legados possuem graves problemas de design. Classes gigantes que fazem tudo ou classes altamente acopladas são exemplos reais de código presentes no dia-a-dia de muitos desenvolvedores. E isso não é uma exceção: as leis da evolução do software mostram que o código de um software tende a degradar. O trabalho do programador é <a href='http://www.aniche.com.br/2010/12/eh-tdd-e-nao-ddt/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Muitos códigos legados possuem graves problemas de design. Classes gigantes que fazem tudo ou classes altamente acopladas são exemplos reais de código presentes no dia-a-dia de muitos desenvolvedores. E isso não é uma exceção: <a href="http://en.wikipedia.org/wiki/Software_evolution">as leis da evolução do software</a> mostram que o código de um software tende a degradar. O trabalho do programador é evitar que isso aconteça ou, no pior caso, diminuir a velocidade desse processo de apodrecimento do design.</p>
<p>A busca por um design perfeito, que esteja preparado para aceitar mudanças e evoluir de forma simples, é difícil. Por esse motivo, a prática de TDD tem sido muito comentada pois, segundo seus praticantes, ela ajuda o programador a criar um design melhor.</p>
<p>Mas, a mais famosa frase da área de engenharia de software já nos diz que <em>não existe bala de prata</em>. Nenhuma prática garante o sucesso de um projeto ou um código de qualidade. As práticas estão lá para tentar manter o programador nessa direção.</p>
<p>E é a mesma coisa com TDD: a prática não resolverá todos os problemas de design que um programador enfrentará. O programador, na verdade, utiliza os testes para guiar o design. É através dele que o programador sabe se está indo no caminho certo ou não. Isso não quer dizer que TDD faz o design sozinho para o programador. É óbvio que o programador precisa ter experiência e conhecimento necessários para que o design saia realmente com qualidade.</p>
<p>Mas um programador que tenha alto conhecimento e experiência em desenvolvimento também pode criar um design com a mesma qualidade. A diferença é que TDD (e os testes gerados) dão feedback muito mais rápido sobre a qualidade. O gráfico abaixo, feito pelo Gleen Vanderburg, mostra o <a href="http://portal.acm.org/citation.cfm?id=1103845.1094854">tempo de feedback de várias práticas ágeis</a>. Veja que TDD dá feedback em minutos, ou seja, em alguns minutos o programador tem informações sobre o seu design. Através dos testes ele pode obter informações como a coesão da classe, o acoplamento, a simplicidade, etc. Novamente, o programador usa sua experiência para receber e entender esse feedback.</p>
<p style="text-align: center;"><img class="alignnone" src="http://www.aniche.com.br/wp-content/uploads/2010/12/PráticaságeisefeedbackVanderburg.jpg" alt="" width="428" height="352" /></p>
<p style="text-align: center;"><strong>Figura 1. </strong>Práticas e tempo de feedback</p>
<p>Essa é na verdade a grande diferença para o design feito pelo arquiteto-astronauta, famoso no modelo Waterfall, para os designs ágeis. O arquiteto pode ter muita experiência, mas o design que ele faz leva tanto tempo para ser validado e receber feedback que, quando isso acontece, o custo de mudança é altíssimo.</p>
<p>Além disso, o programador ao usar TDD (e por consequência guiar seu design através dos testes) é &#8220;forçado&#8221; a utilizar bons princípios de orientação a objetos. Os tão falados <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">princípios SOLID</a> passam a fazer mais sentido no momento em que o programador precisa escrever um código que seja fácil de testar. Parafraseando Feathers, <a href="http://michaelfeathers.typepad.com/michael_feathers_blog/2007/09/the-deep-synerg.html">existe uma grande sinergia entre código fácil de testar e código bom</a>. Esses bons padrões facilitam o programador a escrever um código mais fácil de testar, <a href="http://blog.ploeh.dk/2010/12/22/TheTDDApostate.aspx">apesar do Mark Seemann discordar</a>.</p>
<p>Novamente, a experiência do programador conta. O programador experiente sabe que deve gerenciar as dependências entre classes (DIP), sabe que as classes devem ser coesas (SRP), sabe que elas devem evoluir sem a necessidade de reescrevê-la (OCP), e etc. Programadores que não usam TDD também podem fazer uso desses bons princípios. A diferença é que TDD dá feedback quase instantâneo: a necessidade da utilização dessas ideias aparece após alguns minutos programando, o que não é verdade quando o programador não faz TDD.</p>
<p>Enfim, TDD não faz milagre. Mas ele fica lembrando o programador constantemente sobre a necessidade de manter o código limpo. E a necessidade disso é evidente. Com certeza outros programadores irão encontrar outras práticas que também dão feedback sobre qualidade de design ao desenvolvedor. Mas, enquanto isso não acontece, eu recomendo a utilização de TDD.</p>
<p><em>Mas lembre-se: é <strong>design guiado pelos testes (Test-Driven Design)</strong> e não design feito pelos testes!</em></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aniche.com.br%2F2010%2F12%2Feh-tdd-e-nao-ddt%2F&amp;title=%C3%89%20%26%238220%3BTest-Driven%20Design%26%238221%3B%20e%20n%C3%A3o%20%26%238220%3BDesign%20Done%20by%20Tests%26%238221%3B" id="wpa2a_2"><img src="http://www.aniche.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aniche.com.br/2010/12/eh-tdd-e-nao-ddt/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>TDD diminui o acoplamento, mas só isso não resolve!</title>
		<link>http://www.aniche.com.br/2010/10/tdd-diminui-o-acoplamento-mas-so-isso-nao-resolve/</link>
		<comments>http://www.aniche.com.br/2010/10/tdd-diminui-o-acoplamento-mas-so-isso-nao-resolve/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 15:41:23 +0000</pubDate>
		<dc:creator>mauricioaniche</dc:creator>
				<category><![CDATA[tdd]]></category>
		<category><![CDATA[xp]]></category>
		<category><![CDATA[acoplamento]]></category>
		<category><![CDATA[dependências]]></category>
		<category><![CDATA[design de classes]]></category>
		<category><![CDATA[estabilidade]]></category>

		<guid isPermaLink="false">http://www.aniche.com.br/?p=204</guid>
		<description><![CDATA[Uma das conhecidas vantagens do TDD é que ele &#8220;diminui o acoplamento&#8221;, ou &#8220;ajuda a diminuir o acoplamento&#8221;. Entretanto, alguns estudos (como os que comentei nesse post) mostram que, quando medidos, a diferença de acoplamento entre projetos feitos com TDD e projetos não feitos com TDD não é tão grande assim. Por que isso acontece? <a href='http://www.aniche.com.br/2010/10/tdd-diminui-o-acoplamento-mas-so-isso-nao-resolve/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Uma das conhecidas vantagens do TDD é que ele &#8220;diminui o acoplamento&#8221;, ou &#8220;ajuda a diminuir o acoplamento&#8221;. Entretanto, alguns estudos (como os que comentei nesse <a href="http://www.aniche.com.br/2010/04/tdd-realmente-ajuda/">post</a>) mostram que, quando medidos, a diferença de acoplamento entre projetos feitos com TDD e projetos não feitos com TDD não é tão grande assim. Por que isso acontece?</p>
<p>Suponha o seguinte código:</p>
<pre lang="java">public class Copiadora {
  public void copiar() {
    var leitor = new LeitorDeXML();
    var escritor = new EscritorPelaSerial();
    while (leitor.TemCaracteres()) {
      escritor.Escreve(leitor.LeCaracteres());
    }
  }
}</pre>
<p>Veja que essa classe é fortemente acoplada com duas classes: <em>LeitorDeXML</em> e <em>EscritorPelaSerial</em>. Se quantificarmos isso, podemos dizer que o acoplamento dessa classe é igual a &#8220;2&#8243; (já que ela está acoplada a 2 classes).</p>
<p>Mas, ao fazer TDD, você naturalmente criaria um código parecido com isso:</p>
<pre lang="java">public interface ILeitor {
  bool TemCaracteres();
  string LeCaracteres();
}
public interface IEscritor {
  void Escreve(string conteudo);
}
public class Copiadora {
  private ILeitor leitor;
  private IEscritor escritor;
  public Copiadora(ILeitor leitor, IEscritor escritor) {
    this.leitor = leitor;
    this.escritor = escritor;
  }
  public void Copiar() {
    while (leitor.TemCaracteres()) {
      escritor.Escreve(leitor.LeCaracteres());
    }
  }
}</pre>
<p>Veja que agora a classe é acoplada com as interfaces <em>ILeitor</em> e <em>IEscritor</em>. Ainda assim, a métrica de acoplamento nos informaria &#8220;2&#8243;.</p>
<p>Qual a diferença? <em>A diferença agora é que a classe está acoplada com módulos (classes, interfaces) mais </em><strong><em>estáveis</em></strong><em>. </em>A estabilidade, segundo Bob Martin [1], mede o quão difícil (ou improvável) é realizar uma mudança na classe.</p>
<p>As classes <em>LeitorDeXML</em> e <em>EscritorPelaSerial</em> muito provavelmente são acopladas com outras classes (a classe <em>EscritorPelaSerial</em>, por exemplo, deve ser acoplada com alguma outra classe que auxilia na troca de mensagens pela porta serial) e isso faz com que elas possam eventualmente sofrer alterações; são classes mais voláteis. Já as interfaces <em>ILeitor</em> e <em>IEscritor</em> não dependem de nada, são independentes. Além disso, essas interfaces serão implementadas por várias outras classes, e isso faz com que essas interfaces sejam ainda mais difíceis de mudar (afinal, se você mudar uma delas, você vai ter que mudar a implementação em N classes que as implementam), tornando-as assim altamente estáveis.</p>
<p>Podemos dizer então que uma <strong>boa dependência</strong> é uma dependência com um módulo (ou classe) estável, e uma <strong>má dependência</strong> é uma dependência com um módulo (ou classe) instável. <em>TDD faz com que o programador acople suas classes com módulos geralmente mais estáveis! </em>Por quê? Porque TDD obriga você a pensar apenas no que você espera das outras classes, sem pensar ainda em uma implementação concreta. Esses comportamentos esperados acabam geralmente se transformando em interfaces, que frequentemente se tornam estáveis.</p>
<p>Para garantir um design de qualidade não basta apenas reduzir o acoplamento, mas sim acoplar com <em>boas dependências</em>! E para medir qualidade de design, também não bastam apenas métricas de acoplamento! <img src='http://www.aniche.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Referências</strong></p>
<p>Esse post é fortemente baseado no trabalho do Bob Martin sobre princípios e métricas de qualidade em design de sistemas orientados à objetos.</p>
<p>[1] Martin, Robert C. <em>Stability</em> (<a href="http://www.objectmentor.com/resources/articles/stability.pdf">http://www.objectmentor.com/resources/articles/stability.pdf</a>)<br />
[2] Martin, Robert C. <em>Agile Principles, Patterns and Practices in C#</em></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aniche.com.br%2F2010%2F10%2Ftdd-diminui-o-acoplamento-mas-so-isso-nao-resolve%2F&amp;title=TDD%20diminui%20o%20acoplamento%2C%20mas%20s%C3%B3%20isso%20n%C3%A3o%20resolve%21" id="wpa2a_4"><img src="http://www.aniche.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aniche.com.br/2010/10/tdd-diminui-o-acoplamento-mas-so-isso-nao-resolve/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Minha apresentação na Agile Brazil 2010</title>
		<link>http://www.aniche.com.br/2010/06/minha-apresentacao-na-agile-brazil-2010/</link>
		<comments>http://www.aniche.com.br/2010/06/minha-apresentacao-na-agile-brazil-2010/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 21:33:46 +0000</pubDate>
		<dc:creator>mauricioaniche</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[Agile Brazil 2010]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[desvios]]></category>
		<category><![CDATA[engenharia de software empirica]]></category>

		<guid isPermaLink="false">http://www.aniche.com.br/?p=176</guid>
		<description><![CDATA[Olá pessoal, Obrigado a quem compareceu na apresentação! Os slides estão aqui! Desvios comuns em TDD View more presentations from mauricioaniche. Qualquer dúvida, sugestão, crítica, por favor me mandem!]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal,</p>
<p>Obrigado a quem compareceu na apresentação! Os slides estão aqui!</p>
<div id="__ss_4607459" style="width: 425px;"><strong><a title="Desvios comuns em TDD" href="http://www.slideshare.net/mauricioaniche/desvios-comuns-em-tdd">Desvios comuns em TDD</a></strong><object id="__sse4607459" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=agilebrazil2010-100624162444-phpapp02&amp;stripped_title=desvios-comuns-em-tdd" /><param name="name" value="__sse4607459" /><param name="allowfullscreen" value="true" /><embed id="__sse4607459" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=agilebrazil2010-100624162444-phpapp02&amp;stripped_title=desvios-comuns-em-tdd" name="__sse4607459" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/mauricioaniche">mauricioaniche</a>.</div>
<div style="padding: 5px 0 12px;">Qualquer dúvida, sugestão, crítica, por favor me mandem! <img src='http://www.aniche.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aniche.com.br%2F2010%2F06%2Fminha-apresentacao-na-agile-brazil-2010%2F&amp;title=Minha%20apresenta%C3%A7%C3%A3o%20na%20Agile%20Brazil%202010" id="wpa2a_6"><img src="http://www.aniche.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aniche.com.br/2010/06/minha-apresentacao-na-agile-brazil-2010/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Eu faço TDD. Preciso testar?</title>
		<link>http://www.aniche.com.br/2010/06/eu-faco-tdd-preciso-testar/</link>
		<comments>http://www.aniche.com.br/2010/06/eu-faco-tdd-preciso-testar/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 15:00:35 +0000</pubDate>
		<dc:creator>mauricioaniche</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[teste de software]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[software design]]></category>

		<guid isPermaLink="false">http://www.aniche.com.br/?p=173</guid>
		<description><![CDATA[Claro que sim. TDD é uma atividade de design. O teste de unidade que você escreve serve basicamente para definir suas expectativas em relação ao código que você vai escrever. E, ao fazer isso, você pensa não só no nível da implementação do algoritmo, mas em um nível um pouco mais alto: no nível de <a href='http://www.aniche.com.br/2010/06/eu-faco-tdd-preciso-testar/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Claro que <strong>sim</strong>.</p>
<p>TDD é uma atividade de design. O teste de unidade que você escreve serve basicamente para definir suas expectativas em relação ao código que você vai escrever. E, ao fazer isso, você pensa não só no nível da implementação do algoritmo, mas em um nível um pouco mais alto: no nível de design. TDD permite que você brinque e experimente diferentes possíveis designs, dando feedback rápido sobre o resultado obtido, até que você encontre o design ideal para aquela situação.</p>
<p>Ou seja, quando você faz TDD, você pensa exclusivamente em design e não em testes. É uma prática de suporte para <strong>design</strong> de software.</p>
<p>Mas&#8230; É claro que você precisa testar! Você não apaga os testes que você produziu usando TDD, óbvio. Mas muito provavelmente eles não testam todas as possibilidades possíveis. E é aí que outras técnicas entram em cena, e você pode encontrar muita informação sobre elas em [1][2].</p>
<p>Resumindo, use TDD quando você precisa trabalhar no design de determinada classe ou módulo. Quando você estiver satisfeito com design, é hora de testar! Aí você pode fazer test-first, test-last, ou que você preferir, mas teste de verdade!</p>
<p>[1] The Art of Software Testing &#8211; Myers<br />
[2] Introdução ao Teste de Software &#8211; Maldonado, Delamaro, Jino</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aniche.com.br%2F2010%2F06%2Feu-faco-tdd-preciso-testar%2F&amp;title=Eu%20fa%C3%A7o%20TDD.%20Preciso%20testar%3F" id="wpa2a_8"><img src="http://www.aniche.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aniche.com.br/2010/06/eu-faco-tdd-preciso-testar/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Survey on TDD feelings and experiences</title>
		<link>http://www.aniche.com.br/2010/01/survey-on-tdd-feelings-and-experiences/</link>
		<comments>http://www.aniche.com.br/2010/01/survey-on-tdd-feelings-and-experiences/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 23:18:56 +0000</pubDate>
		<dc:creator>mauricioaniche</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[survey]]></category>

		<guid isPermaLink="false">http://www.aniche.com.br/?p=82</guid>
		<description><![CDATA[I am working on article about TDD (which is the subject of my master thesis as well) and I just created a survey about your TDD feelings and experiences. If you have a free time, please, fill it out; it should not take too long. You can find the survey at http://spreadsheets.google.com/viewform?formkey=dFlITDZfSTNkVmd5bEVQSFl4cTB3cHc6MA I also twitted <a href='http://www.aniche.com.br/2010/01/survey-on-tdd-feelings-and-experiences/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p id="_mcePaste">I am working on article about TDD (which is the subject of my master thesis as well) and I just created a survey about your TDD feelings and experiences. If you have a free time, please, fill it out; it should not take too long.</p>
<p id="_mcePaste">You can find the survey at <a href="I am working on article about TDD (which is the subject of my master thesis as well) and I just created a survey about your TDD feelings and experiences. If you have a free time, please, fill it out; it should not take too long. You can find the survey at http://spreadsheets.google.com/viewform?formkey=dFlITDZfSTNkVmd5bEVQSFl4cTB3cHc6MA I also twitted about it (http://twitter.com/mauricioaniche/status/7493800359), so it would nice if you re-tweet! :) ">http://spreadsheets.google.com/viewform?formkey=dFlITDZfSTNkVmd5bEVQSFl4cTB3cHc6MA</a></p>
<p>I also twitted about it (<a href="http://twitter.com/mauricioaniche/status/7493800359">http://twitter.com/mauricioaniche/status/7493800359</a>), so it would nice if you re-tweet! <img src='http://www.aniche.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aniche.com.br%2F2010%2F01%2Fsurvey-on-tdd-feelings-and-experiences%2F&amp;title=Survey%20on%20TDD%20feelings%20and%20experiences" id="wpa2a_10"><img src="http://www.aniche.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aniche.com.br/2010/01/survey-on-tdd-feelings-and-experiences/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Caelum Day In Rio 2009</title>
		<link>http://www.aniche.com.br/2009/11/caelum-day-in-rio-2009/</link>
		<comments>http://www.aniche.com.br/2009/11/caelum-day-in-rio-2009/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 00:56:30 +0000</pubDate>
		<dc:creator>mauricioaniche</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[caelum]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[persistencia]]></category>
		<category><![CDATA[vraptor]]></category>

		<guid isPermaLink="false">http://www.aniche.com.br/?p=78</guid>
		<description><![CDATA[No último fim de semana estive no Rio de Janeiro para participar do Caelum Day In Rio 2009, organizado pela Caelum. A primeira palestra foi dada pelo Phillip Calçado, consultor da ThoughtWorks. &#8220;Tudo o que eu gostaria de saber antes de virar líder técnico&#8221; são um conjunto de dicas que ele aprendeu ao longo do <a href='http://www.aniche.com.br/2009/11/caelum-day-in-rio-2009/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>No último fim de semana estive no Rio de Janeiro para participar do <a href="http://www.caelum.com.br/caelumday">Caelum Day In Rio 2009</a>, organizado pela <a href="http://www.caelum.com.br" target="_blank">Caelum</a>.</p>
<p>A primeira palestra foi dada pelo <a href="http://www.fragmental.com.br" target="_blank">Phillip Calçado</a>, consultor da ThoughtWorks. &#8220;Tudo o que eu gostaria de saber antes de virar líder técnico&#8221; são um conjunto de dicas que ele aprendeu ao longo do tempo. Uma das lições foi sobre <strong>ENTREGAR VALOR</strong> o tempo todo, no momento exato e antes que fosse tarde demais! Outra lição interessante foi que <strong>IMPREVISTOS ACONTECEM</strong>, então ajude a evitá-los! Outras dicas importantes, como TDD, builds rápidos, integração contínua, criação de ambiente de testes parecido (o máximo possível) com o ambiente de produção, cliente sempre por perto, domain-driven design e entregas incrementais e frequentes foram citadas como &#8220;barreiras&#8221; para ajuda a evitar os imprevistos. Outra dica é para não se desesperar caso a barreira quebre (apenas garanta que você saiba quando ela quebrar). Ele disse uma frase que achei bastante interessante sobre isso: <em>&#8220;Não é ser a prova de falhas, e sim tornar seguro falhar&#8221;</em>.</p>
<p>A próxima palestra foi do <a href="http://www.fabiokung.com">Fábio Kung</a>, sobre Cloud Computing. O Fábio parecia bem animado com o problema que tem em mãos! Foi bastante interessante, mostrando as possíveis diferentes classificações para uma cloud (IaaS, PaaS, SaaS). Explicou muito bem a diferença de cada uma delas, de maneira clara. Além disso mostrou dois vídeos engraçadíssimos sobre um tal de Dr. Cloud (ou algo assim)! Não peguei o link, assim que conseguir coloco aqui!</p>
<p>O <em>lightning talk</em> do Rafael Martinelli sobre Flex também foi bastante interessante. Mostrou vários exemplos de aplicações RIA feitos pela DClick, realmente impressionantes. Ele comentou também que RIA não é apenas &#8220;deixar bonito&#8221;; há um propósito por trás disso. Uma boa experiência do usuário traz mais retorno para a empresa.</p>
<p>A palestra sobre RESTful Web Services do Luiz Costa e do Sérgio Junior começou com eles contando uma história de uma aplicação que precisava se integrar com outras. E a partir dessa história, mostraram cada tentativa de integração até se chegar em web services. Quando chegaram em REST, explicaram bem as idéias e conceitos. Terminaram falando algumas das vantagens e desvantagens do uso de REST. Os slides estão em <a href="http://www.slideshare.net/sergiorjunior/rest-teoria-e-pratica">http://www.slideshare.net/sergiorjunior/rest-teoria-e-pratica</a></p>
<p>O <a href="http://guilhermesilveira.wordpress.com/">Guilherme Silveira</a> e o Filipe Sabella falaram sobre o novo <a href="http://www.vraptor.com.br">VRaptor3</a>, framework  MVC Java para Web, criado pela Caelum. Contaram a evolução do framerowk desde sua primeira versão em 2004 até agora. Mostraram como é fácil integrar o VRaptor com outros frameworks famosos no mercado como Spring, DWR, Flex. Uma característica interessante é que ele é refactor friendly (se você refatorar um método de um controller, não é necessário alterar XMLs para arrumar os redirecionamentos!). Você pode construir suas aplicações utilizando conceitos de REST também, de maneira fácil (basta utilizar algumas anotações e está pronto). Além de um monte de funcionalidades que já vem de graça com ele, como uploads e downloads de arquivos de maneira fácil, views em JSON, XML, e etc. Enfim, sugiro você avaliar o VRaptor como seu próximo framework para Web. (Ah, detalhe da palestra foi a foto do Filipe dormindo no sofá!).</p>
<p>O <a href="http://www.caueguerra.com" target="_blank">Cauê Guerra</a> falou sobre &#8220;O Ano do Rails no Brasil&#8221;. Mostrou as diversas facilidades do desenvolvimento Rails e mostrou uma série de empresas que já o utilizam. E pra quem pensa que só empresas pequenas usam, ele mostrou uma lista de empresas de grande porte que já utilizam Rails em algumas de suas aplicações! No final, mostrou que já existem boas vagas para profissionais Rails (detalhe para a foto das meninas procurando por Railers!). Os slides da palestra dele estão em <a href="http://www.slideshare.net/caueguerra/2009-o-ano-do-ruby-on-rails-no-brasil-caelumday-2009">http://www.slideshare.net/caueguerra/2009-o-ano-do-ruby-on-rails-no-brasil-caelumday-2009</a>.</p>
<p>O <em>lightning talk</em> do <a href="http://www.ime.usp.br/~peas/" target="_blank">Paulo Silveira</a> sobre Persistência Java foi bastante interessante. Ele mostrou a evolução do processo de persistência de dados em Java, indo desde a conexão direta com o banco até JP, discutindo os prós e contras de cada abordagem. Muito legal o link que ele fez no final com todas as outras palestras do evento.</p>
<p>A última palestra entitulada NoSQL (Not Only SQL) do <a href="http://twitter.com/steppat" target="_blank">Nico Steppat</a> comentou sobre banco de dados não-relacionais. Mostrou como é realmente difícil escalar bancos de dados relacionais, comentou sobre banco de dados como CouchDB, Project Voldemort, Bigtable, e etc,  e discutiu sobre técnicas que eles usam para distribuir. Mostrou que conseguimos controlar apenas dois elementos desses três: Consistência, Disponibilidade e Tolerância à Partição (Brewer, 2000). E cada um deve fazer sua escolha dependendo da sua necessidade.</p>
<p>O evento acabou aí, e eu tive que correr pro aeroporto, pois meu avião saia do Galeão! Resumindo, o evento foi muito bom e valeu muito a pena! Espero ir de novo ano que vem! <img src='http://www.aniche.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Por fim, gostaria de agradecer ao Paulo Silveira pelo convite!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aniche.com.br%2F2009%2F11%2Fcaelum-day-in-rio-2009%2F&amp;title=Caelum%20Day%20In%20Rio%202009" id="wpa2a_12"><img src="http://www.aniche.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aniche.com.br/2009/11/caelum-day-in-rio-2009/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Encontro Ágil 2009</title>
		<link>http://www.aniche.com.br/2009/10/encontro-agil-2009/</link>
		<comments>http://www.aniche.com.br/2009/10/encontro-agil-2009/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 22:07:24 +0000</pubDate>
		<dc:creator>mauricioaniche</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xp]]></category>
		<category><![CDATA[encontro agil]]></category>
		<category><![CDATA[usp]]></category>

		<guid isPermaLink="false">http://www.aniche.com.br/?p=75</guid>
		<description><![CDATA[O Encontro Ágil já está entre os maiores eventos de métodos ágeis do Brasil. Este ano serão dois dias de encontro, com a participação de centenas de profissionais e estudantes. O evento reunirá alguns dos principais nomes brasileiros do desenvolvimento ágil de software, e desta vez com convidados internacionais de destaque mundial na comunidade ágil. <a href='http://www.aniche.com.br/2009/10/encontro-agil-2009/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>O <strong>Encontro Ágil</strong> já está entre os maiores eventos de métodos ágeis do Brasil. Este ano serão dois dias de encontro, com a participação de centenas de profissionais e estudantes. O evento reunirá alguns dos principais nomes brasileiros do desenvolvimento ágil de software, e desta vez com convidados internacionais de destaque mundial na comunidade ágil.</p>
<p>O evento acontecerá dentro da Universidade de São Paulo (USP). Os dias 10 e 11 de outubro estão reservados para discussões, trocas de experiências e palestras de especialistas em Programação eXtrema, Scrum, Crystal e nas metodologias mais produtivas do mercado.</p>
<p>Conheça os profissionais que já usam métodos ágeis. Junte-se ao grupo que está revolucionando a maneira de produzir software. Participe das discussões mais atuais do mercado, tire suas dúvidas e descubra como as técnicas ágeis podem ajudá-lo a aumentar a produtividade da sua equipe e a qualidade do seu software.</p>
<p>Este ano, nossos convidados especiais são Jutta Eckstein e Joe Yoder, que ministrarão keynotes e tutoriais durante o evento.</p>
<p>Mais informações em <a href="http://www.encontroagil.com.br">http://www.encontroagil.com.br</a></p>
<p>Espero vocês lá!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aniche.com.br%2F2009%2F10%2Fencontro-agil-2009%2F&amp;title=Encontro%20%C3%81gil%202009" id="wpa2a_14"><img src="http://www.aniche.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aniche.com.br/2009/10/encontro-agil-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Weekend 2009</title>
		<link>http://www.aniche.com.br/2009/04/agile-weekend-2009/</link>
		<comments>http://www.aniche.com.br/2009/04/agile-weekend-2009/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 15:17:00 +0000</pubDate>
		<dc:creator>mauricioaniche</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xp]]></category>
		<category><![CDATA[pucrs]]></category>

		<guid isPermaLink="false">/post/2009/04/28/Agile-Weekend-2009.aspx</guid>
		<description><![CDATA[Esse fim de semana estive em Porto Alegre para assistir ao Agile Weekend 2009, que aconteceu nas dependências da PUC-RS. A faculdade lá é muito bonita, o prédio do FACIN (Faculdade de Informática) é moderno. O auditório e as salas disponibilizadas para as palestras são confortáveis. A palestra inaugural foi dada pelo Daniel Wildt e <a href='http://www.aniche.com.br/2009/04/agile-weekend-2009/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Esse fim de semana estive em Porto Alegre para assistir ao Agile Weekend 2009, que aconteceu nas dependências da PUC-RS. A faculdade lá é muito bonita, o prédio do FACIN (Faculdade de Informática) é moderno. O auditório e as salas disponibilizadas para as palestras são confortáveis.</p>
<p>A palestra inaugural foi dada pelo Daniel Wildt e pelo Luiz Parzianello, e o tema foi <em>&#8220;Os desafios da cultura Lean no desenvolvimento de software&#8221;</em>, e como o próprio título diz, eles nos contaram muito da experiência deles com Lean. A palestra foi muito interessante!</p>
<p>A partir daí, começou a parte difícil: escolher uma das três palestras simultâneas. Todas elas pareciam excelentes. Optei por assistir a <em>&#8220;Java Meets Agile&#8221; </em>do Giovani Salvador (Dell/RS) e do Guilherme Elias (FUJA). Um detalhe interessante é que a palestra <em>&#8220;Introdução ao Scrum&#8221;</em> do Samuel Crescêncio (OnCast/SC) lotou, tiveram que fechar a porta da sala porque não cabia mais ninguém! Voltando a palestra do Giovani, ela foi muito interessante, a primeira parte da apresentação sobre conceitos de métodos ágeis, ele pulou, não era necessário repetir tudo de novo para quem estava ali. Em seguida, falou um pouco da perspectiva do arquiteto de software, onde, segundo ele, os arquitetos não devem utilizar arquiteturas genéricas demais quando não necessário, devem &#8220;sujar as mãos&#8221; e provar a arquitetura, e não devem fazer do projeto do cliente um verdadeiro laboratório de tecnologias! Da perspectiva do desenvolvedor, ele disse que o desenvolvedor deve sempre desenvolver as atividades de maior prioridade antes (e com isso, os problemas aparecerão antes), escrever testes automatizados junto com alguma ferramenta de cobertura de código e constante refatoração. Sugeriu também alguma técnica de <em>pair programming</em> ou <em>peer review</em>. Os slides dessa apresentação podem ser encontradas <a href="http://www.slideshare.net/dwildt/just-java2008-java-meets-agile-presentation" target="_blank">aqui</a>.</p>
<p>Após a palestra. fomos almoçar em um restaurante dentro da própria PUC-RS. Barato e bom, aprovado!</p>
<p>Na volta, optei por ver a palestra <em>&#8220;Anti-Práticas e Anti-Valores Ágeis&#8221;</em> do José Peleteiro (Globo.com). A palestra foi bacana também pra ver que todos podemos errar utilizando métodos ágeis, e inclusive grandes empresas como o Globo.com! Houveram muitas perguntas dos participantes, tornando a palestra ainda mais dinâmica. Detalhe aos slides, que foram muito bem trabalhados. Ao final, o ótimo apelo do<em> &#8220;salvem os bebês-foca&#8221;</em> rendeu palmas dos participantes! <img src='http://www.aniche.com.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>No último horário do dia, optei por ver o workshop de <em>&#8220;Simulação de um Projeto Scrum com uma Mini-Fábrica de Aviões&#8221;</em>, feita pelo Flávio Steffens (W3Haus/RS) e pelo professor da PUC, Rafael Prikladnicki. A idéia deles foi bem interessante, onde todos nó, em equipes de cinco pessoas, tínhamos que fazer aviões. Mostrou também como nós fazemos coisas sem perguntar primeiro ao cliente, e depois &#8220;ficamos bravos&#8221; por isso! Mostrou também como nossas estimativas tendem a melhorar depois de alguns sprints.</p>
<p>No segundo dia, a palestra de abertura <em>&#8220;A agilidade está no ar &#8211; um case na força aérea brasileira&#8221;</em> foi dada pelo Alexandre Gomes, Bruno Pedroso e Renato Willi, todos da SEA Tecnologia. A palestra apresentou o case de um aplicativo GED que eles desenvolveram para a aeronáutica brasileira. Muito interessante que eles aplicaram Scrum aos poucos no projeto, mostraram os erros e depois como fizeram para corrigir os mesmos. Mais um exemplo que métodos ágeis só se aprende na prática. Na minha opinião, essa foi a melhor palestra de todo o evento. Os slides estavam muito bem feitos, todos eles com fotos relacionados a aeronáutica!</p>
<p>Em seguida, fui assistir a palestra <em>&#8220;Scrum com Soluções simples e de baixo custo&#8221;</em>, dada pelo Luiz Faias Jr. (Bluesoft/SP). Muito motivadora também, eles mostraram como eles aplicam Scrum. Detalhe para a tinta magnética junto com os imãs que eles usam para &#8220;colar&#8221; as histórias na parede, ao invés de usar o tradicional quadro branco. A única partequa não foi tão baixo custo assim, foi quando ele disse que uma tela de plasma avisa quando o build falhou! O problema é que telas de plasma ainda não são de baixo custo! <img src='http://www.aniche.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Fui direto para a palestra do <em>Gustavo Casarotto</em> (Metadados/RS) sobre <em>&#8220;Métodos Ágeis x Gestão do Negócio&#8221;</em>, onde ele abordou como gerenciar uma empresa que utiliza métodos ágeis. Falou dos principais problemas que temos com isso, e como tentar evitá-los.</p>
<p>Acho que a única parte mal organizada do Agile Weekend ocorreu no almoço de domingo, pois todos os restaurantes da faculdade estavam fechados e tivemos que comer na lanchonete do próprio prédio. Essa, por sinal não suportou 400 pessoas pedindo ao mesmo tempo, e eu levei quase 1h pra conseguir meu X-Frango!</p>
<p>Fui correndo então para a sessão livre sobre <em>&#8220;Métodos Ágeis no Ensino Superior&#8221;</em>, liderada pelo Daniel Wildt (professor da FACENSA) e pelo Rafael Prikladnicki. Tinham poucas pessoas na sala (por volta de umas 6, 7), e a discussão girou muito em torno de como ensinar e embutir métodos ágeis nas atuais disciplinas dos cursos de computação. Alguns tópicos foram levantados, anotados e farão parte das próximas reuniões.</p>
<p>A última sessão livre <em>&#8220;Eu Odeio Métodos Ágeis!&#8221;, </em>dada pelo Daniel Wildt também foi legal. Ele discutiu muito sobre pessoas que não aceitam métodos ágeis, sem nem ao menos terem lido ou experimentado. E que após algum uso, acabam mudando de idéia e gostando da metodologia. Pena que ele estava sem conectividade na sala, pois iria mostrar posts e artigos relacionados.</p>
<p>Esse foi o Agile Weekend 2009. Considero uma experiência super positiva, pude ouvir várias experiências pessoais sobre implantação métodos ágeis, cada um com seu problema e solução específicos. Foi muito legal também estar perto de entusiastas de métodos ágeis e ver que o Rio Grande do Sul está realmente interessado no assunto também!</p>
<p>A maioria dos slides ainda não foram disponibilizados, mas irei colocando os links assim que receber.</p>
<p>Pedi também ao <a href="http://www.paulovelho.com" target="_blank">Paulo Henrique Martins</a>, amigo que me acompanhou no evento, para dar a opinião dele também. E aí vai:</p>
<p><em>&lt;Paulo Henrique Martins&gt;</em></p>
<p><em>Fui com o Mauricio no evento e posso dizer que ele foi bastante interessante, especialmente para mim, que não tenho um conhecimento muito aprofundado sobre o tema.<br />
Sobre as palestras que o Mauricio não conseguiu assistir: </em></p>
<p><em>Enquanto ele assistia a palestra do Jose Peleteiro, da Globo.com, eu assisti uma verdadeira aula, muito interessante, do Luiz Parzianello e do Rafael Prikladnicki &#8211; &#8220;Jogos Estatísticos para a Promoção de Práticas Ágeis&#8221;. Assim como a palestra seguinte, de &#8220;simulação de scrum em uma mini-fábrica de aviões&#8221;, foi muito interativa e divertida, mostrando na prática situações que os métodos ágeis realmente funcionam. Um dos jogos usados inclusive gerou uma interessante discussão confrontando a necessidade de um time contra a ambição pessoal, tocando no assunto de que as equipes precisam se comportar cada vez mais como times onde todos se dispõem a fazer qualquer tarefa, não especificando radicalmente a função de cada um. Assim, um analista deve ter o bom senso de, quando necessário, &#8220;se rebaixar&#8221; e programar, fazer testes, colocar a mão em todo o sistema visando o bem geral do grupo.</em></p>
<p><em>Outra palestra que eu vi foi o case de &#8220;Desenvolvimento Ágil num projeto Global&#8221;, de Giovani Salvador, da Dell Computer, enquanto o Mauricio assisita a palestra da Bluesoft. Foi também uma interessante demonstração de métodos ágeis, desta vez em um gigantesco projeto que envolvia 3 equipes de tamanho médio em 3 cidades diferentes. Giovani provou com essa palestra que é possível usar métodos ágeis em projetos de longa distância, mantendo a equipe sempre em comunicação por conferências e revezando o papel de Scrum master entre as equipes a cada sprint.</em></p>
<p><em>Por fim, ao invés de assistir a palestra &#8220;Métodos Ágeis no Ensino Superior&#8221;, acompanhei &#8220;Agilizando seu Projeto de Software&#8221;, do Bruno Pedroso, da SEA Tecnologia. Ele passou algumas dicas para iniciar a implementação de métodos ágeis nos projetos. Foi interessante e o pessoal da SEA Tecnologia comprovou que realmente sabe dar palestras interessantes e divertidas &#8211; a primeira palestra (&#8220;A agilidade está no ar &#8211; um case na força aérea brasileira&#8221;) foi muito bem apresentada, com uma divertida seqüência de slides.</em></p>
<p><em>Como desenvolvedor, já estou começando a tentar introduzir algumas técnicas aprendidas aqui na empresa. Foi um evento onde eu realmente aprendi bastante. Parabéns à organização, e, devo dizer que a PUC-RS é uma faculdade muito bonita e moderna. </em></p>
<p><em>&lt;/Paulo Henrique Martins&gt; </em></p>
<p>E que venha o Agile Weekend 2010! (ou será Agile Week 2010?)</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aniche.com.br%2F2009%2F04%2Fagile-weekend-2009%2F&amp;title=Agile%20Weekend%202009" id="wpa2a_16"><img src="http://www.aniche.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aniche.com.br/2009/04/agile-weekend-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Agile Weekend, here I go!</title>
		<link>http://www.aniche.com.br/2009/04/agile-weekend-here-i-go/</link>
		<comments>http://www.aniche.com.br/2009/04/agile-weekend-here-i-go/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 21:03:00 +0000</pubDate>
		<dc:creator>mauricioaniche</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xp]]></category>
		<category><![CDATA[porto alegre]]></category>

		<guid isPermaLink="false">/post/2009/04/23/Agile-Weekend-here-I-go!.aspx</guid>
		<description><![CDATA[Amanhã estarei embarcando para Porto Alegre, aonde vou assistir ao Agile Weekend, na PUC-RS. Serão 2 dias de métodos ágeis, e imagino que as palestras serão muito boas e proveitosas! Assim que voltar, postarei sobre a conferência!:)]]></description>
			<content:encoded><![CDATA[<p>Amanhã estarei embarcando para Porto Alegre, aonde vou assistir ao <a href="http://agileweekend.guma-rs.org/" target="_blank">Agile Weekend</a>, na PUC-RS. Serão 2 dias de métodos ágeis, e imagino que as palestras serão muito boas e proveitosas!</p>
<p>Assim que voltar, postarei sobre a conferência!:)</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aniche.com.br%2F2009%2F04%2Fagile-weekend-here-i-go%2F&amp;title=Agile%20Weekend%2C%20here%20I%20go%21" id="wpa2a_18"><img src="http://www.aniche.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aniche.com.br/2009/04/agile-weekend-here-i-go/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>E a culpa é (sempre) da comunicação!</title>
		<link>http://www.aniche.com.br/2009/04/e-a-culpa-e-sempre-da-comunicacao/</link>
		<comments>http://www.aniche.com.br/2009/04/e-a-culpa-e-sempre-da-comunicacao/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 15:18:00 +0000</pubDate>
		<dc:creator>mauricioaniche</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[usp]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">/post/2009/04/17/E-a-culpa-e-sempre-da-comunicacao.aspx</guid>
		<description><![CDATA[Nessa terça-feira fizemos a nossa primeira retrospectiva com o time do Dojo Online (projeto open-source que estamos desenvolvendo na Universidade de São Paulo). Após esse primeiro mês de interação, resolvemos nos reunir para refletir sobre o andamento do projeto. A reunião aconteceu em uma sala com post-its coloridos e canetas. Na primeira parte da retrospectiva, <a href='http://www.aniche.com.br/2009/04/e-a-culpa-e-sempre-da-comunicacao/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Nessa terça-feira fizemos a nossa primeira retrospectiva com o time do Dojo Online (projeto open-source que estamos desenvolvendo na <a href="http://www.usp.br" target="_blank">Universidade de São Paulo</a>). Após esse primeiro mês de interação, resolvemos nos reunir para refletir sobre o andamento do projeto. A reunião aconteceu em uma sala com post-its coloridos e canetas.</p>
<p>Na primeira parte da retrospectiva, a idéia era colocarmos nossas respostas em post-its para três perguntas:</p>
<ul>
<li>O que foi bom? O que fizemos bem?</li>
<li>O que podemos melhorar?</li>
<li>O que atrapalhou? O que foi ruim? O que não queremos mais?</li>
</ul>
<p>Havíamos combinado antes que não haveria nenhum tipo de ataque pessoal (nada de respostas do tipo<em> &#8216;fulano não faz nada&#8217;</em>), e que ninguém precisaria identificar-se como autor da resposta. Gastamos então aproximadamente 15 a 20 minutos preenchendo nossos post-its e colando-os na lousa.</p>
<p>A segunda parte e mais interessante da retrospectiva foi a discussão dos problemas. Começamos primeiro pela terceira pergunta: <em>O que nos atrapalhou? </em>A maioria das respostas se encaixou em problemas com o ambiente (falta de café, máquinas lentas, falta de plugins no Eclipse), problemas com testes de interface (realmente não conseguimos até agora executar um teste automatizado de interface no GWT), falta de experiência do time com métodos ágeis (realmente, esse é o primeiro contato da maioria com XP). A única coisa um pouco mais pessoal que rolou foi um <em>&#8216;pessoas atrasadas nas reuniões gera a necessidade de rediscutir os assuntos&#8217;</em>. Eu anotei que senti <em>&#8216;pouca comunicação com os clientes durante a interação&#8217;</em>. Alguns outros problemas como &#8216;<em>retrabalho por falta de comunicação&#8217;</em> também foram levantados.</p>
<p>Já na segunda pergunta, levantamos que deveríamos <em>&#8216;melhorar nossas estimativas das histórias&#8217; </em>(estimamos muito mal essas histórias, algumas muito longe do que foi a realidade), <em>&#8216;mais estudos fora do horário&#8217;</em>,<em> &#8216;comunicação da equipe&#8217;</em>, <em>&#8216;participação maior do time na lista de discussão&#8217;</em>, <em>&#8216;procurar atender melhor as necessidades do cliente&#8217;</em>,<em> &#8216;tarefas acopladas&#8217;</em> e uma muito interessante: <em>&#8216;validação de histórias concluídas&#8217; </em>(tivemos muitas histórias marcadas como concluídas, mas na verdade, elas precisavam de mais alguns ajustes). Vimos também que deveríamos melhorar no desenho do fluxo de telas do projeto, pois não tínhamos nenhum rascunho e isso estava criando muitas dificuldades para o time (muitos post-its sobre isso!). Houveram sugestões também para refatoração de código, pois alguns membros estavam achando o código muito complicado.</p>
<p>Já para a primeira pergunta (parece ser a mais fácil de responder, mas não é!), a maioria das respostas foram sobre a união e humor da equipe. Algum dos integrantes, provavelmente membro de algum grupo esotérico, escreveu <em>&#8216;energia do pessoal&#8217;</em> ! Realmente, o time está muito integrado, se ajudando o tempo todo na resolução dos diversos problemas que surgiram durante a interação. Muitos gostaram também de <em>programar pareado</em>, já que a produtividade e qualidade do código cresce muito! Outro detalhe interessante é que houveram muitas respostas do tipo <em>&#8216;tracking realmente ajuda a ver o andamento do projeto&#8217;</em>. Durante toda a interação, tratamos de manter todos os indicadores atualizados, e com isso, tínhamos a visão exata do estado do projeto naquele momento.</p>
<p>Após uma rápida leitura de todos os post-its, resolvemos agrupá-los por categorias, para então acharmos soluções para nossos problemas:</p>
<ul>
<li>Sobre os testes de interface, decidimos que não iríamos fazer testes de interface por enquanto, e que nos concentraríamos nos testes da camada de domínio. Para os diversos problemas levantados, foi sugerida a criação de um quadro de dúvidas, e que ao final do dia, iríamos resolvê-las todas com o cliente. Decidimos também que nossas reuniões diárias serão feitas em horários pré-determinados (antes não tínhamos horário fixo!), e que todos devem participar mais das questões levantadas na lista de discussão via e-mail. Sugerimos também o &#8220;sino da atenção&#8221;, para que quando algum membro do time precisar se comunicar com todos, este deve conseguir chamar a atenção de todos de uma só vez, para não ter que ficar repetindo a mesma informação.</li>
<li>Combinamos também que tentaríamos refatorar os códigos que estavam por demais complicados. Sobre os problemas de falta de atenção com a interface, decidimos também trabalhar em um rascunho de fluxo das telas, para que todos tenham pelo menos uma visão básica das telas do projeto. Esses mesmos rascunhos serão validados com o cliente antes de serem implementados efetivamente. Sobre as estimativas, acreditamos que nessa segunda interação elas serão melhores. Sobre o problemadas tarefas acopladas, decidimos que vamos trabalhar mais juntos no momento de quebras as histórias em tarefas.</li>
<li>A parte boa, não há muito o que comentar! Vamos tentar continuar assim, por enquanto não houveram feridos no time! <img src='http://www.aniche.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>Fazendo uma análise geral da retrospectiva, vimos que nosso grande problema foi a <strong>COMUNICAÇÃO</strong>, pois olhando para as ações que definimos, a maioria delas tenta resolver problemas relacionados a comunicação! Ficamos surpresos ao perceber isso! Como já dizia o manifesto ágil, <em>&#8220;Individuals and interactions over processes and tools&#8221;.</em> E realmente, eles estavam certos!</p>
<p>Criamos um quadro na nossa sala, com as principais ações definidas na retrospectiva, e agora vamos atrás delas!</p>
<p>Tiramos algumas fotos da retrospectiva, que você pode ver <a href="/blog/pics/retrospectiva/r001.jpg" target="_blank">aqui</a>, <a href="/blog/pics/retrospectiva/r002.jpg" target="_blank">aqui</a>, <a href="/blog/pics/retrospectiva/r003.jpg" target="_blank">aqui</a> e <a href="/blog/pics/retrospectiva/r004.jpg" target="_blank">aqui</a>.<br />
Curioso com os indicadores? Veja eles <a href="/blog/pics/indicadores/i001.jpg">aqui</a>, <a href="/blog/pics/indicadores/i002.jpg" target="_blank">aqui</a>, <a href="/blog/pics/indicadores/i003.jpg" target="_blank">aqui</a>, <a href="/blog/pics/indicadores/i005.jpg" target="_blank">aqui</a>, <a href="/blog/pics/indicadores/i006.jpg" target="_blank">aqui</a>, <a href="/blog/pics/indicadores/i007.jpg" target="_blank">aqui</a> e <a href="/blog/pics/indicadores/i008.jpg" target="_blank">aqui</a>.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.aniche.com.br%2F2009%2F04%2Fe-a-culpa-e-sempre-da-comunicacao%2F&amp;title=E%20a%20culpa%20%C3%A9%20%28sempre%29%20da%20comunica%C3%A7%C3%A3o%21" id="wpa2a_20"><img src="http://www.aniche.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.aniche.com.br/2009/04/e-a-culpa-e-sempre-da-comunicacao/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

