<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>codificando.com</title>
	
	<link>http://codificando.com</link>
	<description>Desenvolvimento de Software com qualidade</description>
	<pubDate>Thu, 15 Oct 2009 00:00:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/codificandocom" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Rails Summit 2009 - Resumo</title>
		<link>http://feedproxy.google.com/~r/codificandocom/~3/TGJs9YKyLhM/</link>
		<comments>http://codificando.com/2009/10/14/rails-summit-2009-resumo/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 23:57:17 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[bdd]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[engenharia]]></category>

		<category><![CDATA[jruby]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[tdd]]></category>

		<category><![CDATA[testes]]></category>

		<category><![CDATA[evento]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=238</guid>
		<description><![CDATA[O Rails Summit terminou. Foi um evento bem legal, com ótimas palestras e a galera de sempre, que já conhecemos.
Vou fazer um resumo das palestras que assisti.
Chad Fowler - http://chadfowler.com

A palestra do Chad foi como sempre focada em carrreia. Ele advertiu os desenvolvedores que produzem porcaria todo dia sem peso algum na consciência. Ele pensa [...]]]></description>
			<content:encoded><![CDATA[<p>O Rails Summit terminou. Foi um evento bem legal, com ótimas palestras e a galera de sempre, que já conhecemos.</p>
<p>Vou fazer um resumo das palestras que assisti.</p>
<p><strong>Chad Fowler - <a href="http://chadfowler.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://chadfowler.com');">http://chadfowler.com</a><br />
</strong></p>
<p>A palestra do Chad foi como sempre focada em carrreia. Ele advertiu os desenvolvedores que produzem porcaria todo dia sem peso algum na consciência. Ele pensa (e eu também) que nós não devemos investir tempo desnvolvendo coisas que já sabemos que são porcaria. E isso não é pessimismo, simplesmente é não perder tempo.</p>
<p>Chad falou também sobre os FUDs que sempre usam contra Ruby/Rails. Isso não foi nenhuma novidade mas ele abordou de forma bem divertida e valeu muto a pena.</p>
<p>Uma das partes mais legais foi a estatística mostrando que Ruby só faz parte de 6% da requisição do usuário. Na verdade não só ruby, mas outra tecnologia também. Isso bom para refletirmos sobre as discussões sobre performance e escalabilidade das aplicações web.</p>
<p><strong>Gregg Pollack - <a href="http://envlabs.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://envlabs.com');">http://envlabs.com</a><br />
</strong></p>
<p>O foco da palestra do gregg foi sobre como atacar alguns pontos para o otimizar sua aplicação Rails. Dentre as formas, ele apresentou algumas gems/plugins que ajudam a identificar alguns pontos para melhoria de performance em uma aplicação. Vou destacar algumas:</p>
<ul>
<li>Bullet - Ajuda a identificar queries com alguns problemas. Ex: N + 1</li>
<li>Rails Indexes - Identifica colunas onde deveriam ter índices. Se baseia nas buscas do sistema.</li>
<li>Scrooge - Faz com que o ActiveRecord passe a buscar somente os campos que estão sendo usados, ao invés de buscar todos os campos. Ex: em um find(:all), após a primeira execução, o scrooge identifica quais campos foram usados e ná próxima vez modifica a query para não buscar os campos desnecessários.</li>
<li>Rack Bug - É uma Monitor para aplicações Rack. Fornece basicamente todas as informações. Sessões, CPU, Memória, etc. Bem útil</li>
<li>oink - Mostra detalhes dos requests de cada controller. Ex: consumo de memória.</li>
<li>Cloud Crowd - Servidor para rodar tarefas em background. Feito em sinatra.</li>
</ul>
<p><strong>Ilya Grigorik - <a href="http://www.igvita.com/about/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.igvita.com/about/');">http://www.igvita.com/about/</a><br />
</strong></p>
<p>Ilya falou sobre integração/comunicação de aplicações baseadas em web, utilizando-se de tecnologias como XMPP, AMQP, Webhooks, PubsubHubbub. Foi bem interessante, pois a maioria do auditório conhecia pouco sobre o assunto.</p>
<p><strong>Fabio Akita - <a href="http://akitaonrails.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://akitaonrails.com');">http://akitaonrails.com</a><br />
</strong></p>
<p>A palestra do akita foi sobre agile. Ele falou bastante sobre a teoria do caos, sistemas complexos e a evolução das coisas. No fim, o recado maior foi alertar que agile não é o último estágio no desenvolvimento de software, deixando claro que temos (e vamos) que evoluir ainda mais.</p>
<p><strong>Glenn Vanderburg - <a href="http://blog.thinkrelevance.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://blog.thinkrelevance.com');">http://blog.thinkrelevance.com</a><br />
</strong></p>
<p>Palestra sobre o framework Tarantula, que tem por objetivo fazer testes de ataques XSS, SQL Injection, entre outros. Achei bem interessante, pois é possível automatizar esse passo, que geralmente fazemos manualmente. Glenn inclusive sugeriu que faça parte do build antes de lançar um release.</p>
<p><strong>Fabio Kung - <a href="http://fabiokung.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://fabiokung.com/');">http://fabiokung.com/</a><br />
</strong></p>
<p>Fabio fez uma ótima palestra sobre DSLs (Domain Specific Languages) internas usando Ruby. Ao invés de apresentar exemplos simples ele apresentou um exemplo real de uma necessidade de uma aplicação que trata de instâncias de máquinas na cloud da Locaweb.</p>
<p><strong>Carlos Vilella <a href="http://lixo.org" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://lixo.org');">http://lixo.org</a><br />
</strong></p>
<p>Carlos fez uma palestra bem curta, falando sobre o uso de Ruby na Thoughtworks. Falou sobre os poucos projetos que falharam e deixou o restante do tempo para perguntas.</p>
<p><strong>Tapajós - <a href="http://tapajos.me/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://tapajos.me/');">http://tapajos.me/</a><br />
</strong></p>
<p>A palestra do Tapajós foi sobre bancos de dados não relacionais. Focado bastante em CouchDB e Rails, ele explorou algumas features chaves na utilização dessa abordagem de banco de dados, também fazendo uma curta palestra e deixando boa parte do tempo para perguntas.</p>
<p><strong>Bruno Miranda - Rails não escala</strong></p>
<p>Eu gostei muto da palestra do Bruno, apesar de achar que o que ele falou é básico para qualquer Arquiteto de Software experiente.  Bruno falou bastante sobre filas, sharding, Cache, Proxy reverso, otimização de queries e sobre rodar processos em background. Acho que a palestra dele foi válida pois qualquer um hoje em dia que aprende tecnologias como Rails sai fazendo aplicações sem um conhecimento mínimo de arquitetura de software. Quando as coisas não dão certo culpam a tecnologia, gerando FUDs.</p>
<p><strong>Vinicius Teles (<a href="http://improveit.com.br/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://improveit.com.br/');">http://improveit.com.br/</a>) - Empreendorismo</strong></p>
<p>A palestra do Vinícius foi ótima para quem pretende desenvolver um produto e/ou abrir seu próprio negócio. Ele abordou pontos como Fluxo de Caixa, oportunidades vastas que existem no Brasil e o impacto de pequenas decisões certas ou erradas que tomamos na nossa vida profissional.</p>
<p><strong>Obie Fernandes - <a href="http://obiefernandez.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://obiefernandez.com/');">http://obiefernandez.com/</a><br />
</strong></p>
<p>A palestra do Obie encerrou o evento em grande estilo, falando sobre talento, esforço e reforçando bem <a href="http://codificando.com/2009/06/07/afinal-o-que-seria-um-profissional-senior/" >o que eu disse há um tempo atrás nesse blog</a>. Não adianta você saber um monte de coisas se não souber bem, se não tiver experiência com isso, treino, treino e mais treino. Você só ganha nível com tempo e treino, isso é fato.</p>
<p>Pra finalizar, gostaria de parabenizar ao <a href="http://akitaonrails.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://akitaonrails.com');">Fabio Akita</a> e a <a href="http://www.locaweb.com.br" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.locaweb.com.br');">Locaweb</a> pelo excelente evento mais uma vez.</p>
<p>E ano que vem tem mais.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/codificandocom?a=TGJs9YKyLhM:sLJXaPvzE1U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=TGJs9YKyLhM:sLJXaPvzE1U:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=TGJs9YKyLhM:sLJXaPvzE1U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=TGJs9YKyLhM:sLJXaPvzE1U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=TGJs9YKyLhM:sLJXaPvzE1U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=TGJs9YKyLhM:sLJXaPvzE1U:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/10/14/rails-summit-2009-resumo/feed/</wfw:commentRss>
		<feedburner:origLink>http://codificando.com/2009/10/14/rails-summit-2009-resumo/</feedburner:origLink></item>
		<item>
		<title>Melhoria Contínua começa em nós</title>
		<link>http://feedproxy.google.com/~r/codificandocom/~3/cXfjH-X9iGc/</link>
		<comments>http://codificando.com/2009/08/31/melhoria-continua-comeca-em-nos/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 16:24:30 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[ensino]]></category>

		<category><![CDATA[lean]]></category>

		<category><![CDATA[pensamentos]]></category>

		<category><![CDATA[reflexao]]></category>

		<category><![CDATA[scrum]]></category>

		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=190</guid>
		<description><![CDATA[Nos últimos tempos tenho me interessado bastante sobre alguns pontos que considero fundamentais em agilidade e sustentabilidade de um projeto e/ou de uma empresa. Um desses pontos, acredito que seja a melhoria contínua (e.g. kaizen e hansei). Muitas empresas tem buscado isso de diversas formas (muito interessantes por sinal), mas eu acredito fortemente que a [...]]]></description>
			<content:encoded><![CDATA[<p>Nos últimos tempos tenho me interessado bastante sobre alguns pontos que considero fundamentais em agilidade e sustentabilidade de um projeto e/ou de uma empresa. Um desses pontos, acredito que seja a melhoria contínua (e.g. <a href="http://pt.wikipedia.org/wiki/Kaizen" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/Kaizen');" target="_blank">kaizen</a> e <a href="http://en.wikipedia.org/wiki/Hansei" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Hansei');" target="_blank">hansei</a>). Muitas empresas tem buscado isso de diversas formas (muito interessantes por sinal), mas eu acredito fortemente que a melhoria contínua começa em nós, profissionais da área em questão. Sem que nós estejamos comprometidos em melhorar continuamente como profissionais e como pessoas,  melhoria contínua (e.g. <a href="http://pt.wikipedia.org/wiki/Kaizen" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/Kaizen');" target="_blank"> </a><a href="http://pt.wikipedia.org/wiki/Kaizen" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/Kaizen');" target="_blank">kaizen</a> e <a href="http://en.wikipedia.org/wiki/Hansei" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Hansei');" target="_blank">hansei</a>) pode acabar se tornando uma espécie de <a href="http://pt.wikipedia.org/wiki/Utopia" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/Utopia');">utopia</a>, pois se as pessoas não melhoram, não tem como a empresa melhorar.</p>
<p>Sobre a melhoria contínua, vou focar aqui nos aspectos (1) <strong>errar</strong> e (2) <strong>compromisso com a mudança</strong>.</p>
<h3><strong>Errar</strong><img class="alignright size-medium wp-image-195" title="tela_azul" src="http://codificando.com/wp-content/uploads/2009/08/tela_azul-300x207.jpg" alt="tela_azul" width="300" height="207" /></h3>
<p>O erro sempre foi um tabu nas empresas. Errar sempre foi considerado sinônimo de fraqueza ou incapacidade. No modelo que estavamos acostumado a trabalhar, erros geralmente eram punidos com severas advertências, demissões e/ou humilhações. No modelo em que estamos tentando trabalhar, os erros devem ser vistos como oportunidade para crescermos e melhorarmos como indivíduo e como profissional. Dessa forma, errar faz parte do processo, já que inevitavelmente erraremos algumas vezes ao longo da jornada.</p>
<h3><strong>Compromisso com a mudança</strong></h3>
<p>Quando pensamos em compromisso com a mudança no nível da empresa, talvez seja mais fácil, mas quando pensamos para o nível pessoal, complica um pouco. Mudar manias, paradigmas pessoais e outras coisas mais, geralmente é um processo bemmmm complicado. Porém, essa é a oportunidade que temos para aplicar na prática o que aprendemos com os nossos erros.</p>
<p>O compromisso em melhorar é fundamental para que haja resultados práticos. Errar e não melhorar, repetindo os mesmos erros, faz com que de nada tenha servido a oportunidade de reflexão.</p>
<h3>Nosso papel quando os outros erram</h3>
<p>Quando um colega seu errar, ajude. Criticar, humilhar, querer ver o mau dessa pessoa, de nada ajudará. Isso só fará com que você esteja piorando como profissional e como pessoa. Se for possível, ajude, se não for, torça para que essa pessoa consiga usar seu erro como uma oportunidade de melhoria. E não se esqueça: você também erra e vai continuar errando.</p>
<h3>Testemunho pessoal</h3>
<p>Recentemente, tive a infelicidade de cometer um erro. Foi um pequeno erro, mas que aconteceu e então isso me entristeceu bastante. No momento em que percebi essa falha, tratei de resolver o que precisava ser resolvido de forma mais urgente e deixei a reflexão para o primeiro momento oportuno.</p>
<p>Passado pouquíssimos dias, fiz uma profunda reflexão sobre a falha para que ela não viesse a ocorrer novamente. Dessa forma, além de melhorar como pessoa, acredito ter melhorado como profissional.</p>
<p>Talvez você pense: mas assumir assim um erro? Não tem vergonha disso não?</p>
<p>Digo com toda naturalidade: NÃO!!!</p>
<p>Quem erra é porque está evoluindo, quem erra é porque tenta alguma coisa, quem erra é porque pensa, quem erra é porque raciocina &#8230; quem erra, é porque está vivo. A diferença está em aproveitar isso como oportunidade.</p>
<h3>Conclusão</h3>
<p>Eu erro, você erra. Logo, nós erramos. Portanto, a melhoria contínua começa em nós!!!</p>
<h3>Referências:</h3>
<p>[1] <a href="http://visaoagil.wordpress.com/2009/01/06/melhoria-continua-e-efetiva-atraves-do-hansei-e-kaizen/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://visaoagil.wordpress.com/2009/01/06/melhoria-continua-e-efetiva-atraves-do-hansei-e-kaizen/');" target="_blank">http://visaoagil.wordpress.com/2009/01/06/melhoria-continua-e-efetiva-atraves-do-hansei-e-kaizen/</a></p>
<p>[2] <a href="http://www.slideshare.net/Comunidade_Lean_Thinking/melhoria-contnua" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.slideshare.net/Comunidade_Lean_Thinking/melhoria-contnua');" target="_blank">http://www.slideshare.net/Comunidade_Lean_Thinking/melhoria-contnua</a></p>
<p>[3] <a href="http://en.wikipedia.org/wiki/5_Whys" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/5_Whys');" target="_blank">http://en.wikipedia.org/wiki/5_Whys</a></p>
<p>[4] <a href="http://pt.wikipedia.org/wiki/Kaizen" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/Kaizen');" target="_blank">http://pt.wikipedia.org/wiki/Kaizen</a></p>
<p>[5] <a href="http://en.wikipedia.org/wiki/Hansei" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Hansei');" target="_blank">http://en.wikipedia.org/wiki/Hansei</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/codificandocom?a=cXfjH-X9iGc:vpPo3Xoij58:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=cXfjH-X9iGc:vpPo3Xoij58:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=cXfjH-X9iGc:vpPo3Xoij58:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=cXfjH-X9iGc:vpPo3Xoij58:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=cXfjH-X9iGc:vpPo3Xoij58:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=cXfjH-X9iGc:vpPo3Xoij58:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/08/31/melhoria-continua-comeca-em-nos/feed/</wfw:commentRss>
		<feedburner:origLink>http://codificando.com/2009/08/31/melhoria-continua-comeca-em-nos/</feedburner:origLink></item>
		<item>
		<title>Rails Summit 2009, e la vamos nós!!!</title>
		<link>http://feedproxy.google.com/~r/codificandocom/~3/uxKvDS5l54A/</link>
		<comments>http://codificando.com/2009/08/28/rails-summit-2009-e-la-vamos-nos/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 20:04:05 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[rest]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[tdd]]></category>

		<category><![CDATA[testes]]></category>

		<category><![CDATA[linguagens]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=175</guid>
		<description><![CDATA[Dias 13 e 14 de outubro estarei presente no Rails Summit 2009. Acontecerá em São Paulo com a organização do Fabio Akita da Locaweb.
No ano passado pude estar presente e realmente foi um evento excelente e de muito alto nível. Fiquei super satisfeito e esse ano acredito que será melhor ainda. Participaram diversos palestrantes internacionais [...]]]></description>
			<content:encoded><![CDATA[<p>Dias 13 e 14 de outubro estarei presente no Rails Summit 2009. Acontecerá em São Paulo com a organização do <a href="http://akitaonrails.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://akitaonrails.com/');" target="_blank">Fabio Akita da Locaweb</a>.</p>
<p>No ano passado pude estar presente e realmente foi um evento excelente e de muito alto nível. Fiquei super satisfeito e esse ano acredito que será melhor ainda. Participaram diversos palestrantes internacionais e os nossos colegas palestrantes nacionais também mandaram muito bem.</p>
<p><img class="alignnone" title="Rails Summit" src="http://www.railssummit.com.br/images/banners/vouParticipar_210x60.jpg" alt="" width="210" height="60" /></p>
<p>E você, está esperando o que para se inscrever?</p>
<p><a href="http://www.railssummit.com.br/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.railssummit.com.br/');" target="_blank">http://www.railssummit.com.br/</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/codificandocom?a=uxKvDS5l54A:j1ij7NwxzxM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=uxKvDS5l54A:j1ij7NwxzxM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=uxKvDS5l54A:j1ij7NwxzxM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=uxKvDS5l54A:j1ij7NwxzxM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=uxKvDS5l54A:j1ij7NwxzxM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=uxKvDS5l54A:j1ij7NwxzxM:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/08/28/rails-summit-2009-e-la-vamos-nos/feed/</wfw:commentRss>
		<feedburner:origLink>http://codificando.com/2009/08/28/rails-summit-2009-e-la-vamos-nos/</feedburner:origLink></item>
		<item>
		<title>Afinal, o que seria um profissional sênior?</title>
		<link>http://feedproxy.google.com/~r/codificandocom/~3/nZ63l5GOOII/</link>
		<comments>http://codificando.com/2009/06/07/afinal-o-que-seria-um-profissional-senior/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 03:44:05 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[gestão]]></category>

		<category><![CDATA[pragmatic]]></category>

		<category><![CDATA[scrum]]></category>

		<category><![CDATA[carreira]]></category>

		<category><![CDATA[pensamentos]]></category>

		<category><![CDATA[programação]]></category>

		<category><![CDATA[trabalho]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=99</guid>
		<description><![CDATA[Certo dia um amigo com alguns bons anos de experiência e trabalhando na função de pleno, achou que era a hora de mudar de cargo para sênior. Chegando no seu gerênte, recebeu a seguinte resposta: &#8220;fulano, não posso te passar pra sênior porque você não conhece o framework xyz e a lingaugem abc&#8220;. Esse meu [...]]]></description>
			<content:encoded><![CDATA[<p>Certo dia um amigo com alguns bons anos de experiência e trabalhando na função de pleno, achou que era a hora de mudar de cargo para sênior. Chegando no seu gerênte, recebeu a seguinte resposta: &#8220;fulano, não posso te passar pra sênior porque você não conhece o <a href="http://pt.wikipedia.org/wiki/Brainfuck" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/Brainfuck');">framework xyz e a lingaugem abc</a>&#8220;. Esse meu amigo chegou perto de mim bem cabisbaixo e me contou o que tinha acontecido. Simplesmente achei o fato ridículo. Talvez ele realmente não fosse o momento de se tornar sênior (i.e. em relação ao cargo), mas esse argumento realmente não cola.</p>
<p>Como já mencionei em <a href="http://codificando.com/2008/06/25/informatica-traducao-confusao/" >outros</a> <a href="http://codificando.com/2008/12/12/a-diferenca-entre-criar-e-fabricar/" >posts</a> nesse mesmo blog, nossa área de desenvolvimento de software/informática está cheia de termos/nomenclatura que se confundem facilmente (e.g. as discussões no <a href="http://www.guj.com.br" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.guj.com.br');" target="_blank">GUJ</a> sobre DTO). Mais uma vez, falarei sobre um deles: a classificação júnior, pleno, sênior.</p>
<p>Dando uma passeada pelos sites de <a href="http://www.apinfo.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.apinfo.com/');">emprego</a> de <a href="http://netcarreiras.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://netcarreiras.com/');">informática</a>, é fácil ver vagas para <a href="http://blog.fragmental.com.br/2008/01/15/quando-eu-crescer-quero-ser-analista-de-sistemas/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://blog.fragmental.com.br/2008/01/15/quando-eu-crescer-quero-ser-analista-de-sistemas/');">analista de sistemas</a> / programador / desenvolvedor júnior, pleno e sênior, etc. Acontece que a maioria das pessoas (inclusive os gerêntes de TI) não sabem muito bem fazer essa distinção entre os níveis, causando uma grande confusão na cabeça de todo mundo, inclusive na hora de negociar o cascalho. Portanto, vamos começar pelo básico &#8230;</p>
<div class="mceTemp">
<dl id="attachment_121" class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><img class="size-medium wp-image-121" title="yoda" src="http://codificando.com/wp-content/uploads/2009/06/yoda-300x226.png" alt="Master Yoda" width="300" height="226" /></dt>
</dl>
</div>
<p>Não sou uma pessoa entendida de RH, muito menos sei a história sobre como começou essa nomenclatura de júnior, pleno e sênior. Mas como trabalho na área de TI faz 12 anos e já passei por um bocado de empresas, acho que posso dar meu pitaco sobre o assunto. As melhores <a href="http://pt.wikipedia.org/wiki/S%C3%AAnior" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/S%C3%AAnior');">definições que consegui</a> <a href="http://www.priberam.pt/DLPO/default.aspx?pal=s%C3%A9nior" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.priberam.pt/DLPO/default.aspx?pal=s%C3%A9nior');">na internet</a> para sênior foram: <strong>ancião, velho, pessoa com mais experiência em alguma profissão</strong>. De cara tem alguma coisa estranha na resposta que o tal gerente deu pro meu amigo, mas não para por ai.</p>
<p>No início da minha carreira, nas empresas onde passei, <strong><em>geralmente o cara sênior era um cara com mais experiência, uma pessoa que viveu mais situações, uma pessoa mais madura (não necessáriamente velha ou idosa)</em></strong>. Por muitas vezes, essa pessoa não conhecia uma ferramenta ou outra de trabalho que eu conhecia, mas isso de maneira alguma me colocava no mesmo nível daquele profissional, pois tomando conhecimento da existência daquela ferramenta e utilizando um pouco do seu tempo, a tal ferramenta estava absorvida por este.</p>
<p>E o que eu quero dizer com isso? <strong><em>Eu quero dizer que se você começou agora, mesmo que você saiba python, ruby, java, erlang, haskell, xpto, brainfuck, você é Júnior ainda. Lógico que é ótimo saber diversas ferramentas e eu recomendo a todos estudar para isso.</em></strong> O mesmo princípio se aplica ao profissional sênior. Fatalmente tem algumas coisas que lhe fogem ao conhecimento, porém a diferência é que esse naturalmente conhece muitas ferramentas  devido a sua experiência ao longo dos anos. Não foi simplesmente um livro que leu ou um tutorial da internet que fez, mas projetos reais que participou. <strong><em>Um sênior deve saber debater com seus superiores sem medo, com argumentações bem formuladas, sabendo exatamente a sua posição, mas sem muito se intimidar quando conversa com outro profissional acima na hierarquia. </em></strong>Deve chamar a responsabilidade para si em momentos críticos, deve ajudar e ensinar os demais simplesmente porque isso é de sua responsabilidade.<strong><em><br />
</em></strong></p>
<p><em><strong>Saber ou não uma determinada linguagem ou ferramenta não faz necessáriamente de você nem júnior nem sênior</strong></em>, pois isso as vezes depende da sua trajetória de carreira. Eu por exemplo não sei nada de <a href="http://pt.wikipedia.org/wiki/ABAP" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/ABAP');" target="_blank">ABAP</a>, pois nunca trabalhei com <a href="http://www.sap.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.sap.com/');">SAP</a> ou algo que use essa linguagem. Talvez você esteja aprendendo Java nesse momento mas tem 10 anos de experiência com C/C++ e tem ótimas práticas de programação. Em fim, é bem relativo.</p>
<p>Pra finalizar, certa vez um amigo me disse que sênioridade é algo como um estado de espírito. Vou até um pouco além disso. Acredito que sêrionidade é um estado avançado de profissionalismo aliado a maturidade alcançada ao longo do tempo.</p>
<p><strong>Disclaimer: </strong></p>
<p>Para que não pareça que defendo regime de quartel, quero deixar bem claro que hoje em dia de nada adianta você ser maduro e experiente se você é um profissional encostado e desatualizado. E o talento, é claro, sempre fala mais alto.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/codificandocom?a=nZ63l5GOOII:3Jq7PJNvFHY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=nZ63l5GOOII:3Jq7PJNvFHY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=nZ63l5GOOII:3Jq7PJNvFHY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=nZ63l5GOOII:3Jq7PJNvFHY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=nZ63l5GOOII:3Jq7PJNvFHY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=nZ63l5GOOII:3Jq7PJNvFHY:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/06/07/afinal-o-que-seria-um-profissional-senior/feed/</wfw:commentRss>
		<feedburner:origLink>http://codificando.com/2009/06/07/afinal-o-que-seria-um-profissional-senior/</feedburner:origLink></item>
		<item>
		<title>JBehave Brasil - BDD em Java no nosso idioma</title>
		<link>http://feedproxy.google.com/~r/codificandocom/~3/sWED47IHzSc/</link>
		<comments>http://codificando.com/2009/04/15/jbehave-brasil-bdd-em-java-no-nosso-idioma/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 19:00:52 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[bdd]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[jruby]]></category>

		<category><![CDATA[pragmatic]]></category>

		<category><![CDATA[tdd]]></category>

		<category><![CDATA[testes]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[engenharia]]></category>

		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=67</guid>
		<description><![CDATA[No mês passado, resolvi aplicar BDD em um projeto Java que estava desenvolvendo. Atualmente, existem ferramentas em outras linguagens que podem ser usadas para esse fim. Por uma série de razões, resolvi usar o JBehave para resolver o meu problema nesse projeto em específico (lembre-se, não existe bala de prata). Acontece que o JBehave é [...]]]></description>
			<content:encoded><![CDATA[<p>No mês passado, resolvi aplicar <a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Behavior_Driven_Development');" target="_blank">BDD</a> em um projeto Java que estava desenvolvendo. Atualmente, existem <a href="http://wiki.github.com/aslakhellesoy/cucumber/jruby-and-java" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://wiki.github.com/aslakhellesoy/cucumber/jruby-and-java');" target="_blank">ferramentas</a> em <a href="http://jtestr.codehaus.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://jtestr.codehaus.org/');" target="_blank">outras linguagens</a> que podem ser usadas para esse fim. Por uma série de razões, resolvi usar o <a href="http://jbehave.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://jbehave.org/');" target="_blank">JBehave</a> para resolver o meu problema nesse projeto em específico (lembre-se, não existe bala de prata). Acontece que o JBehave é todo em Inglês e não dá suporte a i18n.</p>
<p>Quando comecei a usa-lo no meu projeto, logo percebi que usar em inglês não seria legal, pois o projeto só fazia sentido no Brasil e portanto o interessante era escrever os cenários em português. A partir desse momento, comecei a escrever algumas classes pra fornecer esse suporte. Felizmente, as classes <a href="http://jbehave.org/javadoc/latest/core/org/jbehave/scenario/Scenario.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://jbehave.org/javadoc/latest/core/org/jbehave/scenario/Scenario.html');">Scenario</a> e <a href="http://jbehave.org/javadoc/latest/core/org/jbehave/scenario/steps/Steps.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://jbehave.org/javadoc/latest/core/org/jbehave/scenario/steps/Steps.html');" target="_blank">Steps</a> permitem fácil extensão para resolver esse problema. Após as modificações necessárias, o arquivo de cenário passou a se chamar <strong>nome.cenario</strong> e o texto no arquivo ficou da seguinte forma:</p>
<pre name="code" class="xml">

Cenário: Nome em português do Brasil

Dado que eu quero rodar o Jbehave em português do Brasil
Quando eu usar o meu idioma
Então tudo deve funcionar perfeitamente
</pre>
<p>Feito isso, achei legal disponibilizar uma biblioteca para que outros desenvolvedores que precisem usar o <a href="http://jbehave.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://jbehave.org/');" target="_blank">JBehave</a> no nosso idioma possam faze-lo de forma trivial. Nesse momento nasceu o projeto <a href="http://github.com/emerleite/jbehave-br" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://github.com/emerleite/jbehave-br');" target="_blank">jbehave-br</a>, extraido desse projeto e disponibilizado no GitHub <a href="http://github.com/emerleite/jbehave-br" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://github.com/emerleite/jbehave-br');" target="_blank">aqui</a>. O projeto é muito simples e pequeno, com o objetivo de resolver especificamente esse problema e nada mais.</p>
<p>Depois de criar o projeto, pervebi que seria simples modifica-lo para posteriormente suportar qualquer idioma. Em breve estarei liberando essa nova versão. Por conta disso o projeto talvez mude de <a href="http://github.com/emerleite/jbehave-br" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://github.com/emerleite/jbehave-br');" target="_blank">jbehave-br</a> para outro nome.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/codificandocom?a=sWED47IHzSc:yE0g2-eOaD0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=sWED47IHzSc:yE0g2-eOaD0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=sWED47IHzSc:yE0g2-eOaD0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=sWED47IHzSc:yE0g2-eOaD0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=sWED47IHzSc:yE0g2-eOaD0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=sWED47IHzSc:yE0g2-eOaD0:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/04/15/jbehave-brasil-bdd-em-java-no-nosso-idioma/feed/</wfw:commentRss>
		<feedburner:origLink>http://codificando.com/2009/04/15/jbehave-brasil-bdd-em-java-no-nosso-idioma/</feedburner:origLink></item>
		<item>
		<title>BBB9 e o brother que você não gosta - NO AR !!!</title>
		<link>http://feedproxy.google.com/~r/codificandocom/~3/Pp9f3IRoLHo/</link>
		<comments>http://codificando.com/2009/02/20/bbb9-e-o-brother-que-voce-nao-gosta-no-ar/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 19:14:23 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[engenharia]]></category>

		<category><![CDATA[eventos]]></category>

		<category><![CDATA[gestão]]></category>

		<category><![CDATA[scrum]]></category>

		<category><![CDATA[bbb]]></category>

		<category><![CDATA[pensamentos]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=59</guid>
		<description><![CDATA[Entrou hoje, exatamente as 08:34 da manhã, o aplicativo oficial do Big Brother Brasil 9 para orkut na plataforma Open Social, desenvolvido pelo time o qual faço parte aqui na globo.com. Esse aplicativo tem por objetivo alfinetar o brother que o usuário não gosta e comentar sobre o assunto.

Aplicativos Open Social parecem algo como uma [...]]]></description>
			<content:encoded><![CDATA[<p>Entrou hoje, exatamente as 08:34 da manhã, o aplicativo oficial do <a href="http://bbb.globo.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://bbb.globo.com/');" target="_blank">Big Brother Brasil 9</a> para <a href="http://www.orkut.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.orkut.com');" target="_blank">orkut</a> na plataforma <a href="http://code.google.com/apis/opensocial/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://code.google.com/apis/opensocial/');" target="_blank">Open Social</a>, desenvolvido pelo time o qual faço parte aqui na <a href="http://globo.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://globo.com');" target="_blank">globo.com</a>. Esse aplicativo tem por objetivo alfinetar o brother que o usuário não gosta e comentar sobre o assunto.</p>
<p><img class="aligncenter" src="http://codificando.com/wp-content/uploads/2009/02/alfinetando_brother.jpg" alt="" width="517" height="392" /></p>
<p>Aplicativos Open Social parecem algo como uma brincadeirinha de criança, coisa que qualquer pessoa faz. Mas na verdade, desenvolver esse tipo de aplicação para um programa como o Big Brother Brasil não é tão simples. Aplicações de grande volume geralmente usam arquiteturas recheadas de <a href="http://www.danga.com/memcached/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.danga.com/memcached/');">cache</a>, <a href="http://en.wikipedia.org/wiki/Message_Oriented_Middleware" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Message_Oriented_Middleware');" target="_blank">processamento assíncrono usando fila</a>, criptografia, alguns servidores e um bocado de outras coisas que o torna tão complexo quanto qualquer outro sistema.</p>
<p>Quero aproveitar também e destacar, que <strong>conseguimos desenvolver o produto completo &#8220;do zero&#8221;, em pouco mais de 1 mês</strong>. Isso inclui configuração de todos os servidores (inclusive produção que são várias máquinas), ambiente interno de desenvolvimento, servidor de <a href="http://martinfowler.com/articles/continuousIntegration.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://martinfowler.com/articles/continuousIntegration.html');" target="_blank">integração contínua</a>, desenho dos bonecos dos brothers de forma personalizada, vários testes de carga em ambientes que simulam produção e muita comunicação. Estou falando disso, pois usamos metodologias ágeis e acredito fortemente que se não fosse assim, não teria sido possível entregar o aplicativo nesse tempo (e não trabalhamos nenhum fim de semana). No caso específico aqui da globo.com, <a href="http://pt.wikipedia.org/wiki/Scrum" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/Scrum');" target="_blank">SCRUM</a> é a metodologia usada, mas poderia ser <a href="http://www.extremeprogramming.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.extremeprogramming.org/');" target="_blank">Extreme Programming</a> ou alguma outra qualquer. Um detalhe também importante é que nosso time tem apenas 10 pessoas, o que contraria um pouco o modelo tradicional que diz que com mais gente o trabalho anda mais rápido.</p>
<p><strong>Se você gosta de Big Brother Brasil e deseja expressar sua opinião sobre algum brother, entre na seção de aplicativos do orkut e procure por: </strong><span class="status-body"><span class="entry-content"><strong>BBB - Voodoo Brother.</strong></span></span></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/codificandocom?a=Pp9f3IRoLHo:HyB0dGoSg7E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=Pp9f3IRoLHo:HyB0dGoSg7E:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=Pp9f3IRoLHo:HyB0dGoSg7E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=Pp9f3IRoLHo:HyB0dGoSg7E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=Pp9f3IRoLHo:HyB0dGoSg7E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=Pp9f3IRoLHo:HyB0dGoSg7E:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/02/20/bbb9-e-o-brother-que-voce-nao-gosta-no-ar/feed/</wfw:commentRss>
		<feedburner:origLink>http://codificando.com/2009/02/20/bbb9-e-o-brother-que-voce-nao-gosta-no-ar/</feedburner:origLink></item>
		<item>
		<title>Assine seus códigos</title>
		<link>http://feedproxy.google.com/~r/codificandocom/~3/NaSL4YaR6vk/</link>
		<comments>http://codificando.com/2009/02/10/assine-seus-codigos/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 19:26:21 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[engenharia]]></category>

		<category><![CDATA[tdd]]></category>

		<category><![CDATA[testes]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=58</guid>
		<description><![CDATA[Quem nunca chegou numa empresa ou projeto, deu de cara com um código horroroso e logo disse: Que droga, quem foi o infeliz que fez esse código tosco? Ou o contrário: Quem foi o cara que fez esse código maneiro?
Essas situações são muito frequentes, principalmente a primeira, com códigos fedorentos. Por isso, eu adoto uma [...]]]></description>
			<content:encoded><![CDATA[<p>Quem nunca chegou numa empresa ou projeto, deu de cara com um código horroroso e logo disse: Que droga, quem foi o infeliz que fez esse código tosco? Ou o contrário: Quem foi o cara que fez esse código maneiro?</p>
<p>Essas situações são muito frequentes, principalmente a primeira, com códigos fedorentos. Por isso, eu adoto uma postura: Sempre assino meus códigos.</p>
<p>O que seria assinar o código? Bem, assinar o código é aquela simples documentação que vem logo acima do arquivo, como por exemplo em Java, usando o famoso javadoc:</p>
<pre name="code" class="java">

package xpto;
import x;
/**
* @author Emerson Macedo
*/
public class Abc {
// ...
}
</pre>
<p>Assinar o código pode parecer meio arrogante mas o objetivo não é esse. O propósito de <a href="http://codificando.com/2009/01/15/os-5-niveis-do-desenvolvedor-nos-testes-automatizados/" ><img class="alignright" src="http://codificando.com/wp-content/uploads/2009/02/assinando.jpg" alt="" /></a>assinar o código e se expor. Quando você assina alguma coisa, explicitamente está colocando a sua autoria naquilo, ficando sujeito tanto a críticas, quanto a elogios.</p>
<p>Quando algum pintor faz um quadro, ele sempre vem assinado em alguma parte. Dificilmente o autor dessa obra de arte vai terminar esse quadro antes que ele tenha certeza que está com ótima qualidade (pelo menos na visão dele).</p>
<p>E no que isso implica? Isso implica que você (1) vai pensar 2 vezes antes de colocar aquela habitual gambiarra no seu código, (2) vai pensar bem antes de <a href="http://codificando.com/2009/01/15/os-5-niveis-do-desenvolvedor-nos-testes-automatizados/" >concluir alguma coisa sem devidos testes automatizado</a>s e (3) vai ser muito mais responsável com o código que você está desenvolvendo.</p>
<p><strong>Conclusão</strong></p>
<p>Como qualquer desenvolvedor, já desenvolvi códigos ruins em diversos projetos pelos quais passei. Aquele que nunca desenvolveu código fedorento que atire a primeira pedra. Hoje em dia, <a href="http://codificando.com/2008/09/11/codigo-do-panico/" >não desprezo a qualidade daquilo que desenvolvo</a>. Acredito muito que quando assinamos nossos códigos e nos damos conta que outro desenvolvedor/programador irá utiliza-lo futuramente, isso gera um maior cuidado com a qualidade.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/codificandocom?a=NaSL4YaR6vk:GlZ5eunyids:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=NaSL4YaR6vk:GlZ5eunyids:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=NaSL4YaR6vk:GlZ5eunyids:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=NaSL4YaR6vk:GlZ5eunyids:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=NaSL4YaR6vk:GlZ5eunyids:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=NaSL4YaR6vk:GlZ5eunyids:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/02/10/assine-seus-codigos/feed/</wfw:commentRss>
		<feedburner:origLink>http://codificando.com/2009/02/10/assine-seus-codigos/</feedburner:origLink></item>
		<item>
		<title>Os 5 níveis do desenvolvedor nos testes automatizados</title>
		<link>http://feedproxy.google.com/~r/codificandocom/~3/w7cjtdriJYw/</link>
		<comments>http://codificando.com/2009/01/15/os-5-niveis-do-desenvolvedor-nos-testes-automatizados/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 16:40:53 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[cursos]]></category>

		<category><![CDATA[engenharia]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[scrum]]></category>

		<category><![CDATA[tdd]]></category>

		<category><![CDATA[testes]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=57</guid>
		<description><![CDATA[Alguns acontecimentos me fizeram refletir um pouco sobre a relação entre o desenvolvedor de software e os testes automatizados.
Muitas vezes parei pra explicar pra vários colegas de trabalho sobre a importância do assunto, fiz pair-programmming pra ensinar como se faz, em fim, investi muito tempo pra ajudar diversas pessoas com isso. Por incrível que pareça, [...]]]></description>
			<content:encoded><![CDATA[<p>Alguns acontecimentos me fizeram refletir um pouco sobre a relação entre o desenvolvedor de software e os <a href="http://pt.wikipedia.org/wiki/Testes_automatizados" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/Testes_automatizados');">testes automatizados</a>.</p>
<p>Muitas vezes parei pra explicar pra vários colegas de trabalho sobre a importância do assunto, fiz <a href="http://www.improveit.com.br/xp/praticas/programacao_par" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.improveit.com.br/xp/praticas/programacao_par');">pair-programmming</a> pra ensinar como se faz, em fim, investi muito tempo pra ajudar diversas pessoas com isso. Por incrível que pareça, tem muiiiiiita gente que ainda não entendeu muito bem. Portanto, resolvi classificar a relação entre o desenvolvedor e os <a href="http://pt.wikipedia.org/wiki/Testes_automatizados" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/Testes_automatizados');">testes automatizados</a> em 5 níveis.</p>
<p>São eles:</p>
<ol>
<li><strong>Ignorante:</strong> Esse é o nível no qual o desenvolvedor não sabe direito o que são testes automatizados ou sequer ouviu falar sobre o assunto (acredite, ainda tem gente assim em pleno 2009).</li>
<li><strong>Indiferente: </strong>Nesse nível, o desenvolvedor já sabe o que é, mas acha que essa prática/tecnica não serve pra nada. Apenas toma tempo e atrasa a entrega do produto que está sendo desenvolvido. A sensação dele é que sem os testes a entrega seria mais rápida (e a quantidade de bugs tb vão aparecer mais rápido).<img class="alignright" src="http://codificando.com/wp-content/uploads/2009/01/escada.jpg" alt="" width="275" height="201" /></li>
<li><strong>Prequiçoso</strong>: Nesse nível eu encontro muita gente. É nesse nível onde a ficha caiu mas o camarada não toma coragem pra aprender a fazer os testes automatizados. Ainda existe o medo de perder muito tempo com essa prática e a preguiça impera, impedindo o progresso.</li>
<li><strong>Decidido: </strong>Esse pra mim é o nível mais importante. É nessa hora que o desenvolvedor se dá conta que não dá mais pra desenvolver software sem testes automatizados. É nessa hora que o cara pensa: &#8220;como eu pude desenvolver sem testes até hoje?&#8221;. É nesse momento que inicia-se o aprendizado.</li>
<li><strong>Profissional: </strong>Nesse nível, o desenvolvedor já não se sente mais confortável desenvolvendo sem testes automatizados. Desenvolver sem testes o incomoda profundamente. Nesse momento o mesmo está maduro quanto a importância dos testes e a aplicação na prática. O mesmo começa a se tornar um evangelista para os demais desenvolvedores e sempre que pode, fala sobre o assunto. Nesse momento o desenvolvedor pode realmente dizer que é um profissional, pois hoje em dia não se admite mais desenvolver sem ter testes automatizados que garantam qualidade daquilo que se desenvolve.</li>
</ol>
<p><strong><em>Em qual nível você está?</em></strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/codificandocom?a=w7cjtdriJYw:h8Zfv9ii-P4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=w7cjtdriJYw:h8Zfv9ii-P4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=w7cjtdriJYw:h8Zfv9ii-P4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=w7cjtdriJYw:h8Zfv9ii-P4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=w7cjtdriJYw:h8Zfv9ii-P4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=w7cjtdriJYw:h8Zfv9ii-P4:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/01/15/os-5-niveis-do-desenvolvedor-nos-testes-automatizados/feed/</wfw:commentRss>
		<feedburner:origLink>http://codificando.com/2009/01/15/os-5-niveis-do-desenvolvedor-nos-testes-automatizados/</feedburner:origLink></item>
		<item>
		<title>O Servidor ta dormindo …</title>
		<link>http://feedproxy.google.com/~r/codificandocom/~3/J_MNBtBtWUA/</link>
		<comments>http://codificando.com/2009/01/09/o-servidor-ta-dormindo/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 16:16:23 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[gestão]]></category>

		<category><![CDATA[pragmatic]]></category>

		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=56</guid>
		<description><![CDATA[Outro dia aqui na globo.com, estavamos numa reunião com uma determinada equipe que cuida de infra-estrutura sobre um projeto do meu time que estamos desenvolvendo. Num determinado momento da reunião, quando conversavamos sobre um determinado servidor de banco de dados, uma pessoa da equipe de infra disse que esse tal servidor estava dormindo (i.e. Trabalhando [...]]]></description>
			<content:encoded><![CDATA[<p>Outro dia aqui na <a href="http://globo.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://globo.com');">globo.com</a>, estavamos numa reunião com uma determinada equipe que cuida de<a href="http://codificando.com/wp-content/uploads/2008/10/pirulito.jpg" ><img class="alignright size-full wp-image-45" title="pirulito" src="http://codificando.com/wp-content/uploads/2009/01/garfield_dormindo.jpg" alt="" width="204" height="153" /></a> infra-estrutura sobre um projeto do meu time que estamos desenvolvendo. Num determinado momento da reunião, quando conversavamos sobre um determinado servidor de banco de dados, uma pessoa da equipe de infra disse que esse tal servidor estava dormindo (i.e. Trabalhando bem abaixo da sua capacidade). Como nosso projeto demandará grande volume, esse servidor será melhorado para que suporte nosso projeto e continue &#8220;dormindo&#8221;.</p>
<p>Pensando sobre essa situação imaginei nós, os desenvolvedores. Muitas vezes trabalhamos com muito stress, sobrecarga de trabalho e umas boas horas extras.</p>
<p><a href="http://codificando.com/wp-content/uploads/2008/10/pirulito.jpg" ><img class="alignleft size-full wp-image-45" title="pirulito" src="http://codificando.com/wp-content/uploads/2009/01/fadiga.jpg" alt="" width="198" height="149" /></a></p>
<p>O que será que acontece quando sobrecarregamos um servidor? Quando estressamos o mesmo? Quando fazemos testes de carga e performance, vemos que num determinado momento o servidor não aguenta e literalmente abre o bico.</p>
<p>Agora, se os servidores (que são máquinas, não humanos) precisam estar abaixo da capacidade produtiva pra não perder sua qualidade, imagine pessoas sem um tempo pra respirar, pensar e descansar?</p>
<p>Trabalhar no limite da sua capacidade produtiva torna o trabalho improdutivo, apesar de ser contra-intuitivo, talvez.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/codificandocom?a=J_MNBtBtWUA:G63eyiXuIyY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=J_MNBtBtWUA:G63eyiXuIyY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=J_MNBtBtWUA:G63eyiXuIyY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=J_MNBtBtWUA:G63eyiXuIyY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=J_MNBtBtWUA:G63eyiXuIyY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=J_MNBtBtWUA:G63eyiXuIyY:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/01/09/o-servidor-ta-dormindo/feed/</wfw:commentRss>
		<feedburner:origLink>http://codificando.com/2009/01/09/o-servidor-ta-dormindo/</feedburner:origLink></item>
		<item>
		<title>A diferença entre Criar e Fabricar</title>
		<link>http://feedproxy.google.com/~r/codificandocom/~3/TqwlnDSxjsA/</link>
		<comments>http://codificando.com/2008/12/12/a-diferenca-entre-criar-e-fabricar/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 16:35:40 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[engenharia]]></category>

		<category><![CDATA[gestão]]></category>

		<category><![CDATA[pragmatic]]></category>

		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=55</guid>
		<description><![CDATA[Sempre que eu ouço a frase &#8220;Fábrica de Software&#8221; meus ouvidos doem bastante. Outro dia, conversando com algumas pessoas, havia um colega que não entendia muito bem a minha aversão por essa tal de &#8220;Fábrica de Software&#8221;. Após explicar que software é um trabalho criativo, ficou uma dúvida entre algumas pessoas. Afinal de contas, qual [...]]]></description>
			<content:encoded><![CDATA[<p>Sempre que eu ouço a frase &#8220;Fábrica de Software&#8221; meus ouvidos doem bastante. Outro dia, <img class="alignright" src="http://codificando.com/wp-content/uploads/2008/12/fabrica-toyota-p.jpg" alt="" width="285" height="189" />conversando com algumas pessoas, havia um colega que não entendia muito bem a minha aversão por essa tal de &#8220;Fábrica de Software&#8221;. Após explicar que software é um trabalho criativo, ficou uma dúvida entre algumas pessoas. Afinal de contas, qual a diferença entre criar e fabricar?</p>
<p>Passeando um pouco pelo dicionário, algumas definições me chamaram um pouco a atenção:</p>
<ul>
<li>Criar: <strong>inventar</strong>; imaginar; dar existência a; <strong>desenvolver</strong>;</li>
<li>Fabricar: <span id="lblDlpoDefinicao"><span><span class="texto"><span style="cursor: pointer;" ondblclick="javascript:SeleccionaEntrada_v2(getSel(),'0')"><strong>executar</strong> ou fazer executar certos produtos por <strong>processos mecânicos</strong>; </span></span></span></span><span id="lblDlpoDefinicao"><span><span class="texto"><span style="cursor: pointer;" ondblclick="javascript:SeleccionaEntrada_v2(getSel(),'0')"><strong>manufacturar</strong>; </span></span></span></span><span id="lblDlpoDefinicao"><span><span class="texto"><span style="cursor: pointer;" ondblclick="javascript:SeleccionaEntrada_v2(getSel(),'0')"><strong>construir</strong>;</span></span></span></span></li>
</ul>
<p>É difícil perceber a diferença? Acho que não &#8230;</p>
<p>Se formos na <a href="http://pt.wikipedia.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/');" target="_blank">Wikipedia</a> podemos encontrar <a href="http://pt.wikipedia.org/wiki/F%C3%A1brica" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pt.wikipedia.org/wiki/F%C3%A1brica');" target="_blank">algumas informações ainda mais relevantes</a>. Vejamos parte do texto:</p>
<blockquote><p>&#8230; trabalhadores <strong>manufaturam bens</strong> ou supervisionam o funcionamento de máquinas que <strong>processam um produto</strong>, transformando-o em outro. A maioria das fábricas atuais têm grandes armazéns e depósitos com equipamentos pesados, utilizados na <strong>produção da linha de montagem</strong> &#8230;</p></blockquote>
<p><a href="http://martinfowler.com/articles/newMethodology.html#SeparationOfDesignAndConstruction" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://martinfowler.com/articles/newMethodology.html#SeparationOfDesignAndConstruction');" target="_blank">Oito anos atrás, Fowler escreveu sobre isso</a>, explicando claramente que a parte de &#8220;fabricar&#8221; o software é geralmente uma simples task do ant ou um goal do maven ou alguma coisa no rake, etc.</p>
<p><a href="http://www.guj.com.br/posts/list/84053.java" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.guj.com.br/posts/list/84053.java');" target="_blank">Já foi falado</a> <a href="http://www.guj.com.br/posts/list/59536.java" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.guj.com.br/posts/list/59536.java');" target="_blank">zilhões de vezes</a> <a href="http://www.guj.com.br/posts/list/66379.java" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.guj.com.br/posts/list/66379.java');" target="_blank">nos foruns de tecnologia</a> que fábrica presupõe trabalho repetitivo, fazer o mesmo produto várias vezes (você faz o mesmo software várias vezes ou quando precisa de uma cópia simplesmente faz um cp arquivo1 arquivo2?), desenvolvimento em fazes (i.e. waterfall). Portanto, não faz sentido comparar nosso trabalho com trabalho de fábrica.</p>
<p>O trabalho do desenvolvedor é <strong>criar o software</strong>, fazer design do código em todo o tempo, assim como <img class="alignleft" src="http://www.oficina.it/photo/_thumbs/OfiCentral_iStock_000000216119_L1.jpg" alt="" width="202" height="134" />os arquitetos da contrução civil fazem no autocad, ou no bom e velho papel. A diferença é que nós temos a condição de construir (i.e fabricar) o nosso software com <strong>custo &#8220;zero&#8221;. </strong>Não precisamos de pedreiros, tijolos, vigas, argamassa, etc. Agente usa o Ant, Maven, Rake, Make ou wathever ora bolas. É tudo de graça. O resultado do trabalho deles é físico, o nosso são bits e bytes.</p>
<p>O erro sempre foi fazer a associação: <strong>desenvolver = construir/fabricar</strong>. A associação mais correta é <strong>desenvolver = projetar/arquitetar/desenhar</strong>.</p>
<p>Até a próxima &#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/codificandocom?a=TqwlnDSxjsA:H8E5fa41P4c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=TqwlnDSxjsA:H8E5fa41P4c:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=TqwlnDSxjsA:H8E5fa41P4c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=TqwlnDSxjsA:H8E5fa41P4c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/codificandocom?a=TqwlnDSxjsA:H8E5fa41P4c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/codificandocom?i=TqwlnDSxjsA:H8E5fa41P4c:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2008/12/12/a-diferenca-entre-criar-e-fabricar/feed/</wfw:commentRss>
		<feedburner:origLink>http://codificando.com/2008/12/12/a-diferenca-entre-criar-e-fabricar/</feedburner:origLink></item>
	</channel>
</rss>
