<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2portuguesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Nome do Jogo</title>
	
	<link>http://www.nomedojogo.com</link>
	<description />
	<lastBuildDate>Fri, 06 Nov 2009 12:43:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" -->
		<copyright>© </copyright>
		<managingEditor>eduardobrando@gmail.com ()</managingEditor>
		<webMaster>eduardobrando@gmail.com()</webMaster>
		<category />
		<ttl>1440</ttl>
		<itunes:keywords />
		<itunes:subtitle />
		<itunes:summary>Just another WordPress weblog</itunes:summary>
		<itunes:author />
		<itunes:category text="Society &amp; Culture" />
		<itunes:owner>
			<itunes:name />
			<itunes:email>eduardobrando@gmail.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://www.nomedojogo.com/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://www.nomedojogo.com/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>Nome do Jogo</title>
			<link>http://www.nomedojogo.com</link>
			<width>144</width>
			<height>144</height>
		</image>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/NomeDoJogo" type="application/rss+xml" /><feedburner:emailServiceId>NomeDoJogo</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FNomeDoJogo" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/NomeDoJogo" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FNomeDoJogo" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FNomeDoJogo" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FNomeDoJogo" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FNomeDoJogo" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>A principal habilidade do programador não é codificar</title>
		<link>http://feedproxy.google.com/~r/NomeDoJogo/~3/aWJtpgdsi7k/</link>
		<comments>http://www.nomedojogo.com/2009/11/06/a-principal-habilidade-do-programador-nao-e-codificar/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 12:43:23 +0000</pubDate>
		<dc:creator>Carlos Brando</dc:creator>
				<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.nomedojogo.com/?p=2855</guid>
		<description><![CDATA[
Programadores são naturalmente introvertidos e não sabem se comunicar. Deve ser por isso que existem tantos programadores ruins. Programar é um exercício de comunicação.
Anos de experiência desenvolvendo software, conhecer muitas linguagens de programação, escrever códigos de qualidade, nada disso tem valor se você não conseguir se comunicar com outras pessoas. De nada vale ter muito [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-2856" title="PDHeadInSand" src="http://www.nomedojogo.com/wp-content/uploads/2009/11/PDHeadInSand.gif" alt="PDHeadInSand" /></p>
<p>Programadores são naturalmente introvertidos e não sabem se comunicar. Deve ser por isso que existem tantos programadores ruins. Programar é um exercício de comunicação.</p>
<p>Anos de experiência desenvolvendo software, conhecer muitas linguagens de programação, escrever códigos de qualidade, nada disso tem valor se você não conseguir se comunicar com outras pessoas. De nada vale ter muito conteúdo e guardar isto só para você.</p>
<p>Aqueles que desejam uma carreira bem sucedida como programadores, além possuir um conhecimento técnico acima da média também precisam estar constantemente melhorando suas habilidades de comunicação.</p>
<p>Inevitavelmente passamos horas em reuniões. Precisamos interagir com clientes e entender as suas necessidades. Escrevemos propostas e relatórios. Estamos em uma luta sem fim tentando convencer nossos companheiros e empregadores a adotarem uma nova tecnologia ou prática que tornará nosso trabalho mais produtivo e divertido. E acima de tudo: escrevemos muito código.</p>
<p>O código é uma combinação de signos utilizados para transmitir uma mensagem. Porém a comunicação só se concretizará se o receptor souber decodificar a mensagem. Computadores costumam fazer isto muito bem, mas não estamos escrevendo código apenas para máquinas. Um código mal escrito e cheio de ruído dificultará o trabalho de outros programadores quando houver a necessidade de estudá-lo.</p>
<p>Nosso trabalho se resume a pura e simplesmente comunicar-se, por isso é tão importante fazer isso bem.</p>
<p>Não importa se você está escrevendo um livro/relatório/e-mail ou se preparando para uma reunião, planejamento é tudo. Um dos segredos dos bons comunicadores é saber o que dizer, antes de sair abrindo a boca e despejando pensamentos. Pergunte-se: &#8220;Se eu falar desta maneira, será que todos entenderão com clareza a informação que eu estou tentando passar?&#8221;. Repita esta pergunta para si mesmo até que esteja convicto disso. Anote estas ideias e planeje como aborda-las.</p>
<p>Comunicação é repassar informações. Para que isto seja possível é vital que todas as pessoas presentes entendam o que você está dizendo. Antes de começar a argumentar sobre as vantagens de se utilizar um banco de dados não relacional no projeto, certifique-se de que todos sabem do que você está falando. Caso contrário, você não estará impressionando ninguém. Estará apenas sendo chato.</p>
<p>Se você está vendendo uma ideia, certifique-se de conhecer cada uma das pessoas envolvidas na negociação e fale somente o que ela precisa ouvir, nem mais nem menos. Talvez você precise convencer o seu gerente, o pessoal de marketing, o usuário final do aplicativo e até outros desenvolvedores. Trate cada grupo de forma individual.</p>
<p>Tão importante quanto dizer a coisa certa, é dizer na hora certa. Pegar seu gerente no corredor, logo após o seu supervisor lhe chamar a atenção por ele ter entregue um aplicativo cheio de bugs é uma excelente oportunidade para convencê-lo a adotar testes automatizados nos próximos projetos. Mas também será uma péssima hora para pedir um upgrade na sua máquina.</p>
<p>Para ser tornar um bom escritor é necessário ler muito, seguindo o mesmo principio se você deseja  falar bem é importante escutar. Programadores tem sérios problemas para escutar. Durante uma reunião, assim que o cliente começa a explicar uma funcionalidade do novo aplicativo, a mente do programador abandona a sala e automaticamente já começa a trabalhar no código que precisará ser desenvolvido. Deste momento em diante tudo o que for dito na sala será ignorado. Concentre-se. Se você não escutar o que os outros estão dizendo, como espera ser ouvido?</p>
<p>Lembre-se disso: Não é somente o que você diz, mas também como você diz. A menos que você esteja trabalhando sozinho dentro de uma bolha, você deve ser capaz de se comunicar. E quanto mais eficaz for a sua habilidade de comunicação, mais influente você se tornará.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/ZxqBGg2q08RKwCfd7Jx0fzl5rAI/0/da"><img src="http://feedads.g.doubleclick.net/~a/ZxqBGg2q08RKwCfd7Jx0fzl5rAI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ZxqBGg2q08RKwCfd7Jx0fzl5rAI/1/da"><img src="http://feedads.g.doubleclick.net/~a/ZxqBGg2q08RKwCfd7Jx0fzl5rAI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/NomeDoJogo/~4/aWJtpgdsi7k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nomedojogo.com/2009/11/06/a-principal-habilidade-do-programador-nao-e-codificar/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.nomedojogo.com/2009/11/06/a-principal-habilidade-do-programador-nao-e-codificar/</feedburner:origLink></item>
		<item>
		<title>Seu conhecimento tem um prazo de validade</title>
		<link>http://feedproxy.google.com/~r/NomeDoJogo/~3/wQHIggYIHhM/</link>
		<comments>http://www.nomedojogo.com/2009/10/27/seu-conhecimento-tem-um-prazo-de-validade/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 16:42:12 +0000</pubDate>
		<dc:creator>Carlos Brando</dc:creator>
				<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.nomedojogo.com/?p=2849</guid>
		<description><![CDATA[
Deus ajuda quem cedo madruga. De acordo com este antigo provérbio se você tem o hábito de acordar cedo e trabalhar por horas a fio com muito afinco e dedicação, então você se dará bem na vida. Mas isto também vale para a carreira de um programador? Muita dedicação e trabalho duro são o suficiente [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_2850" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-2850" title="3289805507_4b5a5e6c06" src="http://www.nomedojogo.com/wp-content/uploads/2009/10/3289805507_4b5a5e6c06.jpg" alt="3289805507_4b5a5e6c06" width="500" height="322" /><p class="wp-caption-text">Foto de James Yeung</p></div>
<p style="text-align: center;">
<p>Deus ajuda quem cedo madruga. De acordo com este antigo provérbio se você tem o hábito de acordar cedo e trabalhar por horas a fio com muito afinco e dedicação, então você se dará bem na vida. Mas isto também vale para a carreira de um programador? Muita dedicação e trabalho duro são o suficiente para atingir a <a href="http://www.nomedojogo.com/2009/09/25/os-oito-niveis-do-programador/">imortalidade</a>?</p>
<p>Embora exista muita gente esforçada que literalmente dá a sua vida pela empresa em que está trabalhando, não é o trabalho braçal que determinará o seu sucesso. O seu conhecimento e experiência é que são o seu maior patrimônio profissional.</p>
<p>Mas infelizmente nessa área de atuação o nosso conhecimento tem um prazo de validade muito curto. Novas tecnologias, linguagens de programação e metodologias aparecem quase que diariamente e é cada vez mais difícil acompanhar este ritmo. Por outro lado, não acompanhar estas mudanças pode torna-lo obsoleto para o mercado.</p>
<p>Profissionais mais antigos já estão acostumados com isto, só que até pouco tempo atrás a necessidade de se reciclar não exigia tanta velocidade. Quando uma nova tecnologia era lançada, normalmente demorava um tempo até que o primeiro livro fosse publicado e para que outros profissionais e empresas começassem a adota-la.</p>
<p>Agora dado a quantidade crescente de novos artigos, livros, screencasts e blogs na internet, isto tem acontecido cada vez mais rápido. Existem estudos que indicam que a soma da informação do mundo dobra a cada 80 dias. Analisando desta forma, se você permanecer três meses sem se atualizar, já pode se considerar <strong>obsoleto</strong>.</p>
<p>Pegue como exemplo o <a href="http://www.rubyinside.com.br/">Ruby Inside Brasil</a>. Lá são publicados artigos quase que diariamente sobre um único tema: <strong>Ruby</strong>. Temos uma equipe relativamente grande e muito motivada tentando cobrir as principais noticias relacionadas a esta linguagem de programação e mesmo assim isso algumas vezes tem se tornado uma tarefa árdua dado a grande quantidade de informação gerada em cima deste único tópico.</p>
<p>Assim como o seu conhecimento, o seu valor para uma empresa ou cliente também vai diminuindo com o tempo. Precisamos trabalhar para que isto nunca aconteça. Não existe nada pior do que continuar empregado apenas por ter muito tempo de casa.</p>
<p>Qual é a sua estratégia para se manter atualizado?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/_wYUgyuP19qJZiTtwHEcEmcKFhg/0/da"><img src="http://feedads.g.doubleclick.net/~a/_wYUgyuP19qJZiTtwHEcEmcKFhg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_wYUgyuP19qJZiTtwHEcEmcKFhg/1/da"><img src="http://feedads.g.doubleclick.net/~a/_wYUgyuP19qJZiTtwHEcEmcKFhg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/NomeDoJogo/~4/wQHIggYIHhM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nomedojogo.com/2009/10/27/seu-conhecimento-tem-um-prazo-de-validade/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.nomedojogo.com/2009/10/27/seu-conhecimento-tem-um-prazo-de-validade/</feedburner:origLink></item>
		<item>
		<title>Qualidade demais pode arruinar seu software</title>
		<link>http://feedproxy.google.com/~r/NomeDoJogo/~3/CuJxQtVi_Pc/</link>
		<comments>http://www.nomedojogo.com/2009/10/18/qualidade-demais-pode-arruinar-seu-software/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 15:13:29 +0000</pubDate>
		<dc:creator>Carlos Brando</dc:creator>
				<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.nomedojogo.com/?p=2843</guid>
		<description><![CDATA[
Não entendo muito de pintura, mas os amigos que apreciam este tipo de trabalho sempre dizem que uma das coisas mais difíceis sobre pintar é saber quando parar. Entender que o trabalho terminou. Uma pincelada a mais pode arruinar um lindo quadro.
Acredito que o mesmo acontece com software. Programadores profissionais sempre defenderam refatoração, testes, integração [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_2844" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-2844" title="3280667337_34ccf55864" src="http://www.nomedojogo.com/wp-content/uploads/2009/10/3280667337_34ccf55864.jpg" alt="3280667337_34ccf55864" width="500" height="392" /><p class="wp-caption-text">Foto de Ernest Descals</p></div>
<p style="text-align: center;">
<p>Não entendo muito de pintura, mas os amigos que apreciam este tipo de trabalho sempre dizem que uma das coisas mais difíceis sobre pintar é saber quando parar. Entender que o trabalho terminou. Uma pincelada a mais pode arruinar um lindo quadro.</p>
<p>Acredito que o mesmo acontece com software. Programadores profissionais sempre defenderam refatoração, testes, integração contínua e outras práticas que visam deixar nosso código mais limpo e livre de falhas. Mas existe um limite para a aplicação dessas práticas? É possível que a preocupação exagerada com a qualidade do software acabe prejudicando o projeto?</p>
<p>Ferramentas como <a href="http://ruby.sadi.st/Flog.html">Flog</a>, <a href="http://ruby.sadi.st/Flay.html">Flay</a> e <a href="http://ruby.sadi.st/Heckle.html">Heckle</a> foram criadas para que pudéssemos estressar nosso código ao limite. Ter um código limpo, sem repetições e com testes bem feitos é essencial para o sucesso de um projeto, sem dúvida nenhuma. Mas o fato é que vivemos em um mundo imperfeito e o sonho de um software livre de bugs é um objetivo impossível de ser alcançado. O tempo, as pessoas e até a nossa amada tecnologia, tudo conspira contra nós. Então quando é a hora de parar e declarar o trabalho como finalizado?</p>
<p>A primeira coisa que precisamos ter em mente é que um projeto de software bem-sucedido não é necessariamente livre de bugs, mas sim um software que atende aos requisitos exigidos pelo seu cliente ou usuário. Isto não quer dizer que você deve jogar tudo para o alto e deixar seu <a href="http://www.nomedojogo.com/2009/09/08/seu-codigo-esta-apodrecendo/">código apodrecer</a>. Mas que você deve considerar o quão importante é a ausência de falhas ou a qualidade do código para o seu cliente.</p>
<p>Se você estiver desenvolvendo um software que controlará algum equipamento médico ou uma aeronave ou estiver trabalhando em uma biblioteca open source que será amplamente utilizada, então você não tem escolha e suas opções serão mais limitadas. Porém, este tipo de projeto é uma exceção. Na maior parte do tempo estaremos trabalhando em produtos comerciais mais simples onde seu cliente terá um cronograma de entrega baseado em promessas feitas a seus superiores e sua empresa certamente terá um fluxo de caixa apertado.</p>
<p>Da mesma forma como seria pouco profissional aceitar prazos impossíveis e deixar testes de lado para terminar um projeto dentro do prazo, também não seria nada profissional ignorar as necessidades do seu cliente/usuário simplesmente para adicionar uma nova funcionalidade ou refatorar o código mais uma vez.</p>
<p>Depois de mais de dez anos trabalhando com software, posso dizer empiricamente que muitos usuários preferem usar um software com algumas arestas soltas do que esperar um ano por uma versão livre de falhas. Muitas vezes é melhor um software ótimo agora do que um software perfeito amanhã.</p>
<p>Ainda há uma outra vantagem nessa abordagem. De acordo com o livro Getting Real:  “A coisa mais importante em desenvolvimento de software é motivação. Motivação é localizada—se você não está motivado pelo que está trabalhando neste instante, as chances de que isso não saia tão bom são grandes . Na verdade, isso provavelmente vai ficar ruim”. Ciclos de entregas longos e demorados são assassinos de motivação.</p>
<p>Se você dá algo para seus usuários brincarem no início, as suas reações muitas vezes levarão a uma solução melhor.</p>
<p>Programar é como pintar. Tudo começa com um quadro branco, seguido por um esboço, uma pintura maior e então com o preenchimento dos detalhes. Se seu olhar for critico demais, você não saberá quando parar até que tenha estragado a sua pintura.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/AdKtmc2EYDi22WR7Aecj-HcqT8s/0/da"><img src="http://feedads.g.doubleclick.net/~a/AdKtmc2EYDi22WR7Aecj-HcqT8s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/AdKtmc2EYDi22WR7Aecj-HcqT8s/1/da"><img src="http://feedads.g.doubleclick.net/~a/AdKtmc2EYDi22WR7Aecj-HcqT8s/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/NomeDoJogo/~4/CuJxQtVi_Pc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nomedojogo.com/2009/10/18/qualidade-demais-pode-arruinar-seu-software/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<feedburner:origLink>http://www.nomedojogo.com/2009/10/18/qualidade-demais-pode-arruinar-seu-software/</feedburner:origLink></item>
		<item>
		<title>Os slides da minha apresentação no Rails Summit Latin America 2009</title>
		<link>http://feedproxy.google.com/~r/NomeDoJogo/~3/KpwCjSIHMWk/</link>
		<comments>http://www.nomedojogo.com/2009/10/13/os-slides-da-minha-apresentacao-no-rails-summit-latin-america-2009/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 20:47:52 +0000</pubDate>
		<dc:creator>Carlos Brando</dc:creator>
				<category><![CDATA[Eventos]]></category>

		<guid isPermaLink="false">http://www.nomedojogo.com/?p=2839</guid>
		<description><![CDATA[Yet Another Ruby Framework &#8211; Como o Rails funciona por dentro
View more presentations from eduardobrando.

]]></description>
			<content:encoded><![CDATA[<div style="width:425px;text-align:left" id="__ss_2210448"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/eduardobrando/yet-another-ruby-framework-como-o-rails-funciona-por-dentro" title="Yet Another Ruby Framework - Como o Rails funciona por dentro">Yet Another Ruby Framework &#8211; Como o Rails funciona por dentro</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=slides-091013123657-phpapp02&#038;rel=0&#038;stripped_title=yet-another-ruby-framework-como-o-rails-funciona-por-dentro" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=slides-091013123657-phpapp02&#038;rel=0&#038;stripped_title=yet-another-ruby-framework-como-o-rails-funciona-por-dentro" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/eduardobrando">eduardobrando</a>.</div>
</div>

<p><a href="http://feedads.g.doubleclick.net/~a/w7jqTKZUZpXSW-6gWEpUu3mwjP0/0/da"><img src="http://feedads.g.doubleclick.net/~a/w7jqTKZUZpXSW-6gWEpUu3mwjP0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/w7jqTKZUZpXSW-6gWEpUu3mwjP0/1/da"><img src="http://feedads.g.doubleclick.net/~a/w7jqTKZUZpXSW-6gWEpUu3mwjP0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/NomeDoJogo/~4/KpwCjSIHMWk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nomedojogo.com/2009/10/13/os-slides-da-minha-apresentacao-no-rails-summit-latin-america-2009/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.nomedojogo.com/2009/10/13/os-slides-da-minha-apresentacao-no-rails-summit-latin-america-2009/</feedburner:origLink></item>
		<item>
		<title>Nos vemos no Rails Summit?</title>
		<link>http://feedproxy.google.com/~r/NomeDoJogo/~3/la2hV12DBAA/</link>
		<comments>http://www.nomedojogo.com/2009/10/06/nos-vemos-no-rails-summit/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 21:41:08 +0000</pubDate>
		<dc:creator>Carlos Brando</dc:creator>
				<category><![CDATA[Eventos]]></category>

		<guid isPermaLink="false">http://www.nomedojogo.com/?p=2831</guid>
		<description><![CDATA[Parece que foi ontem quando o Fábio Akita apareceu com a ideia do Rails Summit Latin America e agora já estamos indo para a segunda edição do evento que já se consagrou como o mais importante da sua categoria no país.
Estarei novamente palestrando e assim como no ano passado o tema da minha palestra também [...]]]></description>
			<content:encoded><![CDATA[<p>Parece que foi ontem quando o <a href="http://akitaonrails.com/">Fábio Akita</a> apareceu com a ideia do <a href="http://railssummit.com.br/">Rails Summit Latin America</a> e agora já estamos indo para a segunda edição do evento que já se consagrou como o mais importante da sua categoria no país.</p>
<p>Estarei novamente palestrando e assim como no ano passado o tema da minha palestra também terá uma forte relação com o trabalho que estou realizando no momento. Embora eu ainda não tenha divulgado isto publicamente, recentemente fui convidado para atuar como diretor de tecnologia em uma startup brasileira chamada <a href="http://socialsmart.com.br/">SocialSmart</a>.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2832" title="socialsmart_logo_alta-1" src="http://www.nomedojogo.com/wp-content/uploads/2009/10/socialsmart_logo_alta-1.jpg" alt="socialsmart_logo_alta-1" width="608" height="248" /></p>
<p>A <strong>SocialSmart</strong> é uma empresa especializada no desenvolvimento de aplicativos para publicidade e branding em redes sociais. E quando o assunto é aplicativos sociais no Brasil, não podemos deixar de falar em Orkut e por sua vez em OpenSocial. Daí o tema da palestra introdutória que ministrei durante o <a href="http://www.railsforkids.com/">Rails for Kids</a> este ano: “<a href="http://www.nomedojogo.com/2009/09/13/rails-for-kids-eu-odeio-opensocial/">Eu odeio OpenSocial</a>”, onde mostrei algumas características desta plataforma que podem ser frustrantes para alguém que costumava ganhar a vida desenvolvendo projetos em Ruby on Rails.</p>
<p>Minhas primeiras semanas neste novo trabalho foram marcadas por prazos apertados, estresse e muitas noites sem dormir. Tudo isso graças a esta “maravilhosa” plataforma. Isto nos levou a conclusão de que a melhor estratégia seria desenvolver um framework que tornasse o nosso trabalho construindo estes aplicativos mais produtivo e divertido.</p>
<p>Atualmente estou trabalhando quase que em tempo integral no desenvolvimento deste framework.</p>
<p>Minha palestra no Rails Summit recebeu o título <strong>“Yet Another Ruby Framework – Como o Rails funciona por dentro”</strong>. Acredito que ao analisarmos juntos o funcionamento de algumas partes deste novo framework podemos entender com mais facilidade como o próprio Rails realiza algumas tarefas no seu núcleo. Além de uma visão geral sobre o processo de criação de um framework, também veremos através de uma analise do código como ocorre a inicialização de um projeto Web, como construir geradores de código e o que acontece por debaixo dos panos durante o processo de renderização de uma simples página HTML.</p>
<p>Infelizmente o tempo é muito curto para analisarmos cada passo da construção de um framework como o Rails em detalhes. Mas acredito que esta palestra lhe dará uma boa visão geral sobre este assunto, além de expor os motivos que levam uma pessoa como DHH a criar um framework como o Ruby on Rails.</p>
<p>E você, também vai estar lá?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Vu9uwGOErwHVRJRKuOQTm4BVyPQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/Vu9uwGOErwHVRJRKuOQTm4BVyPQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Vu9uwGOErwHVRJRKuOQTm4BVyPQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/Vu9uwGOErwHVRJRKuOQTm4BVyPQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/NomeDoJogo/~4/la2hV12DBAA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nomedojogo.com/2009/10/06/nos-vemos-no-rails-summit/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<feedburner:origLink>http://www.nomedojogo.com/2009/10/06/nos-vemos-no-rails-summit/</feedburner:origLink></item>
		<item>
		<title>Os oito níveis do programador</title>
		<link>http://feedproxy.google.com/~r/NomeDoJogo/~3/jaRBo_1o_4Y/</link>
		<comments>http://www.nomedojogo.com/2009/09/25/os-oito-niveis-do-programador/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 03:25:15 +0000</pubDate>
		<dc:creator>Carlos Brando</dc:creator>
				<category><![CDATA[Traduções]]></category>

		<guid isPermaLink="false">http://www.nomedojogo.com/?p=2822</guid>
		<description><![CDATA[Não tenho o habito de ler os artigos de Jeff Atwood, talvez por já ter discordado de um grande número deles, mas este em particular achei muito interessante. Embora os oito níveis descritos abaixo representem a realidade de uma forma muito simplificada, acho que são interessantes para nos fazer pensar. Segue a tradução:
Já ouviu a [...]]]></description>
			<content:encoded><![CDATA[<p>Não tenho o habito de ler os artigos de <a href="http://www.codinghorror.com/blog/">Jeff Atwood</a>, talvez por já ter discordado de um grande número deles, mas este em particular achei muito interessante. Embora os oito níveis descritos abaixo representem a realidade de uma forma muito simplificada, acho que são interessantes para nos fazer pensar. Segue a <a href="http://www.codinghorror.com/blog/archives/001250.html">tradução</a>:</p>
<p>Já ouviu a clássica pergunta “<strong>onde você se imagina daqui há 5 anos?</strong>” em uma entrevista de emprego?</p>
<p>Você quer detonar, naturalmente! Ou pelo menos se tornar o equivalente a uma estrela do rock em desenvolvimento de software. Este não é o tipo de pergunta onde se espera receber uma resposta séria &#8211; outra pergunta desta mesma categoria seria “qual é o seu maior defeito?”</p>
<p>Mas particularmente acho que este pergunta é um pouco diferente e merece ser seriamente considerada. Não para o benefício do entrevistador, mas para <em>seu próprio</em> benefício.</p>
<p>A pergunta “onde você se vê em cinco anos” já é uma espécie de clichê e a maioria das pessoas tem uma resposta na ponta da língua preparada para eventuais entrevistas. Mas esta pergunta levanta algumas preocupações mais profundas: qual é o caminho potencial para uma carreira de desenvolvedor de software? Claro, somos apaixonados pela nossa profissão e estamos muito felizes com isso. Mas você ainda estará sentado em frente a um computador programando quando estiver com 50 anos? Com 60 anos? Qual é o melhor resultado possível na carreira de um programador que aspira ser&#8230; bem, um programador?</p>
<p>E se eu lhe dissesse que há <strong>oito níveis de programadores</strong>?</p>
<h2 style="padding-left: 30px;">8. Programador Imortal</h2>
<p style="padding-left: 30px;">Este é o nível mais alto. Seu código sobreviveu e transcendeu a sua morte. Você é uma parte do registro histórico permanente da computação. Outros programadores estudam o seu trabalho e as coisas que você escreveu. Você pode ter ganhado um Prêmio Turing, redigido trabalhos influentes ou inventado uma ou mais coisas fundamentais para a área de tecnologia que afetaram o curso da programação como a conhecemos. Você não apenas tem uma entrada na Wikipédia &#8211; mas há sites inteiros dedicados a estudar a sua vida e obra.</p>
<p style="padding-left: 30px;">Muito programadores, embora tenham tentado, nunca atingiram esse nível.</p>
<p style="padding-left: 30px;">Exemplos: <a href="http://en.wikipedia.org/wiki/Edsger_W._Dijkstra">Dijkstra</a>, <a href="http://en.wikipedia.org/wiki/Donald_Knuth">Knuth,</a> <a href="http://en.wikipedia.org/wiki/Alan_Kay">Kay</a></p>
<h2 style="padding-left: 30px;">7. Programador Bem-sucedido</h2>
<p style="padding-left: 30px;">Neste nível encontrasse programadores que além de serem muito conhecidos também criaram uma empresa &#8211; talvez até mesmo algumas empresas &#8211; em torno de seu código. Estes programadores conseguiram a verdadeira liberdade: a liberdade de decidir por si próprio em que querem trabalhar. E podem compartilhar esta liberdade com seus colegas programadores.</p>
<p style="padding-left: 30px;">Este é o nível que a maioria dos programadores aspiram chegar. Chegar a este nível muitas vezes depende mais das habilidades em negócios do que em programação.</p>
<p style="padding-left: 30px;">Exemplos: <a href="http://en.wikipedia.org/wiki/Bill_Gates">Gates</a>, <a href="http://en.wikipedia.org/wiki/John_D._Carmack">Carmack</a>, <a href="http://en.wikipedia.org/wiki/David_Heinemeier_Hansson">DHH</a></p>
<h2 style="padding-left: 30px;">6. Programador Famoso</h2>
<p style="padding-left: 30px;">Este também é um bom lugar para se estar, desde que você tenha um emprego.</p>
<p style="padding-left: 30px;">Você é famoso nos círculos de programação. Mas ser famoso não significa necessariamente que você pode transformar isto em lucro e sustentar-se. Ser famoso é bom, mas <em>bem-sucedido</em> é melhor. Você provavelmente trabalha para uma grande e conhecida empresa de tecnologia, uma influente empresa de pequeno porte ou é membro de uma equipe em uma startup. De qualquer maneira, outros programadores já ouviram falar de você, e você está tendo um impacto positivo na área.</p>
<h2 style="padding-left: 30px;">5. Programador Profissional</h2>
<p style="padding-left: 30px;">Você tem uma carreira bem sucedida como um desenvolvedor de software. Suas habilidades são valorizadas e você não tem muita dificuldade para encontrar um bom emprego. Seus colegas de trabalho o respeitam. Toda empresa na qual você já trabalhou se tornou melhor e foi enriquecida de alguma forma pela sua presença.</p>
<p style="padding-left: 30px;">Mas onde você vai chegar?</p>
<h2 style="padding-left: 30px;">4. Programador Mediano</h2>
<p style="padding-left: 30px;">Neste nível, você já é um programador bom o suficiente para perceber que você não é um <em>grande</em> programador. E você nunca poderia ser.</p>
<p style="padding-left: 30px;">Talento na maioria das vezes tem pouco a ver com fazer sucesso. Você pode ser muito bem sucedido se tiver habilidades nos negócios e souber lidar com pessoas. Se você é um programador mediano, e ainda assim consegue sobreviver nesta área, então você é talentoso, mesmo que não necessariamente no ato de codificar.</p>
<p style="padding-left: 30px;">Não se sinta mal com isto. Taleto é mais raro do que você imagina. Não há nada de errado com a falta de talento. Seja ousado. Descubra em que você é bom, e persiga isto. Seja agressivo.</p>
<h2 style="padding-left: 30px;">3. Programador Amador</h2>
<p style="padding-left: 30px;">Um programador amador gosta de codificar e normalmente eles são estudantes promissores ou estagiários, talvez estejam contribuindo para projetos de código aberto, criando aplicativos &#8220;just for fun&#8221; ou desenhando web sites em seu tempo livre. Seu código e ideias demonstram entusiasmo e que eles tem um bom futuro pela frente.</p>
<p style="padding-left: 30px;">Ser um amador é uma coisa boa; partindo deste nível pode-se subir rapidamente para se tornar um programador profissional.</p>
<h2 style="padding-left: 30px;">2. Programador Desconhecido</h2>
<p style="padding-left: 30px;">É o típico programador comum. Apenas um recurso. Competente (na maioria das vezes), mas normal. Provavelmente trabalha para uma grande e anônima megacorporação. É apenas um funcionário, programar não faz parte da sua vida. Também não há nada de errado com isso.</p>
<h2 style="padding-left: 30px;">1. Programador Ruim</h2>
<p style="padding-left: 30px;">Pessoas que de alguma maneira entraram na área de desenvolvimento de software sem um pingo de habilidade ou capacidade. Tudo o que tocam se transforma em dor e sofrimento para os seus colegas programadores &#8211; com a possível exceção de <em>outros</em> maus programadores, onde falta ainda a habilidade rudimentar obrigatória para perceberem que eles estão trabalhando com um outro programador ruim.</p>
<p style="padding-left: 30px;">Esta é talvez, a marca registrada de todos os maus programadores. Essas pessoas simplesmente não possuem nenhuma habilidade para escreverem código, mas de alguma maneira é isto o que fazem.</p>
<p>Estes níveis não são totalmente sérios. Nem todos os programadores aspiram continuar fazendo isto por toda a sua carreira. Mas é esclarecedor considerar o que um programador <em>poderia</em> realizar em dez, vinte ou trinta anos &#8211; talvez mesmo uma vida inteira. Quais são os programadores notáveis que você mais admira? O que eles fizeram para merecer a sua admiração?</p>
<p>Em suma, <strong>o que você quer fazer com sua vida?</strong></p>

<p><a href="http://feedads.g.doubleclick.net/~a/X-6BjjG5RKTonY4xIfygVbtwn8g/0/da"><img src="http://feedads.g.doubleclick.net/~a/X-6BjjG5RKTonY4xIfygVbtwn8g/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/X-6BjjG5RKTonY4xIfygVbtwn8g/1/da"><img src="http://feedads.g.doubleclick.net/~a/X-6BjjG5RKTonY4xIfygVbtwn8g/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/NomeDoJogo/~4/jaRBo_1o_4Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nomedojogo.com/2009/09/25/os-oito-niveis-do-programador/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		<feedburner:origLink>http://www.nomedojogo.com/2009/09/25/os-oito-niveis-do-programador/</feedburner:origLink></item>
		<item>
		<title>Dica de Ruby: Quem disparou este método?</title>
		<link>http://feedproxy.google.com/~r/NomeDoJogo/~3/RolhCQCiXqs/</link>
		<comments>http://www.nomedojogo.com/2009/09/21/dica-de-ruby-quem-disparou-este-metodo/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 21:31:41 +0000</pubDate>
		<dc:creator>Carlos Brando</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.nomedojogo.com/?p=2816</guid>
		<description><![CDATA[Recentemente eu precisei desenvolver um módulo de log para o framework no qual estou trabalhando e não sabia como recuperar quem havia disparado o método atual no momento do registro do log.
Depois de pesquisar um pouco encontrei a resposta, um método muito simples no Kernel do Ruby chamado caller que devolve um array com o [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente eu precisei desenvolver um módulo de log para o framework no qual estou trabalhando e não sabia como recuperar quem havia disparado o método atual no momento do registro do log.</p>
<p>Depois de pesquisar um pouco encontrei a resposta, um método muito simples no <code>Kernel</code> do Ruby chamado <code>caller</code> que devolve um <code>array</code> com o call stack. O primeiro item do array é quem disparou o método atual. E cada elemento consecutivamente é aquele que disparou o método anterior na fila, e assim se segue até o final da pilha.</p>
<p>Este método pode ser muito útil quando se deseja descobrir a causa de uma exceção em um aplicativo. Veja um exemplo:</p>
<pre class="textmate-source"><span class='linenum'>    1</span> <span class="source source_ruby"><span class="meta meta_function meta_function_method meta_function_method_without-arguments meta_function_method_without-arguments_ruby"><span class="keyword keyword_control keyword_control_def keyword_control_def_ruby">def</span> <span class="entity entity_name entity_name_function entity_name_function_ruby">metodo_a</span></span>
<span class='linenum'>    2</span>   puts caller
<span class='linenum'>    3</span> <span class="keyword keyword_control keyword_control_ruby">end</span>
<span class='linenum'>    4</span>
<span class='linenum'>    5</span> <span class="meta meta_function meta_function_method meta_function_method_without-arguments meta_function_method_without-arguments_ruby"><span class="keyword keyword_control keyword_control_def keyword_control_def_ruby">def</span> <span class="entity entity_name entity_name_function entity_name_function_ruby">metodo_b</span></span>
<span class='linenum'>    6</span>   metodo_a
<span class='linenum'>    7</span> <span class="keyword keyword_control keyword_control_ruby">end</span>
<span class='linenum'>    8</span>
<span class='linenum'>    9</span> metodo_b
<span class='linenum'>   10</span>
<span class='linenum'>   11</span> <span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby">#</span> =&gt; ["untitled:6:in `metodo_b'", "untitled:9"]</span></span></pre>
<p>Conforme você pôde ver no exemplo acima, o primeiro item no <code>array</code> informa que o <code>metodo_a</code> foi disparado pelo <code>metodo_b</code> na linha <code>6</code> e que o <code>metodo_b</code> foi disparado na linha <code>9</code>.</p>
<p>O <code>string</code> de retorno sempre seguirá o formato [arquivo]:[linha] ou [arquivo]:[linha]: in [método]. </p>

<p><a href="http://feedads.g.doubleclick.net/~a/u4R0wqVHZaUOpVJLmShOQUa_vTg/0/da"><img src="http://feedads.g.doubleclick.net/~a/u4R0wqVHZaUOpVJLmShOQUa_vTg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/u4R0wqVHZaUOpVJLmShOQUa_vTg/1/da"><img src="http://feedads.g.doubleclick.net/~a/u4R0wqVHZaUOpVJLmShOQUa_vTg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/NomeDoJogo/~4/RolhCQCiXqs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nomedojogo.com/2009/09/21/dica-de-ruby-quem-disparou-este-metodo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.nomedojogo.com/2009/09/21/dica-de-ruby-quem-disparou-este-metodo/</feedburner:origLink></item>
		<item>
		<title>Como apagar incêndios em seu software – aprenda com os profissionais!</title>
		<link>http://feedproxy.google.com/~r/NomeDoJogo/~3/UEex4JdX0JA/</link>
		<comments>http://www.nomedojogo.com/2009/09/18/como-apagar-incendios-em-seu-software-aprenda-com-os-profissionais/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 02:46:22 +0000</pubDate>
		<dc:creator>Carlos Brando</dc:creator>
				<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.nomedojogo.com/?p=2798</guid>
		<description><![CDATA[
Metodologias ágeis, desenvolvimento orientado a testes, integração contínua, programação em par ou qualquer outra prática que você utilize não irão evitar que vez ou outra você seja obrigado a parar tudo o que estiver fazendo e correr desesperadamente para “apagar um incêndio”.
Imprevistos, urgências e prazos apertados surgem o tempo todo e requerem nossa atenção imediata. [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_2800" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-2800" title="3071655212_dbb7d7097b" src="http://www.nomedojogo.com/wp-content/uploads/2009/09/3071655212_dbb7d7097b.jpg" alt="3071655212_dbb7d7097b" width="500" height="337" /><p class="wp-caption-text">Foto de kstoon</p></div>
<p style="text-align: center;">
<p>Metodologias ágeis, desenvolvimento orientado a testes, integração contínua, programação em par ou qualquer outra prática que você utilize não irão evitar que vez ou outra você seja obrigado a parar tudo o que estiver fazendo e correr desesperadamente para “apagar um incêndio”.</p>
<p>Imprevistos, urgências e prazos apertados surgem o tempo todo e requerem nossa atenção imediata. Com o tempo acabamos nos tornando peritos em resolver este tipo de problema. Certa vez eu trabalhei com um DBA que era chamado de herói por todos os nossos colegas de trabalho, dado a sua grande capacidade em resolver problemas desta ordem tão rapidamente.</p>
<p>Durante muito tempo eu acreditei que todo programador deveria receber pelo correio um diploma de bombeiro honorário. E já que somos obrigados a conviver com esta realidade, por que não aprender com os bombeiros profissionais qual é o melhor procedimento a ser adotado durante um incêndio de verdade?</p>
<p>Hoje, graças a um constante trabalho de prevenção, equipamentos de última geração e homens bem treinados, os bombeiros profissionais conseguem vencer as chamas com cada vez mais velocidade e com o mínimo de danos. Muito diferente da nossa forma de atuação, ao se deparar com um incêndio esses homens conseguem manter a calma e seguir a risca cada um dos procedimentos necessários. No caso de uma emergência, ao chegarem no local, a primeira missão de um bombeiro é resgatar as pessoas que estão em perigo. A segunda coisa a se fazer é evitar a propagação das chamas para prédios ou casas vizinhas e então lutar para extinguir o fogo.</p>
<p>Após o incêndio ser controlado, ainda é necessário fazer uma busca por focos de fogo que podem estar escondidos em escombros e possíveis vitimas que ainda possam estar vivas. O trabalho não termina até que uma equipe especializada identifique as causas do incêndio.</p>
<p>Analisando estes procedimentos adotados pelos verdadeiros bombeiros, fica muito claro o motivo de não recebermos a nossa carteirinha de bombeiro honorário. Nós não somos profissionais. Quando surge uma emergência no trabalho costumamos ignorar todas as regras e procedimentos afim de resolver o problema o mais rápido possível. Não nos importando com vítimas ou com a estrutura do prédio (software).</p>
<p>Não importa a gravidade do problema ou o quão apertado é o prazo. Uma <a href="http://www.nomedojogo.com/2009/09/08/seu-codigo-esta-apodrecendo/">janela quebrada</a>, um pedaço de código mal concebido ou uma decisão estratégica errada pode ser o começo do declínio para o seu software. Quando se está trabalhando em um software cheio de janelas quebradas é fácil desenvolver pensamentos como “este código é uma porcaria mesmo”. Simplesmente não importa se tudo estava indo bem até aquele momento.</p>
<p>Por outro lado, quando uma equipe zela pelo seu código e o mantém limpo, bem escrito e elegante, mesmo durante um incêndio (prazo apertado, um bug sério descoberto em produção ou uma data fixa de lançamento) nenhum desenvolvedor desejará ser o primeiro a estragar tudo. Manter a cabeça fria e seguir o procedimento é a diferença entre amadores e profissionais.</p>
<p><br/><br/></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="368" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4526461&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="640" height="368" src="http://vimeo.com/moogaloop.swf?clip_id=4526461&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/4526461">Uncle Bob na RailsConf 09 &#8211; Profissionalismo</a> from <a href="http://vimeo.com/akitaonrails">Fabio Akita</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/pychDYbGVkTcpVMVlx-Q7hdKdUQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/pychDYbGVkTcpVMVlx-Q7hdKdUQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/pychDYbGVkTcpVMVlx-Q7hdKdUQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/pychDYbGVkTcpVMVlx-Q7hdKdUQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/NomeDoJogo/~4/UEex4JdX0JA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nomedojogo.com/2009/09/18/como-apagar-incendios-em-seu-software-aprenda-com-os-profissionais/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.nomedojogo.com/2009/09/18/como-apagar-incendios-em-seu-software-aprenda-com-os-profissionais/</feedburner:origLink></item>
		<item>
		<title>Rails for Kids: Eu odeio OpenSocial</title>
		<link>http://feedproxy.google.com/~r/NomeDoJogo/~3/tM6oOFWtZBo/</link>
		<comments>http://www.nomedojogo.com/2009/09/13/rails-for-kids-eu-odeio-opensocial/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 02:00:30 +0000</pubDate>
		<dc:creator>Carlos Brando</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Rails for Kids]]></category>

		<guid isPermaLink="false">http://www.nomedojogo.com/?p=2791</guid>
		<description><![CDATA[Os slides da minha apresentação hoje no Rails for Kids:
Eu odeio OpenSocial
View more presentations from eduardobrando.

]]></description>
			<content:encoded><![CDATA[<p>Os slides da minha apresentação hoje no Rails for Kids:</p>
<div id="__ss_1989142" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Eu odeio OpenSocial" href="http://www.slideshare.net/eduardobrando/eu-odeio-opensocial">Eu odeio OpenSocial</a><object style="margin:0px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=palestra-090912133110-phpapp02&amp;stripped_title=eu-odeio-opensocial" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=palestra-090912133110-phpapp02&amp;stripped_title=eu-odeio-opensocial" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/eduardobrando">eduardobrando</a>.</div>
</div>

<p><a href="http://feedads.g.doubleclick.net/~a/vW-E-K7caoygxv5GWcHAKmCV68w/0/da"><img src="http://feedads.g.doubleclick.net/~a/vW-E-K7caoygxv5GWcHAKmCV68w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/vW-E-K7caoygxv5GWcHAKmCV68w/1/da"><img src="http://feedads.g.doubleclick.net/~a/vW-E-K7caoygxv5GWcHAKmCV68w/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/NomeDoJogo/~4/tM6oOFWtZBo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nomedojogo.com/2009/09/13/rails-for-kids-eu-odeio-opensocial/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.nomedojogo.com/2009/09/13/rails-for-kids-eu-odeio-opensocial/</feedburner:origLink></item>
		<item>
		<title>Seu código está apodrecendo</title>
		<link>http://feedproxy.google.com/~r/NomeDoJogo/~3/hRJrjRpNm90/</link>
		<comments>http://www.nomedojogo.com/2009/09/08/seu-codigo-esta-apodrecendo/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 05:11:03 +0000</pubDate>
		<dc:creator>Carlos Brando</dc:creator>
				<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.nomedojogo.com/?p=2781</guid>
		<description><![CDATA[A segunda lei da termodinâmica, em principio, afirma que em um sistema fechado a desordem não pode ser reduzida, no máximo pode se manter inalterada ou pode ser aumentada. Esta lei também parece vigorar quando o assunto é desenvolvimento de software.
Quando alteramos o código já existente de um sistema, a desordem sempre aumenta. O nome [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_2783" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-2783" title="2879009280_398e5a1026" src="http://www.nomedojogo.com/wp-content/uploads/2009/09/2879009280_398e5a1026.jpg" alt="2879009280_398e5a1026" width="500" height="333" /><p class="wp-caption-text">Foto de kathleen.bradley</p></div>
<p>A segunda lei da termodinâmica, em principio, afirma que em um sistema fechado a desordem não pode ser reduzida, no máximo pode se manter inalterada ou pode ser aumentada. Esta lei também parece vigorar quando o assunto é desenvolvimento de software.</p>
<p>Quando alteramos o código já existente de um sistema, a desordem sempre aumenta. O nome dado a este efeito é “entropia de software”. Entropia é um termo da física que se refere à quantidade de &#8220;desordem&#8221; em um sistema e embora desenvolvimento de software seja imune a quase todas as leis da física, a entropia nos pega de jeito.</p>
<p>Se um sistema é muito utilizado então eventualmente ele será alterado. E ao adicionar novas funcionalidades a um software, também estamos aumentando a sua complexidade e desordem. Softwares muito complexos e desorganizados são identificados por programadores por seu código em processo de deterioração, basicamente um código podre.</p>
<p>Um dos motivos que parece contribuir muito com esta deterioração no software é o fator psicológico. Há quase dois anos atrás escrevi sobre a “<a href="http://www.nomedojogo.com/2007/12/05/de-prioridade-aos-pequenos-problemas/">teoria da janela quebrada</a>”. Não pretendo me repetir aqui, então se você não sabe do que estou falando, sugiro dar uma pausa e reler este <a href="http://www.nomedojogo.com/2007/12/05/de-prioridade-aos-pequenos-problemas/">artigo</a> primeiro.</p>
<p>Uma única janela quebrada pode ser o suficiente para criar uma sensação de abandono que normalmente leva a uma segunda janela quebrada. Assim, em um espaço de tempo relativamente curto, temos um prédio deteriorado e com danos estruturais graves. E aquela sensação de abandono se torna então uma realidade.</p>
<p>A “teoria da janela quebrada” inspirou a polícia de Nova York e de outras grandes cidades a reprimir pequenos delitos, a fim de manter as coisas em ordem. E funcionou! Consertar rapidamente os vidros quebrados, limpar as pichações e atacar outras pequenas infrações reduziu consideravelmente o nível de criminalidade.</p>
<p>Esta teoria ajuda a explicar por que alguns projetos muito bem planejados e com uma excelente equipe ainda podem experimentar o fracasso. Enquanto projetos, que enfrentam enormes dificuldades e retrocessos, conseguem combater com sucesso a tendência natural para a desordem e sair-se bem.</p>
<p>Não deixe “janelas quebradas” em seu código. Conserte cada uma delas assim que forem descobertas. Se não houver tempo suficiente para corrigir um problema da forma correta, então use um remendo. Talvez comentando um código ruim ou exibindo uma mensagem “não implementado”. O mais importante é tomar medidas para evitar mais danos e mostrar que você está em cima da situação.</p>
<p>O segredo para manter um código saudável é agir rápido. A negligencia acelera o apodrecimento do software. Programar é uma corrida contra a entropia!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Lb5wjdJ5QDCGk18viQchunmLFe0/0/da"><img src="http://feedads.g.doubleclick.net/~a/Lb5wjdJ5QDCGk18viQchunmLFe0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Lb5wjdJ5QDCGk18viQchunmLFe0/1/da"><img src="http://feedads.g.doubleclick.net/~a/Lb5wjdJ5QDCGk18viQchunmLFe0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/NomeDoJogo/~4/hRJrjRpNm90" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.nomedojogo.com/2009/09/08/seu-codigo-esta-apodrecendo/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.nomedojogo.com/2009/09/08/seu-codigo-esta-apodrecendo/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 1.004 seconds -->
