<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Geek, Technologist and Aspirant Entrepreneur. Evolutionary Architecture and Agile Development Evangelist. Xbox Player. Amateur Photographer.</description><title>Breno Barros</title><generator>Tumblr (3.0; @brenoobarros)</generator><link>http://www.brenobarros.net/</link><item><title>Agilidade de Ponta-a-Ponta com Arquiteturas Evolucionárias</title><description>&lt;p&gt;&lt;strong&gt;&lt;a title="Agilidade de Ponta-a-Ponta com Arquiteturas Evolucionárias" target="_blank" href="http://www.slideshare.net/brenobarros/agilidade-de-pontaaponta-com-arquiteturas-evolucionrias"&gt;Agilidade de Ponta-a-Ponta com Arquiteturas Evolucionárias&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/8945910" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; View more &lt;a target="_blank" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a target="_blank" href="http://www.slideshare.net/brenobarros"&gt;Breno Barros&lt;/a&gt;&lt;/p&gt;</description><link>http://www.brenobarros.net/post/9218899230</link><guid>http://www.brenobarros.net/post/9218899230</guid><pubDate>Sun, 21 Aug 2011 15:57:56 -0400</pubDate><category>agile</category><category>evolutionary architecture</category><category>emergent design</category><category>agilevale</category></item><item><title>Palestra sobre Agilidade de Ponta-a-Ponta com Arquiteturas...</title><description>&lt;img src="http://28.media.tumblr.com/tumblr_lq8gpjs7d01qmli3no1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Palestra sobre Agilidade de Ponta-a-Ponta com Arquiteturas Evolucionarias&lt;/p&gt;</description><link>http://www.brenobarros.net/post/9167230833</link><guid>http://www.brenobarros.net/post/9167230833</guid><pubDate>Sat, 20 Aug 2011 11:36:55 -0400</pubDate><category>agilevale</category></item><item><title>Palestra do Guy Kawasaki sobre como se começar um negócio. Vale...</title><description>&lt;embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=8206486082210767228" flashvars="" wmode="transparent"&gt; &lt;/embed&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;Palestra do &lt;a href="http://www.guykawasaki.com/"&gt;Guy Kawasaki&lt;/a&gt; sobre como se começar um negócio. Vale a pena conferir.&lt;/span&gt;&lt;/p&gt;</description><link>http://www.brenobarros.net/post/7695302576</link><guid>http://www.brenobarros.net/post/7695302576</guid><pubDate>Sat, 16 Jul 2011 14:55:33 -0400</pubDate><category>startups</category><category>leanstartups</category></item><item><title>Esse start-up vai mudar o mundo.</title><description>&lt;iframe src="http://player.vimeo.com/video/22009095" width="400" height="222" frameborder="0"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Esse start-up vai mudar o mundo.&lt;/p&gt;</description><link>http://www.brenobarros.net/post/7662620428</link><guid>http://www.brenobarros.net/post/7662620428</guid><pubDate>Fri, 15 Jul 2011 16:49:51 -0400</pubDate><category>mylifeisgreen</category><category>startups</category></item><item><title>Google reveals a few secrets powering Google+</title><description>&lt;a href="http://www.developerfusion.com/news/122215/google-reveals-a-few-secrets-powering-google/"&gt;Google reveals a few secrets powering Google+&lt;/a&gt;: &lt;p&gt;Essa é para aqueles que acham que Java é lento. tcs…tcs…&lt;/p&gt;</description><link>http://www.brenobarros.net/post/7660812969</link><guid>http://www.brenobarros.net/post/7660812969</guid><pubDate>Fri, 15 Jul 2011 15:55:54 -0400</pubDate><category>google</category><category>java</category><category>google plus</category><category>social network</category></item><item><title>Você continua usando TDD para testes? Você está com sérios problemas.</title><description>&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Minha motivação para escrever post, partiu da percepção que até hoje muitos caíram e outros continuam caíndo na &lt;strong&gt;armadilha&lt;/strong&gt; da palavra “Test” ao adotar  a prática Test-Driven Development (TDD). Por que armadilha? Pois a palavra “Test”, em engenharia de software, sempre nos faz pensar no primeiro momento, em atividades para garantir a qualidade (Quality Assurance) do software que estamos produzindo ou mantendo.&lt;/p&gt;
&lt;p&gt;Para quem entendeu bem o conceito da TDD, perceberá que o mesmo não tem nada a ver com a disciplina de testes. O próprio Kent Beck, criador da TDD, uma vez falou: &lt;em&gt;“TDD encoraja designs de código simples e inspira confiança”&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Na verdade, os testes unitários criados em TDD tem uma parcela de garantia de qualidade funcional, mas não é seu principal objetivo. O principal objetivo da TDD é ajudar no design dos seus códigos, promovendo a refatoração.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Vale destacar que por refatoração entende-se: &lt;em&gt;“Mudar a implementação interna de um artefato de software, sem mudar seu comportamento desejado”&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Além disso, se você é um estudioso da prática TDD, já deve ter lido no site do Scott W. Ambler (caso contrário clique &lt;a target="_blank" href="http://www.agiledata.org/essays/tdd.html"&gt;aqui&lt;/a&gt;) a seguinte frase: &lt;em&gt;“What is the primary goal of &lt;span&gt;TDD&lt;/span&gt;? Onde view is the goal of &lt;/em&gt;&lt;span&gt;&lt;em&gt;TDD&lt;/em&gt; is&lt;/span&gt;&lt;em&gt; specification and not validation (&lt;/em&gt;&lt;em&gt;Martin, Newkirk, and Kess 2003). &lt;strong&gt;In other words, it’s one way to think through your design before your write your functional code&lt;/strong&gt;.”&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Percebeu? Mais uma vez: A TDD é sobre &lt;strong&gt;Design&lt;/strong&gt; e não sobre &lt;strong&gt;Testes&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Se você ainda não está completamente convencido, dê uma olhada no próprio processo do TDD:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Escreva um pequeno teste de um código que ainda não exista;&lt;/li&gt;
&lt;li&gt;Rode esse teste e, naturalmente, você perceberá que irá falhar;&lt;/li&gt;
&lt;li&gt;Agora escreva apenas o suficiente para fazer o teste passar;&lt;/li&gt;
&lt;li&gt;Quando o teste funcionar, observe o resultado do &lt;em&gt;&lt;strong&gt;design&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;refatore&lt;/strong&gt;&lt;/em&gt; para otimizar seu código, possível.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Repare que fiz questão de destacar em negrito/itálico o que devemos focar no final do processo TDD. É impressão minha ou não foi comentado nada sobre: &lt;em&gt;“Verifique com seu especialista de domínio, analista de negócio, product owner, analista de teste ou QA, se o comportamento obtido está conforme desejado.”&lt;/em&gt;? É, não tem nada disso.&lt;/p&gt;
&lt;p&gt;Com isto fica claro perceber, o porque que quando adotamos somente TDD as seguintes situações emergem durante o projeto:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Quem desenvolve os componentes de testes unitários são os próprios desenvolvedores e não a equipe de quality assurance;&lt;/li&gt;
&lt;li&gt;Experimente entregar um componente de teste unitário para o analista de negócio, especialista de domínio ou product owener e espere ele dizer:  “Mas que p%$#&amp; é essa? Não consigo entender nada.”;&lt;/li&gt;
&lt;li&gt;Os bugs funcionais do projeto não diminuem. Pois é comum seus testes unitários estarem todos funcionando, mas sua ferramenta de gestão de bugs está lotada de pendências funcionais;&lt;/li&gt;
&lt;li&gt;Normalmente, seu cliente não aceita os componentes de testes unitários com entregável da disciplina de testes.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Uma vez, em 2002, um professor meu de Engenharia de Software da UFPA falou: &lt;em&gt;“Softwares sem constantes refatorações, virarão hardwares com passar do tempo”&lt;/em&gt;. E isto ficou na minha cabeça até hoje, como premissa em qualquer projeto que participei.&lt;/p&gt;
&lt;p&gt;Em suma, vejo a prática TDD como uma das que compõe o alicerce para atendimento do princípio:&lt;em&gt;“Contínua atenção à excelência técnica e bom design, aumenta a agilidade”&lt;/em&gt;, presente no &lt;a target="_blank" href="http://www.agilemanifesto.org/"&gt;Manifesto Ágil&lt;/a&gt;. Ou seja, use-a para promover &lt;em&gt;&lt;strong&gt;melhorias nos seus códigos&lt;/strong&gt;&lt;/em&gt; e para &lt;em&gt;&lt;strong&gt;i&lt;/strong&gt;&lt;strong&gt;dentificar padrões arquiteturais emergentes&lt;/strong&gt;&lt;/em&gt; na sua arquitetura. Não a adote em substituição às outras práticas de garantia de qualidade, pois isto será tão negativo quanto não ter nenhum controle de qualidade em seu projeto.&lt;/p&gt;
&lt;p&gt;Bons designs…&lt;/p&gt;</description><link>http://www.brenobarros.net/post/7655796683</link><guid>http://www.brenobarros.net/post/7655796683</guid><pubDate>Fri, 15 Jul 2011 13:20:48 -0400</pubDate><category>tdd</category><category>test-driven development</category><category>agile</category><category>bdd</category></item><item><title>"Rework: O livro de cabeceira para qualquer empreendedor."</title><description>“Rework: O livro de cabeceira para qualquer empreendedor.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;p&gt;&lt;span&gt;
&lt;p&gt;Este post é dedicado a um dos melhores livros que li nos últimos anos, o &lt;a target="_blank" href="http://www.amazon.com/Rework-Jason-Fried/dp/0307463745?tag=jasonwiener-20"&gt;REWORK&lt;/a&gt; da &lt;a target="_blank" href="http://37signals.com/"&gt;37Signals&lt;/a&gt;. Sim! A 37Signals é a empresa criadora do Ruby on Rails e de uma série de pequenas aplicações web-based de grande sucesso.&lt;/p&gt;
&lt;p&gt;O REWORK reune pensamentos, experiências, lições aprendidas e dicas para criar/manter/renovar uma empresa enxuta, pragmática e eficiente. Vale a pena conferir.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://www.amazon.com/Rework-Jason-Fried/dp/0307463745"&gt;&lt;img height="644" width="400" src="http://37signals.com/rework/images/front-cover.png" align="middle"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/em&gt;</description><link>http://www.brenobarros.net/post/7655270037</link><guid>http://www.brenobarros.net/post/7655270037</guid><pubDate>Fri, 15 Jul 2011 12:59:10 -0400</pubDate><category>rework</category><category>startups</category></item><item><title>Melhorando seus Projetos Ágeis com Práticas do Innovation Games</title><description>&lt;p&gt;&lt;img height="176" width="134" src="http://www.mundoj.com.br/images/ed46.jpg" align="left"/&gt;Os Innovation Games são práticas alternativas, simples, objetivas e divertidas, para colaborar tanto com clientes e usuários quanto com equipes de desenvolvimento para garantir a entrega de softwares de sucesso.&lt;/p&gt;
&lt;p&gt;Confira esse artigo na Edição 45 da Revisto MundoJ e veja como algumas dessas práticas podem ser utilizadas em um desenvolvimento ágil, de forma a melhorar o planejamento, motivação e comunicação de todos os envolvidos.&lt;/p&gt;</description><link>http://www.brenobarros.net/post/7652385303</link><guid>http://www.brenobarros.net/post/7652385303</guid><pubDate>Fri, 15 Jul 2011 10:56:15 -0400</pubDate><category>agile</category><category>innovation games</category></item><item><title>Evoluindo o design e arquitetura através das métricas do Sonar</title><description>&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;img align="left" src="http://www.mundoj.com.br/images/ed43.jpg" width="140" height="170"/&gt;O Design Emergente é uma prática ágil para identificar padrões comuns que são identificados, emergidos, ao longo de um desenvolvimento ágil.&lt;/p&gt;

&lt;p&gt;Confira esse artigo na Edição 43 da Revista MundoJ e veja como podemos identificar esses padrões a partir do monitoramento contínuo da qualidade dos códigos-fonte de projetos com os indicadores e informações providas pela ferramenta Sonar.&lt;/p&gt;
&lt;p&gt;Até a próxima e boas arquiteturas.&lt;/p&gt;</description><link>http://www.brenobarros.net/post/7652265184</link><guid>http://www.brenobarros.net/post/7652265184</guid><pubDate>Fri, 15 Jul 2011 10:51:10 -0400</pubDate><category>evolutionary architectures</category><category>emergent design</category><category>mundoj</category></item></channel></rss>

