<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Desenvolvimento &#193;gil - Blog da Improve It: Tag refactoring</title>
    <link>http://blog.improveit.com.br/articles/tag/refactoring</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Improvecast 16: Entrevista com Clavius Tales na S&#233;rie Experi&#234;ncias &#193;geis</title>
      <description>&lt;p&gt;&#201; cada vez mais comum discutirmos sobre as diferen&#231;as e semelhan&#231;as entre &lt;a href="http://www.improveit.com.br/xp/manifesto_agil"&gt;abordagens &#225;geis&lt;/a&gt; de desenvolvimento de software e outras mais &lt;a href="http://www.improveit.com.br/xp/desenvolvimento_tradicional"&gt;tradicionais&lt;/a&gt;, tais como o &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt; e o &lt;a href="http://pt.wikipedia.org/wiki/Cmmi"&gt;CMMI&lt;/a&gt;. Entretanto, poucas pessoas tiveram a chance de vivenciar os dois mundos para poder relatar o que aprenderam com cada abordagem.  &lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/clavius-tales.jpg" alt="Ilustra&#231;&#227;o de Clavius Tales" title="Clavius Tales"/&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clavius Tales&lt;/strong&gt;, Diretor de Desenvolvimento da &lt;a href="http://www.fortesinformatica.com.br"&gt;Fortes Inform&#225;tica&lt;/a&gt;, &#233; uma dessas poucas pessoas. Ele participou ativamente do processo de implanta&#231;&#227;o do &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt; na &lt;a href="http://www.fortesinformatica.com.br"&gt;Fortes Inform&#225;tica&lt;/a&gt;. Segundo ele, sua empresa colheu &#243;timos frutos da utiliza&#231;&#227;o dos conceitos trazidos pelo &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt;. Entretanto, depois que sua equipe adotou o &lt;a href="http://www.improveit.com.br/xp"&gt;Extreme Programming&lt;/a&gt;, os ganhos foram ainda maiores. Por conta disso, a empresa substituiu as pr&#225;ticas do &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt; pelas do &lt;a href="http://www.improveit.com.br/xp"&gt;Extreme Programming&lt;/a&gt; com excelentes resultados.&lt;/p&gt;

&lt;p&gt;O relato do Tales acaba de ser publicado no &lt;a href="http://www.improveit.com.br/podcast/improvecast-16-entrevista-clavius-tales-experiencias-ageis"&gt;Improvecast 16&lt;/a&gt; que, devido ao tamanho, foi dividido em duas partes. &lt;/p&gt;

&lt;p&gt;Esses foram alguns dos assuntos tratados no &lt;a href="http://www.improveit.com.br/podcast/improvecast-16-entrevista-clavius-tales-experiencias-ageis"&gt;podcast&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quem &#233; a &lt;a href="http://www.fortesinformatica.com.br"&gt;Fortes Inform&#225;tica&lt;/a&gt; e o que ela faz?&lt;/li&gt;
&lt;li&gt;Que tipo de problemas voc&#234;s tinham antes de adotar o &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; e o que o levou a querer adota-lo?&lt;/li&gt;
&lt;li&gt;Antes de adotar o &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;, voc&#234;s participaram de um processo de avalia&#231;&#227;o para o &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt; n&#237;vel G. O que motivou voc&#234;s a buscarem o &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Como foi o processo de implanta&#231;&#227;o do &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt; na &lt;a href="http://www.fortesinformatica.com.br"&gt;Fortes&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Quanto tempo foi necess&#225;rio at&#233; se atingir o n&#237;vel G?&lt;/li&gt;
&lt;li&gt;Quais os benef&#237;cios obtidos com o uso dos conceitos do &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Qual o custo total da implanta&#231;&#227;o e avalia&#231;&#227;o do &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Apesar dos avan&#231;os conquistados com o &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt;, o que levou voc&#234;s a buscarem mais conhecimento sobre &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Como voc&#234; conheceu o &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Que abordagem voc&#234;s utilizaram para adotar o &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; e quando come&#231;ou a ado&#231;&#227;o?&lt;/li&gt;
&lt;li&gt;Qual era a plataforma de desenvolvimento utilizada na &#233;poca em que voc&#234;s come&#231;aram a adotar o &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Que treinamentos voc&#234;s fizeram antes de iniciar o primeiro projeto &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; e como eles foram conduzidos?&lt;/li&gt;
&lt;li&gt;Qual foi o primeiro projeto &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; de voc&#234;s?&lt;/li&gt;
&lt;li&gt;Quantas pessoas havia na equipe?&lt;/li&gt;
&lt;li&gt;Quem atuava como cliente desse projeto?&lt;/li&gt;
&lt;li&gt;Qual o tamanho das &lt;a href="http://www.improveit.com.br/xp/praticas/ciclo_semanal"&gt;itera&#231;&#245;es&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Que &lt;a href="http://www.improveit.com.br/xp/praticas"&gt;pr&#225;ticas&lt;/a&gt; do &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; mais se destacaram nesse projeto?&lt;/li&gt;
&lt;li&gt;Quais foram as mais f&#225;ceis de serem adotadas?&lt;/li&gt;
&lt;li&gt;Quais as mais dif&#237;ceis?&lt;/li&gt;
&lt;li&gt;Que tipo de transforma&#231;&#245;es voc&#234; notou no relacionamento com o cliente a partir da ado&#231;&#227;o do &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Que tipo de transforma&#231;&#245;es voc&#234; notou no entrosamento e motiva&#231;&#227;o da equipe?&lt;/li&gt;
&lt;li&gt;Como a &lt;a href="http://www.improveit.com.br/xp/praticas/programacao_par"&gt;programa&#231;&#227;o em par&lt;/a&gt; vem sendo usada?&lt;/li&gt;
&lt;li&gt;Como voc&#234;s est&#227;o trabalhando com &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;desenvolvimento orientado a testes&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Como tem sido o processo de &lt;a href="http://www.improveit.com.br/xp/praticas/integracao"&gt;integra&#231;&#227;o cont&#237;nua&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Voc&#234;s t&#234;m utilizado &lt;a href="http://www.improveit.com.br/xp/principios/reflexao"&gt;retrospectivas&lt;/a&gt;? Elas t&#234;m se revelado ben&#233;ficas para o projeto?&lt;/li&gt;
&lt;li&gt;Qual a sua avalia&#231;&#227;o sobre a &lt;a href="http://www.improveit.com.br/xp/principios/qualidade"&gt;qualidade&lt;/a&gt; do software produzido?&lt;/li&gt;
&lt;li&gt;Que tipo de adapta&#231;&#245;es voc&#234;s tiveram que fazer no processo?&lt;/li&gt;
&lt;li&gt;No &lt;a href="http://blog.improveit.com.br/articles/2007/07/12/improvecast-8-entrevista-com-carlos-barbieri-sobre-o-mps-br"&gt;Improvecast 8&lt;/a&gt;, &lt;a href="http://blog.improveit.com.br/articles/2007/07/12/improvecast-8-entrevista-com-carlos-barbieri-sobre-o-mps-br"&gt;Carlos Barbieri&lt;/a&gt; fala sobre os "ninjas". Voc&#234; acha que &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; s&#243; poderia funcionar se a equipe fosse repleta de "ninjas"?&lt;/li&gt;
&lt;li&gt;Na sua opini&#227;o, quais s&#227;o as principais diferen&#231;as entre a filosofia por tr&#225;s do &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt; e a das &lt;a href="http://www.improveit.com.br/xp/manifesto_agil"&gt;abordagens &#225;geis&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Qual a sua vis&#227;o da influ&#234;ncia de "certificados" como o &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt; nas licita&#231;&#245;es p&#250;blicas?&lt;/li&gt;
&lt;li&gt;Como voc&#234; avalia a forma como o &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt; trata as quest&#245;es humanas no desenvolvimento de software?&lt;/li&gt;
&lt;li&gt;Como &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; trata essas quest&#245;es?&lt;/li&gt;
&lt;li&gt;Como voc&#234; compararia a forma como o &lt;a href="http://pt.wikipedia.org/wiki/Mps.br"&gt;MPS.BR&lt;/a&gt; lida com mudan&#231;as nos requisitos, em rela&#231;&#227;o ao &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Como voc&#234;s t&#234;m tratado essa quest&#227;o no que se refere aos &lt;a href="http://www.improveit.com.br/xp/praticas/contrato"&gt;contratos de desenvolvimento de software&lt;/a&gt;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Na implanta&#231;&#227;o do &lt;a href="http://www.improveit.com.br/xp"&gt;Extreme Programming&lt;/a&gt;, a &lt;a href="http://www.fortesinformatica.com.br"&gt;Fortes Inform&#225;tica&lt;/a&gt; contou com treinamento e apoio da &lt;a href="http://www.improveit.com.br"&gt;Improve It&lt;/a&gt;. Veja algumas &lt;a href="http://www.improveit.com.br/fotos/album/72157601339868509"&gt;fotos do treinamento&lt;/a&gt; e &lt;a href="http://www.improveit.com.br/depoimentos"&gt;o que nossos clientes acham&lt;/a&gt; dos &lt;a href="http://www.improveit.com.br/servicos#treinamentos"&gt;treinamentos&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finalmente, veja abaixo algumas fotos de uma reuni&#227;o de planejamento realizada na &lt;a href="http://www.fortesinformatica.com.br"&gt;Fortes Infom&#225;tica&lt;/a&gt; h&#225; um m&#234;s. &lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/jogo-planejamento-fortes1.jpg" alt="Jogo do Planejamento, com clientes, na Fortes Inform&#225;tica (12/07/2007)." title="Jogo do Planejamento, com clientes, na Fortes Inform&#225;tica (12/07/2007)."/&gt;&lt;br/&gt;
&lt;img src="http://blog.improveit.com.br/files/jogo-planejamento-fortes2.jpg" alt="Jogo do Planejamento, com clientes, na Fortes Inform&#225;tica (12/07/2007)." title="Jogo do Planejamento, com clientes, na Fortes Inform&#225;tica (12/07/2007)."/&gt;&lt;br/&gt;
&lt;img src="http://blog.improveit.com.br/files/jogo-planejamento-fortes3.jpg" alt="Jogo do Planejamento, com clientes, na Fortes Inform&#225;tica (12/07/2007)." title="Jogo do Planejamento, com clientes, na Fortes Inform&#225;tica (12/07/2007)."/&gt;&lt;br/&gt;
&lt;img src="http://blog.improveit.com.br/files/jogo-planejamento-fortes4.jpg" alt="Jogo do Planejamento, com clientes, na Fortes Inform&#225;tica (12/07/2007)." title="Jogo do Planejamento, com clientes, na Fortes Inform&#225;tica (12/07/2007)."/&gt;&lt;br/&gt;
&lt;img src="http://blog.improveit.com.br/files/jogo-planejamento-fortes5.jpg" alt="Jogo do Planejamento, com clientes, na Fortes Inform&#225;tica (12/07/2007)." title="Jogo do Planejamento, com clientes, na Fortes Inform&#225;tica (12/07/2007)."/&gt;  &lt;/p&gt;</description>
      <pubDate>Fri, 10 Aug 2007 00:36:00 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:afe95cf2-c1a4-4c3b-8252-9f1a3d584a90</guid>
      <author>Vinicius Manh&#227;es Teles</author>
      <link>http://blog.improveit.com.br/articles/2007/08/10/improvecast-16-entrevista-clavius-tales-serie-experiencias-ageis</link>
      <category>xp</category>
      <category>podcast</category>
      <category>agile</category>
      <category>teste</category>
      <category>par</category>
      <category>treinamento</category>
      <category>mps.br</category>
      <category>cmmi</category>
      <category>workshop</category>
      <category>fotos</category>
      <category>qualidade</category>
      <category>refactoring</category>
      <category>retrospectiva</category>
    </item>
    <item>
      <title>Improvecast 15: Entrevista com Daniel Wildt na S&#233;rie Experi&#234;ncias &#193;geis</title>
      <description>&lt;p&gt;Essa semana temos in&#250;meros &lt;a href="http://www.improveit.com.br/podcast/improvecast-15-entrevista-daniel-wildt-experiencias-ageis"&gt;podcasts&lt;/a&gt; para colocar no ar. E s&#243; tem coisa boa! :-) Come&#231;amos nesta segunda-feira com o &lt;a href="http://blog.improveit.com.br/articles/2007/08/06/improvecast-14-entrevista-guilherme-silveira-serie-experiencias-ageis"&gt;podcast do Guilherme Silveira&lt;/a&gt; e agora, acaba de ser publicado o &lt;a href="http://www.improveit.com.br/podcast/improvecast-15-entrevista-daniel-wildt-experiencias-ageis"&gt;Improvecast 15&lt;/a&gt; no qual entrevistei &lt;strong&gt;&lt;a href="http://danielwildt.blogspot.com"&gt;Daniel Wildt&lt;/a&gt;&lt;/strong&gt;, desenvolvedor de software de Porto Alegre, que tem forte atua&#231;&#227;o nas comunidades de &lt;a href="http://pt.wikipedia.org/wiki/Delphi_%28linguagem_de_programa&#231;&#227;o%29"&gt;Delphi&lt;/a&gt;, &lt;a href="http://pt.wikipedia.org/wiki/Plataforma_Java"&gt;Java&lt;/a&gt; e &lt;a href="http://www.improveit.com.br/xp/manifesto_agil"&gt;desenvolvimento &#225;gil&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/daniel-wildt.gif" alt="Daniel Wildt" title="Daniel Wildt"/&gt;&lt;/p&gt;

&lt;p&gt;Esses foram alguns dos assuntos tratados no &lt;a href="http://www.improveit.com.br/podcast/improvecast-15-entrevista-daniel-wildt-experiencias-ageis"&gt;podcast&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Como foi seu primeiro contato com &lt;a href="http://www.improveit.com.br/xp/manifesto_agil"&gt;abordagens &#225;geis&lt;/a&gt; de desenvolvimento de software, tais como o &lt;a href="http://www.improveit.com.br/xp"&gt;Extreme Programming?
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;O que mais chamou sua aten&#231;&#227;o em rela&#231;&#227;o ao &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Voc&#234; usa &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; em seu trabalho di&#225;rio? De que forma?&lt;/li&gt;
&lt;li&gt;Que tipo de problemas voc&#234; tinha antes de adotar o &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; e o que o levou a querer adota-lo?&lt;/li&gt;
&lt;li&gt;Quais foram os principais benef&#237;cios que voc&#234; identificou no &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;, assim que come&#231;ou a trabalhar com ele?&lt;/li&gt;
&lt;li&gt;Que abordagem voc&#234; utilizou para adotar o &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; e quando come&#231;ou a ado&#231;&#227;o?&lt;/li&gt;
&lt;li&gt;Que &lt;a href="http://www.improveit.com.br/xp/praticas"&gt;pr&#225;ticas&lt;/a&gt; foram adotadas?&lt;/li&gt;
&lt;li&gt;Qual foi mais f&#225;cil?&lt;/li&gt;
&lt;li&gt;Qual foi mais dif&#237;cil e por que?&lt;/li&gt;
&lt;li&gt;Voc&#234; trabalha com &lt;a href="http://pt.wikipedia.org/wiki/Delphi_%28linguagem_de_programa&#231;&#227;o%29"&gt;Delphi&lt;/a&gt; h&#225; bastante tempo. Uma das caracter&#237;sticas mais not&#225;veis do &lt;a href="http://pt.wikipedia.org/wiki/Delphi_%28linguagem_de_programa&#231;&#227;o%29"&gt;Delphi&lt;/a&gt; &#233; a possibilidade de desenvolver rapidamente usando os componentes oferecidos pela plataforma. Entretanto, muitos desenvolvedores tendem a desenvolver de forma procedural, o que eventualmente afeta a capacidade de &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testar&lt;/a&gt; o c&#243;digo. Como voc&#234; vem trabalhando essa quest&#227;o da &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;automa&#231;&#227;o de testes&lt;/a&gt; no &lt;a href="http://pt.wikipedia.org/wiki/Delphi_%28linguagem_de_programa&#231;&#227;o%29"&gt;Delphi&lt;/a&gt; e que ferramentas voc&#234; utiliza?&lt;/li&gt;
&lt;li&gt;Como &#233; o suporte &#224; &lt;a href="http://www.improveit.com.br/xp/praticas/refatoracao"&gt;refatora&#231;&#227;o&lt;/a&gt; no &lt;a href="http://pt.wikipedia.org/wiki/Delphi_%28linguagem_de_programa&#231;&#227;o%29"&gt;Delphi&lt;/a&gt; atualmente?&lt;/li&gt;
&lt;li&gt;Na sua atua&#231;&#227;o como professor universit&#225;rio, voc&#234; ensina &lt;a href="http://www.improveit.com.br/xp/manifesto_agil"&gt;abordagens &#225;geis&lt;/a&gt; de desenvolvimento?&lt;/li&gt;
&lt;li&gt;Pelo que voc&#234; tem observado, as universidades est&#227;o come&#231;ando a ensinar &lt;a href="http://www.improveit.com.br/xp/manifesto_agil"&gt;metodologias &#225;geis&lt;/a&gt;, ou ainda est&#227;o baseadas apenas nos &lt;a href="http://www.improveit.com.br/xp/desenvolvimento_tradicional"&gt;modelos tradicionais&lt;/a&gt; de desenvolvimento?&lt;/li&gt;
&lt;li&gt;Qual a import&#226;ncia dos &lt;a href="http://www.improveit.com.br/xp/listas"&gt;grupos de usu&#225;rios&lt;/a&gt; na sua opini&#227;o?&lt;/li&gt;
&lt;li&gt;Voc&#234; foi, ou ainda &#233; vinculado a diversos grupos de usu&#225;rios, tais como o &lt;a href="http://www.rsjug.org"&gt;RSJUG&lt;/a&gt;, o &lt;a href="http://www.dug-rs.org"&gt;DUG-RS&lt;/a&gt; e o &lt;a href="http://tech.groups.yahoo.com/group/XP-RS"&gt;XP-RS&lt;/a&gt;. Voc&#234; poderia falar um pouco sobre cada um deles?&lt;/li&gt;
&lt;li&gt;No final de 2004 o &lt;a href="http://tech.groups.yahoo.com/group/XP-RS"&gt;XP-RS&lt;/a&gt; promoveu um excelente evento chamado &lt;a href="http://www.javafree.org/news/view.jf?idNew=1400"&gt;Extreme Day&lt;/a&gt;. O que foi esse evento e o que aconteceu nele?&lt;/li&gt;
&lt;li&gt;Quando ser&#225; o pr&#243;ximo &lt;a href="http://www.javafree.org/news/view.jf?idNew=1400"&gt;Extreme Day&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Se voc&#234;s tivesse que justificar para algu&#233;m o uso do &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;, o que voc&#234; diria?&lt;/li&gt;
&lt;li&gt;Voc&#234; poderia falar um pouco sobre a nova coluna que vai escrever nas publica&#231;&#245;es da &lt;a href="http://www.devmedia.com.br"&gt;DevMedia&lt;/a&gt;, sobre &lt;a href="http://www.improveit.com.br/xp/manifesto_agil"&gt;desenvolvimento &#225;gil&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Quais s&#227;o seus planos para o futuro, na &#225;rea de &lt;a href="http://www.improveit.com.br/xp/manifesto_agil"&gt;desenvolvimento &#225;gil&lt;/a&gt;?&lt;/li&gt;
&lt;/ul&gt;</description>
      <pubDate>Mon, 06 Aug 2007 22:43:00 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:bf6f9327-cdd0-4e2d-96fe-76ffb66fd2dc</guid>
      <author>Vinicius Manh&#227;es Teles</author>
      <link>http://blog.improveit.com.br/articles/2007/08/06/improvecast-15-entrevista-daniel-wildt-serie-experiencias-ageis</link>
      <category>xp</category>
      <category>agile</category>
      <category>podcast</category>
      <category>lean</category>
      <category>teste</category>
      <category>refactoring</category>
    </item>
    <item>
      <title>Entrevista com Alisson Vale na S&#233;rie Experi&#234;ncias &#193;geis</title>
      <description>&lt;p&gt;Acaba de ser publicado o &lt;a href="http://www.improveit.com.br/podcast/improvecast-13-entrevista-alisson-vale-experiencias-ageis"&gt;Improvecast 13&lt;/a&gt; no qual entrevistei &lt;strong&gt;&lt;a href="http://www.phidelis.com.br/blogs/alissonvale"&gt;Alisson Vale&lt;/a&gt;&lt;/strong&gt;, Diretor da &lt;a href="http://www.phidelis.com.br"&gt;Phidelis Tecnologia&lt;/a&gt; e L&#237;der de Projeto do &lt;a href="http://www.phidelis.com.br/produto.asp?mn=1"&gt;Phidelis Acad&#234;mico&lt;/a&gt;. &lt;a href="http://www.phidelis.com.br/blogs/alissonvale"&gt;Alisson&lt;/a&gt; utiliza &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; desde 2003 e liderou a constru&#231;&#227;o de um sistema web bastante grande, completamente desenvolvido em &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;. Essa &#233; uma das entrevistas mais not&#225;veis at&#233; o momento, na &lt;strong&gt;S&#233;rie Experi&#234;ncias &#193;geis&lt;/strong&gt;, j&#225; que aborda a utiliza&#231;&#227;o de &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;, com sucesso, durante os &#250;ltimos quatro anos.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/alisson-vale.jpg" alt="Alisson Vale" title="Alisson Vale"/&gt;&lt;/p&gt;

&lt;p&gt;Esses foram alguns dos assuntos tratados no &lt;a href="http://www.improveit.com.br/podcast/improvecast-13-entrevista-alisson-vale-experiencias-ageis"&gt;podcast&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O que &#233; a &lt;a href="http://www.phidelis.com.br"&gt;Phidelis Tecnologia&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Em que &#225;reas ela atua?&lt;/li&gt;
&lt;li&gt;Como foi seu primeiro contato com o &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Qual foi sua impress&#227;o inicial sobre o &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Quais foram os principais benef&#237;cios que voc&#234; identificou no &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;, assim que come&#231;ou a trabalhar com ele?&lt;/li&gt;
&lt;li&gt;Que &lt;a href="http://www.improveit.com.br/xp/praticas"&gt;pr&#225;ticas&lt;/a&gt; voc&#234; utilizou no seu primeiro projeto &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt; e quais ficaram de fora?&lt;/li&gt;
&lt;li&gt;O que &#233; o &lt;a href="http://www.phidelis.com.br/produto.asp?mn=1"&gt;Phidelis Acad&#234;mico&lt;/a&gt;? &lt;/li&gt;
&lt;li&gt;Voc&#234; poderia falar um pouco mais sobre as funcionalidades do &lt;a href="http://www.phidelis.com.br/produto.asp?mn=1"&gt;Phidelis&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Voc&#234; poderia falar um pouco sobre o ambiente de desenvolvimento?&lt;/li&gt;
&lt;li&gt;Qual o tamanho da equipe?&lt;/li&gt;
&lt;li&gt;Como as abordagens &#225;geis v&#234;m sendo usadas no desenvolvimento do &lt;a href="http://www.phidelis.com.br/produto.asp?mn=1"&gt;Phidelis&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Qual o tamanho das itera&#231;&#245;es durante o desenvolvimento do &lt;a href="http://www.phidelis.com.br/produto.asp?mn=1"&gt;Phidelis&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Qual o tamanho das itera&#231;&#245;es atualmente?&lt;/li&gt;
&lt;li&gt;Qual foi a &lt;a href="http://www.improveit.com.br/xp/praticas"&gt;pr&#225;tica&lt;/a&gt; mais f&#225;cil de adotar?&lt;/li&gt;
&lt;li&gt;Qual foi a mais dif&#237;cil e por que?&lt;/li&gt;
&lt;li&gt;Como voc&#234;s fazem a estimativa das &lt;a href="http://www.improveit.com.br/xp/praticas/historias"&gt;hist&#243;rias&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Como voc&#234;s configuraram o &lt;a href="http://www.improveit.com.br/xp/praticas/ambiente_informativo"&gt;ambiente visual e informativo&lt;/a&gt; de voc&#234;s?&lt;/li&gt;
&lt;li&gt;Quais os gr&#225;ficos que voc&#234;s utilizam para acompanhamento do projeto?&lt;/li&gt;
&lt;li&gt;Por que voc&#234;s trabalham com dois &lt;a href="http://www.improveit.com.br/xp/praticas/reuniao_pe"&gt;stand up meetings&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Como utilizam a pr&#225;tica de &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;desenvolvimento orientado a testes&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Como os eventuais bugs s&#227;o tratados?&lt;/li&gt;
&lt;li&gt;Como voc&#234;s t&#234;m utilizado a &lt;a href="http://www.improveit.com.br/xp/praticas/programacao_par"&gt;programa&#231;&#227;o em par&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Como &#233; feito o processo de &lt;a href="http://www.improveit.com.br/xp/praticas/integracao"&gt;integra&#231;&#227;o cont&#237;nua&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Como voc&#234;s utilizam &lt;a href="http://www.improveit.com.br/xp/principios/reflexao"&gt;retrospectivas&lt;/a&gt; durante o desenvolvimento?&lt;/li&gt;
&lt;li&gt;Como voc&#234;s lidam com solicita&#231;&#245;es de diferentes clientes de um mesmo produto?&lt;/li&gt;
&lt;li&gt;Como isso &#233; tratado com esses clientes do &lt;a href="http://www.improveit.com.br/xp/praticas/contrato"&gt;ponto de vista contratual&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Qual o uso que voc&#234;s fazem do &lt;a href="http://pt.wikipedia.org/wiki/Wiki"&gt;wiki&lt;/a&gt; no projeto?&lt;/li&gt;
&lt;li&gt;E o &lt;a href="http://pt.wikipedia.org/wiki/Blog"&gt;blog&lt;/a&gt; interno, qual o prop&#243;sito dele?&lt;/li&gt;
&lt;li&gt;Como foi o processo de convencer seu cliente inicial e sua equipe a utilizarem o &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Quais foram as principais dificuldades que voc&#234; enfrentou?&lt;/li&gt;
&lt;li&gt;Como &#233; o relacionamento dos membros da equipe, com o uso do &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Como &#233; o relacionamento com os clientes?&lt;/li&gt;
&lt;li&gt;No in&#237;cio do ano voc&#234; fez o treinamento de &lt;a href="http://www.scrumalliance.org/view/CSM_description"&gt;Certified Scrum Master&lt;/a&gt;. A partir do treinamento, e do que voc&#234; aprendeu sobre &lt;a href="http://www.improveit.com.br/scrum"&gt;Scrum&lt;/a&gt;, quais os aspectos que voc&#234; considera novos, em rela&#231;&#227;o ao que voc&#234; j&#225; vinha utilizando em &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Antes de fazer o curso voc&#234; sabia o que realmente significava ser um &lt;a href="http://www.scrumalliance.org/view/CSM_description"&gt;Certified Scrum Master&lt;/a&gt;? A certifica&#231;&#227;o correspondeu a suas expectativas?&lt;/li&gt;
&lt;li&gt;Quais s&#227;o seus planos para o futuro em rela&#231;&#227;o ao &lt;a href="http://www.phidelis.com.br/produto.asp?mn=1"&gt;Phidelis&lt;/a&gt; e &#224;s &lt;a href="http://www.improveit.com.br/xp/manifesto_agil"&gt;abordagens &#225;geis&lt;/a&gt; de desenvolvimento?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse &lt;a href="http://www.improveit.com.br/podcast/improvecast-13-entrevista-alisson-vale-experiencias-ageis"&gt;podcast&lt;/a&gt; foi gravado no dia 12 de julho de 2007 e s&#243; est&#225; sendo publicado agora, mais de duas semanas depois. Houve v&#225;rias raz&#245;es para essa demora. A principal delas foi que estive extremamente atarefado nessas &#250;ltimas semanas o que me impediu de trabalhar na edi&#231;&#227;o. Para agravar o problema, a conex&#227;o da rede n&#227;o estava muito boa no dia. Isso dificultou a conversa pelo Skype e causou problemas em v&#225;rios pontos da grava&#231;&#227;o, tornando a edi&#231;&#227;o muito mais lenta e trabalhosa. O resultado final ficou um pouco comprometido, mas acredito que est&#225; compreens&#237;vel na maior parte. Pe&#231;o a compreens&#227;o e a paci&#234;ncia de voc&#234;s para que fa&#231;am um esfor&#231;o de escutar at&#233; o fim. A experi&#234;ncia do &lt;a href="http://www.phidelis.com.br/blogs/alissonvale"&gt;Alisson&lt;/a&gt; &#233; valiosa. Trata-se de uma verdadeira aula que merece ser escutada com aten&#231;&#227;o. &lt;/p&gt;</description>
      <pubDate>Sun, 29 Jul 2007 19:11:00 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:07e7f828-0ee5-4c5d-b0ec-6d78ea3e5550</guid>
      <author>Vinicius Manh&#227;es Teles</author>
      <link>http://blog.improveit.com.br/articles/2007/07/29/entrevista-alisson-vale-serie-experiencias-ageis</link>
      <category>xp</category>
      <category>agile</category>
      <category>scrum</category>
      <category>lean</category>
      <category>podcast</category>
      <category>refactoring</category>
      <category>teste</category>
    </item>
    <item>
      <title>Ruby, &#193;gil ou RAD ?</title>
      <description>&lt;p&gt;Ontem recebi um e-mail do meu amigo Mestre, tamb&#233;m conhecido como Rodrigo Lemos, me questionando sobre &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; ser &#225;gil ou &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt; e ent&#227;o se iniciou um bate papo bem legal sobre essa linguagem e sobre o &lt;a href="http://pt.wikipedia.org/wiki/Framework"&gt;framework&lt;/a&gt; &lt;a href="http://www.rubyonrails.com/"&gt;rails&lt;/a&gt;. Pensei em escrever um artigo sobre isso mas achei mais v&#225;lido compartilhar com voc&#234;s apenas retirando o nome do lugar onde ele trabalha e de onde trabalhamos juntos.&lt;/p&gt;

&lt;h2&gt;E-mail original:&lt;/h2&gt;

&lt;p&gt;As pessoas costumam confundir muito os dois conceitos (&#193;gil X &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt;). Aqui no meu trabalho tem um pessoal que AMA Delphi sobre todas as coisas. Da&#237; eu resolvi dizer que preferia as plataformas "&#225;geis" e come&#231;aram a dizer que n&#227;o havia nada mais "&#225;gil" do que Delphi, que era muito mais "&#225;gil" do que Java (em tempo: Java sozinho n&#227;o &#233; &#225;gil; s&#243; o &#233; em conjunto com outras tecnologias, tipo junit, &lt;a href="http://cruisecontrol.sourceforge.net/"&gt;cruisecontrol&lt;/a&gt;, mock objects, IDE com &lt;a href="http://en.wikipedia.org/wiki/Refactoring"&gt;refactoring&lt;/a&gt;, entre outras ferramentas).&lt;/p&gt;

&lt;p&gt;O exemplo t&#237;pico que essa tribo d&#225; pra dizer que isso Delphi &#233; "&#225;gil" &#233; dizer que &#233; poss&#237;vel montar uma aplica&#231;&#227;o com cadastro completo (Create, Read, Update, Delete), valida&#231;&#227;o de dados e emiss&#227;o de relat&#243;rios com meia-d&#250;zia de cliques, em 5 minutos.&lt;/p&gt;

&lt;p&gt;S&#243; que esta &#233;, na verdade, a descri&#231;&#227;o de &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt; (Rapid Application Development &#233; voc&#234; conseguir montar uma aplica&#231;&#227;o em pouqu&#237;ssimo tempo, com pouqu&#237;ssima redund&#226;ncia de codifica&#231;&#227;o; &#233; algo t&#237;pico de ferramentas visuais em que voc&#234; arrasta meia d&#250;zia de controle e preenche umas propriedadezinhas).&lt;/p&gt;

&lt;p&gt;Da&#237; expliquei que "desenvolvimento &#225;gil" era algo muito maior, que era agilidade na hora de fazer uma modifica&#231;&#227;o monstruosa num sistem&#227;o que j&#225; est&#225; no ar, funcionando h&#225; s&#233;culos. Acho que sempre funcionou muito bem no caso do nosso antigo trabalho: Java (biblioteca maravilhosa) + Eclipse (&lt;a href="http://en.wikipedia.org/wiki/Refactoring"&gt;refactoring&lt;/a&gt;) + jUnit/dbUnit/easyMock/&lt;a href="http://cruisecontrol.sourceforge.net/"&gt;cruisecontrol&lt;/a&gt; (bateria de &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt; automatizados) + ant (automa&#231;&#227;o) + CVS/Subversion (controle de altera&#231;&#245;es). Sempre fizemos modifica&#231;&#245;es estruturais important&#237;ssimas, que simplesmente n&#227;o d&#225; pra fazer nessas aplica&#231;&#245;ezinhas &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt; geradas literalmente PELO Delphi. Essas tralhas &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt;, uma vez que tenha sido feito, &#233; quase imposs&#237;vel modificar porque fica tudo quebrado. No m&#225;ximo fazem modifica&#231;&#245;es de labels, f&#243;rmulas de valida&#231;&#227;o simples etc.&lt;/p&gt;

&lt;p&gt;No final se convenceram que Delphi n&#227;o &#233; "&#225;gil" (pode ser como uma palavra gen&#233;rica da l&#237;ngua portuguesa, que quer dizer algo como "r&#225;pido"... mas definitivamente n&#227;o no conceito de desenvolvimento de software).&lt;/p&gt;

&lt;p&gt;Tamb&#233;m aqui no meu trabalho usa-se muito desenvolvimento de sistemas sobre Lotus Notes. Que &#233; muito ruim. As ferramentas de edi&#231;&#227;o s&#227;o uma porcaria (muito mais porcaria que o Delphi). O modelo de dados &#233; horr&#237;vel e ultrapassado. Mas o pior de tudo, pior de tudo mesmo &#233; que esta &#233; &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Ou seja, provavelmente um despreparado veio aqui no trabalho e mostrou pra n&#227;o sei quem (um diretor, superintendente ou coisa que o valha) como era poss&#237;vel fazer "aplica&#231;&#245;es" no Notes em 10 minutos. Claro. &#201; rid&#237;culo montar uma aplica&#231;&#227;o do zero no Notes. &#201; realmente muito r&#225;pido: basta criar meia-d&#250;zia de forms, colocar valida&#231;&#227;o e uns bot&#245;es de a&#231;&#227;o e pronto. T&#225; tudo pronto. Ele faz toda a renderiza&#231;&#227;o, armazenamento e recupera&#231;&#227;o, cria&#231;&#227;o e remo&#231;&#227;o de registros, impress&#227;o de formul&#225;rios, vis&#245;es de resumo, envio de e-mail e um monte de outras coisas.&lt;/p&gt;

&lt;p&gt;O problema que temos &#233;: vai mudar tudo o que foi feito.... I-M-P-O-S-S-&#205;-V-E-L. N&#227;o tem como. &#201; tudo amarrado demais e ao mesmo tempo mal-amarrado. D&#225; medo (muito medo) de mudar uma v&#237;rgula de lugar, porque ningu&#233;m sabe o que vai acontecer no resto do "sistema".&lt;/p&gt;

&lt;p&gt;A&#237;, quando recebi seu e-mail, lembrei que esse tipo de apresenta&#231;&#227;ozinha mostrando como montar uma aplica&#231;&#227;o em &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; (&lt;a href="http://www.rubyonrails.com/"&gt;ferrovi&#225;rio&lt;/a&gt; ou n&#227;o) em 5 minutinhos era a forma mais comum de mostrar seus pontos fortes. Como n&#227;o conhe&#231;o nada de &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt;, fiquei pensando se n&#227;o era s&#243; mais um hype, como foi o Notes, e como ainda &#233; o Delphi (na minha humilde opini&#227;o). Por isso te perguntei.&lt;/p&gt;

&lt;p&gt;E volto a perguntar: e a&#237;, &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; &#233; &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt; ou &#193;gil? A plataforma &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; suporta os processos de desenvolvimento &#225;gil (teste, &lt;a href="http://en.wikipedia.org/wiki/Refactoring"&gt;refactoring&lt;/a&gt; etc.)? &#201; f&#225;cil fazer uma mudan&#231;a estrutural (ou seja, uma mudan&#231;a gigante) e garantir que tudo continua funcionando? Ou depende s&#243; do talento/experi&#234;ncia do programador (como era h&#225; 30 anos atr&#225;s no mainframe)?&lt;/p&gt;

&lt;h2&gt;Minha resposta:&lt;/h2&gt;

&lt;p&gt;Muito boa sua explica&#231;&#227;o e melhor ainda o seu questionamento.
Acho que o &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; &#233; tanto &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt; quanto &#193;gil!&lt;/p&gt;

&lt;p&gt;O &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt;, assim como o java, possui uma &#243;tima ferramenta de &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt; que tr&#225;s todas as vantagens que a gente j&#225; sabe.&lt;/p&gt;

&lt;p&gt;Quando se fala de &lt;a href="http://www.rubyonrails.com/"&gt;rails&lt;/a&gt; as coisas melhoram ainda mais, pois n&#227;o s&#243; existe a parte de &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt; como ele j&#225; tem na sua estrutura tudo organizadinho para os &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt;, com separa&#231;&#227;o de &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt; unit&#225;rios, funcionais e de aceita&#231;&#227;o. &lt;/p&gt;

&lt;p&gt;Existe ainda o conceito de fixtures que nada mais &#233; do que aqueles cen&#225;rios de &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt; que a gente escrevia em XML no nosso antigo trabalho s&#243; que com o formato YAML. Sem contar que com o uso de um plugin voc&#234; passa a ter &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt; no selenium com a possibilidade de escrev&#234;-los em &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; usando recursos n&#227;o dispon&#237;veis quando se escreve em html.&lt;/p&gt;

&lt;p&gt;Existe o mocha, que &#233; o equivalente ao Easy Mock, para auxiliar nos &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt;.
Devido a caracter&#237;stica din&#226;mica da linguagem podemos fazer algumas coisas em &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt; que em java ou n&#227;o s&#227;o poss&#237;veis ou s&#227;o muito complexas. Para exemplificar:&lt;/p&gt;

&lt;p&gt;1 - Algo imposs&#237;vel (nunca consegui fazer) em java e simples em &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; &#233; "mockar" m&#233;todos est&#225;ticos.&lt;/p&gt;

&lt;p&gt;2 - &#201; poss&#237;vel trocar a visibilidade dos m&#233;todos privados facilmente e assim testa-los. Em java &#233; poss&#237;vel, mas muito chato pois envolve reflex&#227;o.
Para finalizar em &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; existe o cruisecontrol.rb que &#233; exatamente a mesma coisa que o de java s&#243; que com uma interface web mais bonitinha.&lt;/p&gt;

&lt;p&gt;Bem, acho que na parte de &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt; podemos dizer que &#233; &#193;gil, de acordo ?&lt;/p&gt;

&lt;p&gt;Agora com rela&#231;&#227;o a ferramenta de &lt;a href="http://en.wikipedia.org/wiki/Refactoring"&gt;refactoring&lt;/a&gt; realmente o &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; ainda deixa a desejar pois n&#227;o faz as coisas de forma t&#227;o automatizada quanto o java. Por exemplo, n&#227;o existe como extrair um trecho de c&#243;digo para um m&#233;todo de forma autom&#225;tica.&lt;/p&gt;

&lt;p&gt;Isso &#233; chato? SIM, muito! Por&#233;m n&#227;o &#233; o fim do mundo pois temos o suporte dos &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt; e como escrevemos MUITO menos c&#243;digo isso acaba ficando mais simples de se fazer.&lt;/p&gt;

&lt;p&gt;Ent&#227;o nesse aspecto &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; n&#227;o &#233; t&#227;o &#225;gil assim mas tamb&#233;m n&#227;o deixa de ser por isso! Certo?&lt;/p&gt;

&lt;p&gt;Na parte de automa&#231;&#227;o existe o RAKE que &#233; um similar ao ANT s&#243; que novamente o XML &#233; deixado de lado e escrevemos nossas tasks em &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; mesmo. Acho que nessa parte podemos dizer que &#233; &#193;gil.&lt;/p&gt;

&lt;p&gt;A parte de controle de vers&#227;o nem precisamos discutir.&lt;/p&gt;

&lt;p&gt;Expliquei o porqu&#234; considero &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; &#225;gil, agora tenho que explicar porque ele tamb&#233;m seria &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Creio que o &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; sozinho n&#227;o seria &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt; mas o &lt;a href="http://pt.wikipedia.org/wiki/Framework"&gt;framework&lt;/a&gt; &lt;a href="http://www.rubyonrails.com/"&gt;Ruby On Rails&lt;/a&gt; definitivamente &#233;. Realmente aquelas apresenta&#231;&#245;es que escrevem aplica&#231;&#245;es em 10,20 ou 25 minutos deveriam ser encaradas como uma motiva&#231;&#227;o e n&#227;o para mostrar tudo da linguagem nem do &lt;a href="http://pt.wikipedia.org/wiki/Framework"&gt;framework&lt;/a&gt; pois em quase todas esses aspectos que voc&#234; questionou s&#227;o deixados de lado.&lt;/p&gt;

&lt;p&gt;&#201; perfeitamente poss&#237;vel se escrever aplica&#231;&#245;es de forma r&#225;pida e bem estruturada com &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt;, integra&#231;&#227;o continua automatizada e muito mais.&lt;/p&gt;

&lt;p&gt;&#201; prov&#225;vel que voc&#234; n&#227;o entenda como isso &#233; poss&#237;vel por n&#227;o conhecer muito a fundo o &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; e o &lt;a href="http://www.rubyonrails.com/"&gt;rails&lt;/a&gt; mas vou te explicar umas coisinhas para voc&#234; ficar mais dentro do contexto.&lt;/p&gt;

&lt;p&gt;Um dos principais fatores que permite esse desenvolvimento r&#225;pido &#233; o principio de Convention over Configuration onde poupamos muito tempo com configura&#231;&#245;es simplesmente por obedecer padr&#245;es bem simples, como localiza&#231;&#227;o de classes, nome de m&#233;todos, tabelas e assim por diante.&lt;/p&gt;

&lt;p&gt;Al&#233;m disso o &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; possui algumas bibliotecas que facilitam muito o nosso trabalho e vou destacar duas que est&#227;o presentes no &lt;a href="http://www.rubyonrails.com/"&gt;rails&lt;/a&gt; (na verdade elas vieram do &lt;a href="http://www.rubyonrails.com/"&gt;rails&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;1 - Active Record:  Ele nos permite relacionar nossas classes de modelo com o nosso banco de dados. Seria algo semelhante ao EJB, HIBERNATE s&#243; n&#227;o &#233; necess&#225;rio fazer nenhum mapeamento com XML, basta criar a classe com nome composto pelo singular do nome da tabela e herdar do Active Record. Mas isso n&#227;o &#233; t&#227;o engessado como pode parecer, podemos n&#227;o usar plural e singular, assim como usar um nome de tabela diferente mudando-se duas linhas de c&#243;digo. Ele tamb&#233;m permite o mapeamento de relacionamentos de forma bem simples.&lt;/p&gt;

&lt;p&gt;N&#227;o &#233; necess&#225;rio mapear os campos com get and set pois ele utiliza o conceito de method_missing para descobrir diretamente no banco de dados os campos e gerar em tempo de execu&#231;&#227;o.
S&#243; para voc&#234; entender um pouco melhor vou te dar o exemplo de duas classes que est&#227;o relacionadas e de uma opera&#231;&#227;o de Create.&lt;/p&gt;

&lt;p&gt;class Estate &amp;lt; ActiveRecord::Base
    belongs_to :city
    validates&lt;em&gt;presence&lt;/em&gt;of :city_state, :message =&gt; "Cidade inv&#225;lida"
end&lt;/p&gt;

&lt;p&gt;class City &amp;lt; ActiveRecord::Base
  has_many :estate
end&lt;/p&gt;

&lt;p&gt;e = Estate.new
e.name = "Blah"
e.city = City.find_by_name("Rio de Janeiro")
e.save&lt;/p&gt;

&lt;p&gt;Com rela&#231;&#227;o ao find usado &#233; semelhante a historia do get and set, ele te disponibiliza em tempo de execu&#231;&#227;o m&#233;todos find&lt;em&gt;by_campo. Para resolver o problema do relacionamento basta que na tabela Estate exista a coluna city&lt;/em&gt;id.&lt;/p&gt;

&lt;p&gt;2 - Action Pack:  Com ele temos uma jun&#231;&#227;o do seu chamelleon com o LABASE, onde temos os conceitos de controller e actions e ao mesmo tempo podemos ter um, ou mais, layouts que d&#225; a cara geral da aplica&#231;&#227;o e onde s&#243; escrevemos o trecho de tela que nos interessa. Ele nos oferece v&#225;rios helpers para facilitar a constru&#231;&#227;o das nossas views que s&#227;o chamadas de rhtml e s&#227;o similares ao JSP e as telas de PHP.&lt;/p&gt;

&lt;p&gt;Acho que vale destacar tamb&#233;m que em &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; existe o RJS, onde escrevemos c&#243;digo em &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; e eles s&#227;o transformados em javascript tornando mais f&#225;cil fazer determinadas coisas em AJAX. Falando em AJAX ele j&#225; tem todo o suporte ao scriptaculos, tornando trivial gerar uma tela usando AJAX.&lt;/p&gt;

&lt;p&gt;Mestre, eu achei realmente v&#225;lido esse seu questionamento e espero ter explicado um pouquinho de v&#225;rias coisas e que voc&#234; entenda que n&#227;o &#233; apenas hype, a coisa &#233; realmente boa!&lt;/p&gt;

&lt;p&gt;V&#225;rias pessoas criticam e defendem outra linguagem sem conhecer e voc&#234; foi bem coerente em questionar sobre alguma coisa que voc&#234; n&#227;o conhece t&#227;o a fundo.&lt;/p&gt;

&lt;h2&gt;Resposta dele:&lt;/h2&gt;

&lt;p&gt;Ah bom. Legal que as coisas sejam assim. &#201; que eu fico muito, muito preocupado mesmo com o hype que se cria em torno de uma nova tecnologia. E fico com a pulga atr&#225;s da orelha sempre que vejo essas apresenta&#231;&#245;es &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt;, que pra mim parecem uma engana&#231;&#227;o (n&#227;o que o fato de ser &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt; em si seja ruim; acontece que estamos fartos de sistemas que come&#231;am &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt; e viram uma dor-de-cabe&#231;a, uma &#226;ncora que arrasta uma institui&#231;&#227;o). Eu gostaria at&#233; de sugerir, mais pra voc&#234;s do que pra mim (que dificilmente vou usar &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; algum dia por aqui), que fa&#231;am apresenta&#231;&#245;es mostrando o lado &#225;gil da plataforma; que comecem com um sistema pronto, que seja grande, e fa&#231;am altera&#231;&#245;es PROFUNDAS no mesmo, pra mostrar que aquilo n&#227;o vai virar um peso com o tempo. Da minha parte (ok, sou uma minoria aqui), eu olharia com bons olhos uma tecnologia que come&#231;asse a ser apresentada desta forma, e n&#227;o da forma &lt;a href="http://pt.wikipedia.org/wiki/RAD"&gt;RAD&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&#201; uma pena n&#227;o ter ainda a parte de &lt;a href="http://en.wikipedia.org/wiki/Refactoring"&gt;refactoring&lt;/a&gt; bem resolvida. Na verdade, Java tamb&#233;m n&#227;o tem &lt;a href="http://en.wikipedia.org/wiki/Refactoring"&gt;refactoring&lt;/a&gt;, quem tem &#233; o Eclipse, o IDEA (ser&#225; que o JBuilder j&#225; tem alguma coisa) etc. O povo do Eclipse n&#227;o est&#225; fazendo nada pra &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; n&#227;o?&lt;/p&gt;

&lt;p&gt;Quanto ao "Convention over Configuration", j&#225; tinha notado que algumas tecnologias caminhavam nesta dire&#231;&#227;o (por exemplo, o XDoclet, que "infere" coisas a partir da cara da classe, mesmo que n&#227;o estejam explicitamente configuradas como tags). Acho que podiam avan&#231;ar ainda mais.&lt;/p&gt;

&lt;p&gt;Sobre o ActiveRecord, muito legal que uma camada de persist&#234;ncia possa ser constru&#237;da de forma t&#227;o simples. &#201; realmente algo de que qualquer linguagem carece... e o pior &#233; que persist&#234;ncia nem &#233; um problema novo nem raro... TODOS os sistema de informa&#231;&#245;es (e H&#193; D&#201;CADAS) PRECISAM persistir informa&#231;&#245;es. Meu sonho era que isso fosse ainda mais um passo adiante: que s&#243; o fato de existir uma tabela no banco de dados j&#225; criasse a classe on-the-fly (obviamente com a possibilidade de se programar algum comportamento espec&#237;fico de valida&#231;&#227;o/verifica&#231;&#227;o/aviso/notifica&#231;&#227;o para altera&#231;&#227;o/cria&#231;&#227;o/remo&#231;&#227;o de registros) sei l&#225; de que forma, seja por uma m&#225;quina virtual pirada, ClassLoader malandreado ou sei l&#225; o qu&#234;.&lt;/p&gt;

&lt;p&gt;Mas, ainda sobre o ActiveRecord, me chama aten&#231;&#227;o a necessidade de herdar de uma classe. Espero que &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; tenha heran&#231;a m&#250;ltipla (uma grande falha do Java); porque se s&#243; for permitida a heran&#231;a simples, ent&#227;o o conceito de "super-classe" &#233; um artigo de luxo (j&#225; que cada classe pode possuir apenas uma super-classe) e n&#227;o deveria ser desperdi&#231;ado na implementa&#231;&#227;o de um aspecto puramente tecnol&#243;gico (ao inv&#233;s disso, esse artigo de luxo deve ser gasto para fins mais nobres, como a implementa&#231;&#227;o da verdadeira hierarquia objetos do mundo real no modelo de dados da aplica&#231;&#227;o). Obviamente essas considera&#231;&#245;es morrem se for permitida heran&#231;a m&#250;ltipla.&lt;/p&gt;

&lt;p&gt;Valeu pelos esclarecimentos.&lt;/p&gt;

&lt;h2&gt;Mais uma resposta minha:&lt;/h2&gt;

&lt;p&gt;Mestre, em &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; existe um conceito de mixin que permite que voc&#234; fa&#231;a a heran&#231;a m&#250;ltipla. Ent&#227;o esse problema estaria resolvido. Vou bolar um exemplinho e te mando em breve. Me cobra !&lt;/p&gt;

&lt;p&gt;Com rela&#231;&#227;o ao seu sonho de on-the-fly ele existe em &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt;! Existe um plugin chamado &lt;a href="http://magicmodels.rubyforge.org/"&gt;Magic Model&lt;/a&gt; que permite isso.&lt;/p&gt;</description>
      <pubDate>Tue, 22 May 2007 18:20:00 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:9d52b821-cb4f-4b49-a397-9f289e490d15</guid>
      <author>Marcos Tapaj&#243;s</author>
      <link>http://blog.improveit.com.br/articles/2007/05/22/ruby-%C3%81gil-ou-rad</link>
      <category>ruby</category>
      <category>agile</category>
      <category>rails</category>
      <category>teste</category>
      <category>refactoring</category>
    </item>
    <item>
      <title>Time que est&#225; ganhando n&#227;o se mexe ?</title>
      <description>&lt;p&gt;ERRADO ! Desde pequeno escuto essa frase e acho que nunca tinha parado para pensar muito nisso mas hoje algumas coisas me chamaram aten&#231;&#227;o. Na verdade acho que tudo come&#231;ou na semana passada mas como s&#243; hoje tive um pouco mais de tempo comecei a organizar minhas ideias.&lt;/p&gt;

&lt;p&gt;Como fiquei preso fora da minha garagem e tive que ir trabalhar de metro resolvi ocupar meu tempo na leitura do livro &lt;a href="http://www.livrariasaraiva.com.br/produto/produto.dll/detalhe?pro_id=1566546&amp;amp;ID=C913B85C7D70409162B0B0221&amp;amp;PAC_ID=18662"&gt;Transformando suor em ouro&lt;/a&gt; do &lt;a href="http://pt.wikipedia.org/wiki/Bernardo_Rocha_de_Rezende"&gt;Bernardinho&lt;/a&gt; que &#233; um livro muito bom pois &#233; muito mais do que uma biografia, &#233; uma li&#231;&#227;o de vida. S&#227;o in&#250;meras as li&#231;&#245;es que ele escreve nesse livro e sabiamente ele diz que em time que t&#225; ganhando se mexe sim, para continuar ganhando.&lt;/p&gt;

&lt;p&gt;Semana passada, em um dos projetos da &lt;a href="http://www.improveit.com.br"&gt;empresa&lt;/a&gt; vimos claramente a import&#226;ncia de mexer em um time que estava ganhando. Ap&#243;s "perder" um tempo numa &lt;a href="http://www.improveit.com.br/xp/praticas/refatoracao"&gt;refatora&#231;&#227;o&lt;/a&gt; possibilitamos que nosso c&#243;digo ficasse t&#227;o claro que em poucos minutos t&#237;nhamos duas novas funcionalidades com pouqu&#237;ssimo custo.&lt;/p&gt;

&lt;p&gt;&#201; muito f&#225;cil entender esse paradigma se voc&#234; olhar para alguma empresas que eram modelos de sucesso e hoje ou est&#227;o falidas ou est&#227;o em s&#233;rias dificuldades financeiras. Algu&#233;m poderia imaginar que empresas como a Mesbla, Estrela ou Mappin fossem falir ? Seria um pensamento do tipo &#8220;J&#225; tenho uma marca conhecida, ningu&#233;m me pega mais&#8221; ?&lt;/p&gt;

&lt;p&gt;No desenvolvimento de software constantemente vemos esse tipo de pensamento. &#201; muito comum ningu&#233;m querer mexer no que est&#225; funcionando mesmo que esse trecho de c&#243;digo esteja completamente confuso ou mal implementado pois afinal de contas ningu&#233;m quer ser respons&#225;vel por quebrar algo que estava funcionando. &lt;/p&gt;

&lt;p&gt;Com certeza esse &#233; um pensamento errado, por&#233;m compreensivo se voc&#234; analisar o contexto onde a maioria dos desenvolvedores trabalham. Frequentemente eles est&#227;o subordinados a prazos imposs&#237;veis onde "perder" tempo numa refatora&#231;&#227;o &#233; algo inaceit&#225;vel e com isso esses c&#243;digos v&#227;o se acumulando tornando qualquer mudan&#231;a muito arriscada.&lt;/p&gt;

&lt;p&gt;Em desenvolvimento de software devemos encarar a &lt;a href="http://www.improveit.com.br/xp/praticas/refatoracao"&gt;refatora&#231;&#227;o&lt;/a&gt; como cuidar da nossa casa.  Quando deixamos de cuidar de nossa casa rapidamente teremos uma zona completa. Para evitar que isso ocorra, frequentemente perdemos tempo com pequenas arruma&#231;&#245;es que tornam nossa vida mais f&#225;cil naquele ambiente e nos permite que utilizemos a nossa casa para o que desejarmos sem muitas preocupa&#231;&#245;es.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/sem-refatoracao.jpg" alt="Casa descuidada" title="Casa descuidada"/&gt;
&lt;img src="http://blog.improveit.com.br/files/com-refatoracao.jpg" alt="Casa cuidada um pouco cada dia" title="Casa cuidada um pouco cada dia"/&gt;&lt;/p&gt;

&lt;p&gt;&#201; necess&#225;rio ter muita &lt;a href="http://www.improveit.com.br/xp/valores/coragem"&gt;coragem&lt;/a&gt; para se mexer em "time que est&#225; ganhando" por&#233;m em software isso &#233; muito f&#225;cil se voc&#234; fizer as coisas da forma correta. &#201; muito tranquilo fazer modifica&#231;&#245;es no seu c&#243;digo se voc&#234; tiver uma rede de prote&#231;&#227;o em &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes&lt;/a&gt; que garanta que tudo que voc&#234; est&#225; modificando ainda est&#225; funcionando da forma esperada.&lt;/p&gt;</description>
      <pubDate>Mon, 09 Apr 2007 22:11:00 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:3ac974a4-9cfa-402a-971a-fb1d8e65ef6a</guid>
      <author>Marcos Tapaj&#243;s</author>
      <link>http://blog.improveit.com.br/articles/2007/04/09/Time_que_esta_ganhando_n%C3%A3o_se_mexe</link>
      <category>xp</category>
      <category>refactoring</category>
      <category>teste</category>
    </item>
    <item>
      <title>Como n&#227;o matar um projeto um dia de cada vez </title>
      <description>&lt;p&gt;A maioria dos projetos de software se comporta assim:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/drop.png" alt="Maioria dos projetos" title="Maioria dos projetos"/&gt;&lt;/p&gt;

&lt;p&gt;No gr&#225;fico, o eixo vertical representa a velocidade do desenvolvimento, enquanto o horizontal representa o tempo. Interpretando, notamos que a velocidade &#233; alta no in&#237;cio do projeto e cai drasticamente algum tempo depois.  &lt;/p&gt;

&lt;p&gt;&#192; medida que o tempo passa e mudan&#231;as v&#227;o chegando, os desenvolvedores come&#231;am a fazer altera&#231;&#245;es na aplica&#231;&#227;o, sem &lt;a href="http://www.improveit.com.br/xp/praticas/refatoracao"&gt;refatorar&lt;/a&gt; o c&#243;digo. Duplica&#231;&#245;es come&#231;am a surgir, m&#233;todos come&#231;am a crescer, classes passam a conter mais responsabilidades do que deveriam etc. Tudo vai "bem", at&#233; que a equipe come&#231;a a perder velocidade. Cada altera&#231;&#227;o no c&#243;digo se torna mais complicada e gera mais bugs. A velocidade, que come&#231;ou alta, reduz-se rapidamente, at&#233; que a equipe n&#227;o &#233; mais capaz de alterar o software sem causar estragos significativos. Assim se criam os sistemas legados.   &lt;/p&gt;

&lt;p&gt;Essa &#233; uma armadilha comum, que me faz lembrar uma passagem de &lt;a href="http://www.cs.unc.edu/~brooks"&gt;Frederick Brooks&lt;/a&gt; no livro &lt;a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959"&gt;The Mythical Man-Month&lt;/a&gt;:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Como um projeto atrasa dois anos?&lt;/li&gt;
&lt;li&gt;Um dia de cada vez!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A partir dessa quest&#227;o, pode-se formular outra:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Como o c&#243;digo de um aplicativo torna-se imposs&#237;vel de ser alterado?&lt;/li&gt;
&lt;li&gt;Um dia de cada vez!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O problema est&#225; nas pequenas decis&#245;es que n&#243;s, como desenvolvedores, tomamos v&#225;rias vezes por dia. Toda vez que introduzimos uma gambiarra, estamos incorrendo em d&#233;bito t&#233;cnico. &#201; como se ped&#237;ssemos dinheiro emprestado. Como em todo empr&#233;stimo, um dia a conta tem que ser paga e com juros. Em programa&#231;&#227;o, os juros s&#227;o altos. Cada pequena gambiarra leva o software em dire&#231;&#227;o a um estado de caos. &lt;/p&gt;

&lt;p&gt;Sabe o que acontece quando uma pessoa est&#225; sempre endividada? Ela come&#231;a a pedir dinheiro emprestado para pagar os juros de empr&#233;stimos anteriores. Ou seja, a coisa vira uma bola de neve. O mesmo acontece com o c&#243;digo. O efeito de v&#225;rias gambiarras sucessivas n&#227;o &#233; linear, &#233; exponencial. A complexidade que elas adicionam cresce mais rapidamente do que se possa esperar e, eventualmente, a equipe &#233; pega de surpresa quando, "inesperadamente" n&#227;o consegue mais avan&#231;ar.&lt;/p&gt;

&lt;p&gt;Existem algumas coisas que podem ser feitas para evitar essa armadilha. A primeira &#233; come&#231;ar o projeto mais lentamente, criando uma boa estrutura de c&#243;digo, especialmente com alta cobertura de testes automatizados. A segunda &#233; aprimorar o design permanentemente, durante todo o projeto, atrav&#233;s de freq&#252;entes &lt;a href="http://www.improveit.com.br/xp/praticas/refatoracao"&gt;refatora&#231;&#245;es&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;No produto em que estamos trabalhando, n&#227;o queremos vivenciar a curva anterior. Ao inv&#233;s dela, prefer&#237;mos o gr&#225;fico a seguir:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/raise.png" alt="Projetos sustent&#225;veis" title="Projetos sustent&#225;veis"/&gt;&lt;/p&gt;

&lt;p&gt;A id&#233;ia &#233; produzir pouco c&#243;digo no in&#237;cio do projeto e avan&#231;ar gradativamente, &#224; medida em que a equipe se integra, compreende melhor o que precisa ser feito, aprende a usar adequadamente as ferramentas e come&#231;a a criar uma estrutura que &#233; suficiente para as fucionalidades que est&#227;o sendo criadas e mant&#233;m-se de forma sustent&#225;vel ao longo do tempo.  &lt;/p&gt;

&lt;p&gt;Decidimos que nosso produto ser&#225; escrito em &lt;a href="http://www.rubyonrails.com"&gt;Ruby on Rails&lt;/a&gt;. Por essa raz&#227;o, investimos boa parte do nosso tempo, no m&#234;s de dezembro, implementando algumas funcionalidades priorit&#225;rias e experimentando algumas ferramentas, sobretudo ligadas &#224; automa&#231;&#227;o de testes. No ponto em que estamos agora, temos algumas das funcionalidades mais importantes implementadas e 100% de cobertura de testes em toda a aplica&#231;&#227;o.&lt;/p&gt;

&lt;p&gt;Outro ponto importante &#233; come&#231;ar com uma equipe pequena. Nada &#233; pior do que come&#231;ar um projeto com uma equipe grande, j&#225; que em uma base de c&#243;digo pequena, inevitavelmente "um come&#231;a a pisar no p&#233; do outro". No nosso caso, come&#231;amos com uma equipe de apenas tr&#234;s pessoas e a id&#233;ia &#233; mant&#234;-la nesse tamanho durante muito tempo.&lt;/p&gt;</description>
      <pubDate>Thu, 04 Jan 2007 07:41:00 -0200</pubDate>
      <guid isPermaLink="false">urn:uuid:0c773e07-3005-4e47-8a5d-4d1a89f92178</guid>
      <author>Vinicius Manh&#227;es Teles</author>
      <link>http://blog.improveit.com.br/articles/2007/01/04/como-nao-matar-um-projeto-um-dia-de-cada-vez+</link>
      <category>refactoring</category>
      <category>rails</category>
    </item>
  </channel>
</rss>
