<?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 qualidade</title>
    <link>http://blog.improveit.com.br/articles/tag/qualidade</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>O papel de &amp;quot;Quality Assurance&amp;quot; em projetos &#225;geis</title>
      <description>&lt;p&gt;&lt;a href="http://www.qualitytree.com/about/index.htm"&gt;Elisabeth Hendrickson&lt;/a&gt;, da &lt;a href="http://www.qualitytree.com"&gt;Quality Tree Software&lt;/a&gt;, fez uma apresenta&#231;&#227;o para o Google falando sobre sua longa experi&#234;ncia como analista de testes e como ela v&#234; o papel das equipes de teste, ou "quality assurance", em projetos &#225;geis.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/elisabeth-hendrickson.jpg" alt="Elisabeth Hendrickson" title="Elisabeth Hendrickson"/&gt;&lt;/p&gt;

&lt;p&gt;Veja o &lt;a href="http://video.google.com/videoplay?docid=-3054974855576235846&amp;amp;q=extreme+programming"&gt;v&#237;deo&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 11 Jan 2007 05:38:00 -0200</pubDate>
      <guid isPermaLink="false">urn:uuid:1c52d12c-bb3b-4ca1-9e86-bb71c6c88c11</guid>
      <author>Vinicius Manh&#227;es Teles</author>
      <link>http://blog.improveit.com.br/articles/2007/01/11/o-papel-de-quality-assurance-em-projetos-ageis</link>
      <category>qualidade</category>
      <category>teste</category>
      <category>v&#237;deo</category>
    </item>
    <item>
      <title>Software saud&#225;vel</title>
      <description>&lt;p&gt;Ontem, ap&#243;s ler o artigo sobre &lt;a href="http://blog.improveit.com.br/articles/2007/01/05/nada-de-janelas-quebradas"&gt;janelas quebradas&lt;/a&gt;, o Rafael MVC, do grupo &lt;a href="http://groups-beta.google.com/group/rails-br"&gt;rails-br&lt;/a&gt; fez uma &#243;tima pergunta: "100% de cobertura n&#227;o &#233; muito caro? Muitas vezes &#233; desnecess&#225;rio ter 100% de cobertura. O que voc&#234; acha?"   &lt;/p&gt;

&lt;p&gt;Acredito que pode ser caro, ou barato, dependendo da forma como a quest&#227;o &#233; encarada e da tecnologia empregada. Na parte tecnol&#243;gica, &#233; mais f&#225;cil manter 100% de cobertura em &lt;a href="http://www.ruby-lang.org/en"&gt;Ruby&lt;/a&gt; que em Java, por exemplo. Seja como for, acho que o ponto fundamental &#233; a forma como encaramos desenvolvimento de software.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/saude-software.jpg" alt="Software saud&#225;vel" title="Software saud&#225;vel"/&gt;&lt;/p&gt;

&lt;p&gt;Conhe&#231;o algumas pessoas que est&#227;o sempre em forma. N&#227;o t&#234;m barriga, n&#227;o t&#234;m problemas de sa&#250;de, e quase n&#227;o se v&#234; gordura pelo corpo. Ainda assim, elas fazem exerc&#237;cios freq&#252;entemente e comem pouco. Por que fazem isso, se n&#227;o precisam? Porque se n&#227;o mantiverem bons h&#225;bitos alimentares e se exercitarem freq&#252;entemente, deixar&#227;o de ter um bom preparo f&#237;sico e come&#231;ar&#227;o a acumular gordura. Chamo isso de "paradoxo do atleta".  &lt;/p&gt;

&lt;p&gt;Em software acontece o mesmo, se voc&#234; n&#227;o exercit&#225;-lo constantemente, atrav&#233;s de uma bateria de testes automatizados, ele ter&#225; baixo condicionamento e n&#227;o ser&#225; t&#227;o saud&#225;vel quanto o software "malhado" que est&#225; sempre sendo exercitado.  &lt;/p&gt;

&lt;p&gt;Qual o problema disso? Pense em uma pessoa obesa, como a da foto acima. Por ter baixo condicionamento, sua press&#227;o sobe e seu batimento card&#237;aco se acelera quando passa por qualquer tipo de estresse. J&#225; um atleta, se comporta de forma diferente. Diante de um estresse, sua press&#227;o e seus batimentos card&#237;acos quase n&#227;o se alteram.&lt;/p&gt;

&lt;p&gt;Software &#233; um organismo que enfrente os mais diversos tipos de estresses permanentemente. Ele se manifesta na forma de mudan&#231;as. Quando uma mudan&#231;a &#233; introduzida em um sistema, seu "batimento card&#237;ado" e sua "press&#227;o" podem variar abruptamente, ou permanecer est&#225;veis dependendo de seu condicionamento. Sistemas bem testados, com elevada cobertura de testes, s&#227;o como atletas muito bem preparados. Mudan&#231;as podem ocorrer, mas raramente ir&#227;o comprometer o bom funcionamento e a boa sa&#250;de do software.  &lt;/p&gt;

&lt;p&gt;Trabalhando com &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;TDD&lt;/a&gt; h&#225; alguns anos, comecei a notar o que chamaria de "paradoxo dos testes". Os testes automatizados que crio raramente detectam bugs! N&#227;o porque eles sejam ruins, ou pouco abrangentes. Simplesmente &#233; raro introduzir um bug quando se trabalha com &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;TDD&lt;/a&gt;. A forma de pensar se altera e leva voc&#234; a criar c&#243;digo sem erros a maior parte do tempo.  &lt;/p&gt;

&lt;p&gt;O &lt;strong&gt;exerc&#237;cio&lt;/strong&gt; de criar os testes &#233; o que leva &#224; baixa incid&#234;ncia de bugs. Ent&#227;o, se os testes raramente detectam erros, eu poderia deixar de produzi-los, certo? A&#237; &#233; que est&#225; o paradoxo. Se eu n&#227;o os escrever, come&#231;arei a introduzir mais bugs, porque &lt;strong&gt;o segredo est&#225; no exerc&#237;cio&lt;/strong&gt;. &#201; a mesma coisa com o corpo humano. Uma pessoa que esteja em forma aparentemente n&#227;o precisaria se exercitar. Mas, se ela parar de se exercitar, come&#231;ar&#225; a precisar!&lt;/p&gt;

&lt;p&gt;Outra quest&#227;o cr&#237;tica na sa&#250;de de um software &#233; a forma como ele &#233; alimentado.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/saude-codigo.jpg" alt="C&#243;digo saud&#225;vel" title="C&#243;digo saud&#225;vel"/&gt;&lt;/p&gt;

&lt;p&gt;Voc&#234; &#233; o que voc&#234; come. Portanto, se voc&#234; s&#243; come porcaria, sua sa&#250;de tende a ser prec&#225;ria. Por outro lado, se voc&#234; mant&#233;m uma dieta saud&#225;vel, seu corpo tende a se manter em forma. Com nossos sistemas &#233; a mesma coisa. Aliment&#225;-los com gambiarras, c&#243;digo duplicado, m&#233;todos ileg&#237;veis e outras coisas pavorosas &#233; o que leva, &lt;strong&gt;gradualmente&lt;/strong&gt;, &#224; cria&#231;&#227;o de um aplicativo moribundo, incapaz de ser alterado facilmente e propenso aos mais diversos tipos de defeitos. Portanto, alimente seu sistema com c&#243;digo saud&#225;vel e bem testado. &lt;/p&gt;

&lt;p&gt;Para fechar, relembrando &lt;a href="http://blog.improveit.com.br/articles/2007/01/04/como-nao-matar-um-projeto-um-dia-de-cada-vez+"&gt;um outro artigo&lt;/a&gt; fique atendo ao que acontece gradualmente com seu c&#243;digo, pois &lt;strong&gt;mudan&#231;as graduais s&#227;o mais dif&#237;ceis de serem notadas&lt;/strong&gt;. Quando engordamos, fazemos isso um pouquinho a cada dia. Cada pequena extravag&#226;ncia di&#225;ria leva o ponteiro da balan&#231;a para o alto. Algumas gramas di&#225;rias &#224; mais, se tornam muitos quilos depois de algumas semanas, ou alguns meses. Com o c&#243;digo &#233; igual. N&#227;o &#233; uma gambiarra que ir&#225; mat&#225;-lo. &#201; a sucess&#227;o de pequenas gambiarras que vamos introduzindo a cada dia que condena nosso software ao caos e nos condena a dias estressantes tentando cont&#234;-lo.&lt;/p&gt;</description>
      <pubDate>Sat, 06 Jan 2007 13:11:00 -0200</pubDate>
      <guid isPermaLink="false">urn:uuid:573709c2-734f-46dd-a256-a430da03da25</guid>
      <author>Vinicius Manh&#227;es Teles</author>
      <link>http://blog.improveit.com.br/articles/2007/01/06/software-saudavel</link>
      <category>java</category>
      <category>ruby</category>
      <category>agile</category>
      <category>qualidade</category>
      <category>teste</category>
    </item>
    <item>
      <title>Nada de janelas quebradas</title>
      <description>&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/broken-window.jpg" alt="Broken window theory" title="Broken window theory"/&gt;&lt;/p&gt;

&lt;p&gt;Diz a lenda que, h&#225; alguns anos, fizeram o seguinte experimento em Nova York. Estacionaram um carro em um bairro perigoso e o deixaram l&#225; durante uma semana. Ap&#243;s esse per&#237;odo, ele ainda estava l&#225;, inteiro. Ent&#227;o, os pesquisadores jogaram uma pedra no vidro do carro e foram embora. N&#227;o precisaram nem esperar uma semana. No dia seguinte o carro j&#225; estava completamente depenado e destru&#237;do. Uma &#250;nica janela quebrada foi suficiente para iniciar o processo de vandalismo.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.pragmaticprogrammer.com/contact.html"&gt;David Thomas&lt;/a&gt; e &lt;a href="http://www.pragmaticprogrammer.com/contact.html"&gt;Andrew Hunt&lt;/a&gt; tratam desse assunto no livro &lt;a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/sr=8-1/qid=1168005327/ref=pd_bbs_sr_1/002-0042091-6362405?ie=UTF8&amp;amp;s=books"&gt;The Pragmatic Programmer&lt;/a&gt;. Eles mostram como a cidade de Nova York usou a &lt;a href="http://en.wikipedia.org/wiki/Broken_window_theory"&gt;Teoria das Janelas Quebradas&lt;/a&gt; para reduzir a viol&#234;ncia e como n&#243;s, desenvolvedores, podemos us&#225;-la para evitar que o design de nossas aplica&#231;&#245;es se degradem. Resumidamente, a id&#233;ia &#233; que um c&#243;digo permanentemente bem escrito, tender&#225; a ser mantido assim, pois as pessoas ficam "sem gra&#231;a" de estrag&#225;-lo. Por outro lado, um c&#243;digo que j&#225; tem v&#225;rias gambiarras &#233; um convite para outras novas.&lt;/p&gt;

&lt;p&gt;H&#225; algum tempo tive a id&#233;ia de usar a &lt;a href="http://www.improveit.com.br/xp/praticas/tdd/emma"&gt;an&#225;lise de cobertura dos testes&lt;/a&gt; como uma forma de contribuir para achar as janelas quebradas e consert&#225;-las rapidamente. Embora a cobertura n&#227;o diga se os seus testes est&#227;o bons ou n&#227;o, ela ao menos indica se existem partes do c&#243;digo que n&#227;o est&#227;o sendo exercitadas por testes. E isso &#233; bastante &#250;til.&lt;/p&gt;

&lt;p&gt;Trabalhando com &lt;a href="http://www.improveit.com.br/xp"&gt;XP&lt;/a&gt;, n&#243;s &lt;a href="http://www.improveit.com.br/xp/praticas/integracao"&gt;integramos&lt;/a&gt; o c&#243;digo freq&#252;entemente, portanto, uma id&#233;ia seria rodar a &lt;a href="http://www.improveit.com.br/xp/praticas/tdd/emma"&gt;an&#225;lise de cobertura&lt;/a&gt; antes de cada commit no reposit&#243;rio. Assumindo que o projeto tenha 100% de cobertura, o desenvolvedor que der o commit roda a an&#225;lise e, se o software continuar em 100% de cobertura, o commit &#233; feito. Sen&#227;o, ele deve implementar os testes que est&#227;o faltando. Usado consistentemente, isso pode ajudar a criar uma press&#227;o positiva na equipe, no sentido de nunca comitar c&#243;digo sem teste.&lt;/p&gt;

&lt;p&gt;Existem dois problemas com essa abordagem. O primeiro &#233; atingir 100% de cobertura. Isso tipicamente &#233; mais vi&#225;vel se o projeto j&#225; utilizar &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;TDD&lt;/a&gt; desde o in&#237;cio. &#201; bem mais complicado para projetos que j&#225; come&#231;aram sem testes. O segundo problema &#233; que o desenvolvedor pode simplesmente deixar de rodar a &lt;a href="http://www.improveit.com.br/xp/praticas/tdd/emma"&gt;an&#225;lise de cobertura&lt;/a&gt; antes de fazer o commit.&lt;/p&gt;

&lt;p&gt;Resolvemos esses problemas no desenvolvimento de &lt;a href="http://blog.improveit.com.br/articles/2007/01/02/2007-um-ano-de-mudancas"&gt;nosso produto&lt;/a&gt; de duas formas. Primeiro, o projeto tem &#234;nfaze em &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;automa&#231;&#227;o de testes&lt;/a&gt; desde o in&#237;cio. Sendo assim, temos 100% de cobertura. Para que isso seja mantido, fiz uma melhoria no nosso script de integra&#231;&#227;o.  &lt;/p&gt;

&lt;p&gt;Temos um script que &#233; executado antes de cada commit. Ele executa todos os nossos testes, al&#233;m de fazer outras checagens, e s&#243; faz o commit se tudo estiver ok. A partir de hoje ele tem um passo adicional: executa a &lt;a href="http://www.improveit.com.br/xp/praticas/tdd/emma"&gt;an&#225;lise de cobertura&lt;/a&gt; e s&#243; permite o commit se ela estiver em 100%. Agora vai ser dif&#237;cil algu&#233;m deixar janelas quebradas pelo c&#243;digo, quer dizer, esses tipos de janelas quebradas, j&#225; que existem outras tamb&#233;m que n&#227;o s&#227;o identificadas pela &lt;a href="http://www.improveit.com.br/xp/praticas/tdd/emma"&gt;an&#225;lise de cobertura&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;Esse projeto utiliza &lt;a href="http://www.rubyonrails.com"&gt;Ruby on Rails&lt;/a&gt;, portanto, a ferramenta usada para a an&#225;lise de cobertura &#233; o &lt;a href="http://eigenclass.org/hiki.rb?rcov"&gt;rcov&lt;/a&gt; que gera telas como essa:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://blog.improveit.com.br/files/rcov.jpg" alt="rcov" title="rcov: Ruby test coverage analysis"/&gt;&lt;/p&gt;

&lt;p&gt;Essa imagem &#233; do pr&#243;prio site do &lt;a href="http://eigenclass.org/hiki.rb?rcov"&gt;rcov&lt;/a&gt;. A &lt;a href="http://www.improveit.com.br/xp/praticas/tdd/emma"&gt;an&#225;lise de cobertura&lt;/a&gt; do &lt;a href="http://blog.improveit.com.br/articles/2007/01/02/2007-um-ano-de-mudancas"&gt;nosso produto&lt;/a&gt; n&#227;o tem essas cores vermelhas, naturalmnete. :-)&lt;/p&gt;</description>
      <pubDate>Fri, 05 Jan 2007 08:12:00 -0200</pubDate>
      <guid isPermaLink="false">urn:uuid:dda00e17-739c-468a-96e9-433b4868cb2b</guid>
      <author>Vinicius Manh&#227;es Teles</author>
      <link>http://blog.improveit.com.br/articles/2007/01/05/nada-de-janelas-quebradas</link>
      <category>teste</category>
      <category>qualidade</category>
    </item>
    <item>
      <title>An&#225;lise de cobertura de testes com Emma</title>
      <description>&lt;p&gt;Colocamos no ar um novo &lt;a href="http://www.improveit.com.br/xp/praticas/tdd/emma"&gt;artigo&lt;/a&gt; que explica como usar o &lt;a href="http://emma.sourceforge.net"&gt;Emma&lt;/a&gt; para analisar a cobertura de &lt;a href="http://www.improveit.com.br/xp/praticas/tdd"&gt;testes automatizados&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;O &lt;a href="http://www.improveit.com.br/xp/praticas/tdd/emma"&gt;artigo&lt;/a&gt; tem o formato de um tutorial e explica como usar o &lt;a href="http://emma.sourceforge.net"&gt;Emma&lt;/a&gt; passo-a-passo, atrav&#233;s de exemplos pr&#225;ticos. &lt;a href="http://www.improveit.com.br/xp/praticas/tdd/emma"&gt;Confira&lt;/a&gt;!&lt;/p&gt;</description>
      <pubDate>Mon, 16 Oct 2006 01:57:00 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:46189a32-8bd9-4f19-b40d-cd1e50fec436</guid>
      <author>Vinicius Manh&#227;es Teles</author>
      <link>http://blog.improveit.com.br/articles/2006/10/16/an%C3%A1lise-de-cobertura-de-testes-com-emma</link>
      <category>teste</category>
      <category>qualidade</category>
    </item>
  </channel>
</rss>
