<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Agile no mundo real</title>
	<atom:link href="http://agilenomundoreal.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://agilenomundoreal.com.br</link>
	<description>Agile e desenvolvimento de software, por Guilherme Silveira</description>
	<lastBuildDate>Thu, 24 May 2012 01:48:59 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='agilenomundoreal.com.br' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Agile no mundo real</title>
		<link>http://agilenomundoreal.com.br</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://agilenomundoreal.com.br/osd.xml" title="Agile no mundo real" />
	<atom:link rel='hub' href='http://agilenomundoreal.com.br/?pushpress=hub'/>
		<item>
		<title>Meu ambiente de trabalho em 7 itens</title>
		<link>http://agilenomundoreal.com.br/2010/12/29/meu-ambiente-de-trabalho-em-7-itens/</link>
		<comments>http://agilenomundoreal.com.br/2010/12/29/meu-ambiente-de-trabalho-em-7-itens/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 14:22:56 +0000</pubDate>
		<dc:creator>guilhermesilveira</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[ambiente]]></category>
		<category><![CDATA[trabalho]]></category>

		<guid isPermaLink="false">http://agilenomundoreal.com.br/?p=483</guid>
		<description><![CDATA[Para terminar o ano, fui convidado pelo instrutor Anderson Leite para escrever meu ambiente de trabalho em 7 itens: Máquina / Sistema Operacional Desde 2008 passei por dois Airs, um Pro e um iPad. Nesse instante estou com o Air de 11&#8243;. Costumo usar o mesmo notebook para programar no trabalho, em casa e no [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=483&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Para terminar o ano, fui convidado pelo <a href="http://caelum.com.br/instrutores">instrutor</a> <a href="http://andersonleiteblog.wordpress.com/">Anderson Leite</a> para escrever meu ambiente de trabalho em 7 itens:</p>
<p><strong>Máquina / Sistema Operacional</strong></p>
<p>Desde 2008 passei por dois Airs, um Pro e um iPad. Nesse instante estou com o Air de 11&#8243;. Costumo usar o mesmo notebook para programar no trabalho, em casa e no carro. Programação extrema.</p>
<p>Em casa uma TV de 32&#8243; como segundo monitor, no trabalho qualquer coisa disponível.</p>
<p>Uso o OS X em coreano e Parallells para o C# no Windows. Sempre uso o sistema operacional em uma língua estrangeira que não domino.</p>
<p><strong>Editor e IDE</strong></p>
<p>Qualquer um que tenha opção de abrir e salvar arquivo. Quando estou em máquinas que desconheço atalhos faço tudo na unha, sem medo. Editor x IDE, Teclado x Mouse é um meio, não um fim. Se o desafio de um bom programador fosse digitar menos e digitar rápido, contrataríamos somente campeões do Typeracer.</p>
<p>No dia a dia uso Eclipse, Textmate e vi. Já usei emacs, gedit, visual studio. Na máquina dos outros qualquer um que tenha opção de abrir e salvar arquivos. Aprendo os atalhos, mas meu foco está no tempo parado olhando a tela, não na destreza dos quatro alts que o mac oferece.</p>
<p><strong>Terminal e Editor</strong></p>
<p>Bash com alguns .shs extras. Toda vez que troco de máquina ele é limpo e não reaproveito <b>nada</b> do anterior. A idéia é não viciar.</p>
<p>Abro diversas abas e não consigo ficar em um só projeto ao mesmo tempo. Enquanto rodo os testes de um, escrevo a funcionalidade de outro, mesmo que por 30 segundos. Quando possível, revezo entre três.</p>
<p><strong>Browser</strong></p>
<p>Chrome com gleebox, Firefox com gleebox e Safari, todos ao mesmo tempo. Internet Explorer para os sites que não funcionam e sites coreanos em geral.</p>
<p><strong>Software</strong></p>
<p>Vital: file explorer (finder no os x), terminal, um editor qualquer. O resto é opcional.</p>
<p>Opcional: SizeUp, spotlight, dropbox, google apps.</p>
<p>Aberto esporadicamente: skype, adium, tweet decks.</p>
<p><strong>Source-code</strong></p>
<p>Git. Svn em alguns projetos de terceiros. Aliás, <a href="http://www.tigris.org/scdocs/SVNEncoding">svn que não funciona com OS coreano</a>.</p>
<p><strong>Música</strong></p>
<p>Sem. 99% do tempo prestando atenção nas conversas dos outros. Fones de ouvido quando não desejo ouvir barulho.<br />
Como não escuto música, prefiro citar outro item do meu ambiente, o pote de chá que em suas variações chinesas, japonesas e coreanas sempre está do meu lado.</p>
<p>Convido todos os leitores para espiarem e compartilharem o seu ambiente de trabalho.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agilenomundoreal.wordpress.com/483/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agilenomundoreal.wordpress.com/483/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agilenomundoreal.wordpress.com/483/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agilenomundoreal.wordpress.com/483/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agilenomundoreal.wordpress.com/483/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agilenomundoreal.wordpress.com/483/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agilenomundoreal.wordpress.com/483/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agilenomundoreal.wordpress.com/483/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agilenomundoreal.wordpress.com/483/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agilenomundoreal.wordpress.com/483/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agilenomundoreal.wordpress.com/483/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agilenomundoreal.wordpress.com/483/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agilenomundoreal.wordpress.com/483/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agilenomundoreal.wordpress.com/483/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=483&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agilenomundoreal.com.br/2010/12/29/meu-ambiente-de-trabalho-em-7-itens/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641f736b59103127c7a6a46a683bca58?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guilhermesilveira</media:title>
		</media:content>
	</item>
		<item>
		<title>Efeitos colaterais, programação funcional e ruby</title>
		<link>http://agilenomundoreal.com.br/2010/10/20/efeitos-colaterais-programacao-funcional-e-ruby/</link>
		<comments>http://agilenomundoreal.com.br/2010/10/20/efeitos-colaterais-programacao-funcional-e-ruby/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 13:58:37 +0000</pubDate>
		<dc:creator>guilhermesilveira</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[funcional]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tap]]></category>

		<guid isPermaLink="false">http://agilenomundoreal.com.br/?p=437</guid>
		<description><![CDATA[Durante a última turma de formação Rails, surgiu uma dúvida relativa a algumas idéias do mundo funcional que Ruby utiliza. É comum o uso do método returning em Rails para dar uma mão e permitir acessar um objeto, além de retorná-lo: É uma idéia comum no mundo funcional, podendo ser pensada da seguinte maneira: precisamos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=437&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Durante <a href="http://www.caelum.com.br/cursos/rails/">a última turma de formação Rails</a>, surgiu uma dúvida relativa a algumas idéias do mundo funcional que Ruby utiliza. É comum <a href="http://api.rubyonrails.org/classes/Object.html#method-i-returning">o uso do método returning em Rails</a> para dar uma mão e permitir acessar um objeto, além de retorná-lo:</p>
<p><a href="http://wiki.tcl.tk/1923">É uma idéia comum no mundo funcional</a>, podendo ser pensada da seguinte maneira: precisamos executar diversos processos com efeito colateral mas estamos interessados em um único retorno.</p>
<p>Uma implementação comum nesse mundo seria:</p>
<div id="attachment_439" class="wp-caption alignnone" style="width: 390px"><a href="http://agilenomundoreal.files.wordpress.com/2010/10/eab7b8eba6bc-2.png"><img src="http://agilenomundoreal.files.wordpress.com/2010/10/eab7b8eba6bc-2.png?w=380&h=106" alt="" title="k_comb" width="380" height="106" class="size-full wp-image-439" /></a><p class="wp-caption-text">Implementação de k_comb em uma linguagem funcional qualquer</p></div>
<p>Ao invocarmos k_comb com uma série de funções, somente a primeira possuirá seu valor retornado: todas as outras são executadas e seu retorno é ignorado. Por isso uma consequência direta é que ao usar tal padrão, estamos fazendo uso de efeitos colaterais.</p>
<p>O Ruby 1.9 já fazia:</p>
<div id="attachment_440" class="wp-caption alignnone" style="width: 390px"><a href="http://agilenomundoreal.files.wordpress.com/2010/10/eab7b8eba6bc-3.png"><img src="http://agilenomundoreal.files.wordpress.com/2010/10/eab7b8eba6bc-3.png?w=380&h=122" alt="" title="Tap" width="380" height="122" class="size-full wp-image-440" /></a><p class="wp-caption-text">Implementação usando o exemplo tap do Ruby 1.9</p></div>
<p><a href="http://github.com/caelum/tappie">Com o tappie</a> o ruído da variável extra pode ser removido, indo além da implementação do Ruby e do Rails, de uma maneira bem simples:</p>
<div id="attachment_441" class="wp-caption alignnone" style="width: 390px"><a href="http://agilenomundoreal.files.wordpress.com/2010/10/eab7b8eba6bc-9.png"><img src="http://agilenomundoreal.files.wordpress.com/2010/10/eab7b8eba6bc-9.png?w=380&h=141" alt="" title="Tappie" width="380" height="141" class="size-full wp-image-441" /></a><p class="wp-caption-text">Implementação usando Tappie</p></div>
<p>Usar tais recursos de linguagens funcionais no mundo orientado a objetos de Ruby ajuda a diminuir o ruído semântico da linguagem, mas ao mesmo tempo é possível ir ainda além do que a linguagem Ruby nos fornece. Esse exemplo de implementação de k_combinator é uma possível extensão para o próprio Ruby.</p>
<p>Outras bibliotecas fornecem exemplos <a href="http://andand.rubyforge.org/">de funções como operadores</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agilenomundoreal.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agilenomundoreal.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agilenomundoreal.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agilenomundoreal.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agilenomundoreal.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agilenomundoreal.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agilenomundoreal.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agilenomundoreal.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agilenomundoreal.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agilenomundoreal.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agilenomundoreal.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agilenomundoreal.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agilenomundoreal.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agilenomundoreal.wordpress.com/437/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=437&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agilenomundoreal.com.br/2010/10/20/efeitos-colaterais-programacao-funcional-e-ruby/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641f736b59103127c7a6a46a683bca58?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guilhermesilveira</media:title>
		</media:content>

		<media:content url="http://agilenomundoreal.files.wordpress.com/2010/10/eab7b8eba6bc-2.png" medium="image">
			<media:title type="html">k_comb</media:title>
		</media:content>

		<media:content url="http://agilenomundoreal.files.wordpress.com/2010/10/eab7b8eba6bc-3.png" medium="image">
			<media:title type="html">Tap</media:title>
		</media:content>

		<media:content url="http://agilenomundoreal.files.wordpress.com/2010/10/eab7b8eba6bc-9.png" medium="image">
			<media:title type="html">Tappie</media:title>
		</media:content>
	</item>
		<item>
		<title>Por uma web melhor: evite manter estado</title>
		<link>http://agilenomundoreal.com.br/2010/09/07/por-uma-web-melhor-evite-manter-estado/</link>
		<comments>http://agilenomundoreal.com.br/2010/09/07/por-uma-web-melhor-evite-manter-estado/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 10:00:06 +0000</pubDate>
		<dc:creator>guilhermesilveira</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[estado]]></category>
		<category><![CDATA[produto]]></category>
		<category><![CDATA[qualidade]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web melhor]]></category>

		<guid isPermaLink="false">http://agilenomundoreal.com.br/?p=274</guid>
		<description><![CDATA[Todo dia centenas de aplicações são lançadas ou atualizadas na internet e fazem uso do protocolo http, que influencia diretamente o retorno do nossos produtos. Por exemplo, adotar web services via ftphoje em dia não parece tão viável quanto era anos atrás. Mas mesmo com um protocolo ubíquo como o http, muitas vezes deixamos de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=274&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Todo dia centenas de aplicações são lançadas ou atualizadas na internet e fazem uso do protocolo http, que influencia diretamente o retorno do nossos produtos. Por exemplo, <a href="http://www.devarticles.com/c/a/Web-Services/An-Introduction-to-Web-Services/">adotar web services via ftp</a>hoje em dia não parece tão viável quanto era anos atrás.</p>
<p>Mas mesmo com um protocolo ubíquo como o http, muitas vezes deixamos de lado conhece-lo a fundo e perdemos um grande número de potenciais clientes.</p>
<p>Um caso comum que pode ser melhorado é a utilização indiscriminada de estado de cliente para responder uma requisição.</p>
<p>Nesse cenário, já na primeira requisição o servidor marca o cliente com um cookie de tempo determinado de expiração, por exemplo 15 minutos, e esse cookie é essencial para todas as requisições futuras. Assim que o cookie expira, o usuário é obrigado a voltar para a pagina inicial.</p>
<p>Por exemplo, no site da Tam, inicie uma busca e aguarde sua sessão expirar. Tente executar um refresh: o site o redireciona para a página inicial de escolha de língua, uma página que você não passou anteriormente.</p>
<div id="attachment_275" class="wp-caption alignnone" style="width: 256px"><a href="http://agilenomundoreal.files.wordpress.com/2010/09/tam.png"><img src="http://agilenomundoreal.files.wordpress.com/2010/09/tam.png?w=380" alt="Tam e a escolhe de país" title="tam"   class="size-full wp-image-275" /></a><p class="wp-caption-text">Site com escolha de país. Opção para lembrar, mas será esquecida junto com o cookie.</p></div>
<p>Ao escolher um país note que devido a utilizar cookies (ou url-rewriting), o sistema não consegue realmente lembrar após o tempo passar, apesar de marcarmos o checkbox.</p>
<p>Além do usuário se assustar com uma tela que não existia antes, ele não retorna para onde estava, mas sim para a página inicial, perdendo o trabalho executado até então.</p>
<p>Se o usuário encontrou uma viagem interessante e tenta compartilhar o mesmo para Se enviar o link para um colega para que veja o preco da passagem, ele nao sera capaz de acessa-lo. <a href="http://blog.caelum.com.br/2010/05/28/diminuindo-acoplamento-de-sistemas-com-rest-e-video/">Como o http pode nos ajudar</a>? Trabalhando com a busca como um recurso (de REST), URIs amigáveis, verbo GET e sem manter o estado teríamos uma URI que resolveria quase todos os problemas acima mencionados:</p>
<p>http://site.com.br/viagem/cgu/seo/20110101/201101012</p>
<p>Podemos medir o número de clientes potenciais que podemos perder diariamente por mantermos sessão em momentos desnessários colocando <a href="http://analytics.google.com/">um contador na página de perda de sessão</a>.</p>
<p>Analise em seu site quantas pessoas entram nessa página diariamente e tem seu fluxo de pensamento quebrado devido a essa abordagem.</p>
<p>Na abordagem da URI baseada em recursos existe somente um ponto que não foi abordado: como saber o país do cliente? Existe uma solução padrão do http para isso: <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">utilize o header Accept-language</a>.</p>
<p>Seria possível reescrever as URIs com a língua o que apresenta desvantagem somente para o caso de compartilhar a URI com amigos que não entendem a lingua atual.</p>
<p><b>Timeout</b></p>
<p>Quando uma sessão se faz necessária e o tempo é curto, mantenha um contador indicando o mesmo para seu usuário, como no site do Banco do Brasil. Perder o fluxo de trabalho atual é sempre uma experiência negativa portanto dê a chance de seu usuário executar um refresh para continuar trabalhando.</p>
<div id="attachment_278" class="wp-caption alignnone" style="width: 325px"><a href="http://agilenomundoreal.files.wordpress.com/2010/09/bb.png"><img src="http://agilenomundoreal.files.wordpress.com/2010/09/bb.png?w=380" alt="" title="bb"   class="size-full wp-image-278" /></a><p class="wp-caption-text">Solução do BB: mostrar o tempo até expiração.</p></div>
<p>Caso o usuário esteja preenchendo um formulário e não queira executar um refresh, mostre um alert do javascript confirmando se o usuário deseja se manter logado, executando uma requisição ajax para prolongar o tempo, como alguns sistemas de submissão de palestra online costumam fazer.</p>
<p>Recentement <a href="http://www.subbu.org/blog/2010/09/javascript-and-http">Subbu Allamaraju comentou sobre a questão de sessão não fazer parte de HTTP</a> e quão vital isso é para a web escalar.</p>
<p>Entender o cookie e o valor da sessão significa algo além do que está na URI: conhecimento fora do padrão HTTP, <a href="http://iansrobinson.com/2010/09/02/using-typed-links-to-forms/">chamado out-of-band knowledge</a>. Sites que se baseiam nesse tipo de trabalho, implicam em pior SEO, além de dificuldades de acesso no dia a dia por seus usuários. Por uma web melhor, não dependa de estado do seu cliente.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agilenomundoreal.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agilenomundoreal.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agilenomundoreal.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agilenomundoreal.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agilenomundoreal.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agilenomundoreal.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agilenomundoreal.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agilenomundoreal.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agilenomundoreal.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agilenomundoreal.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agilenomundoreal.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agilenomundoreal.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agilenomundoreal.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agilenomundoreal.wordpress.com/274/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=274&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agilenomundoreal.com.br/2010/09/07/por-uma-web-melhor-evite-manter-estado/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641f736b59103127c7a6a46a683bca58?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guilhermesilveira</media:title>
		</media:content>

		<media:content url="http://agilenomundoreal.files.wordpress.com/2010/09/tam.png" medium="image">
			<media:title type="html">tam</media:title>
		</media:content>

		<media:content url="http://agilenomundoreal.files.wordpress.com/2010/09/bb.png" medium="image">
			<media:title type="html">bb</media:title>
		</media:content>
	</item>
		<item>
		<title>Prática ágil: busque e compartilhe o conhecimento</title>
		<link>http://agilenomundoreal.com.br/2010/09/02/pratica-agil-busque-e-compartilhe-o-conhecimento/</link>
		<comments>http://agilenomundoreal.com.br/2010/09/02/pratica-agil-busque-e-compartilhe-o-conhecimento/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 12:57:24 +0000</pubDate>
		<dc:creator>guilhermesilveira</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[agilidade]]></category>
		<category><![CDATA[ajuda]]></category>
		<category><![CDATA[aprendizado]]></category>
		<category><![CDATA[busca]]></category>
		<category><![CDATA[conhecimento]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[fóruns]]></category>
		<category><![CDATA[lista]]></category>

		<guid isPermaLink="false">http://agilenomundoreal.com.br/?p=249</guid>
		<description><![CDATA[Sintoma: os desenvolvedores de um projeto jamais enfrentaram um tipo de problema e decide resolvê-lo. Uma história começa a ser desenvolvida, mas o mesmo fica parado diversas vezes em pequenos detalhes que impedem completá-la pois ninguém na equipe possui tanta experiência com a ferramenta: existem mais dúvidas do que respostas na equipe. Ação: participe ativamente [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=249&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Sintoma</strong>: os desenvolvedores de um projeto <a href="http://fragmental.tw/2010/05/12/agile-architecture-4-common-strategies/">jamais enfrentaram um tipo de problema e decide resolvê-lo</a>. Uma história começa a ser desenvolvida, mas o mesmo fica parado diversas vezes em pequenos detalhes que impedem completá-la pois ninguém na equipe possui tanta experiência com a ferramenta: existem mais dúvidas do que respostas na equipe.</p>
<p><strong>Ação</strong>: participe ativamente em listas e fóruns de discussão de plataformas ou linguagens, <a href="http://www.tectura.com.br">como o Tectura</a>, <a href="http://www.guj.com.br">o GUJ</a> ou o <a href="http://guru-sp.org">guru-sp</a>.</p>
<p>As chances de outras empresas e desenvolvedores terem passado pelos mesmos problemas que nós em algum momento no passado é muito grande. Em toda singularidade de nossos projetos, a <a href="http://facebook.com">similaridade</a> <a href="http://orkut.com">é</a> <a href="http://linkedin.com">muito</a> grande.</p>
<p>Em casos pequenos como uma mensagem de erro jamais vista, buscadores são seus amigos, como quando <a href="http://www.google.com.br/#q=java.lang.IllegalStateException:+Response+already+committed&amp;hl=pt-BR&amp;safe=off&amp;source=lnt&amp;tbs=ctr:countryBR&amp;cr=countryBR&amp;sa=X&amp;ei=hcI1TLSLBYmLuAfFx5yjBA&amp;ved=0CAgQpwU&amp;fp=560d2ac7b4b164b4">procuramos no google entre as páginas do brasil</a> a mensagem exata de erro &#8220;java.lang.IllegalStateException: Response already committed&#8221;:</p>
<div id="attachment_2863" class="wp-caption alignnone" style="width: 447px"><a href="http://blog.caelum.com.br/wp-content/uploads/2010/07/google.png"><img class="size-full wp-image-2863   " title="google illegalstateexception" src="http://blog.caelum.com.br/wp-content/uploads/2010/07/google.png" alt="Busca por IllegalStateException" width="437" height="150" /></a><p class="wp-caption-text">Buscando por uma exception no google entre as páginas do Brasil: ajude a comunidade local a se desenvolver.</p></div>
<p>Em casos em que não encontrar publicada a resposta para sua pergunta, não deixe de aproveitar para colaborar: <b>compartilhe suas dúvidas e soluções</b>.</p>
<p>Como professores, sabemos que escrever a dúvida ajuda no processo do desenvolvedor entender o seu próprio problema. Ajuda a expressar aos outros um conceito e problema abstrato: algo que requer exercício para dominar.</p>
<p>Quando tentamos explicar o que está ocorrendo conosco para terceiros somos obrigados a pensar nele com mais calma do que o momento de estresse no qual estamos tentando as soluções.</p>
<p>Ao mesmo tempo ajudar outros a resolverem problemas facilita o processo de assentamento do aprendizado uma vez que o processo de explicação exige uma estruturação maior do que foi aprendido. Criar um blog público sobre tópicos do desenvolvimento dentro da empresa e, principalmente no início, incentive a criação de um posts regulares até o momento em que compartilhar as experiências se torne algo natural.</p>
<p>Utilizar os fóruns para compartilhar as idéias, começando novas threads como no caso do Tectura, é um exercício ainda melhor onde não só doamos parte de nosso conhecimento para um mercado de maior qualidade mas também aumentamos nossa capacidade de expressar nossas idéias.</p>
<p>Se o assunto for grande o suficiente, considere escrever para as revistas da área, <a href="http://www.infoq.com.br">sites de notícias</a> ou apresentar em grupos de usuários e <a href="http://qconsp.com">eventos</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agilenomundoreal.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agilenomundoreal.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agilenomundoreal.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agilenomundoreal.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agilenomundoreal.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agilenomundoreal.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agilenomundoreal.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agilenomundoreal.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agilenomundoreal.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agilenomundoreal.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agilenomundoreal.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agilenomundoreal.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agilenomundoreal.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agilenomundoreal.wordpress.com/249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=249&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agilenomundoreal.com.br/2010/09/02/pratica-agil-busque-e-compartilhe-o-conhecimento/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641f736b59103127c7a6a46a683bca58?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guilhermesilveira</media:title>
		</media:content>

		<media:content url="http://blog.caelum.com.br/wp-content/uploads/2010/07/google.png" medium="image">
			<media:title type="html">google illegalstateexception</media:title>
		</media:content>
	</item>
		<item>
		<title>Prática: abra mão de começar pela solução mais elegante</title>
		<link>http://agilenomundoreal.com.br/2010/08/23/pratica-abra-mao-de-comecar-pela-solucao-mais-elegante/</link>
		<comments>http://agilenomundoreal.com.br/2010/08/23/pratica-abra-mao-de-comecar-pela-solucao-mais-elegante/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 13:41:28 +0000</pubDate>
		<dc:creator>guilhermesilveira</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[ajuda]]></category>
		<category><![CDATA[fórum]]></category>
		<category><![CDATA[lista de discussão]]></category>
		<category><![CDATA[perfeição]]></category>
		<category><![CDATA[qualidade]]></category>
		<category><![CDATA[simplicidade]]></category>

		<guid isPermaLink="false">http://agilenomundoreal.com.br/?p=248</guid>
		<description><![CDATA[Sintoma: um desenvolvedor começa a implementar uma funcionalidade e já no início, em algo simples e que resolveria o problema de maneira elegante, está com problemas em algo pequeno e aparentemente ilógico, que deveria funcionar. Por esse motivo a equipe não conseguem continuar com a funcionalidade, com a qual se debatem durante algumas horas. Ação: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=248&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><b>Sintoma</b>: um desenvolvedor começa a implementar uma funcionalidade e já no início, <b>em algo simples</b> e que resolveria o problema de maneira elegante, está com problemas em algo pequeno e aparentemente ilógico, que deveria funcionar. Por esse motivo a equipe não conseguem continuar com a funcionalidade, com a qual se debatem durante algumas horas.</p>
<p><b>Ação</b>: deixe de lado a solução mais elegante temporariamente. Se possível siga a prática de <a href="http://dojofloripa.wordpress.com/2006/11/13/exemplo-tdd-parte-2-baby-steps-e-tratamento-de-excecoes/">baby steps</a>. Procure ajuda em <a href="http://www.tectura.com.br">um fórum</a> ou lista de discussão, e implemente uma solução mais simples e básica enquanto isso.</p>
<p>Se o desenvolvedor julga a solução daquele trecho de código algo simples e perde muito tempo para implementar, temos um indicador de um de dois possíveis motivos:</p>
<p>a) se a solução era tão simples quanto imaginado, ela não deveria ter demorado tanto tempo, portanto a solução não é tão simples assim: abra mão dela e implemente uma mais simples</p>
<p>b) com o cansaço mental em cima do problema, fica difícil ver um erro pequeno e geralmente bobo que impede o correto funcionamento.</p>
<p>Independente de qual dos dois for o problema, <a href="http://blog.caelum.com.br/2010/07/13/pratica-agil-facilite-a-comunicacao-interna/">compartilhe ele de maneira assíncrona</a> &#8211; lista ou fórum &#8211; com outros que estão com a cabeça fresca e não viciada no problema.<br />
<div id="attachment_254" class="wp-caption alignnone" style="width: 390px"><a href="http://agilenomundoreal.files.wordpress.com/2010/08/eab7b8eba6bc-1.png"><img src="http://agilenomundoreal.files.wordpress.com/2010/08/eab7b8eba6bc-1.png?w=380&h=210" alt="Listas e foruns" title="Listas e foruns" width="380" height="210" class="size-full wp-image-254" /></a><p class="wp-caption-text">Listas e fóruns são úteis para buscar e discutir abordagens.</p></div></p>
<p>As metodologias ágeis deixam claro que tentar lançar o produto perfeito já na sua primeira versão é algo extremamente difícil e penoso. O mesmo é aceito amplamente para o design da aplicação, mas ainda temos dificuldade de aceitá-lo para qualquer pedaço de código, o baby step.</p>
<div id="attachment_255" class="wp-caption alignnone" style="width: 265px"><a href="http://agilenomundoreal.files.wordpress.com/2010/08/eab7b8eba6bc-2.png"><img src="http://agilenomundoreal.files.wordpress.com/2010/08/eab7b8eba6bc-2.png?w=380" alt="O produto perfeito" title="O produto perfeito"   class="size-full wp-image-255" /></a><p class="wp-caption-text">Duke Nuke Forever: em busca da qualidade técnica máxima</p></div>
<p><a href="http://blog.locaweb.com.br/archives/3778/coding-dojo/">Praticar dojos</a> também ajuda a não ficar impedido nesses instantes e evitar o desperdício uma vez que a prática de baby steps é reforçada o tempo todo.</p>
<blockquote><p>Podemos buscar a perfeição técnica e de produto, mas não devemos começar com ela: alcança-la é um processo.</p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agilenomundoreal.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agilenomundoreal.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agilenomundoreal.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agilenomundoreal.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agilenomundoreal.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agilenomundoreal.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agilenomundoreal.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agilenomundoreal.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agilenomundoreal.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agilenomundoreal.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agilenomundoreal.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agilenomundoreal.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agilenomundoreal.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agilenomundoreal.wordpress.com/248/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=248&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agilenomundoreal.com.br/2010/08/23/pratica-abra-mao-de-comecar-pela-solucao-mais-elegante/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641f736b59103127c7a6a46a683bca58?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guilhermesilveira</media:title>
		</media:content>

		<media:content url="http://agilenomundoreal.files.wordpress.com/2010/08/eab7b8eba6bc-1.png" medium="image">
			<media:title type="html">Listas e foruns</media:title>
		</media:content>

		<media:content url="http://agilenomundoreal.files.wordpress.com/2010/08/eab7b8eba6bc-2.png" medium="image">
			<media:title type="html">O produto perfeito</media:title>
		</media:content>
	</item>
		<item>
		<title>Prática: faça revisões arquiteturais regularmente</title>
		<link>http://agilenomundoreal.com.br/2010/08/12/pratica-faca-revisoes-arquiteturais-regularmente/</link>
		<comments>http://agilenomundoreal.com.br/2010/08/12/pratica-faca-revisoes-arquiteturais-regularmente/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 10:30:16 +0000</pubDate>
		<dc:creator>guilhermesilveira</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[arquitetura]]></category>
		<category><![CDATA[deploy continuo]]></category>
		<category><![CDATA[equipe]]></category>
		<category><![CDATA[revisão]]></category>
		<category><![CDATA[revisão arquitetural]]></category>
		<category><![CDATA[tarefas]]></category>

		<guid isPermaLink="false">http://agilenomundoreal.com.br/?p=237</guid>
		<description><![CDATA[Sintoma: durante o desenvolvimento de um sistema, a equipe percebe a necessidade de mudar algum aspecto arquitetural. Como a arquitetura é a parte mais difícil de se mudar no software, o custo atrelado também é alto. Após o término do projeto, descobre-se que outras equipes já haviam passado por problemas semelhantes e sabiam que a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=237&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><b>Sintoma</b>: durante o desenvolvimento de um sistema, a equipe percebe a necessidade de mudar algum aspecto arquitetural. Como a arquitetura é a parte mais difícil de se mudar no software, o custo atrelado também é alto. Após o término do projeto, descobre-se que outras equipes já haviam passado por problemas semelhantes e sabiam que a primeira alternativa era ruim para o sistema.</p>
<p><b>Ação</b>: sempre que um projeto é concluído, aproveite o espaço de almoço de um dia da semana seguinte para apresentar a evolução do sistema e da arquitetura para todos os interessados.</p>
<div id="attachment_239" class="wp-caption alignnone" style="width: 390px"><a href="http://agilenomundoreal.files.wordpress.com/2010/08/eab7b8eba6bc-3.png"><img src="http://agilenomundoreal.files.wordpress.com/2010/08/eab7b8eba6bc-3.png?w=380&h=284" alt="Almoço na Caelum" title="Almoço" width="380" height="284" class="size-full wp-image-239" /></a><p class="wp-caption-text">Momento de descontração.</p></div>
<p>A revisão não é um momento de busca de aprovação, mas de compartilhar os problemas de alto nível passados pela equipe, por exemplo:</p>
<p>a) entre as 3 ferramentas que suportam serialização em Ruby que utilizamos durante os últimos 6 meses, quais os problemas que cada uma apresentou</p>
<p>b) não era esperado mas a adoção de um estilo arquitetural determinado implicou na perda de escalabilidade</p>
<p>c) a atualização de uma biblioteca após o primeiro release foi compensada na produtividade da equipe após 3 meses, ou simplesmente não compensou e voltamos a utilizar a antiga</p>
<p>d) a adoção da prática de deploy contínuo permitiu disponibilizar 30 novas features por mês para os clientes</p>
<div id="attachment_240" class="wp-caption alignnone" style="width: 390px"><a href="http://agilenomundoreal.files.wordpress.com/2010/08/picture-4.png"><img src="http://agilenomundoreal.files.wordpress.com/2010/08/picture-4.png?w=380&h=111" alt="Deploy contínuo" title="Deploy contínuo" width="380" height="111" class="size-full wp-image-240" /></a><p class="wp-caption-text">Pipeline de deploy contínuo existente desde 2008</p></div>
<p>A revisão arquitetural permite que o conhecimento adquirido em projetos anteriores possa ser reutilizado em projetos posteriores, uma propriedade coletiva &#8211; a arquitetura ou até mesmo o processo &#8211;  assim como a prática de programação pareada faz o mesmo com menor granularidade: o código.</p>
<p>Em projetos de longa duração é natural que as evoluções continuem acontecendo, portanto faça apresentações regularmente das mudanças arquiteturais.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agilenomundoreal.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agilenomundoreal.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agilenomundoreal.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agilenomundoreal.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agilenomundoreal.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agilenomundoreal.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agilenomundoreal.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agilenomundoreal.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agilenomundoreal.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agilenomundoreal.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agilenomundoreal.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agilenomundoreal.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agilenomundoreal.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agilenomundoreal.wordpress.com/237/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=237&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agilenomundoreal.com.br/2010/08/12/pratica-faca-revisoes-arquiteturais-regularmente/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641f736b59103127c7a6a46a683bca58?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guilhermesilveira</media:title>
		</media:content>

		<media:content url="http://agilenomundoreal.files.wordpress.com/2010/08/eab7b8eba6bc-3.png" medium="image">
			<media:title type="html">Almoço</media:title>
		</media:content>

		<media:content url="http://agilenomundoreal.files.wordpress.com/2010/08/picture-4.png" medium="image">
			<media:title type="html">Deploy contínuo</media:title>
		</media:content>
	</item>
		<item>
		<title>Prática: Evite adivinhar, faça o que é esperado</title>
		<link>http://agilenomundoreal.com.br/2010/08/06/pratica-evite-adivinhar-faca-o-que-e-esperado/</link>
		<comments>http://agilenomundoreal.com.br/2010/08/06/pratica-evite-adivinhar-faca-o-que-e-esperado/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 12:53:38 +0000</pubDate>
		<dc:creator>guilhermesilveira</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[comunicação]]></category>
		<category><![CDATA[dúvida]]></category>
		<category><![CDATA[espera]]></category>
		<category><![CDATA[lista]]></category>

		<guid isPermaLink="false">http://agilenomundoreal.com.br/?p=229</guid>
		<description><![CDATA[Sintoma: frente a uma duas possibilidades que o cliente não deixou claro, é escolhido um caminho e frequentemente descobre-se ser o errado. Após a entrega de uma funcionalidade, é o cliente quem testará, aprovará e utilizará a mesma no dia a dia. Uma vez que é difícil nos colocarmos em seus pés e pensarmos como [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=229&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><b>Sintoma</b>: frente a uma duas possibilidades que o cliente não deixou claro, é escolhido um caminho e frequentemente descobre-se ser o errado.</p>
<p>Após a entrega de uma funcionalidade, é o cliente quem testará, aprovará e utilizará a mesma no dia a dia. Uma vez que é difícil nos colocarmos em seus pés e pensarmos como eles, assumir a resposta de uma dúvida como a provável escolha do cliente é um risco muito alto que corremos. Por exemplo:</p>
<blockquote><p>
Para integrar com o sistema de billing, é necessário aceitarmos cartões de crédito, débito ou vale?<br />
Em um caso, a resposta é assíncrona, no outro, síncrona.
</p></blockquote>
<p>O time deve <b>evitar</b> assumir respostas: procure o cliente pessoalmente e faça a pergunta, somente então continue a criação da funcionalidade pelo caminho que o cliente pretende utilizar. </p>
<p>Caso ele esteja indisponível, <a href="http://blog.caelum.com.br/2010/07/13/pratica-agil-facilite-a-comunicacao-interna/">envie um email para uma lista interna</a>. Durante a espera pela resposta sobre qual caminho seguir em determinada história, evite cruzar a linha da certeza e iniciar a parte da história que envolve um &#8220;chute&#8221;, principalmente quando mudar entre o escolhido pelo time e as outras opções é custoso para o projeto.</p>
<p>Ao invés da adivinhação, prefira começar uma história nova. Quando terminar essa segunda, analise então se a história parada já possui resposta, se o impedimento foi removido ou se deve continuar com uma terceira história.</p>
<p>Caso costume do cliente demorar pouco tempo para responder, por exemplo vinte minutos, ao invés de começar uma nova história, utilize o tempo para melhorar a qualidade do código, refatorando o mesmo.</p>
<p>A resposta poderá vir na forma de um feedback inicial, somente para permitir o andamento da história, até o momento que o responsável estiver livre para a conversa frente a frente, por exemplo:</p>
<blockquote><p>
Tenho certeza que aceitaremos cartões de débito mas não sei sobre crédito ainda.
</p></blockquote>
<p>Uma resposta final e direta também permite a continuação da história.</p>
<p>Outra possível resposta é o cancelamento temporário da história por diversos motivos, como quando o cliente não possuir a informação necessária e prefere postergá-la, outro sistema não está ainda pronto ou o cliente decidir que a mesma deixou de fazer sentido, por exemplo:</p>
<blockquote><p>
A equipe financeira ainda não fechou o contrato com as representantes dos cartões.<br />
Precisamos esperar a resposta para continuar esse trabalho.
</p></blockquote>
<p>Em qualquer uma das finalizações, evitamos adivinhar e durante todo o tempo a equipe entregou valor ao projeto: nem ficou parada nem foi para o caminho errado.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agilenomundoreal.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agilenomundoreal.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agilenomundoreal.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agilenomundoreal.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agilenomundoreal.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agilenomundoreal.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agilenomundoreal.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agilenomundoreal.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agilenomundoreal.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agilenomundoreal.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agilenomundoreal.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agilenomundoreal.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agilenomundoreal.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agilenomundoreal.wordpress.com/229/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=229&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agilenomundoreal.com.br/2010/08/06/pratica-evite-adivinhar-faca-o-que-e-esperado/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641f736b59103127c7a6a46a683bca58?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guilhermesilveira</media:title>
		</media:content>
	</item>
		<item>
		<title>Kanban Yoshima</title>
		<link>http://agilenomundoreal.com.br/2010/07/30/kanban-yoshima/</link>
		<comments>http://agilenomundoreal.com.br/2010/07/30/kanban-yoshima/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 10:18:45 +0000</pubDate>
		<dc:creator>guilhermesilveira</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[noite agil]]></category>
		<category><![CDATA[rodrigo yoshima]]></category>

		<guid isPermaLink="false">http://agilenomundoreal.com.br/?p=194</guid>
		<description><![CDATA[Nessa apresentação o Rodrigo Yoshima apresentou o Kanban como ele se encaixa no quadro geral das metodologias ágeis que utilizamos hoje em dia. O vídeo foi gravado durante o evento da Noite Ágil na Caelum em São Paulo.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=194&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://vimeo.com/12967031">Nessa apresentação</a> o <a href="http://blog.aspercom.com.br/">Rodrigo Yoshima</a> apresentou o Kanban como ele se encaixa no quadro geral das metodologias ágeis que utilizamos hoje em dia.</p>
<p>O vídeo foi gravado durante o evento da <a href="http://caelum.com.br/eventos/agile">Noite Ágil</a> na <a href="http://www.caelum.com.br">Caelum em São Paulo</a>.</p>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/12967031' width='400' height='300' frameborder='0'></iframe></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agilenomundoreal.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agilenomundoreal.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agilenomundoreal.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agilenomundoreal.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agilenomundoreal.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agilenomundoreal.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agilenomundoreal.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agilenomundoreal.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agilenomundoreal.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agilenomundoreal.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agilenomundoreal.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agilenomundoreal.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agilenomundoreal.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agilenomundoreal.wordpress.com/194/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=194&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agilenomundoreal.com.br/2010/07/30/kanban-yoshima/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641f736b59103127c7a6a46a683bca58?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guilhermesilveira</media:title>
		</media:content>
	</item>
		<item>
		<title>Deploy Contínuo &#8211; Entrega contínua de valor</title>
		<link>http://agilenomundoreal.com.br/2010/07/06/deploy-continuo-entrega-continua-de-valor/</link>
		<comments>http://agilenomundoreal.com.br/2010/07/06/deploy-continuo-entrega-continua-de-valor/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 10:28:26 +0000</pubDate>
		<dc:creator>guilhermesilveira</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[deploy continuo]]></category>
		<category><![CDATA[integracao continua]]></category>

		<guid isPermaLink="false">http://agilenomundoreal.com.br/?p=200</guid>
		<description><![CDATA[Desde 2005 ajudo com o desenvolvimento de um produto interno que teve sua segunda versão criada em 2008. Até então utilizávamos práticas de extreme programming, como programação pareada, testes, integração contínua e build automatizado. Entre 2008 e 2009, tomamos o processo de deploy parcialmente automatizado e levamos a seus extremos. Construimos passo a passo um [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=200&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Desde 2005 ajudo com o desenvolvimento de um produto interno que teve sua segunda versão criada em 2008. Até então utilizávamos práticas de extreme programming, como programação pareada, testes, <a href="http://blog.caelum.com.br/2008/11/04/integracao-continua/">integração contínua e build automatizado</a>.</p>
<p>Entre 2008 e 2009, tomamos o processo de deploy parcialmente automatizado e levamos a seus extremos. Construimos passo a passo um ambiente de produção que pode ser atualizado a qualquer instante para uma versão nova, além do processo de rollback também ser efetuado de maneira simples.</p>
<p>Evolução do banco de dados, testes de integração, testes rodando em paralelo e testes de end-to-end rodados na Cloud são algumas das práticas que adotamos e que apresentarei nos próximos posts, passo a passo.</p>
<p>Tudo isso não aconteceu do dia para a noite em um projeto que já existia e possuia código legado, mas com o passar do tempo implementamos todos esses passos, com uma equipe que vivia em alteração. Agora já vemos <a href="http://www.caelum.com.br/instrutores">os frutos dentro da empresa</a>: uma nova equipe colocou no ar processo semelhante em menos de 1 mês em um projeto novo, e a repetição desse processo nos mostra que não  só sites simples <a href="http://blog.caelum.com.br/2010/03/01/o-processo-de-deploy-continuo/">são capazes de efetuar deploy contínuo</a>.</p>
<p><a href="http://www.vimeo.com/12976766">O vídeo a seguir é uma visão geral do que é o deploy contínuo</a> e onde chegaremos com os posts que virão:</p>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/12976766' width='400' height='300' frameborder='0'></iframe></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agilenomundoreal.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agilenomundoreal.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agilenomundoreal.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agilenomundoreal.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agilenomundoreal.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agilenomundoreal.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agilenomundoreal.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agilenomundoreal.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agilenomundoreal.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agilenomundoreal.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agilenomundoreal.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agilenomundoreal.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agilenomundoreal.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agilenomundoreal.wordpress.com/200/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=200&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agilenomundoreal.com.br/2010/07/06/deploy-continuo-entrega-continua-de-valor/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641f736b59103127c7a6a46a683bca58?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guilhermesilveira</media:title>
		</media:content>
	</item>
		<item>
		<title>Noite Ágil &#8211; André Pantalião</title>
		<link>http://agilenomundoreal.com.br/2010/06/29/noite-agil-andre-pantaliao/</link>
		<comments>http://agilenomundoreal.com.br/2010/06/29/noite-agil-andre-pantaliao/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 11:55:49 +0000</pubDate>
		<dc:creator>guilhermesilveira</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[andre pantaliao]]></category>
		<category><![CDATA[caelum]]></category>
		<category><![CDATA[noite agil]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://agilenomundoreal.com.br/?p=182</guid>
		<description><![CDATA[Mais um vídeo da Noite Ágil já está disponível. Dessa vez André Pantalião apresenta os problemas enfrentados, resolvidos e em aberto que encontraram ao implantar agile em sua equipe:<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=182&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Mais um vídeo da Noite Ágil já está disponível. Dessa vez André Pantalião apresenta os problemas enfrentados, resolvidos e em aberto que encontraram ao implantar agile em sua equipe:</p>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/12722241' width='400' height='300' frameborder='0'></iframe></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/agilenomundoreal.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/agilenomundoreal.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/agilenomundoreal.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/agilenomundoreal.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/agilenomundoreal.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/agilenomundoreal.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/agilenomundoreal.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/agilenomundoreal.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/agilenomundoreal.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/agilenomundoreal.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/agilenomundoreal.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/agilenomundoreal.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/agilenomundoreal.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/agilenomundoreal.wordpress.com/182/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=agilenomundoreal.com.br&#038;blog=12365766&#038;post=182&#038;subd=agilenomundoreal&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://agilenomundoreal.com.br/2010/06/29/noite-agil-andre-pantaliao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/641f736b59103127c7a6a46a683bca58?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">guilhermesilveira</media:title>
		</media:content>
	</item>
	</channel>
</rss>
