<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1287486120180593203</id><updated>2012-01-05T18:35:02.428-02:00</updated><category term='mobile'/><category term='desafio'/><category term='prazo'/><category term='user experience'/><category term='fábrica de software'/><category term='qualidade'/><category term='funcionalidades'/><category term='conhecimento'/><category term='escopo'/><category term='bug'/><category term='atraso'/><category term='código'/><category term='pressão'/><category term='Peopleware'/><category term='metodologia'/><category term='estágio house'/><category term='open source'/><category term='amor'/><category term='risco'/><category term='titanium'/><category term='inteligência'/><category term='appcelerator'/><category term='blog'/><category term='networking'/><category term='autodidatismo'/><category term='paixão'/><category term='programador cowboy'/><category term='recrutamento'/><category term='experiência do usuário'/><category term='prioridade'/><category term='talento'/><category term='usabilidade'/><category term='reputação'/><category term='Joel Spolsky'/><category term='performance'/><category term='emprego'/><category term='comentários'/><category term='criatividade'/><category term='YAGNY'/><category term='contorno'/><category term='trabalho intelectual'/><category term='usuário'/><category term='investimento'/><title type='text'>Mais que bom código</title><subtitle type='html'>Reflexões de um desenvolvedor de software</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-7199935209668672210</id><published>2011-10-04T07:42:00.000-03:00</published><updated>2011-10-09T20:26:38.409-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='código'/><title type='text'>Programe menos</title><content type='html'>&lt;div&gt; &lt;a href="http://2.bp.blogspot.com/-yHkrL6pbElQ/TocgWZEzAwI/AAAAAAAAAxw/X9Jz7okhCL4/s1600/programe_menos_bicho_preguica.jpg" imageanchor="1" style="margin-bottom:1em"&gt;  &lt;img border="0" height="346" width="520" src="http://2.bp.blogspot.com/-yHkrL6pbElQ/TocgWZEzAwI/AAAAAAAAAxw/X9Jz7okhCL4/s1600/programe_menos_bicho_preguica.jpg" /&gt; &lt;/a&gt;  &lt;/div&gt;&lt;p&gt;Muito se fala sobre a necessidade de treino, muito treino, para alguém se tornar um bom programador. Apóio totalmente essa ideia. Mas, nesse artigo, gostaria de chamar a atenção para uma habilidade que poucos bons programadores chegam a adquirir: &lt;strong&gt;a habilidade de não precisar programar&lt;/strong&gt;. Não, não estou me referindo a "habilidade" que alguns tem de se esquivar do seu trabalho. Estou falando sobre realizar um trabalho de qualidade, mas usando pouco ou nada do seu próprio código.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;h3&gt;Quando aprendemos a escrever código&lt;/h3&gt;&lt;p&gt;No começo, tudo é uma beleza. Com algum material de estudo e pouco tempo de prática, podemos ver nosso primeiro &lt;a href="http://pt.wikipedia.org/wiki/Programa_Ol%C3%A1_Mundo"&gt;Hello World!&lt;/a&gt; funcionando, seja qual for a linguagem. Nesse ponto, não há a pressão das boas práticas ou da economia de recursos; precisamos apenas descobrir como fazer as coisas funcionar. Qualquer um que passa algum tempo nessa fase aprende a programar, ainda que não possa ser considerado um &lt;em&gt;bom&lt;/em&gt; programador.&lt;/p&gt;&lt;h3&gt;Quando aprendemos a deletar código&lt;/h3&gt;&lt;p&gt;Passada a fase inicial de aprendizado, descobrimos que há algumas boas práticas que nos ajudam a criar programas mais estáveis e fáceis de manter. É a fase em que aprendemos a &lt;em&gt;deletar código&lt;/em&gt;. Pegar um código grande e complexo e torná-lo mais simples e eficiente é fonte de grande orgulho e prazer para muitos programadores. Com algum tempo praticando essa "arte", aprendemos quais códigos valem o esforço de &lt;a href="http://pt.wikipedia.org/wiki/Refatora%C3%A7%C3%A3o"&gt;refatoração&lt;/a&gt; e como executá-la de maneira responsável, sem quebrar a estabilidade do software. Muitas dessas refatorações dão origem a bibliotecas que podem ser reaproveitadas em outros projetos, gerando uma grande substituição de código ruim e duplicado por código mais eficiente e estável. Que maravilha, hein? Só não é melhor porque a maioria dos bons programadores estaciona aqui.&lt;/p&gt;&lt;h3&gt;Quando aprendemos a não escrever código&lt;/h3&gt;&lt;p&gt;Muitos programadores se tornam tão bons na codificação que acreditam que seu código é a melhor forma de resolver todo tipo de problema. Isso não seria ruim se não fossem pequenos detalhes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Tempo é um recurso caro;&lt;/li&gt;&lt;li&gt;Todo código novo é propenso a bugs e leva tempo para que se torne estável e confiável;&lt;/li&gt;&lt;li&gt;Existem inúmeras bibliotecas, componentes e frameworks de qualidade que resolvem uma infindável quantidade de problemas;&lt;/li&gt;&lt;li&gt;Nem todo problema se resolve com código.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Esses pontos óbvios são frequentemente ignorados por causa de uma cultura existente em muitas empresas e indivíduos: a cultura do &lt;a href="http://en.wikipedia.org/wiki/Not_Invented_Here"&gt;Not Invented Here&lt;/a&gt; (Não Inventado Aqui).&lt;/p&gt;&lt;blockquote&gt;"Not Invented Here (HIH) é um termo usado para descrever uma cultura social, corporativa ou institucional em que se evita o uso ou compra de produtos, pesquisas, padrões ou conhecimento existentes por causa da sua origem externa." (Wikipedia)&lt;/blockquote&gt;&lt;p&gt;As razões para se preferir escrever seu próprio código podem incluir o medo de não entender as soluções de terceiros ou a indisposição de valorizar o trabalho de outros. Seja qual for o motivo, reinventar a roda raramente é a melhor alternativa.&lt;/p&gt;&lt;p&gt;Há uma história interessante que posso contar sobre isso. Muitos anos atrás, uma empresa onde trabalhei precisava tornar seus aplicativos desktop capazes de serem atualizados automaticamente. Desenvolveu-se então um aplicativo que, integrado aos aplicativos que seriam atualizados, cuidaria da verificação da existência de uma nova versão, do download e da instalação dela. O aplicativo era bem sofisticado para a época, podendo até continuar um download interrompido, se necessário. Seu desenvolvimento ocupou alguns meses de trabalho contínuo de um desenvolvedor e levou mais de um ano até que a primeira versão fosse testada em um cliente real. No primeiro teste real, bam! O cliente usava um proxy de internet com um protocolo de autenticação que não havia sido previsto. O desenvolvedor dessa solução não estava mais na empresa e o problema caiu no meu colo.&lt;/p&gt;&lt;p&gt;Ao pesquisar uma solução pronta que resolvesse essa questão da autenticação, descobri uma biblioteca que não apenas poderia cuidar desse problema específico, mas também poderia substituir praticamente todo o trabalho do aplicativo de atualização! Então, propus "jogar fora" o trabalho realizado até aquele momento e substituí-lo por um novo projeto baseado numa biblioteca de terceiros. Para encurtar a história, em dois dias eu tinha um protótipo funcional da nova solução e, em duas semanas, sua versão funcional. Até onde sei, essa solução, que ocupou uma pequena fração do tempo de desenvolvimento da primeira, usando uma biblioteca de terceiros, atualiza milhares de aplicativos até hoje.&lt;/p&gt;&lt;p&gt;Quanto dessa solução foi resolvida com meu código? Talvez cinco ou dez por cento. O código principal não era meu e não tenho receio algum de admitir isso. Tive sucesso graças ao trabalho de outros desenvolvedores que tornaram sua solução disponível a terceiros. Se essa abordagem tivesse sido utilizada originalmente, teria-se poupado muito tempo e dinheiro.&lt;/p&gt;&lt;p&gt;Qual a lição aprendida aqui? Não defendo que você utilize uma biblioteca, componente ou framework de terceiros para resolver todo tipo de problema. Da mesma forma, não defendo que faça o contrário, usando seu próprio código para resolver todo tipo de problema. A grande lição é:&lt;/p&gt;&lt;blockquote&gt;&lt;strong&gt;Aprenda a escrever bom código e faça isso quando necessário; mas aprenda também a escrever pouco ou nenhum código, quando está a sua disposição uma solução adequada, confiável e pronta para o uso&lt;/strong&gt;.&lt;/blockquote&gt;&lt;p&gt;Pra fechar, segue a tradução do &lt;a href="https://twitter.com/#!/mariofusco/status/47988950903693312"&gt;tweet&lt;/a&gt; que me serviu de inspiração para escrever esse artigo:&lt;/p&gt;&lt;blockquote&gt;"O código que você escreve te torna um programador. O código que você deleta te torna um bom programador. O código que você não tem que escrever te torna um grande programador". (Mario Fusco)&lt;/blockquote&gt;&lt;p&gt;Que achou desse artigo? Já teve alguma experiência relacionada? Deixe seu comentário.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt; &lt;p&gt;Créditos pela &lt;a href="http://www.flickr.com/photos/gjofili/5006207310/"&gt;foto do bicho-preguiça&lt;/a&gt; a Guilherme Jófili.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-7199935209668672210?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/7199935209668672210/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/10/programe-menos.html#comment-form' title='14 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/7199935209668672210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/7199935209668672210'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/10/programe-menos.html' title='Programe menos'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-yHkrL6pbElQ/TocgWZEzAwI/AAAAAAAAAxw/X9Jz7okhCL4/s72-c/programe_menos_bicho_preguica.jpg' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-3663857733802072522</id><published>2011-08-30T07:30:00.007-03:00</published><updated>2011-10-01T11:28:23.415-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='appcelerator'/><category scheme='http://www.blogger.com/atom/ns#' term='titanium'/><title type='text'>[off-topic] Mudanças profissionais e novo blog</title><content type='html'>&lt;div class="separator" style="float: left; margin-right: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/-YVUo-Y231L8/TlvCFbQUUrI/AAAAAAAAAv4/bT96s9382ss/s1600/desvio_ferrovia_por_Zig_Koch.jpg" width="266" height="400" /&gt;&lt;/div&gt;&lt;p&gt;No final de 2009 comecei a prestar muita atenção na área de desenvolvimento de software para dispositivos móveis. Me pareceu um mercado muito promissor, então comecei a estudar um pouco de desenvolvimento para iPhone (não havia iPad ainda). Em pouco tempo, comecei a dar uma olhada também no Android. Minha experiência com C me ajudou a tolerar um pouco da esquisitice do Objective-C. E minha experiência com Java, tornou as coisas bem fáceis ao estudar o SDK do Android.&lt;/p&gt;&lt;p&gt;Logo, comecei a olhar também algumas alternativas que me permitissem desenvolver ao mesmo tempo para iOS (como veio a se chamar o antigo iPhone OS) e para Android. O Android estava crescendo muito e me parecia razoável investir nas duas plataformas. Então, fui apresentado ao &lt;a href="http://www.appcelerator.com/products/titanium-mobile-application-development/"&gt;Appcelerator Titanium Mobile&lt;/a&gt;, ainda nos seus estágios iniciais. O Titanium permite criar apps nativas para iOS e Android usando uma única base de código, em JavaScript. Codificar em JavaScript me pareceu muito melhor do que usar ObjC ou Java. E a ideia de não precisar escrever dois aplicativos para ter um pé em cada plataforma, foi um ótimo argumento para estudar esse tal de Titanium. &lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;No final do ano passado, abri mão de um emprego de muitos anos para aproveitar uma oportunidade na área de desenvolvimento para dispositivos móveis. E o Titanium é atualmente a ferramenta que mais uso dentre as que estão as minha "maleta". &lt;/p&gt;&lt;p&gt;Por ser uma ferramenta ainda pouco conhecida no Brasil, tive o prazer de criar o primeiro &lt;a href="https://groups.google.com/forum/?hl=pt-BR#!forum/titanium-mobile-br"&gt;grupo de discussão brasileiro focado em Titanium Mobile&lt;/a&gt;. Agora, já com alguma bagagem de Titanium, tenho o prazer de lhes apresentar o &lt;a href="http://maisquetitanium.blogspot.com/"&gt;Mais que Titanium&lt;/a&gt;, o primeiro blog nacional focado no desenvolvimento de aplicativos móveis usando a plataforma Titanium Mobile. Dê uma olhada nele e, se você gostar, aguarde os próximos artigos que publicarei por lá.&lt;/p&gt;&lt;p&gt;Se você gosta do "Mais que bom código", não se preocupe, ele continuará vivo e com o mesmo perfil. Artigos que não tratarem de tecnologias ou nichos específicos continuarão sendo publicados aqui. Já os artigos que tratarem da área mobile, serão publicados no &lt;a href="http://maisquetitanium.blogspot.com/"&gt;Mais que Titanium&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Um abraço a todos os leitores e até o próximo artigo (aqui ou lá)!&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;&lt;p&gt;Créditos pela foto a Zig Koch do &lt;a href="http://www.naturezabrasileira.com.br/"&gt;Natureza Brasileira&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-3663857733802072522?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/3663857733802072522/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/08/off-topic-mudancas-profissionais-e-novo.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/3663857733802072522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/3663857733802072522'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/08/off-topic-mudancas-profissionais-e-novo.html' title='[off-topic] Mudanças profissionais e novo blog'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-YVUo-Y231L8/TlvCFbQUUrI/AAAAAAAAAv4/bT96s9382ss/s72-c/desvio_ferrovia_por_Zig_Koch.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-3937849037871545593</id><published>2011-06-27T16:45:00.049-03:00</published><updated>2011-06-27T16:49:22.267-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user experience'/><category scheme='http://www.blogger.com/atom/ns#' term='experiência do usuário'/><category scheme='http://www.blogger.com/atom/ns#' term='usuário'/><category scheme='http://www.blogger.com/atom/ns#' term='funcionalidades'/><title type='text'>Foque nos usuários, não nas funcionalidades</title><content type='html'>&lt;div class="separator" style="text-align: center; "&gt;&lt;a href="http://2.bp.blogspot.com/-PRZV1u--vVA/Tf_zmnTPjBI/AAAAAAAAAoQ/WJ9BZ1lM9WI/s1600/foque_no_usuario_nao_nas_funcionalidades.jpg" imageanchor="1" style="margin: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/-PRZV1u--vVA/Tf_zmnTPjBI/AAAAAAAAAoQ/WJ9BZ1lM9WI/s1600/foque_no_usuario_nao_nas_funcionalidades.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Num passado não muito distante, um certo nicho de mercado precisou atender a uma exigência do seu órgão regulador: determinadas guias que eram preenchidas à mão precisariam passar a ser preenchidas no computador, para que fossem enviadas &lt;em&gt;eletronicamente&lt;/em&gt; a seus destinatários. Os gestores da empresa de TI onde eu trabalhava viram nessa exigência uma oportunidade. Então, junto com uma equipe, fui encarregado de desenvolver um software que permitisse àquelas empresas atenderem a sua nova necessidade. Havia alguns concorrentes e o nosso software precisava, de alguma forma, se destacar entre eles. O resultado foi atingido e o software foi um sucesso! O que fizemos? &lt;a id="cit-asterisco" href="#asterisco"&gt;*&lt;/a&gt;&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;h3&gt;Avaliação dos concorrentes&lt;/h3&gt;&lt;p&gt;Não tenho receio algum de admitir que avaliamos as soluções de vários concorrentes. Tivemos que comprar algumas delas, inclusive. Nessa avaliação, percebemos que as soluções existentes focalizavam sempre a mesma coisa: as funcionalidades. Elas atendiam ao que era imprescindível, mas não faziam isso de forma eficaz. Os softwares concorrentes eram complicados e, em muitos casos, preencher as guias nesses softwares chegava a ser mais demorado do que fazer isso em papel.&lt;/p&gt;&lt;h3&gt;Foco nos usuários&lt;/h3&gt;&lt;p&gt;Não havia espaço para inventarmos funcionalidades como diferencial. O que tinha que ser feito estava claro: receber do usuário os dados das guias, permitir sua impressão e exportá-las para um formato específico. Qualquer funcionalidade adicional seria, perdão pelo termo, &lt;em&gt;encheção de linguiça&lt;/em&gt;. O que tínhamos que fazer para que nosso software se destacasse era simples: &lt;strong&gt;proporcionar ao usuário a melhor experiência de uso possível&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Como 99% do tempo de uso do software era o preenchimento de guias (que chegavam a ter mais de 100 campos e, em alguns casos, somavam milhares de unidades ao mês), nosso maior esforço tinha que ser concentrado nelas. Os recursos que implementamos provavelmente não vão te surpreender, mas surpreenderam os usuários. Os principais foram:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Os formulários de preenchimento das guias tinham leiaute tão próximo quanto possível das guias em papel (o que facilitou muito a transição papel-&gt;computador);&lt;/li&gt;&lt;li&gt;O preenchimento de diversos campos era deduzido pelo programa sempre que possível;&lt;/li&gt;&lt;li&gt;As validações necessárias eram feitas campo-a-campo e não eram obstrusivas (nada de "preencha esse campo antes de passar para o próximo");&lt;/li&gt;&lt;li&gt;Era permitido salvar uma guia incompleta ou inválida e terminar ou corrigi-la mais tarde;&lt;/li&gt;&lt;li&gt;Era sugerido salvar uma guia como "modelo" e preencher novas guias a partir desse modelo;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Nada de mais, certo? Pois é. Mas com esses recursos "nada de mais", preencher guias no nosso software chegava a ser até 20 vezes mais rápido do que fazer isso no papel! Isso era muito, muito mais do que qualquer concorrente havia conseguido. Será que éramos gênios? Não, apenas focamos nos usuários.&lt;/p&gt;&lt;h3&gt;Os interesses de quem paga&lt;/h3&gt;&lt;p&gt;Focar nos usuários nos ajudou a compreender o que tornaria seu trabalho mais fácil e produtivo. Mas isso seria insignificante se os interesses de quem de fato pagaria pelo software não fossem atingidos. Como a facilidade de uso aumentava a produtividade, tivemos um excelente argumento de venda. Afinal, produtividade é economia de tempo e tempo, é dinheiro.&lt;/p&gt;&lt;p&gt;No mundo corporativo, os softwares adotados nem sempre são escolhidos com base no que os seus futuros usuários pensam sobre ele. Por isso, é preciso estar ciente de que o foco nos usuários é importante, mas deve ser feito de forma a atender aos interesses de quem paga.&lt;p&gt;&lt;h3&gt;Apaixonando os usuários&lt;/h3&gt;&lt;p&gt;Outra coisa muito positiva que conseguimos por focar nos usuários, foi a propaganda gerada por eles, o popular boca-a-boca. Como seu trabalho se tornou muito mais fácil, por conta própria, eles recomendavam nosso software para seus conhecidos em outras empresas. Esses, por sua vez, recomendavam nosso software para seus gestores.&lt;/p&gt;&lt;p&gt;Você quer que seus usuários façam propaganda gratuita do seu software? Apaixone-os pelo seu software.&lt;/p&gt;&lt;h3&gt;Mas as funcionalidades também são importantes!&lt;/h3&gt;&lt;p&gt;Sim, claro, as funcionalidades são importantes. Mas existem as funcionalidades imprescindíveis e as dispensáveis. Partindo do princípio que você &lt;em&gt;sempre&lt;/em&gt; vai atender as necessidades imprescindíveis dos seus usuários, valorize menos as funcionalidades que só servem para encher linguiça e foque em proporcionar aos seus usuários uma melhor experiência ao usar seu software.&lt;/p&gt;&lt;p&gt;O que achou desse artigo? Deixe seu comentário.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;&lt;p id="asterisco"&gt;* &lt;a href="#cit-asterisco"&gt;^&lt;/a&gt; Destaquei nesse artigo apenas questões diretamente relacionadas a software, mas tenha em mente que aspectos comerciais e de marketing também estiveram envolvidos.&lt;/p&gt;&lt;p&gt;Para saber mais sobre &lt;em&gt;User experience&lt;/em&gt; (Experiência do usuário) aplicada a Web, veja o livro &lt;a href="http://www.amazon.com/Elements-User-Experience-User-Centered-Design/dp/0735712026"&gt;The Elements of User Experience&lt;/a&gt; de Jesse James Garret ou veja &lt;a href="http://www.jjg.net/elements/pdf/elements.pdf"&gt;o diagrama que deu origem ao livro&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-3937849037871545593?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/3937849037871545593/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/06/foque-nos-usuarios-nao-nas.html#comment-form' title='7 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/3937849037871545593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/3937849037871545593'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/06/foque-nos-usuarios-nao-nas.html' title='Foque nos usuários, não nas funcionalidades'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-PRZV1u--vVA/Tf_zmnTPjBI/AAAAAAAAAoQ/WJ9BZ1lM9WI/s72-c/foque_no_usuario_nao_nas_funcionalidades.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-2480637358001016635</id><published>2011-05-23T12:41:00.005-03:00</published><updated>2011-06-27T16:46:12.201-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='risco'/><category scheme='http://www.blogger.com/atom/ns#' term='conhecimento'/><category scheme='http://www.blogger.com/atom/ns#' term='investimento'/><title type='text'>Invista em conhecimento</title><content type='html'>&lt;div class="separator" style="text-align: left; "&gt;&lt;a href="http://2.bp.blogspot.com/-iQmTA_geEUY/Tdp2V4XNsAI/AAAAAAAAAmk/lyKoKu1iekI/s320/investimento_em_conhecimento.jpg" imageanchor="1" style="float: left; margin-right: 1em;"&gt;&lt;img width="250" height="250" src="http://2.bp.blogspot.com/-iQmTA_geEUY/Tdp2V4XNsAI/AAAAAAAAAmk/lyKoKu1iekI/s320/investimento_em_conhecimento.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Todo mundo sabe que mil reais hoje compram menos do que seria possível um ano atrás. Isso acontece por causa da inflação. Para fazer o dinheiro não perder seu valor é preciso investi-lo. &lt;/p&gt;&lt;p&gt;Conhecimento é como dinheiro. Seu valor também diminui com o passar do tempo. E quando se trata de tecnologia, a “inflação” é ainda maior, fazendo com que qualquer conhecimento tecnológico que se possua hoje perca drasticamente o seu valor em alguns anos. Se você não quer se tornar intelectualmente pobre, precisa colocar seu cérebro para trabalhar. Em outras palavras, precisa investir em conhecimento.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;div class="subtopicos1" style="margin-left: 0em;"&gt;&lt;h3&gt;Adquira o hábito de investir&lt;/h3&gt;&lt;p&gt;Muitas pessoas só investem quando aparece um dinheiro extra. Similarmente, muitos programadores só aprendem algo novo quando o que já sabem está obsoleto. Em ambos os casos, o investimento, de qualquer forma, é válido. Mas, melhor que investimentos grandes e esporádicos são os investimentos pequenos e regulares. Faça do investimento em conhecimento um hábito.&lt;/p&gt;&lt;h3&gt;Não ponha todos os ovos no mesmo cesto&lt;/h3&gt;&lt;p&gt;Salvo raras exceções&lt;span id="cit_ref-1" style="font-size:70%"&gt;&lt;sup&gt;[&lt;a href="#ref-1"&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;, os investidores concordam com a bem conhecida frase acima. O motivo é simples: se todos os ovos estiverem no mesmo cesto e algo muito ruim acontecer ao cesto, todos os ovos serão perdidos. Essa é uma forma simples de ensinar a importância da &lt;em&gt;diversificação&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Com o conhecimento tecnológico não é diferente. Seus maravilhosos conhecimentos na tecnologia que paga seu salário hoje – lamento dizer – um dia serão desprezados pela maior parte do mercado. Investir todas as suas energias nessa única tecnologia é como colocar todos os ovos num mesmo cesto.&lt;/p&gt;&lt;p&gt;Para diminuir seus riscos, diversifique. Aprenda os pontos positivos e negativos da tecnologia que você usa atualmente, mas não pare por aí. Aprenda novas tecnologias. Quanto maior o número de tecnologias com as quais você for capaz de trabalhar, melhores serão as suas chances de se adaptar às rápidas mudanças que acontecem na nossa área.&lt;/p&gt;&lt;h3&gt;Não evite o risco, administre-o&lt;/h3&gt;&lt;p&gt;Se você investir apenas em poupança, seus riscos de perder dinheiro serão pequenos. Porém, basicamente, você apenas manterá o poder aquisitivo do capital aplicado. Por outro lado, se você investir apenas em ações de &lt;em&gt;small caps&lt;/em&gt; (empresas de menor porte), as possibilidades de alto lucro serão grandes, mas as de perda total também.&lt;/p&gt;&lt;p&gt;Com um pouco de bom senso, percebe-se que nenhum dos dois extremos é só bom ou só ruim. É aí que entra a administração do risco. Muitos investidores dividem seus investimentos entre os de risco pequeno, moderado e alto. Se os investimentos de alto risco perderem completamente seu valor, o investidor não estará falido. Se, por outro lado, eles dobrarem ou triplicarem de valor, o investidor terá um bom lucro, ainda que não fique rico por isso. Riscos não são ruins, desde que sejam controlados.&lt;/p&gt;&lt;p&gt;De forma similar, podemos dizer que as tecnologias atualmente populares e com significativa demanda de oportunidades de trabalho são os investimentos conservadores enquanto as tecnologias emergentes, mas com bom potencial de crescimento são os investimento arriscados. Não é preciso escolher apenas uma das alternativas para investir; é possível investir em ambas, correndo riscos controlados, sem colocar todos os ovos no mesmo cesto.&lt;/p&gt;&lt;h3&gt;Compre na baixa, venda na alta&lt;/h3&gt;&lt;p&gt;Pouco depois de a crise financeira estourar nos EUA em 2008, cogitei a possibilidade de comprar ações de uma &lt;em&gt;small cap&lt;/em&gt; que havia ficado em sérias dificuldades financeiras. O valor de cada ação estava menos de R$0,10. Era um investimento de alto risco, visto que a empresa poderia falir em pouco tempo. Mas o potencial de ganho era grande, desde que os rumores de que um grande grupo compraria essa empresa e a resgataria da ruína financeira se concretizassem. Bem, eu não quis correr o risco de perder dinheiro algum com essa ação. E fiz mal. No início de 2010 cada ação dessa mesma empresa valia mais de R$25! Se eu tivesse usado &lt;strong&gt;mil reais&lt;/strong&gt; para comprar ações dessa empresa quando elas valiam R$0,10 e tivesse vendido essas mesmas ações quando elas valiam R$25, os mil reais teriam se transformado em nada menos que &lt;strong&gt;duzentos e cinquenta mil reais&lt;/strong&gt;! Essa história me ensinou a importância de comprar na baixa e vender na alta.&lt;/p&gt;&lt;p&gt;Quando se trata de tecnologia, acontece algo muito parecido. Aprender uma tecnologia antes que ela se torne popular é arriscado. Pode ser que nunca surja demanda para “vender” o conhecimento obtido. Por outro lado, se essa nova tecnologia se tornar muito popular e houver poucos profissionais aptos para utilizá-la, esses poucos profissionais serão muito bem pagos para “vender” seu conhecimento.&lt;/p&gt;&lt;h3&gt;Ajuste seus investimentos&lt;/h3&gt;&lt;p&gt;O mercado financeiro é muito dinâmico. Atentados terroristas, guerras ou mudanças de governo - para citar apenas alguns fatores - geram movimentos bruscos de alta e baixa. Por isso, os investidores precisam estar sempre atentos. Eles podem até se apegar ao seu capital, mas nunca à forma como ele é investido. Nesse mercado, é preciso ser capaz de abrir mão de um investimento que deixou de ser promissor para aplicar em outro com melhores perspectivas.&lt;/p&gt;&lt;p&gt;Não é diferente na área de tecnologia. Tecnologias nascem e morrem o tempo todo. Outras ficam eternamente moribundas. Não se pode contar com a sorte de ter escolhido uma ou outra tecnologia com um futuro promissor. É preciso estar sempre atento às mudanças no mercado e às consequentes oportunidades que surgem. Se a tecnologia com a qual você trabalha hoje está a cada ano menos solicitada pelo mercado, não reze para o barco não afundar, pule. E se um novo mercado ou uma nova tecnologia tem se mostrado cada vez mais promissor, o que você está esperando para colocar pelo menos um pé nele?&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Agora, gostaria de saber de você: em que você está investindo?&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;  &lt;p&gt;Referências:&lt;/p&gt;  &lt;ul&gt;    &lt;li id="ref-1"&gt;[1] &lt;a href="#cit_ref-1"&gt;^&lt;/a&gt; Max Gunther. &lt;a href="http://compare.buscape.com.br/os-axiomas-de-zurique-max-gunther-8501033502.html"&gt;"Os axiomas de Zurique"&lt;/a&gt;. Resenha disponível &lt;a href="http://www.geniodalampada.com/index.php?option=com_content&amp;view=article&amp;id=99:resenha-do-livro-qos-axiomas-de-zuriqueq&amp;catid=34:administracao&amp;Itemid=54"&gt;aqui&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;Andrew Hunt and David Thomas. &lt;a href="http://pragprog.com/titles/tpp/the-pragmatic-programmer"&gt;"The Pragmatic Programmer: From Journeyman to Master"&lt;/a&gt;. Versão em português &lt;a href="http://compare.buscape.com.br/proc_unico?id=3482&amp;kw=programador+pragmatico"&gt;aqui&lt;/a&gt;.&lt;/li&gt;  &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-2480637358001016635?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/2480637358001016635/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/05/invista-em-conhecimento.html#comment-form' title='7 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/2480637358001016635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/2480637358001016635'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/05/invista-em-conhecimento.html' title='Invista em conhecimento'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-iQmTA_geEUY/Tdp2V4XNsAI/AAAAAAAAAmk/lyKoKu1iekI/s72-c/investimento_em_conhecimento.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-3731055837192971782</id><published>2011-04-30T02:29:00.006-03:00</published><updated>2011-08-29T15:27:05.946-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joel Spolsky'/><category scheme='http://www.blogger.com/atom/ns#' term='recrutamento'/><category scheme='http://www.blogger.com/atom/ns#' term='emprego'/><title type='text'>Como identificar bons programadores</title><content type='html'>&lt;div class="separator" style="text-align: left; margin-bottom: 1.5em;"&gt;&lt;a href="http://1.bp.blogspot.com/-8jdMpdTDdkA/Tbubvf_rAxI/AAAAAAAAAl4/NrV7kHBiCCo/s1600/como_identificar_bons_programadores.jpg" imageanchor="1" style="float: left; margin-right: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/-8jdMpdTDdkA/Tbubvf_rAxI/AAAAAAAAAl4/NrV7kHBiCCo/s1600/como_identificar_bons_programadores.jpg" /&gt;&lt;/a&gt;&lt;div class="entrevista" style="font-size: 88%;"&gt;&lt;p&gt;&lt;strong&gt;Gerente de circo&lt;/strong&gt;: Você faz malabarismo há quanto tempo?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Candidato&lt;/strong&gt;: Humm, há cerca de seis anos.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Gerente de circo&lt;/strong&gt;: Você faz malabarismo com três, quatro e cinco bolas?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Candidato&lt;/strong&gt;: Sim, sim e sim.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Gerente de circo&lt;/strong&gt;: Sabe lidar com objetos chamejantes?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Candidato&lt;/strong&gt;: Claro.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Gerente de circo&lt;/strong&gt;: ...facas, machados, caixas de charuto abertas e chapéus?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Candidato&lt;/strong&gt;: Faço malabarismo com qualquer coisa.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Gerente de circo&lt;/strong&gt;: Você faz o público rir durante o malabarismo?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Candidato&lt;/strong&gt;: Sim, sou hilário.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Gerente de circo&lt;/strong&gt;: Gostei de você. Está contratado!&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Candidato&lt;/strong&gt;: Mas... você não quer me ver fazendo malabarismo?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Gerente de circo&lt;/strong&gt;: Caramba, nunca pensei nisso.&lt;/p&gt;&lt;p&gt;(Peopleware. “Hiring a Juggler”)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Qualquer um consideraria insano contratar um malabarista sem antes vê-lo demonstrando suas habilidades. É uma questão de bom senso. Mas é impressionante como esse bom senso é simplesmente ignorado por muitas empresas ao contratar programadores. Elas se limitam a ler currículos e fazer entrevistas que talvez avaliem um monte de coisas, menos se os candidatos têm talento pra fazer software.&lt;/p&gt;&lt;p&gt;Se você quer contratar bons programadores, precisa saber &lt;em&gt;como identificá-los&lt;/em&gt;. Não tenho um passo-a-passo para lhe oferecer, mas algumas lições que aprendi durante alguns anos de observação e execução dessa tarefa podem lhe ser de ajuda.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;h3&gt;Quem pode identificá-los?&lt;/h3&gt;&lt;p&gt;Identificar um bom programador é similar a identificar um bom malabarista: é preciso vê-lo demonstrar suas habilidades. Mas há uma diferença sutil: alguém que nunca fez malabarismo, pode identificar &lt;a href="http://www.youtube.com/watch?v=pYhkaZ0_Uzo" alt="Exemplo de um bom malabarista"&gt;um bom malabarista&lt;/a&gt;; mas alguém que nunca fez software, dificilmente poderá identificar um bom desenvolvedor de software. Existe um abismo que separa software de bom software e só quem compreende a profundidade desse abismo pode identificar aqueles capazes de criar bom software.&lt;/p&gt;&lt;p&gt;Portanto, se você não sabe programar, encare a realidade: sozinho, você não pode recrutar programadores. É claro que pessoas não técnicas podem (e devem) contribuir para o processo seletivo. Psicólogos, por exemplo, tem muito mais chances de identificar um candidato insubordinado, com dificuldades de relacionamento ou até um psicopata do que nós, técnicos. Minha intenção não é desmerecer o trabalho de ninguém, mas deixar claro o que cabe a cada um. E identificar bons programadores, do ponto de vista técnico, cabe a bons programadores.&lt;/p&gt;&lt;h3&gt;Qual o contexto?&lt;/h3&gt;&lt;p&gt;Se alguém me disser: “Preciso de um bom programador, você tem alguém pra indicar?”. Minha resposta será: “Depende, o que ele fará?”. O fato de alguém ser um bom programador não quer dizer que ele é adequado para todos os tipos de trabalho que envolvem criação de software. Num extremo há os trabalhos que exigem um perfil mais generalista, no outro os que exigem um perfil altamente especialista. No meio está a maioria, onde se exige um misto desses dois perfis. Essa e outras peculiaridades do trabalho formam o que chamo de &lt;em&gt;contexto&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Se você já programou por algum tempo e conheceu vários outros programadores, sabe que não se pode dizer que fulano é melhor que beltrano e ponto final. Lembre-se: programadores são pessoas, não mercadorias. As habilidades de duas pessoas não podem ser comparadas como se mede altura delas (ambos têm a mesma altura ou um é maior e outro menor).  A comparação deve ser feita mais ou menos como se comparam dois gráficos de barras. Em algumas barras (habilidades), um candidato pode parecer melhor que outro, em outras, equivalente ou pior. O contexto ajuda o recrutador a descobrir que “barras” do gráfico são mais relevantes para o processo seletivo em questão. &lt;/p&gt;&lt;h3&gt;As ferramentas&lt;/h3&gt;&lt;p&gt;A seguir, algumas das ferramentas que já utilizei para identificar bons programadores.&lt;/p&gt;&lt;div class="subtopicos1" style="margin-left: 0em;"&gt;&lt;h4&gt;O &lt;del&gt;bom e&lt;/del&gt; velho currículo&lt;/h4&gt;&lt;p&gt;O currículo ainda faz parte da primeira etapa de avaliação de candidatos na maioria das empresas.  Não tenho nada contra eles, desde que não sejam supervalorizados. Eles &lt;strong&gt;são ótimos para demonstrar habilidades de redação e marketing, mas ineficientes para demonstrar se alguém tem talento para fazer software&lt;/strong&gt;. Seja como for, há algumas informações pelas quais tenho interesse especial ao ler currículos:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Primeiras experiências&lt;/strong&gt;: Se as primeiras experiências do candidato aconteceram quando ele ainda era bem jovem, possivelmente se trata de alguém &lt;a href="http://maisquebomcodigo.blogspot.com/2010/11/caracteristicas-de-um-bom-programador.html" title="Saiba por que contratar programadores autodidatas"&gt;autodidata&lt;/a&gt;. Pontos adicionais são somados se essas experiências estiverem relacionadas a trabalhos autônomos, feitos para si mesmo ou para outros.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Raridade de conhecimento&lt;/strong&gt;: Apesar de o conhecimento diretamente ligado ao trabalho que será executado ter sua importância, gosto de ver que o candidato tem conhecimentos técnicos não muito solicitados pelo mercado. Não tanto pela utilidade direta desse conhecimento, mas pelo que ele representa. Investir tempo em aprender algo que não trará um retorno imediato geralmente revela um candidato &lt;a href="http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador_29.html" title="Saiba por que contratar programadores apaixonados"&gt;apaixonado&lt;/a&gt; pelo que faz, além de interessado em se aperfeiçoar e não apenas em ter um bom emprego. Ademais, certos conhecimentos abrem a mente para novas formas de resolver problemas.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Trabalhos notáveis&lt;/strong&gt;: A realização de trabalhos com grau de dificuldade elevado, não convencionais, inovadores ou de grande responsabilidade são algumas das coisas que tornam a experiência de um candidato algo notável. Programadores &lt;a href="http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador.html" title="Aprenda sobre a importância do talento"&gt;talentosos&lt;/a&gt;, muitas vezes atraem para si esse tipo de trabalho.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Apesar de muitas vezes ficar bem impressionado e curioso para conhecer alguns candidatos por causa dos seus currículos, é preciso reconhecer que &lt;strong&gt;com uma leitura de currículo, podemos apenas descobrir que um candidato não serve para a vaga&lt;/strong&gt;. Será preciso muito mais que isso para descobrir se ele serve.&lt;/p&gt;&lt;h4&gt;Mapeamento de conhecimento&lt;/h4&gt;&lt;p&gt;Essa é uma ferramenta que utilizo após avaliar um currículo favoravelmente. Se trata de um formulário onde o candidato autoavalia e comenta seus conhecimentos e/ou experiência em uma série de itens relacionados ao desenvolvimento de software, mas não exclusivamente nos quesitos mais relevantes para a vaga em questão.&lt;/p&gt;&lt;p&gt;Um exemplo que criei apenas para usar neste artigo pode ser visto &lt;a href="https://spreadsheets.google.com/viewform?formkey=dF9KczRVWnUwU1JadTM3QzFfc0xSanc6MA" title="Exemplo de um formulário de mapeamento de conhecimento"&gt;aqui&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;O resultado desse formulário é, geralmente, muito mais revelador que o currículo.  Por ser menos formal e ao mesmo tempo mais técnico, os bons candidatos tentem a se sentir mais à vontade para escrever sobre suas habilidades.  Ao mesmo tempo, candidatos que “enrolaram” no currículo vão se “enrolar” na hora de dar detalhes sobre seus conhecimentos.&lt;/p&gt;&lt;p&gt;De posse do currículo e do mapeamento de conhecimento preenchido, tenho uma impressão melhor do perfil do candidato.  Mentalmente, é como se eu formasse um gráfico com os pontos fortes e fracos do candidato.  Se o gráfico parecer adequado ao contexto, levo o candidato para a próxima etapa: a entrevista por telefone.&lt;/p&gt;&lt;h4&gt;Entrevista por telefone&lt;/h4&gt;&lt;p&gt;A entrevista por telefone não substitui a entrevista presencial, apenas provê um meio mais rápido de conhecer e avaliar os candidatos. Joel Spolsky cita uma das vantagens da entrevista por telefone ao dizer:&lt;/p&gt;&lt;blockquote&gt;"Visto que na entrevista por telefone você não vê o candidato, é fácil se concentrar na qualidade do que ele diz ao invés de em fatores externos e irrelevantes para o trabalho." &lt;span id="cit_ref-1" style="font-size:70%"&gt;&lt;sup&gt;[&lt;a href="#ref-1"&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;Após uma curta introdução onde faço breves e sinceros elogios com base no que li no currículo e no mapeamento de conhecimento, procuro conhecer melhor o candidato a partir de três pontos principais:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Como ele começou a programar&lt;/strong&gt;: Peço que o candidato me conte um pouco sobre como se interessou pelo desenvolvimento de software e quais foram as suas primeiras experiências com programação. A resposta de um candidato apaixonado normalmente é carregada de entusiasmo. Eles têm orgulho de falar das suas “façanhas” como aspirantes programadores. Ao mesmo tempo que a resposta do candidato alivia a sua tensão inicial, características importantes como &lt;a href="http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador_29.html" title="Saiba por que contratar programadores apaixonados"&gt;paixão&lt;/a&gt; e &lt;a href="http://maisquebomcodigo.blogspot.com/2010/11/caracteristicas-de-um-bom-programador.html" title="Saiba por que contratar programadores autodidatas"&gt;autodidatismo&lt;/a&gt; ficam mais evidentes pelo que ele diz.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Trabalhos que mais gostou&lt;/strong&gt;: Uma pergunta chave que faço é: de todos os projetos em que você esteve envolvido, em quais mais gostou de trabalhar?  Um candidato apaixonado, citará sem muita demora os projetos mais desafiadores. Peço detalhes sobre cada um desses os projetos.  Quero saber quais foram as responsabilidades dele, que desafios enfrentou, como os resolveu, por que resolveu daquela maneira, se propôs mudanças, se enfrentou resistência e que tecnologias estavam envolvidas.  Vou fundo nessas questões para descobrir se ele realmente sabe do que está falando.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Como ele resolve problemas que nunca viu antes&lt;/strong&gt;: Se você precisa selecionar programadores que não resolverão sempre os mesmos problemas, é bom avaliar a capacidade de lidarem com problemas nunca antes vistos. Para isso, descrevo brevemente alguns problemas e peço que o candidato me diga como os resolveria.  Propositalmente não forneço muitas informações para descobrir se o candidato sabe fazer as perguntas certas para obter mais informações. A solução para esses problemas deve revelar conhecimentos que vão além de escrever código.  O nível de dificuldade dos problemas e o que será considerado como uma solução viável varia de acordo com o nível do programador que se deseja contratar. A seguir, alguns exemplos que já usei:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Como você implementaria um programa para ordenar um arquivo texto de 10GB?&lt;/li&gt;&lt;li&gt;Como você implementaria um programa para controlar os elevadores de um prédio?&lt;/li&gt;&lt;li&gt;Como você implementaria uma engine de renderização para um browser?&lt;/li&gt;&lt;li&gt;Como você implementaria uma timeline como a do &lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt;?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Se o candidato não consegue nem mesmo formular perguntas para entender melhor o problema ou diz que não faz ideia de como resolvê-lo, muito provavelmente ele terá dificuldade para resolver problemas diferentes dos que está acostumado a resolver.&lt;/p&gt;&lt;/ul&gt;&lt;p&gt;Nesse ponto, já tenho dados suficientes para decidir se gostaria ou não de conversar pessoalmente com o candidato.&lt;/p&gt;&lt;h4&gt;O que a internet diz sobre ele?&lt;/h4&gt;&lt;p&gt;Se o candidato tem um blog sobre algum assunto ligado ao desenvolvimento de software, leia o que ele escreve e descubra suas opiniões. Se ele participa de grupos de discussão ou comenta em blogs, veja como ele interage com outros. Ele é ferrenho defensor de uma tecnologia específica? Mal sinal. Ele tem uma postura agnóstica sobre tecnologias? Ótimo, isso revela maturidade técnica. Nenhum programador é obrigado a ter uma conta no Twitter, mas se ele tem uma e a utiliza para compartilhar links interessantes, isso é uma boa forma de descobrir o que ele lê. Se o candidato compartilha projetos no &lt;a href="https://github.com/"&gt;Github&lt;/a&gt;, ótimo. É uma forma de avaliar a qualidade do seu código. Se ele possui forks de outros projetos, isso mostra que projetos o interessam.&lt;/p&gt;&lt;h4&gt;Miniprojeto&lt;/h4&gt;&lt;p&gt;Ao avaliar novatos em programação, gosto de pedir que executem em casa miniprojetos de software. Algo que dê pra fazer em um fim de semana. Não devem ser projetos muito simples e nem excessivamente complexos. O objetivo final deve ser claro, mas a forma como ele será atingido deve ficar em aberto. Eventuais dúvidas devem poder ser esclarecidas por e-mail ou telefone.  Quando o candidato considerar a solução terminada, deve enviá-la por e-mail. Isso dá ao avaliador a oportunidade de verificar a qualidade do código do candidato. A forma como o problema foi resolvido deve ser discutida e eventuais ajustes podem ser solicitados. O objetivo não deve ser que o candidato entregue uma solução perfeita, mas uma que funcione bem ao fim de algumas iterações. Os resultados que tive com esse tipo de ferramenta ao avaliar candidatos a estágio ou profissionais juniores foram excelentes.&lt;/p&gt;&lt;h4&gt;Entrevista presencial&lt;/h4&gt;&lt;p&gt;Essa é a etapa que considero mais importante no processo seletivo. Os que chegam até ela, até certo ponto, já conquistaram minha admiração e normalmente estou ansioso para conhecê-los.&lt;/P&gt;&lt;P&gt;Uma boa entrevista deve se parecer com uma conversa. A meta do entrevistador deve ser criar situações onde o candidato possa mostrar o seu potencial. Procuro fazer isso de duas maneiras.&lt;/P&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Detalhes sobre projetos realizados&lt;/strong&gt;: Solicito mais detalhes sobre projetos citados na entrevista por telefone. Algo como: estive pensando naquele projeto que você executou na empresa X. Como funcionava a parte de...? Ou, por que você implementou usando...? Você teve problemas com...? Que achou de usar...? Preferia ter usado outra linguagem/tecnologia? Chegou a sugerir isso? Deixe-o à vontade para responder observe se ele demonstra que tinha genuíno interesse pelo que estava fazendo. Programadores apaixonados não fazem um bom trabalho porque são pagos para isso, o fazem porque têm prazer nisso. São essas pessoas que você deve procurar. Procure pelo brilho nos seus olhos.&lt;/p&gt;&lt;p&gt;Ao mesmo tempo, essa conversa mais detalhada permitirá que ele demonstre a variedade e nível do seu conhecimento técnico, que deverá estar alinhado com o que foi informado no mapeamento de conhecimento.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Me mostre o código&lt;/strong&gt;: Como diria Linus Torvalds: “Show me the code”&lt;span id="cit_ref-2" style="font-size:70%"&gt;&lt;sup&gt;[&lt;a href="#ref-2"&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;. Nessa parte final, me certifico de que o candidato sabe não apenas falar sobre programação, mas também sabe praticá-la. Para isso, uso um quadro, papel e lápis ou um computador com um editor de texto simples (não é necessário compilador) e peço que o candidato resolva alguns problemas simples de programação na sua linguagem predileta.  Os problemas podem ser algo como:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Crie uma função que receba uma string e retorne uma cópia dela com o primeiro caracter em maiúsculo;&lt;/li&gt;&lt;li&gt;Crie uma função que receba um array e inverta a ordem dos seus elementos;&lt;/li&gt;&lt;li&gt;Crie uma função que retorne a quantidade de arquivos existentes num diretório (incluindo seus subdiretórios).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;O primeiro problema é realmente muito fácil e espera-se que todos sejam capazes de resolvê-lo em poucos segundos. O segundo, dependendo da linguagem, envolve algum conhecimento sobre ponteiros e o terceiro sobre recursão. O código de cada solução dará margem para alguma pergunta ou sugestão e isso deve ser explorado pelo avaliador para que o candidato se mostre capaz de explicar o que fez. Considerações de performance e consumo de memória podem ser levantadas. O candidato deve ter a chance de melhorar seu algoritmo, se assim desejar. Essa troca de ideias ajuda o avaliador e perceber como o candidato raciocina e como reage ao receber uma crítica construtiva sobre seu código. Apenas lembre de esperar até que o candidato diga que terminou uma solução, antes de falar qualquer coisa. O tempo que ele levar para resolver cada problema e a quantidade (ou ausência) de bugs também são fatores de avaliação.&lt;/p&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h4&gt;Considerações finais&lt;/h4&gt;&lt;p&gt;Se você está em busca de bons profissionais, lembre-se de duas coisas: (1) eles são a exceção e (2) sua empresa não é a única opção deles. Lembrar disso o ajudará a tratar seus candidatos com respeito, desde o primeiro contato. Isso vai desde a forma como você responde aos e-mails, passando pela flexibilidade de horários das entrevistas e indo até a sua pontualidade ao recebê-lo para uma entrevista presencial. Trate os candidatos como você gostaria de ser tratado, sempre.&lt;/p&gt;&lt;p&gt;O que você acha da forma como as empresas tentam identificar bons programadores? Tem alguma experiência para contar? Algo a dizer sobre esse artigo? Deixe seu comentário!&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;&lt;p&gt;Foto: Vladik Myagkostupov no show 'Dralion' do Cirque Du Soleil. Créditos a Sandra Mu/Getty Images AsiaPac.&lt;/p&gt;  &lt;p&gt;Referências:&lt;/p&gt;  &lt;ul&gt;    &lt;li id="ref-1"&gt;[1] &lt;a href="#cit_ref-1"&gt;^&lt;/a&gt; &lt;a href="http://www.joelonsoftware.com"&gt;Joel Spolsky&lt;/a&gt;. &lt;a href="http://books.google.com.br/books?id=nt_1fCfqv5EC"&gt;"Smart and Get Things Done"&lt;/a&gt;&lt;/li&gt;    &lt;li id="ref-2"&gt;[2] &lt;a href="#cit_ref-2"&gt;^&lt;/a&gt; &lt;a href="http://pt.wikipedia.org/wiki/Linus_Torvalds"&gt;Linus Torvalds&lt;/a&gt;. &lt;a href="hhttp://lkml.org/lkml/2000/8/25/132"&gt;"Talk is cheap. Show me the code"&lt;/a&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-3731055837192971782?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/3731055837192971782/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/04/como-identificar-bons-programadores.html#comment-form' title='12 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/3731055837192971782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/3731055837192971782'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/04/como-identificar-bons-programadores.html' title='Como identificar bons programadores'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-8jdMpdTDdkA/Tbubvf_rAxI/AAAAAAAAAl4/NrV7kHBiCCo/s72-c/como_identificar_bons_programadores.jpg' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-6832439396057775489</id><published>2011-01-18T15:25:00.005-02:00</published><updated>2011-06-20T23:48:45.452-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recrutamento'/><category scheme='http://www.blogger.com/atom/ns#' term='emprego'/><title type='text'>Como atrair bons programadores</title><content type='html'>&lt;div class="separator" style="clear: both; float: left;"&gt;&lt;a href="http://2.bp.blogspot.com/_NdUULTfUGRE/TTBsln5ToyI/AAAAAAAAAkE/R4YaQb2JnUE/s1600/como_atrair_bons_programadores.jpg" imageanchor="1" style="clear: left; float: left; margin-right: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/_NdUULTfUGRE/TTBsln5ToyI/AAAAAAAAAkE/R4YaQb2JnUE/s1600/como_atrair_bons_programadores.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Na década de 80, milhares de bravos garimpeiros foram atraídos ao lugar que se tornou o maior garimpo a céu aberto do mundo - a Serra Pelada. O motivo? A descoberta que o solo desse local possuía uma enorme quantidade de ouro.&lt;/p&gt;&lt;p&gt;Garimpeiros sabem que não adianta procurar ouro a esmo. É preciso saber onde há uma grande concentração do metal para então empreender o garimpo. E o garimpo envolve vasculhar grandes quantidades de terra, areia e pedras sem valor, para encontrar uma quantidade proporcionalmente ínfima do metal precioso.&lt;/p&gt;&lt;p&gt;Procurar bons programadores, de certa forma, é como procurar ouro. É preciso saber &lt;em&gt;onde&lt;/em&gt; procurar por eles e muita disposição para &lt;em&gt;garimpá-los&lt;/em&gt;. A diferença é que, quando se trata de pessoas, elas sempre terão a escolha de não querer ser garimpadas por você. Por isso, não basta saber procurar. É preciso saber como atraí-las.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;PS: Apesar desse artigo ser sobre atrair bons programadores, grande parte das  sugestões se aplicarão perfeitamente a outras profissões na área de TI.&lt;/p&gt;&lt;h3&gt;Onde fica a "Serra Pelada" dos bons programadores?&lt;/h3&gt;&lt;p&gt;Se você acha que os melhores locais para garimpar bons programadores são os classificados tradicionais de emprego, você errou feio. Pra começar, os melhores programadores, normalmente, não estão no mercado dando sopa. Boa parte deles, sequer freqüenta classificados de emprego. Quando querem mudar de emprego, é na sua rede de contatos profissionais – o famoso network – que eles procuram por uma nova oportunidade. E, mesmo quando não estão procurando um novo emprego, novas oportunidades chegam ao seu conhecimento através desses seus contatos. Se você não tem um bom network, suas chances de encontrar bons programadores são reduzidas, assim como suas chances de conseguir uma melhor oportunidade profissional. Portanto, a primeira dica é ter um bom network, tanto para encontrar profissionais como para ser encontrado.&lt;/p&gt;&lt;p&gt;Se você não puder preencher suas vagas através da sua rede de contatos, será preciso anunciá-las. Mas, como fazer com que seu anúncio seja lido pelos melhores programadores se eles, geralmente, não estão procurando emprego? &lt;strong&gt;Seu anúncio precisa aparecer no caminho deles&lt;/strong&gt;. E por onde eles andam?&lt;/p&gt;&lt;div class="subtopicos1" style="margin-left: 1em;"&gt;&lt;h4&gt;Grupos de discussão&lt;/h4&gt;&lt;p&gt;Pessoalmente, encontro muitos bons programadores em grupos de discussão relacionados a programação. Se, através das suas participações, percebo que um membro do grupo tem perfil adequado a uma vaga, faço um convite direto. (Eles se sentem honrados com isso!) Mas, mesmo que não possa fazer um convite direto, gosto de anunciar em grupos por causa da grande concentração de programadores realmente interessados, muitos deles apaixonados pelo que fazem. Um detalhe importante é que oportunidades compartilhadas por membros ativos têm mais crédito no grupo.&lt;/p&gt;&lt;h4&gt;Eventos de TI&lt;/h4&gt;&lt;p&gt;Panfletar anúncios de emprego em eventos de TI pode parecer apelativo, mas é uma ótima alternativa, pois nesses eventos há uma grande concentração de excelentes profissionais. Se houver verba, você pode contratar moças bonitas para fazer a panfletagem. Senão, é melhor deixar um panfleto em cada lugar do auditório. Se você conseguir que as oportunidades da sua empresa sejam também anunciadas do palco, melhor ainda. Esteja disposto também a fornecer mais informações pessoalmente aos interessados. Os melhores profissionais desejarão "entrevistar" você para confirmar se sua empresa é interessante para eles.&lt;/p&gt;&lt;h4&gt;Blogs&lt;/h4&gt;&lt;p&gt;Se sua empresa ou algum funcionário tem um blog relacionado a desenvolvimento de software com um bom número de leitores, anunciar nesse meio é uma boa alternativa, pois a maioria dos que acompanham blogs são realmente interessados na sua área e você, certamente, quer contratar esse tipo de profissional. &lt;/p&gt;&lt;h4&gt;Twitter&lt;/h4&gt;&lt;p&gt;Anúncios compartilhados no &lt;a href="http://twitter.com/"&gt;Twitter&lt;/a&gt; são uma boa alternativa, contanto que quem os anuncia tenha um bom número de seguidores na área de TI. Se seu anúncio for muito interessante, é provável que os seguidores de quem &lt;a href="http://g1.globo.com/tecnologia/noticia/2010/09/aurelio-ganha-nova-versao-com-verbos-como-tuitar-e-blogar.html"&gt;tuitou&lt;/a&gt; a vaga se interessem ou pelo menos a &lt;a href="http://www.techlider.com.br/2009/08/funcao-retweet-sera-facilitada-no-twitter/"&gt;retuitem&lt;/a&gt;, aumentando bastante as chances do seu &lt;a href="http://pt.wikipedia.org/wiki/Tweet_(twitter)"&gt;tweet&lt;/a&gt; chegar até bons profissionais. Por causa da limitação de 140 caracteres nos tweets, você precisará publicar o anúncio numa página da sua empresa ou blog e compartilhar no Twitter apenas uma chamada e um &lt;a href="http://migre.me/"&gt;link encurtado&lt;/a&gt; para o anúncio.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;O legal desses meios de divulgação "alternativos" é que você pode chegar até os bons programadores sem que eles estejam procurando um emprego&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Os classificados de emprego tradicionais não precisam ser descartados, mas devem ser usados em último caso. Se tiver que utilizá-los, dê preferência a procurar pelos currículos interessantes e não a anunciar a oportunidade e esperar que pessoas brilhantes peçam para você lhes dar uma oportunidade.&lt;/p&gt;&lt;h3&gt;Crie um anúncio sedutor&lt;/h3&gt;&lt;p&gt;Fazer seu anúncio "aparecer no caminho" de bons programadores é apenas o começo. O próximo passo é seduzi-los. Por quê? Porque &lt;strong&gt;se o cara é bom, sua empresa não é a única alternativa dele&lt;/strong&gt;. Independente de ele estar procurando um emprego ou não, seu anúncio precisa fazê-lo &lt;em&gt;querer muito&lt;/em&gt; a vaga e não apenas &lt;em&gt;se interessar&lt;/em&gt; por ela. Se você tem a mínima experiência em motivar pessoas, já deve ter percebido que nós, mesmo sendo técnicos, reagimos muito mais prontamente a estímulos emocionais do que racionais.&lt;/p&gt;&lt;p&gt;Portanto, se você quer motivar bons programadores a lerem seu anúncio e quererem trabalhar na sua empresa, você terá mais sucesso se conseguir mexer com suas emoções. Em outras palavras, você precisa seduzi-los.&lt;/p&gt;&lt;p&gt;É verdade que quanto mais interessante for o seu anúncio, mais candidatos você terá, sendo que a maioria continuará sendo de maus candidatos. Não adianta tentar resolver isso com uma longa lista de requisitos e uma observação (às vezes em caixa alta) tal como "Só envie seu currículo se você atende a todos os requisitos". É melhor se concentrar em criar um anúncio sedutor e depois se dedicar ao "garimpo", pois assim você aumenta suas chances de encontrar alguns bons candidatos.&lt;/p&gt;&lt;p&gt;Não existe uma fórmula para criar um anúncio sedutor, mas tenho visto a aplicação das seguintes sugestões render bons resultados:&lt;/p&gt;&lt;div class="subtopicos2" style="margin-left: 1em;"&gt;&lt;h4&gt;Trate os candidatos como humanos (hã?)&lt;/h4&gt;&lt;p&gt;Já reparou que a maioria dos anúncios de emprego é escrita como se fosse uma licitação para compra de uma mercadoria? Os requisitos que vemos são semelhantes a:&lt;/p&gt;&lt;ul&gt;  &lt;li&gt;X anos de experiência em XPTO&lt;/li&gt;  &lt;li&gt;Experiência comprovada em XYZ&lt;/li&gt;  &lt;li&gt;Curso superior completo nas áreas A, B ou C&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Qual o problema? Bem, se um candidato passou X anos mexendo superficialmente com XPTO ele atende aos requisitos? E se ele tem registrado na carteira profissional "Analista XYZ Sênior", mesmo tendo lidado com XYZ apenas ocasionalmente, serve? E se ele tem curso superior completo numa das áreas exigidas, mas foi um péssimo aluno, tudo bem?&lt;/p&gt;&lt;p&gt;Requisitos objetivos demais não ajudam, atrapalham. Eles reduzem a quantidade de candidatos, sem aumentar a qualidade deles. Se você os utilizar, haverá o risco de eliminar candidatos brilhantes por causa de um mero detalhe, que nada tem a ver com talento para fazer bom software. Além disso, requisitos objetivos demais são frios e não mexem com as emoções de quem os lê.&lt;/p&gt;&lt;p&gt;Outra questão é sobre a quantidade de exigências para a vaga. Não caia na tentação de fazer uma longa lista de exigências coma intenção de reduzir a quantidade de candidatos. Se você fizer isso, terá apenas mais candidatos mentirosos e não melhores.&lt;/p&gt;&lt;p&gt;Ao invés de fazer uma lista altamente objetiva do que é imprescindível e do que é desejável, diga em &lt;em&gt;linguagem informal&lt;/em&gt; o que se espera do candidato, sem mencionar detalhes que podem ser aprendidos facilmente. Use o bom senso. Se você puder adicionar uma pitada de bom humor, melhor ainda. Lembre-se: você quer descrever o que se espera de uma pessoa e não de uma mercadoria.&lt;/p&gt;&lt;h4&gt;Dê um motivo para orgulho&lt;/h4&gt;&lt;p&gt;Freud dizia que entre os anseios mais fortes do ser humano está o "desejo de ser grande". As pessoas gostam de pensar que seus trabalhos as tornam importantes, ou "grandes". Um software que terá milhares de usuários ou um trabalho que ajudará numa causa nobre certamente são motivos de orgulho para quem os desenvolve. Se você não pode oferecer esse tipo de orgulho, será bom oferecê-lo de outra forma. Por exemplo, se na sua empresa há uma espécie de culto a qualidade ou você tem na equipe alguns dos melhores profissionais da região, também haverá motivo para orgulho.&lt;/p&gt;&lt;h4&gt;Mostre que o trabalho é interessante&lt;/h4&gt;&lt;p&gt;Para bons programadores, trabalhos interessantes são aqueles que fazem bom uso do seu talento e que os ajudam a desenvolver novos conhecimentos e habilidades. É por isso que muitos justificam uma mudança de emprego com a "busca por novos desafios". Se você não puder demonstrar pelo seu anúncio que o trabalho em questão envolve um ou mais desafios interessantes, suas chances de ter bons programadores como candidatos serão pequenas.&lt;/p&gt;&lt;h4&gt;Mostre que o ambiente é interessante&lt;/h4&gt;&lt;p&gt;Programadores são trabalhadores do conhecimento, não operários. Como tal, o sucesso do seu trabalho sofre uma tremenda influência do ambiente no qual é realizado. Ambientes restritivos ou burocráticos, inibem a criatividade, o que afasta aqueles que não estão interessados apenas em receber o salário no final do mês. A maioria dos bons programadores que conheço está nessa categoria.&lt;/p&gt;&lt;p&gt;Se sua empresa não é restritiva nem burocrática em aspectos simples como horário de trabalho ou acesso a internet e você deixar isso claro no seu anúncio, suas chances de atrair excelentes programadores já serão consideravelmente aumentadas. Se for possível trabalhar de casa - mesmo que ocasionalmente – tenha a certeza de que você impressionará os melhores programadores.&lt;/p&gt;&lt;h4&gt;Não coloque o ego em jogo&lt;/h4&gt;&lt;p&gt;Os melhores programadores não são aqueles que se dizem especialistas em o que quer que seja. Os sensatos, quanto mais sabem sobre um assunto, mais reconhecem que ainda há muito o que aprender. Só os ignorantes vão logo se autoproclamando especialistas. É como disse o matemático e filósofo &lt;a href="http://pt.wikipedia.org/wiki/Bertrand_Russell"&gt;Bertrand Russell&lt;/a&gt;: 'Os tolos e os fanáticos têm sempre certeza, enquanto os sábios estão sempre cheios de dúvidas'.&lt;/p&gt;&lt;p&gt;Se você incluir no seu anúncio exigências do tipo "especialista", "profundo conhecimento", "ninja" ou similares, haverá o risco de descartar aqueles que conhecem muito sobre o assunto, mas que não possuem um ego tão inflado para se considerarem aptos à vaga. Se você não quer correr esse risco, seu anúncio deve ser convidativo, não intimidador. &lt;/p&gt;&lt;/div&gt;&lt;h3&gt;Se você precisar de inspiração...&lt;/h3&gt;&lt;p&gt;Se você precisar de inspiração para escrever anúncios de emprego sedutores, veja a seguir dois dos anúncios que mais gostei de ler. Note que eles se concentram mais no que o candidato pode esperar da empresa do que no que a empresa espera do candidato.&lt;/p&gt;&lt;ul&gt;  &lt;li&gt;&lt;a href="http://tech.groups.yahoo.com/group/riojug/message/19738"&gt;Desenvolvedor Web na Globo.com&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://www.ericksasse.com.br/estamos-contratando-desenvolvedores"&gt;Desenvolvedor Delphi via Erick Sasse&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;E o garimpo, como faço?&lt;/h3&gt;&lt;p&gt;Se você está oferecendo um trabalho interessante, conseguiu criar um anúncio sedutor e o fez aparecer no caminho de bons programadores, sua caixa de e-mails deve estar lotada de candidatos. Anime-se, isso é ótimo! Quando mais candidatos, maiores as suas chances de garimpar um bom programador. Mas se você quiser algumas sugestões sobre como garimpar os bons programadores entre os seus muitos candidatos, leia o artigo &lt;a href="http://maisquebomcodigo.blogspot.com/2011/04/como-identificar-bons-programadores.html"&gt;Como identificar bons programadores&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Você gostou desse artigo ou tem alguma outra idéia para atrair bons programadores? Deixe seu comentário!&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;&lt;p&gt;Foto: Recrutador (garimpeiro) trabalhando, feliz com a possibilidade de encontrar um bom programador (ouro). Créditos ao fotógrafo Sebastião Salgado.&lt;/p&gt;  &lt;p&gt;Referências:&lt;/p&gt;  &lt;ul&gt;    &lt;li&gt;Dale Carnegie. &lt;a href="http://compare.buscape.com.br/prod_unico?idu=1850400486&amp;estado=0&amp;cidade=0&amp;ordem=prec"&gt;"Como fazer amigos e influenciar pessoas"&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Travis Bradberry e Jean Greaves. &lt;a href="http://compare.buscape.com.br/prod_unico?idu=1857542278&amp;estado=0&amp;cidade=0&amp;ordem=prec"&gt;"Desenvolva sua inteligência emocional"&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Domenico de Masi. &lt;a href="http://www.saude.ms.gov.br/controle/ShowFile.php?id=23554"&gt;"Organizações Criativas"&lt;/a&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-6832439396057775489?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/6832439396057775489/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/01/como-atrair-bons-programadores.html#comment-form' title='25 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/6832439396057775489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/6832439396057775489'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/01/como-atrair-bons-programadores.html' title='Como atrair bons programadores'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_NdUULTfUGRE/TTBsln5ToyI/AAAAAAAAAkE/R4YaQb2JnUE/s72-c/como_atrair_bons_programadores.jpg' height='72' width='72'/><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-7304713124609528282</id><published>2011-01-15T00:00:00.008-02:00</published><updated>2011-04-30T03:05:27.809-03:00</updated><title type='text'>Um assunto leva a outro</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_NdUULTfUGRE/TS-tFHnR72I/AAAAAAAAAkA/L5SyHPmvfg8/s1600/um_assunto_leva_a_outro.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img width="520" height="342" src="http://1.bp.blogspot.com/_NdUULTfUGRE/TS-tFHnR72I/AAAAAAAAAkA/L5SyHPmvfg8/s1600/um_assunto_leva_a_outro.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;É impressionante como um assunto leva a outro. &lt;a href="http://maisquebomcodigo.blogspot.com/2010/09/limitacao-das-metodologias.html"&gt;Quatro artigos atrás&lt;/a&gt;, escrevi sobre a limitação das metodologias e concluí dizendo que para fazer bom software é preciso uma equipe talentosa.&lt;/p&gt;&lt;p&gt;No artigo seguinte, eu pretendia escrever sobre &lt;em&gt;como&lt;/em&gt; identificar programadores talentosos, mas percebi que, antes disso, era preciso explicar &lt;em&gt;porque&lt;/em&gt; é importante contratar programadores talentosos.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;Ao começar a escrever sobre isso, me dei conta de que a minha ideia original de &lt;a href="http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador.html"&gt;talento&lt;/a&gt; era muito abrangente e, na verdade, incluía duas outras características - a &lt;a href="http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador_29.html"&gt;paixão&lt;/a&gt; e o &lt;a href="http://maisquebomcodigo.blogspot.com/2010/11/caracteristicas-de-um-bom-programador.html"&gt;autodidatismo&lt;/a&gt;. Então, escrevi uma série de três artigos, um sobre cada uma dessas características.&lt;/p&gt;&lt;p&gt;O próximo artigo, ou série, enfim, seria sobre como identificar programadores talentosos, além de apaixonados e autodidatas.&lt;/p&gt;&lt;p&gt;Juro que era sobre isso que eu pretendia escrever, mas ao começar, percebi que, para poder identificar essas características naqueles que se candidatam a vagas na sua empresa, é preciso primeiro atraí-los.&lt;/p&gt;&lt;p&gt;Então, fique ligado. Em breve publicarei o artigo &lt;a href="http://maisquebomcodigo.blogspot.com/2011/01/como-atrair-bons-programadores.html"&gt;"Como atrair bons programadores"&lt;/a&gt;. Acho que está ficando legal, aguarde.&lt;/p&gt;&lt;p&gt;Em seguida (eu espero), publicarei o artigo &lt;a href="http://maisquebomcodigo.blogspot.com/2011/04/como-identificar-bons-programadores.html"&gt;“Como identificar bons programadores”&lt;/a&gt;. Depois de tanto tempo de gestação, espero que nasça algo legal.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;  &lt;p&gt;Foto: Judge Harry Pregerson Interchange em Los Angeles, California.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-7304713124609528282?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/7304713124609528282/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/01/um-assunto-leva-outro.html#comment-form' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/7304713124609528282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/7304713124609528282'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2011/01/um-assunto-leva-outro.html' title='Um assunto leva a outro'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_NdUULTfUGRE/TS-tFHnR72I/AAAAAAAAAkA/L5SyHPmvfg8/s72-c/um_assunto_leva_a_outro.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-7361035315485260960</id><published>2010-11-06T02:03:00.007-02:00</published><updated>2011-09-23T11:18:47.948-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='autodidatismo'/><title type='text'>Características de um bom programador – Parte 3/3 – Autodidatismo</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_NdUULTfUGRE/TNSYE2C11KI/AAAAAAAAAj0/Tfb2aSp3eJ8/s1600/ratinho-equilibrista.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img width="520" height="390" src="http://3.bp.blogspot.com/_NdUULTfUGRE/TNSYE2C11KI/AAAAAAAAAj0/Tfb2aSp3eJ8/s1600/ratinho-equilibrista.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Encerrando a série de três artigos em que falo sobre as características mais importantes a serem procuradas num programador, hoje explico porque considero o autodidatismo a terceira mais importante característica.&lt;/p&gt;&lt;p&gt;(Para quem não conhece a palavra, autodidatismo é a 'qualidade do autodidata'&lt;span id="cit_ref-autodidatismo"&gt;&lt;a href="#ref-autodidatismo"&gt;*&lt;/a&gt;&lt;/span&gt;. Autodidata, você já sabe, é quem aprende por conta própria, mesmo sem a ajuda de professores.)&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;h3&gt;Conhecimento tem prazo de validade&lt;/h3&gt;&lt;p&gt;Um dos maiores motivos para você desejar ter apenas programadores autodidatas na sua equipe, é que boa parte de todo conhecimento técnico que qualquer programador possua hoje se tornará obsoleto em alguns anos. A experiência adquirida até o presente ajuda a resolver os problemas do passado. Os problemas do futuro exigirão um conhecimento que ainda não existe. Logo, é muito perigoso contratar programadores com base apenas no que eles já sabem. É preciso contratar aqueles que serão capazes de aprender por conta própria o que for necessário para resolver problemas que ainda estão por surgir.&lt;/p&gt;&lt;h3&gt;Treinamentos formais não são o suficiente&lt;/h3&gt;&lt;p&gt;Aprender por conta própria? Sim, pois não se pode contar apenas com o treinamento formal. A quantidade de tecnologias novas e relevantes é tão grande que é impossível treinar equipes em todas as que parecem promissoras. E mesmo um bom treinamento não é suficiente para capacitar alguém como um bom solucionador de problemas. No máximo, os alunos aprendem a usar ferramentas e técnicas específicas para resolver problemas específicos. Se os alunos não forem autodidatas, suas habilidades ficarão limitadas aos problemas abordados no treinamento, que são infinitamente menores em quantidade que os problemas do mundo real.&lt;/p&gt;&lt;blockquote&gt;“Quando tudo o que você tem é um martelo, todos os problemas parecem pregos” (sabedoria popular)&lt;/blockquote&gt;&lt;p&gt;Além disso, se sua equipe só se atualiza numa nova tecnologia quando há treinamento formal para ela, você estará sempre atrasado. Um monte de equipes de autodidatas já estarão produzindo soluções mais modernas nas outras empresas quando a sua equipe estiver apenas começado a aprender a nova tecnologia.&lt;/p&gt;&lt;h3&gt;Aprender sozinho é fácil e divertido&lt;/h3&gt;&lt;p&gt;Outro motivo é que para um programador &lt;a href="http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador.html"&gt;talentoso&lt;/a&gt;, &lt;a href="http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador_29.html"&gt;apaixonado&lt;/a&gt; e autodidata, aprender uma nova linguagem, framework ou técnica é fácil e até divertido. Dê a ele tempo e os recursos necessários para estudar e em questão de semanas ele estará suficientemente produtivo no novo conhecimento. A fluência virá com o tempo.&lt;/p&gt;&lt;p&gt;Na maioria das vezes, é melhor contratar um &lt;strong&gt;bom&lt;/strong&gt; programador e dar a ele tempo para aprender Python, Ruby, Objective-C, Erlang ou o que quer que seja, do que contratar um programador mediano que já conheça o básico da linguagem em que ele vai trabalhar. (Uma exceção é se você está procurando um programador apenas para &lt;a href="http://maisquebomcodigo.blogspot.com/2010/05/quando-usar-solucoes-de-contorno.html"&gt;“apagar incêndios”&lt;/a&gt;.)&lt;/p&gt;&lt;h3&gt;Acredite, eles existem&lt;/h3&gt;&lt;p&gt;Programadores &lt;a href="http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador.html"&gt;talentosos&lt;/a&gt;, &lt;a href="http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador_29.html"&gt;apaixonados&lt;/a&gt; e autodidatas são a minoria, mas acredite, eles existem. Gostaria de poder dizer que todos eles estão muito bem empregados ou tem um negócio próprio bem sucedido, mas a realidade é que boa parte deles trabalha para empresas que acham que "programador é tudo igual". Se sua empresa não é desse tipo e você quer &lt;em&gt;aprender a identificar as características que tornam alguém um bom programador&lt;/em&gt; para levar pessoas assim para a sua equipe, veja os artigos &lt;a href="http://maisquebomcodigo.blogspot.com/2011/01/como-atrair-bons-programadores.html"&gt;Como atrair bons programadores&lt;/a&gt; e &lt;a href="http://maisquebomcodigo.blogspot.com/2011/04/como-identificar-bons-programadores.html"&gt;Como identificar bons programadores&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;O que você achou dessa série de artigos sobre as características mais importantes a serem procuradas num programador? Gostaria de citar alguma outra característica? Comente.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;&lt;p id="ref-autodidatismo"&gt;* &lt;a href="#cit_ref-autodidatismo"&gt;^&lt;/a&gt; Michaelis - Moderno Dicionário da Língua Portuguesa. &lt;a href="http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-portugues&amp;palavra=autodidatismo"&gt;"Autodidatismo"&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Referências:&lt;/p&gt;  &lt;ul&gt;    &lt;li id="ref-1"&gt;&lt;a href="http://www.joelonsoftware.com"&gt;Joel Spolsky&lt;/a&gt;. &lt;a href="http://books.google.com.br/books?id=nt_1fCfqv5EC"&gt;"Smart and Get Things Done"&lt;/a&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-7361035315485260960?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/7361035315485260960/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/11/caracteristicas-de-um-bom-programador.html#comment-form' title='13 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/7361035315485260960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/7361035315485260960'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/11/caracteristicas-de-um-bom-programador.html' title='Características de um bom programador – Parte 3/3 – Autodidatismo'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_NdUULTfUGRE/TNSYE2C11KI/AAAAAAAAAj0/Tfb2aSp3eJ8/s72-c/ratinho-equilibrista.jpg' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-4451340139533810993</id><published>2010-10-30T00:00:00.006-02:00</published><updated>2011-09-23T11:04:10.650-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='desafio'/><category scheme='http://www.blogger.com/atom/ns#' term='amor'/><category scheme='http://www.blogger.com/atom/ns#' term='talento'/><category scheme='http://www.blogger.com/atom/ns#' term='paixão'/><title type='text'>Características de um bom programador – Parte 2/3 – Paixão</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_NdUULTfUGRE/TMt3AOiojuI/AAAAAAAAAjw/A7pqUEcHhjU/s1600/talento_e_paixao.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img width="520" height="371" src="http://2.bp.blogspot.com/_NdUULTfUGRE/TMt3AOiojuI/AAAAAAAAAjw/A7pqUEcHhjU/s1600/talento_e_paixao.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Em 2005, os formandos da &lt;a href="http://www.stanford.edu"&gt;Stanford University&lt;/a&gt; - uma das melhores universidades do mundo - foram brindados com um discurso memorável de nada menos que Steve Jobs. Seu discurso inteiro merece ser assistido&lt;span id="cit_ref-1a" style="font-size:70%"&gt;&lt;sup&gt;[&lt;a href="#ref-1"&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;, mas quero citar apenas uma pequena frase dele:&lt;/p&gt;&lt;blockquote&gt;"A única maneira de fazer um trabalho brilhante é amar o que você faz" &lt;span id="cit_ref-1b" style="font-size:70%"&gt;&lt;sup&gt;[&lt;a href="#ref-1"&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;Jobs contou que os eventos que culminaram na sua demissão da Apple não afetaram seu sentimento para com o seu trabalho. Ele continuou apaixonado pelo que fazia. Essa paixão o motivou a seguir em frente. Ele então criou a NeXT, que produziu a tecnologia que viria a se tomar o coração do Mac OS, e iniciou a Pixar, que produziu o primeiro longa-metragem totalmente feito por computação gráfica - o filme Toy Story. Em uma incrível virada de eventos, Jobs reassumiu a liderança da Apple.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;É uma história impressionante, e meu objetivo ao utilizá-la é embasar a afirmação de que &lt;strong&gt;talento não é nada sem paixão&lt;/strong&gt;.&lt;/p&gt;&lt;h3&gt;Apaixonados vão mais longe&lt;/h3&gt;&lt;p&gt;Pessoas talentosas, mas sem paixão, não vão muito longe. Nenhuma motivação externa (salário, estabilidade, status etc) é capaz de produzir efeitos equivalentes a maior de todas as motivações internas - a paixão. Isso é verdade tanto para um pedreiro como para um programador.&lt;/p&gt;&lt;p&gt;Programadores talentosos e apaixonados não precisam de estímulo para fazer um trabalho de qualidade; eles o fazem porque sentem prazer nisso. Também não precisam de estímulo para serem criativos; eles simplesmente o são. Problemas desafiadores fazem seus olhos brilharem. Por outro lado, os que tem talento, mas não paixão, fazem apenas o suficiente.&lt;/p&gt;&lt;h3&gt;Ninguém veste a camisa do outro&lt;/h3&gt;&lt;p&gt;Alguns gostam de contratar aqueles que se comprometem a "vestir a camisa da empresa". Mas a  realidade é que nós vestimos apenas a nossa própria camisa. Em outras palavras, trabalhamos pelas nossas próprias realizações.&lt;/p&gt;&lt;p&gt;Quando se trata de programadores, não adianta procurar aqueles que serão comprometidos com a empresa. Esse tipo de comprometimento significa apenas que serão funcionários obedientes e honestos, o que não tem nada a ver com fazer bom software. Um bom software é feito por pessoas talentosas e comprometidas com o &lt;em&gt;seu próprio trabalho&lt;/em&gt;. Esse comprometimento é o que os leva a procurar pelas melhores soluções para os problemas que a sua empresa enfrenta. E de onde vem esse comprometimento? Não é da paixão pelo empregador, mas da paixão pelo seu ofício. Portanto, esqueça aqueles que dizem que vão "vestir a camisa da empresa" e procure pelos que, de verdade, são apaixonados pelo próprio trabalho.&lt;/p&gt;&lt;h3&gt;Nem tudo são flores&lt;/h3&gt;&lt;p&gt;O corolário dos programadores talentosos e apaixonados é a sua tendência de produzir soluções mais sofisticadas do que o prazo e o orçamento permitem. Isso, de fato, é um problema para os gestores. Mas é um problema menor e mais fácil de ser contornado do que a improdutividade e baixa qualidade do trabalho de programadores sem talento e paixão.&lt;/p&gt;&lt;p&gt;Outra peculiaridade é que eles facilmente chegam ao &lt;a href="http://maisquebomcodigo.blogspot.com/2010/06/o-estagio-house-do-bom-programador.html"&gt;estágio House&lt;/a&gt; se não tiverem uma boa dose de trabalhos que façam bom uso do seu talento e alimentem a sua paixão. Isso é comum acontecer em empresas que pararam no tempo e não evoluíram tecnologicamente. Se esse é o caso da sua empresa, é melhor conseguir alguns &lt;a href="http://maisquebomcodigo.blogspot.com/2010/06/5-dicas-para-aproveitar-sua.html"&gt;trabalhos interessantes&lt;/a&gt; antes que sobrem apenas cowboys na sua equipe.&lt;/p&gt;&lt;h3&gt;Pra fechar...&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Se você quer fazer bom software, tenha uma equipe talentosa e apaixonada. Sem essas  características, não há metodologia, salário, nem gerência que faça uma equipe produzir bom  software.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Esse era o recado sobre Paixão. Volte no próximo sábado e leia o &lt;a href="http://maisquebomcodigo.blogspot.com/2010/11/caracteristicas-de-um-bom-programador.html"&gt;último artigo desta série&lt;/a&gt; falando sobre a terceira característica que considero mais importante. Se preferir, assine meu &lt;a href="http://maisquebomcodigo.blogspot.com/feeds/posts/default"&gt;RSS&lt;/a&gt;, siga-me no &lt;a href="http://twitter.com/DirleiDionisio"&gt;Twitter&lt;/a&gt; ou torne-se seguidor deste blog para ser informado quando for publicado o próximo artigo.&lt;/p&gt;&lt;p&gt;Você concorda que a paixão é uma das características mais importantes num bom programador? Deixe seu comentário.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;  &lt;p&gt;Foto: Equilibristas talentosas e apaixonadas do &lt;a href="http://www.cirquedusoleil.com/"&gt;Cirque du Soleil&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Referências:&lt;/p&gt;  &lt;ul&gt;    &lt;li id="ref-1"&gt;[1] &lt;a href="#cit_ref-1a"&gt;&lt;sup&gt;a&lt;/sup&gt;&lt;/a&gt; &lt;a href="#cit_ref-1b"&gt;&lt;sup&gt;b&lt;/sup&gt;&lt;/a&gt; Steve Jobs. &lt;a href="http://www.youtube.com/watch?v=UF8uR6Z6KLc"&gt;"You've got to find what you love"&lt;/a&gt; (&lt;a href="http://news.stanford.edu/news/2005/june15/jobs-061505.html"&gt;transcrição&lt;/a&gt;)&lt;/li&gt;  &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-4451340139533810993?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/4451340139533810993/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador_29.html#comment-form' title='8 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/4451340139533810993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/4451340139533810993'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador_29.html' title='Características de um bom programador – Parte 2/3 – Paixão'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_NdUULTfUGRE/TMt3AOiojuI/AAAAAAAAAjw/A7pqUEcHhjU/s72-c/talento_e_paixao.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-4838752946944864303</id><published>2010-10-23T00:00:00.014-02:00</published><updated>2011-08-25T00:10:54.412-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Peopleware'/><category scheme='http://www.blogger.com/atom/ns#' term='Joel Spolsky'/><category scheme='http://www.blogger.com/atom/ns#' term='talento'/><title type='text'>Características de um bom programador – Parte 1/3 – Talento</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_NdUULTfUGRE/TMJbPkA4FcI/AAAAAAAAAjM/q2jqlWEN6L8/s1600/Mozart_LaFintaGiardiniera.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img width="520" height="346" src="http://3.bp.blogspot.com/_NdUULTfUGRE/TMJbPkA4FcI/AAAAAAAAAjM/q2jqlWEN6L8/s1600/Mozart_LaFintaGiardiniera.jpg"  /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Se você trabalha com desenvolvimento de software há alguns anos, já deve ter percebido que bons profissionais são a minoria no mercado.  É impressionante a quantidade de gente que se torna “experiente” e até ganha dinheiro, sem saber fazer software direito.&lt;/p&gt;&lt;p&gt;No &lt;a href="http://maisquebomcodigo.blogspot.com/2010/09/limitacao-das-metodologias.html"&gt;artigo anterior&lt;/a&gt;, defendi que não é possível fazer bom software sem uma equipe talentosa, por mais que se use uma “boa metodologia”.  Dando continuidade ao assunto, neste artigo explico porque considero o talento&lt;span id="cit_ref-talento"&gt;&lt;a href="#ref-talento"&gt;*&lt;/a&gt;&lt;/span&gt; a característica mais importante a se procurar num programador.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;h3&gt;Em busca das notas altas&lt;/h3&gt;&lt;p&gt;&lt;a href="http://www.joelonsoftware.com"&gt;Joel Spolsky&lt;/a&gt;, no seu livro &lt;a href="http://books.google.com.br/books?id=nt_1fCfqv5EC"&gt;Smart and Get Things Done&lt;/a&gt;, compara a capacidade de programadores fazerem excelente software com a capacidade de cantores atingirem as notas altas.  Ele diz:&lt;/p&gt;&lt;blockquote&gt;"Pessoas sem talento nunca atingem as notas altas que as pessoas talentosas atingem todo o tempo" &lt;span id="cit_ref-1a" style="font-size:70%"&gt;&lt;sup&gt;[&lt;a href="#ref-1"&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;Você certamente conhece “cantores” e “cantoras” que fazem sucesso, mas não por causa da qualidade do seu canto.  Porém, quando se trata cantores de ópera, apenas &lt;a href="http://www.youtube.com/watch?v=ERsjRsCBlBo"&gt;aqueles que atingem as notas altas&lt;/a&gt; conseguem se destacar.&lt;/p&gt;&lt;p&gt;Comparando com software, é verdade quem nem todo software precisa atingir as notas altas, por assim dizer.  Em empresas que não são de tecnologia, por exemplo, equipes de TI medianas, muitas vezes são o suficiente para atender as expectativas dos gestores.  Mas se você está no mercado de desenvolvimento de software criando produtos que precisam se destacar pela sua qualidade, não há saída: você precisa ter programadores talentosos, aqueles capazes de atingir as notas altas.&lt;/p&gt;&lt;blockquote&gt;"Programadores medianos nunca atingem as notas altas que fazem um grande sotware" &lt;span id="cit_ref-1b" style="font-size:70%"&gt;&lt;sup&gt;[&lt;a href="#ref-1"&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;'Programadores brilhantes são muito, muito mais valiosos que programadores medianos.  Eles são de três a dez vezes mais produtivos, custando apenas 20% ou 30% mais.  E atingem as notas altas que ninguém mais pode atingir.' &lt;span id="cit_ref-1c" style="font-size:70%"&gt;&lt;sup&gt;[&lt;a href="#ref-1"&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;Segundo Spolsky, a questão não é apenas a produtividade.  É a capacidade de atingir “notas altas”, ou seja, fazer excelente software.  Se uma equipe talentosa faz um excelente software em um mês, não adianta dar dez meses para uma equipe mediana fazer o mesmo software, o resultado nunca será equivalente.&lt;/p&gt;&lt;h3&gt;Talento se ensina?&lt;/h3&gt;&lt;p&gt;É preciso ficar claro que o talento de um programador não está relacionado com sua formação acadêmica ou com seu tempo de experiência, apesar de esses fatores poderem aperfeiçoar talentos.  Você já deve ter conhecido aprendizes de programação com grande talento, ainda que tivessem pouca experiência e nenhuma formação acadêmica na área.  Por outro lado, você talvez também conheça inúmeros programadores muito experientes e até com boa formação, mas que codificam como um amador.&lt;/p&gt;&lt;p&gt;Atualmente, é praticamente inaceitável dizer que alguém é intrinsecamente incompetente em determinada área.  Supõe-se que bons líderes podem fazer emergir qualidades inexploradas nos seus subordinados.  Essa visão é bastante confortável para nós quando &lt;em&gt;nosso&lt;/em&gt; talento está sendo avaliado.  Mas quando se está do &lt;em&gt;outro lado&lt;/em&gt; - o lado de quem contrata talentos - a realidade é bem diferente.  Tom DeMarco e Timothy Lister, no aclamado livro sobre gerência de projetos &lt;a href="http://books.google.com.br/books?id=eA9PAAAAMAAJ"&gt;Peopleware&lt;/a&gt;, são muito francos ao dizer:&lt;/p&gt;&lt;blockquote&gt;“As pessoas que trabalham para você durante qualquer período serão, no fim, mais ou menos a mesma coisa que eram no começo. Se elas não forem as pessoas certas para o trabalho no início, elas nunca serão.” &lt;span id="cit_ref-2" style="font-size:70%"&gt;&lt;sup&gt;[&lt;a href="#ref-2"&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;DeMarco e Lister defendem que, mesmo bons gerentes, são incapazes de mudar seus subordinados de forma significativa.  A influência que eles podem exercer na natureza dos membros da sua equipe é limitada, dada toda a carga genética e a formação adquirida desde a infância.&lt;/p&gt;&lt;p&gt;É verdade que os indivíduos podem fazer grandes mudanças em si mesmos, mas nós não podemos fazer essas mudanças neles.  Portanto, &lt;strong&gt;é fundamental que no momento da contratação seus programadores já tenham o talento necessário para fazer bom software&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Esse era o recado sobre Talento.  Volte no próximo sábado e leia o &lt;a href="http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador_29.html"&gt;segundo artigo desta série&lt;/a&gt; onde falarei sobre a segunda característica que considero mais importante.  Se preferir, assine meu &lt;a href="http://maisquebomcodigo.blogspot.com/feeds/posts/default"&gt;RSS&lt;/a&gt;, siga-me no &lt;a href="http://twitter.com/DirleiDionisio"&gt;Twitter&lt;/a&gt; ou torne-se seguidor deste blog para ser informado quando for publicado o próximo artigo.&lt;/p&gt;&lt;p&gt;Você concorda que o talento é a característica mais importante que um programador deve ter?  Deixe seu comentário.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;  &lt;p id="ref-talento"&gt;* &lt;a href="#cit_ref-talento"&gt;^&lt;/a&gt; Por “talento”, me refiro a “aptidão natural ou adquirida”. (&lt;a href="http://www.priberam.pt/DLPO/default.aspx?pal=talento"&gt;Dicionário Priberam da Língua Portuguesa&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Foto: Ópera de Mozart, La finta giardiniera (A falsa jardineira) apresentada no Eastman Opera Theatre por Angelique Jacob (esquerda) e Erica Schuller (direita, no fundo).&lt;/p&gt;  &lt;p&gt;Referências:&lt;/p&gt;  &lt;ul&gt;    &lt;li id="ref-1"&gt;[1] &lt;a href="#cit_ref-1a"&gt;&lt;sup&gt;a&lt;/sup&gt;&lt;/a&gt; &lt;a href="#cit_ref-1b"&gt;&lt;sup&gt;b&lt;/sup&gt;&lt;/a&gt; &lt;a href="#cit_ref-1c"&gt;&lt;sup&gt;c&lt;/sup&gt;&lt;/a&gt; &lt;a href="http://www.joelonsoftware.com"&gt;Joel Spolsky&lt;/a&gt;. &lt;a href="http://books.google.com.br/books?id=nt_1fCfqv5EC"&gt;"Smart and Get Things Done"&lt;/a&gt;&lt;/li&gt;   &lt;li id="ref-2"&gt;[2] &lt;a href="#cit_ref-2"&gt;^&lt;/a&gt; Tom DeMarco &amp; Timothy Lister. &lt;a href="http://books.google.com.br/books?id=eA9PAAAAMAAJ"&gt;"Peopleware"&lt;/a&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-4838752946944864303?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/4838752946944864303/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador.html#comment-form' title='14 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/4838752946944864303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/4838752946944864303'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/10/caracteristicas-de-um-bom-programador.html' title='Características de um bom programador – Parte 1/3 – Talento'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_NdUULTfUGRE/TMJbPkA4FcI/AAAAAAAAAjM/q2jqlWEN6L8/s72-c/Mozart_LaFintaGiardiniera.jpg' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-368619013616450076</id><published>2010-09-11T00:00:00.018-03:00</published><updated>2011-01-19T13:05:34.745-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trabalho intelectual'/><category scheme='http://www.blogger.com/atom/ns#' term='criatividade'/><category scheme='http://www.blogger.com/atom/ns#' term='metodologia'/><category scheme='http://www.blogger.com/atom/ns#' term='fábrica de software'/><category scheme='http://www.blogger.com/atom/ns#' term='talento'/><title type='text'>A limitação das metodologias</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="href="http://3.bp.blogspot.com/_NdUULTfUGRE/TIZOLBU6_bI/AAAAAAAAAiU/Axb_tmvTylU/s1600/elefante_pintor.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img width="520" height="378" src="http://3.bp.blogspot.com/_NdUULTfUGRE/TIZOLBU6_bI/AAAAAAAAAiU/Axb_tmvTylU/s1600/elefante_pintor.jpg"  /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Para quem gosta de etimologia, a palavra “metodologia” vem da junção de duas palavras gregas: &lt;em&gt;methodos&lt;/em&gt;, que significa "modo para se chegar a um determinado fim ou objetivo" e &lt;em&gt;logia&lt;/em&gt;, que significa estudo. Logo, no sentido mais &lt;em&gt;lato&lt;/em&gt;, metodologia pode ser definida como o estudo dos métodos para se atingir um objetivo.&lt;/p&gt;&lt;p&gt;Especificamente no desenvolvimento de software, a seguinte citação ajuda a explicar:&lt;/p&gt;&lt;blockquote&gt;“Metodologias impõem um processo disciplinado no desenvolvimento de software, com o objetivo de torná-lo mais previsível e eficiente. Elas fazem isso desenvolvendo um processo detalhado com uma forte ênfase em planejamento” (Martin Fowler)&lt;/blockquote&gt;&lt;p&gt;Sem dúvida, a proposta das metodologias é muito boa. E, de fato, as metodologias que se tornaram populares são realmente boas, tendo sido concebidas por respeitáveis profissionais de desenvolvimento de software. &lt;strong&gt;A questão não é se as metodologias são boas, mas se a ênfase dada a elas é adequada&lt;/strong&gt;.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;Para entender melhor, pense em alguma atividade &lt;em&gt;manual&lt;/em&gt; que você realize com alguma frequência. Pode ser montar um computador, lavar o carro, aparar a grama etc. Se você listar os procedimentos envolvidos nessa atividade, identificar padrões de ação que se repetem e encontrar os meios mais eficientes e seguros para realizar essas ações, você terá o suficiente para criar uma metodologia que otimize essa atividade. Parece fácil criar uma metodologia para esse tipo de atividade, certo?&lt;/p&gt;&lt;p&gt;Agora, suponha que você queira criar uma metodologia para uma atividade &lt;em&gt;intelectual&lt;/em&gt; tal como criar músicas, pinturas ou esculturas&lt;span id="cit_ref-intelectual"&gt;&lt;a href="#ref-intelectual"&gt;*&lt;/a&gt;&lt;/span&gt;. Concorda que nenhuma metodologia garantiria a produção de &lt;em&gt;belas&lt;/em&gt; músicas, pinturas ou esculturas?  Você provavelmente concorda porque sabe que &lt;strong&gt;quando se trata de um trabalho intelectual, o resultado final não depende da forma como o trabalho foi estruturado, planejado ou conduzido, mas do &lt;em&gt;talento&lt;/em&gt; de quem o executa&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Ora, o que é o desenvolvimento de software – um atividade manual ou intelectual?  Sendo uma atividade intelectual, há uma barreira que as metodologias não conseguem transpor: &lt;strong&gt;a necessidade de pessoas talentosas para executar o trabalho&lt;/strong&gt;.&lt;/p&gt;&lt;blockquote&gt;“O problema, na maioria das vezes, é que metodologia se opôs à noção que as pessoas são fatores de primeira ordem no sucesso de um projeto.” (Martin Fowler)&lt;/blockquote&gt;&lt;p&gt;Não compreender que desenvolver software é um trabalho predominantemente intelectual é a causa de sérios equívocos na indústria de software, entre eles, tratar software como algo determinístico, que pode ser produzido em série, como numa fábrica. Sob esse olhar equivocado, basta uma boa metodologia e uma equipe &lt;del&gt;obediente&lt;/del&gt; disciplinada que o resultado final será maravilhoso. "As pessoas não são importantes, mas sim as suas funções. Mais importante ainda é o processo. Se alguém deixa a equipe, basta substituí-lo por outra pessoa que exerça a mesma função e a engrenagem da fábrica continuará funcionando, afinal, ninguém é insubstituível."&lt;/p&gt;&lt;p&gt;Isso pode soar correto na teoria, mas na prática, resulta em softwares que até atendem aos requisitos funcionais, mas falham em atender aos requisitos não funcionais como facilidade de uso, rapidez e manutenibilidade.&lt;/p&gt;&lt;blockquote&gt;“Não há pesquisas e estudos suficientes sobre como se organiza o trabalho intelectual ou criativo. Na falta desse conhecimento, a empresa aplica para intelectuais as mesmas regras criadas para os trabalhadores manuais [...] A conseqüência é que a criatividade fica reprimida e diminuída.” (Domenico de Masi)&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;Se você quer fazer bom software, tenha uma equipe talentosa e dê a ela boas condições de trabalho. Metodologias serão de ajuda, desde que sirvam como um plano geral, &lt;em&gt;constantemente&lt;/em&gt; adaptado ao tipo e às circunstâncias de cada projeto.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Gostou desse artigo?  Ficarei feliz ao ler seu comentário.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;  &lt;p id="ref-intelectual"&gt;* &lt;a href="#cit_ref-intelectual"&gt;^&lt;/a&gt; Para efeito de desambiguação, estou usando a seguinte definição para atividade/trabalho intelectual: "Trabalho intelectual é o que envolve a manifestação do intelecto, em todos ou qualquer dos seus sentidos: intuitivo, operativo ou compreendente, ou seja, a ação criativa ou recriativa, de ordem física e/ou mental, concebida a partir da compreensão abstrata do objeto." (LIMA, Francisco Meton Marques de - &lt;a href="http://www.ambito-juridico.com.br/site/index.php?n_link=revista_artigos_leitura&amp;artigo_id=1749"&gt;Âmbito Jurídico&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Crédito da foto: National Geographic (&lt;a href="http://kidsblogs.nationalgeographic.com/globalbros/2008/11/elephants-elephants-elephants.html"&gt;elefante pintor&lt;/a&gt; do &lt;a href="http://www.changthai.com"&gt;Thailand Elephant Conservation Center&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Referências:&lt;/p&gt;  &lt;ul&gt;    &lt;li&gt;Martin Fowler. &lt;a href="http://martinfowler.com/articles/newMethodology.html"&gt;“The new methodology”&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;Tom DeMarco &amp; Timothy Lister. &lt;a href="http://books.google.com.br/books?id=eA9PAAAAMAAJ"&gt;"Peopleware"&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Alexandre Gomes. &lt;a href="http://blog.seatecnologia.com.br/2009/01/12/manifesto-2-0"&gt;"Manifesto 2.0"&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Domenico de Masi. &lt;a href="http://www.saude.ms.gov.br/controle/ShowFile.php?id=23554"&gt;"Organizações Criativas"&lt;/a&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-368619013616450076?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/368619013616450076/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/09/limitacao-das-metodologias.html#comment-form' title='20 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/368619013616450076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/368619013616450076'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/09/limitacao-das-metodologias.html' title='A limitação das metodologias'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_NdUULTfUGRE/TIZOLBU6_bI/AAAAAAAAAiU/Axb_tmvTylU/s72-c/elefante_pintor.jpg' height='72' width='72'/><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-5203138846912472283</id><published>2010-08-14T12:21:00.007-03:00</published><updated>2011-01-19T13:02:03.431-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qualidade'/><category scheme='http://www.blogger.com/atom/ns#' term='usabilidade'/><category scheme='http://www.blogger.com/atom/ns#' term='inteligência'/><title type='text'>Não faça o usuário pensar</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_NdUULTfUGRE/TGaWVy1fo5I/AAAAAAAAAg8/AVCO4Yfx0zI/s1600/crianca_pensando.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img height="346" width="520" src="http://3.bp.blogspot.com/_NdUULTfUGRE/TGaWVy1fo5I/AAAAAAAAAg8/AVCO4Yfx0zI/s1600/crianca_pensando.jpg"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Aos dezessete anos de idade consegui meu primeiro emprego como programador.  Foi numa pequena empresa que desenvolvia software para outras pequenas empresas.  Os usuários desses softwares eram, na sua esmagadora maioria, quase totalmente leigos em informática.  Esse cenário fez com que o seguinte conselho do meu então chefe fosse pertinente:&lt;/p&gt;&lt;blockquote&gt;“Nunca duvide da capacidade de um usuário ser uma “ameba”.”&lt;/blockquote&gt;&lt;p&gt;Em outras palavras, meu chefe não queria que eu deixasse brechas nos softwares para que os usuários cometessem um erro.  Se houvesse uma única chance de um usuário fazer uma besteira, isso seria suficiente para algo dar errado.  Era a &lt;a href="http://pt.wikipedia.org/wiki/Lei_de_Murphy"&gt;Lei de Murphy&lt;/a&gt;.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;h3&gt;Um motivo mais nobre&lt;/h3&gt;&lt;p&gt;Anos mais tarde, depois de desenvolver diversos projetos de software para os mais variados perfis de usuários, e depois de me tornar um forte crítico de todos os softwares que uso e desenvolvo, me dei conta de que há um motivo, digamos, mais nobre, para não exigir muito raciocínio dos usuários dos softwares que faço:&lt;/p&gt;&lt;blockquote&gt;“Meu software é &lt;em&gt;apenas&lt;/em&gt; o meio pelo qual os usuários resolvem seus problemas.”&lt;/blockquote&gt;&lt;p&gt;Ou seja, &lt;strong&gt;os usuários querem pensar apenas sobre os seus próprios problemas&lt;/strong&gt;, sejam eles as suas compras, vendas, cobranças, pagamentos, reposições de estoque etc.  &lt;strong&gt;Eles não querem ter que pensar sobre o meu software&lt;/strong&gt;.  Se meu software exigir que eles pensem em coisas que não são os seus problemas, isso significa que não fui eficiente em projetar um software que facilite sua vida.&lt;/p&gt;&lt;h3&gt;Facilitando a vida dos usuários&lt;/h3&gt;&lt;p&gt;Um software que facilite a vida dos usuários vai além de resolver os seus problemas (ou “atender aos requisitos funcionais”).  Ele &lt;strong&gt;os conduz pelo caminho necessário de forma que se sintam confiantes de que estão fazendo a coisa certa&lt;/strong&gt;.  Suas escolhas são praticamente impensadas de tão óbvias.  Isso traz à tona a importância de algo que não é levado em consideração por muitos desenvolvedores de software: a &lt;a href="http://pt.wikipedia.org/wiki/Usabilidade"&gt;Usabilidade&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Como diz meu amigo &lt;a href="http://programadormoderno.blogspot.com"&gt;Valmir Santana&lt;/a&gt;, uma boa imagem vale mais que 1024 palavras.  Então vamos analisar algumas imagens em dois exemplos de usabilidade.&lt;/p&gt;&lt;h3&gt;O exemplo ruim&lt;/h3&gt;&lt;p&gt;O exemplo ruim tirei do internet banking do banco onde concentro minhas transações financeiras.  Eventualmente me sobra algum dinheiro na conta corrente e eu o transfiro para a poupança, que tem o mesmo número da conta corrente.  A interface onde realizo essa operação não é intuitiva como poderia ser.  Vejamos:&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_NdUULTfUGRE/TGaTFnT-QZI/AAAAAAAAAgU/1ocEiX89iKw/s1600/office_banking_1.gif" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img height="172" width="520" src="http://1.bp.blogspot.com/_NdUULTfUGRE/TGaTFnT-QZI/AAAAAAAAAgU/1ocEiX89iKw/s1600/office_banking_1.gif"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Suponha que eu queira transferir R$1000 da conta corrente para a conta poupança.  Consigo fazer isso através dessa interface?  Bem, a primeira informação apresentada (dentre muitas) diz que se eu precisar de um &lt;em&gt;limite maior&lt;/em&gt; para transferências, preciso utilizar a opção “Transferência entre Contas Cadastradas”.  Mas qual é o limite???  Preciso ler o restante do texto para descobrir que o limite diário é de R$500 (note que a ordem das informações está invertida: primeiro se informa o que fazer quando o valor de transferência é superior ao limite e só depois se informa qual é o limite).&lt;/p&gt;&lt;p&gt;De qualquer forma, esse limite NÃO se aplica ao tipo de transferência que quero fazer - entre uma conta corrente e uma poupança com mesmo número.  E o cadastramento de contas para transferências com limite superior a R$500 também NÃO se aplica ao meu caso.  Mas como descobrir isso?  A interface não me ajuda (eu descobri por tentativa e erro).&lt;p&gt;&lt;p&gt;Percebeu o quanto foi preciso pensar desnecessariamente &lt;em&gt;no software&lt;/em&gt; para “resolver o meu problema”?&lt;/p&gt;&lt;p&gt;Agora veja uma outra parte dessa mesma interface:&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_NdUULTfUGRE/TGaTdkjq3EI/AAAAAAAAAgc/ES2Vbe3iRfs/s1600/office_banking_2.gif" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img height="81" width="520" src="http://1.bp.blogspot.com/_NdUULTfUGRE/TGaTdkjq3EI/AAAAAAAAAgc/ES2Vbe3iRfs/s1600/office_banking_2.gif"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Por que eu precisaria informar o número da agência e conta destino se ele é exatamente o mesmo da conta origem?&lt;/p&gt;&lt;h3&gt;O bom exemplo&lt;/h3&gt;&lt;p&gt;Quando resolvi passar a ler os meus e-mails do Yahoo! a partir da minha caixa de entrada no GMail, fiquei bastante impressionado ao ver como foi mais fácil fazer isso no GMail do que em clientes de e-mail como o Outlook e &lt;a href="http://pt.wikipedia.org/wiki/Mozilla_Thunderbird"&gt;Thunderbird&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Veja qual a primeira coisa que o GMail me solicitou no seu amigável e sucinto &lt;a href="http://pt.wikipedia.org/wiki/Wizard_(software)"&gt;wizard&lt;/a&gt;.&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_NdUULTfUGRE/TGaUV9CJozI/AAAAAAAAAgk/OxqSHpAVLbI/s1600/pop_1.png"imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_NdUULTfUGRE/TGaUV9CJozI/AAAAAAAAAgk/OxqSHpAVLbI/s1600/pop_1.png"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Essa é a única informação necessária para começar.  Note que, com base no e-mail fornecido, algumas informações foram automaticamente deduzidas.&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_NdUULTfUGRE/TGaUesvdupI/AAAAAAAAAgs/uv6K2p6GxPI/s1600/pop_2.png"imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img height="388" width="520" src="http://4.bp.blogspot.com/_NdUULTfUGRE/TGaUesvdupI/AAAAAAAAAgs/uv6K2p6GxPI/s1600/pop_2.png"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Um usuário inexperiente poderia facilmente ficar confuso se tivesse que fornecer o endereço e a porta do servidor POP, mas o Gmail sabe deduzir essas informações para o usuário.  Por outro lado, se as informações deduzidas não estiverem corretas, é possível para o usuário alterá-las.  Continuando...&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_NdUULTfUGRE/TGaUjmWZfyI/AAAAAAAAAg0/7bYcTVpmXv0/s1600/pop_3.png"imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img src="http://4.bp.blogspot.com/_NdUULTfUGRE/TGaUjmWZfyI/AAAAAAAAAg0/7bYcTVpmXv0/s1600/pop_3.png"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Essa última captura é a que mais me impressionou.  O GMail me ofereceu a possibilidade de enviar e-mails do Yahoo! usando um servidor SMTP do próprio GMail.  Neste caso, nem preciso saber qual é o endereço SMTP do GMail – o software por trás dessa interface me poupa da necessidade de conhecer esse dado.  Por outro lado, se eu quiser informar o endereço SMTP do Yahoo! poderei fazer isso sem problemas, mas note que a interface foi projeta para o cenário mais fácil e mais provável.&lt;/p&gt;&lt;h3&gt;Conclusão&lt;/h3&gt;&lt;p&gt;Projetar interfaces como no bom exemplo acima, não é subestimar a inteligência do usuário.  É fazê-lo não pensar &lt;em&gt;no software&lt;/em&gt; desnecessariamente.  O usuário avançado perceberá a facilidade e sentirá que foi levado em consideração quando essa interface foi projetada.  O usuário leigo talvez não perceba o quanto foi mais fácil resolver seu problema - ele só sabe que não teve dificuldade para conseguir o que queria, o que é o suficiente.  &lt;strong&gt;Um software assim passa confiança para o usuário&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;A qualidade interna do software sem dúvida é importante, mas ela não significará nada para o usuário se a interação dele com o software for sofrível.  Se o usuário frequentemente se pergunta “Será que dá pra fazer X?” ou “Onde será que fica Y?” ou “Como faço Z?” a qualidade do software percebida por ele será baixa.&lt;/p&gt;&lt;p&gt;Portanto, ao projetar interfaces de usuário, seja em sistema web, mobile ou desktop, lembre-se:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Usuários precisam ter a confiança contínua de que estão no caminho correto.&lt;/li&gt;&lt;li&gt;Tornar as escolhas mais claras é uma das principais coisas que tornam um software mais fácil de ser usado.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Gostou do que leu? Deixe seu comentário.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;  &lt;p&gt;Crédito da foto: Jessy Ratfink&lt;/p&gt;  &lt;p&gt;Referências:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;&lt;a href="http://www.sensible.com/about.html"&gt;Steve Krug&lt;/a&gt;. &lt;a href="http://compare.buscape.com.br/nao-me-faca-pensar-2-edicao-steve-krug-8576082713.html?pos=1"&gt;"Não Me Faça Pensar"&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;Google. &lt;a href="http://www.google.com/corporate/ux.html"&gt;"Ten principles that contribute to a Googley user experience"&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;Wikipedia. &lt;a href="http://pt.wikipedia.org/wiki/Usabilidade"&gt;"Usabilidade"&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;Chris Parsons. &lt;a href="http://chrismdp.github.com/2010/05/ux-is-everything/"&gt;"UX is everything"&lt;/a&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-5203138846912472283?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/5203138846912472283/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/08/nao-faca-o-usuario-pensar.html#comment-form' title='17 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/5203138846912472283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/5203138846912472283'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/08/nao-faca-o-usuario-pensar.html' title='Não faça o usuário pensar'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_NdUULTfUGRE/TGaWVy1fo5I/AAAAAAAAAg8/AVCO4Yfx0zI/s72-c/crianca_pensando.jpg' height='72' width='72'/><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-682444224446653673</id><published>2010-07-17T22:00:00.021-03:00</published><updated>2011-08-29T15:34:38.025-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='comentários'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><title type='text'>// Não comente seu código</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_NdUULTfUGRE/TB55aZI7V4I/AAAAAAAAAdQ/eWBUsVgFIpY/s1600/mulher_usando_desodorante_by_George_Marks_380px.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;&lt;img height="503" src="http://1.bp.blogspot.com/_NdUULTfUGRE/TB55aZI7V4I/AAAAAAAAAdQ/eWBUsVgFIpY/s640/mulher_usando_desodorante_by_George_Marks_380px.jpg" width="380" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Você usa desodorante nas axilas? Se usa, provavelmente o faz por causa do mau cheiro produzido pelas suas glândulas sudoríparas dessa região.&lt;/p&gt;&lt;p&gt;É por um motivo semelhante que muitos programadores escrevem comentários. Seu código &amp;eacute; difícil de compreender, por isso precisa ser comentado. Mas se o código ruim fosse refatorado at&amp;eacute; se tornar um bom código, a maioria dos comentários seriam desnecessários.&lt;/p&gt;&lt;h3&gt;1 - Comentários como desodorante&lt;/h3&gt;&lt;p&gt;Com a ajuda do &lt;a href="http://en.wikipedia.org/wiki/Martin_Fowler"&gt;Martin Fowler&lt;/a&gt; no seu &lt;a href="http://books.google.com.br/books?id=zPdb4QJKBtkC&amp;printsec=frontcover#v=onepage&amp;q&amp;f=false"&gt;livro sobre refatoração&lt;/a&gt;, me dei conta de que muitos dos comentários que eu escrevia no passado eram usados para minimizar os efeitos de um código ruim (do ponto de vista da clareza, não da eficiência). O código ruim, segundo Fowler, cheira mal e os comentários, neste caso, agem como desodorante. A seguir, alguns desses maus usos de comentários.&lt;p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;h4&gt;1.1 - Para compensar a má nomeação de identificadores&lt;/h4&gt;&lt;p&gt;Se você sentir a necessidade de comentar pra que serve uma váriável, constante, função, parâmetro de função, atributo, classe ou m&amp;eacute;todo&lt;span id="cit-asterisco1"&gt;&lt;a href="#asterisco1" title ="Nota"&gt;*&lt;/a&gt;&lt;/span&gt;, provavelmente o nome que você deu ao identificador não &amp;eacute; um bom nome.&lt;/p&gt;&lt;p&gt;Sem ser dogmático, sugiro o seguinte:&lt;/p&gt;&lt;blockquote&gt;'Quando você sentir a necessidade de escrever um comentário para explicar o que faz ou pra que serve determinado identificador, transforme o comentário que você escreveria no nome do identificador.' (uma adaptação de algumas frases do Fowler)&lt;/blockquote&gt;&lt;p&gt;Transformar um comentário curto em um nome de variável &amp;eacute; fácil (a menos que você use uma variável para várias coisas diferentes). Mas, transformar um comentário de várias linhas em um nome de função dará mais trabalho, por&amp;eacute;m, neste caso, os comentários longos são consequência de um outro problema: funções longas.&lt;/p&gt;&lt;h4&gt;1.2 - Para compensar a escrita de funções longas&lt;/h4&gt;&lt;p&gt;Quem escreve uma função com muitas linhas, normalmente sente a necessidade de adicionar um comentário junto &amp;agrave; declaração da função para explicar as coisas que ela faz. No corpo de funções desse tipo, tamb&amp;eacute;m &amp;eacute; comum encontrar comentários para explicar certos agrupamentos de código. Em ambos os casos, os comentários são um indício de que o código não está suficientemente claro.&lt;/p&gt;&lt;p&gt;Ao inv&amp;eacute;s de se eximir da responsabilidade pelo mau código atrás de comentários, refatore o código desmembrando a função longa em várias funções menores. Se há comentários ao longo do corpo da função, esses comentários dão uma dica do que pode ser extraído e do nome que você pode dar a cada função extraída.&lt;/p&gt;&lt;p&gt;Laços com muitas linhas de código dentro de uma função são terríveis para compreender, especialmente laços aninhados. Se você reduzir o número de linhas dentro de um laço de forma que possa observar sem usar scroll onde começa e onde termina o laço, seu código será mais fácil de compreender.&lt;/p&gt;&lt;h4&gt;1.3 - Para explicar o uso de strings e números literais&lt;/h4&gt;&lt;p&gt;Strings e números literais são valores escritos diretamente no código. Por exemplo, em certo programa, pode ser convencionado que os tipos de inscrição CPF e CNPJ serão representados pelos inteiros 1 e 2, respectivamente. Se o programador decidir usar os literais 1 e 2 em todo código que lide com os tipos de inscrição, ele provavelmente compensará isso com o uso de comentários. Exemplo (em Java):&lt;/p&gt;&lt;pre style='font-size:80%;color:#000020;background:#f6f8ff;'&gt;&lt;span style='color:#595979; '&gt;/* Exemplo A */&lt;/span&gt;&lt;br /&gt;String getInscricaoFormatada1(int tipoInscricao, String inscricao) &lt;span style='color:#406080; '&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style='color:#200080; font-weight:bold; '&gt;if&lt;/span&gt; &lt;span style='color:#308080; '&gt;(&lt;/span&gt;tipoInscricao&lt;span style='color:#308080; '&gt;=&lt;/span&gt;&lt;span style='color:#308080; '&gt;=&lt;/span&gt;&lt;span style='color:#008c00; '&gt;1&lt;/span&gt;&lt;span style='color:#308080; '&gt;)&lt;/span&gt; &lt;span style='color:#595979; '&gt;/* 1=CPF */&lt;/span&gt;&lt;br /&gt;    &lt;span style='color:#200080; font-weight:bold; '&gt;return&lt;/span&gt; formatarTexto&lt;span style='color:#308080; '&gt;(&lt;/span&gt;&lt;span style='color:#1060b6; '&gt;"999.999.999-99"&lt;/span&gt;&lt;span style='color:#308080; '&gt;,&lt;/span&gt; inscricao&lt;span style='color:#308080; '&gt;)&lt;/span&gt;&lt;span style='color:#406080; '&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#200080; font-weight:bold; '&gt;else&lt;/span&gt; &lt;span style='color:#200080; font-weight:bold; '&gt;if&lt;/span&gt; &lt;span style='color:#308080; '&gt;(&lt;/span&gt;tipoInscricao&lt;span style='color:#308080; '&gt;=&lt;/span&gt;&lt;span style='color:#308080; '&gt;=&lt;/span&gt;&lt;span style='color:#008c00; '&gt;2&lt;/span&gt;&lt;span style='color:#308080; '&gt;)&lt;/span&gt; &lt;span style='color:#595979; '&gt;/* 2=CNPJ */&lt;/span&gt;&lt;br /&gt;    &lt;span style='color:#200080; font-weight:bold; '&gt;return&lt;/span&gt; formatarTexto&lt;span style='color:#308080; '&gt;(&lt;/span&gt;&lt;span style='color:#1060b6; '&gt;"99.999.999/9999-99"&lt;/span&gt;&lt;span style='color:#308080; '&gt;,&lt;/span&gt; inscricao&lt;span style='color:#308080; '&gt;)&lt;/span&gt;&lt;span style='color:#406080; '&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#200080; font-weight:bold; '&gt;else&lt;/span&gt;&lt;br /&gt;    &lt;span style='color:#200080; font-weight:bold; '&gt;return&lt;/span&gt; inscricao&lt;span style='color:#406080; '&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#406080; '&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Apesar de o código acima permitir uma fácil compreensão, o próximo código - que não usa comentários - tende a ser mais adequado.&lt;/p&gt;&lt;pre style='font-size: 80%;color:#000020;background:#f6f8ff;'&gt;&lt;br /&gt;&lt;span style='color:#595979; '&gt;/* Exemplo B */&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#200080; font-weight:bold; '&gt;static&lt;/span&gt; &lt;span style='color:#200080; font-weight:bold; '&gt;final&lt;/span&gt; int TIPO_INSCRICAO_CPF = 1&lt;span style='color:#308080; '&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#200080; font-weight:bold; '&gt;static&lt;/span&gt; &lt;span style='color:#200080; font-weight:bold; '&gt;final&lt;/span&gt; int TIPO_INSCRICAO_CNPJ = 2&lt;span style='color:#308080; '&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;String getInscricaoFormatada2(int tipoInscricao, String inscricao) &lt;span style='color:#406080; '&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style='color:#200080; font-weight:bold; '&gt;if&lt;/span&gt; &lt;span style='color:#308080; '&gt;(&lt;/span&gt;tipoInscricao &lt;span style='color:#308080; '&gt;=&lt;/span&gt;&lt;span style='color:#308080; '&gt;=&lt;/span&gt; TIPO_INSCRICAO_CPF&lt;span style='color:#308080; '&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;span style='color:#200080; font-weight:bold; '&gt;return&lt;/span&gt; formatarTexto&lt;span style='color:#308080; '&gt;(&lt;/span&gt;&lt;span style='color:#1060b6; '&gt;"999.999.999-99"&lt;/span&gt;&lt;span style='color:#308080; '&gt;,&lt;/span&gt; inscricao&lt;span style='color:#308080; '&gt;)&lt;/span&gt;&lt;span style='color:#406080; '&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#200080; font-weight:bold; '&gt;else&lt;/span&gt; &lt;span style='color:#200080; font-weight:bold; '&gt;if&lt;/span&gt; &lt;span style='color:#308080; '&gt;(&lt;/span&gt;tipoInscricao &lt;span style='color:#308080; '&gt;=&lt;/span&gt;&lt;span style='color:#308080; '&gt;=&lt;/span&gt; TIPO_INSCRICAO_CNPJ&lt;span style='color:#308080; '&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;span style='color:#200080; font-weight:bold; '&gt;return&lt;/span&gt; formatarTexto&lt;span style='color:#308080; '&gt;(&lt;/span&gt;&lt;span style='color:#1060b6; '&gt;"99.999.999/9999-99"&lt;/span&gt;&lt;span style='color:#308080; '&gt;,&lt;/span&gt; inscricao&lt;span style='color:#308080; '&gt;)&lt;/span&gt;&lt;span style='color:#406080; '&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#200080; font-weight:bold; '&gt;else&lt;/span&gt;&lt;br /&gt;    &lt;span style='color:#200080; font-weight:bold; '&gt;return&lt;/span&gt; inscricao&lt;span style='color:#406080; '&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#406080; '&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;A alternativa "B" &amp;eacute; preferível porque, al&amp;eacute;m de dispensar o uso de comentários, evita erros. Se você digitar incorretamente o nome de uma constante ao fazer uso dela, o compilador perceberá, enquanto ele não poderá ajudar se você fizer uso de um literal incorreto.&lt;/p&gt;&lt;h3&gt;3 - Quando usar comentários?&lt;/h3&gt;&lt;p&gt;Tudo bem se você achar que estou sendo contraditório neste tópico por causa do título que escolhi para o artigo. A verdade &amp;eacute; que eu gosto dos comentários, desde que não sejam usados como desodorante. Aqui vão alguns dos usos que considero adequados.&lt;/p&gt;&lt;h4&gt;3.1 - Para organizar o pensamento sobre o código&lt;/h4&gt;&lt;/p&gt;Quando não uso um quadro ou papel para rascunhar o que vou codificar, uso comentários para criar uma lista de passos que preciso seguir para atingir o objetivo do código. Esses passos não precisam ser precisos, apenas precisam ser "persistidos" em algum lugar para que eu não esqueça deles. À medida que os passos são concluídos, removo os comentários, pois nesse ponto se tornam irrelevantes.&lt;/p&gt;&lt;h4&gt;3.2 - Para marcar código duvidoso, passível de melhora ou incompleto&lt;/h4&gt;&lt;p&gt;Há casos em que algumas suposições precisam ser temporariamente assumidas como verdadeiras para que a codificação flua sem empecilhos. Nestes casos, é útil marcar o código duvidoso com um comentário precedido por um "TODO" ("fazer", em inglês). O mesmo se dá com códigos passíveis de melhora ou incompletos. Alguns exemplos:&lt;/p&gt;&lt;pre style='font-size: 80%;color:#000020;background:#f6f8ff;'&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;/* TODO: confirmar se o DV da conta &amp;eacute; calculado com módulo 10 */&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style='font-size: 80%;color:#000020;background:#f6f8ff;'&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;/* TODO: refatorar este código para remover as duplicações /*&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style='font-size: 80%;color:#000020;background:#f6f8ff;'&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;/* TODO: validar campos obrigatórios antes de gravar /*&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;PS: IDE's de desenvolvimento modernas permitem a fácil localização dos comentários marcados com "TODO".&lt;/p&gt;&lt;h4&gt;3.3 - Para explicar &lt;em&gt;porque&lt;/em&gt; você fez algo&lt;/h4&gt;&lt;p&gt;Há certas ocasiões em que você precisa explicar &lt;em&gt;porque&lt;/em&gt; fez algo no código - especialmente quando isso torna o código mais complexo. Quando não &amp;eacute; óbvio o porquê de uma decisão e você não esclarece isso com comentários, há o risco de que algum programador, ao assumir o seu trabalho, torne o código mais simples - o que pode levar a falhas que ele não tem condições de prever ou a um mau desempenho.&lt;/p&gt; &lt;p&gt;Um bom exemplo &amp;eacute; um comentário escrito por nada menos que &lt;a href="http://pt.wikipedia.org/wiki/Linus_Torvalds"&gt;Linus Torvalds&lt;/a&gt; num &lt;a href="http://www.google.com/codesearch/p?hl=en#xsYd9n9zEVU/pub/software/scm/git/git-1.4.2.1.tar.bz2%7C8Ks8DzcL3i8/git-1.4.2.1/alloc.c"&gt;arquivo fonte&lt;/a&gt; do &lt;a href="http://pt.wikipedia.org/wiki/Git"&gt;Git&lt;/a&gt; (em C) para justificar a criação de um alocador de memória especializado ao inv&amp;eacute;s de utilizar a função malloc() padrão:&lt;/p&gt;&lt;pre style='font-size:80%;color:#000020;background:#f6f8ff;'&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;/*&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;&amp;#xa0;* alloc.c  - specialized allocator for internal objects&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;&amp;#xa0;*&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;&amp;#xa0;* Copyright (C) 2006 Linus Torvalds&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;&amp;#xa0;*&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;&amp;#xa0;* The standard malloc/free wastes too much space for objects, partly&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;&amp;#xa0;* because it maintains all the allocation infrastructure (which isn't&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;&amp;#xa0;* needed, since we never free an object descriptor anyway), but even&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;&amp;#xa0;* more because it ends up with maximal alignment because it doesn't&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;&amp;#xa0;* know what the object alignment for the new allocation is.&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#595979; '&gt;&amp;#xa0;*/&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h4&gt;Conclusão&lt;/h4&gt;&lt;p&gt;Para encerrar, duas ótimas citações:&lt;/p&gt;&lt;blockquote&gt;"Qualquer tolo consegue escrever código que um computador entenda. Bons programadores escrevem código que humanos possam entender." (Martin Fowler)&lt;/blockquote&gt;&lt;blockquote&gt;"Sempre codifique como se o programador que vai dar manutenção no seu código fosse um serial killer maníaco que sabe onde você mora." (autor desconhecido)&lt;/blockquote&gt;&lt;p&gt;Gostou do que leu? Deixe seu &lt;span style='color:#595979;'&gt;/*comentário*/&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="rodape" style="font-size: 80%;"&gt;  &lt;p id="asterisco1"&gt;* &lt;a href="#cit-asterisco1"&gt;^&lt;/a&gt; A rigor, variável e atributo são coisas diferentes, assim como função e m&amp;eacute;todo. Mas, para fins de simplificação, quando eu disser "variável", estarei me referindo tamb&amp;eacute;m a "atributo" e quando disser "função" estarei me referindo tamb&amp;eacute;m a m&amp;eacute;todo.&lt;/p&gt;  &lt;p&gt;Crédito da foto: George Marks&lt;/p&gt;  &lt;p&gt;Referências:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Martin_Fowler"&gt;Martin Fowler&lt;/a&gt;. &lt;a href="http://books.google.com.br/books?id=zPdb4QJKBtkC&amp;printsec=frontcover#v=onepage&amp;q&amp;f=false"&gt;"Refatoração: aperfeiçoando o projeto de código existente"&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Jeff_Vogel"&gt;Jeff Vogel&lt;/a&gt;. &lt;a href="http://www.ibm.com/developerworks/linux/library/l-clear-code/"&gt;"Six ways to write more comprehensible code"&lt;/a&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-682444224446653673?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/682444224446653673/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/07/nao-comente-seu-codigo.html#comment-form' title='20 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/682444224446653673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/682444224446653673'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/07/nao-comente-seu-codigo.html' title='// Não comente seu código'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_NdUULTfUGRE/TB55aZI7V4I/AAAAAAAAAdQ/eWBUsVgFIpY/s72-c/mulher_usando_desodorante_by_George_Marks_380px.jpg' height='72' width='72'/><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-8102816238554455872</id><published>2010-06-26T08:00:00.004-03:00</published><updated>2011-06-20T23:13:42.695-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='desafio'/><category scheme='http://www.blogger.com/atom/ns#' term='criatividade'/><category scheme='http://www.blogger.com/atom/ns#' term='emprego'/><category scheme='http://www.blogger.com/atom/ns#' term='estágio house'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><category scheme='http://www.blogger.com/atom/ns#' term='inteligência'/><title type='text'>5 dicas para aproveitar sua inteligência e criatividade</title><content type='html'>&lt;div width="530" style="text-align: center; "&gt;&lt;a href="http://dilbert.com/strips/comic/2010-06-10/" title="Dilbert.com"&gt;&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/90000/1000/700/91764/91764.strip.gif" border="0" alt="Dilbert.com" width="530" /&gt;&lt;/a&gt;&lt;div class="videos_house" style="font-size: 80%;"&gt;&lt;p&gt;Tradução: A satisfação dos funcionários dobrou desde o último ano (1% -&amp;gt; 2%) | O cr&amp;eacute;dito vai para o nosso novo programa de demissão das pessoas inteligentes | Você está seguro. YEFF!!!&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;No &lt;a href="http://maisquebomcodigo.blogspot.com/2010/06/o-estagio-house-do-bom-programador.html"&gt;artigo anterior&lt;/a&gt;, falei sobre o "Estágio House" do bom programador. Esse é o estágio em que bons programadores estão cansados de fazer trabalhos que subutilizem sua inteligência e criatividade e começam a buscar trabalhos mais desafiadores. Como continuação, apresento nesse artigo algumas sugestões do que programadores nesse estágio podem fazer para usar melhor sua inteligência e criatividade.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;h4&gt;1 - Torne seus problemas interessantes&lt;/h4&gt;&lt;p&gt;Se os mesmos trabalhos pouco desafiadores não saem da sua lista de atividades, você pode encontrar satisfação por automatizar a solução dos seus problemas. Isso pode significar criar bibliotecas, frameworks ou geradores de código. Ferramentas que automatizam tarefas repetitivas (não necessariamente de codificação) também podem ser ao mesmo tempo interessantes e úteis. Bem, se você está no estágio "House", é provável que já esteja fazendo quase tudo o que acabei de sugerir.&lt;/p&gt;&lt;p&gt;Algo que você talvez ainda não esteja fazendo é procurar resolver os problemas de formas que não necessariamente economizem o seu tempo, mas que te ensinem algo novo. Boa parte das suas descobertas significarão absolutamente nada para os seus superiores não-técnicos, mas certamente tornarão o seu trabalho mais interessante. Eventualmente você criará algo brilhante e sua empresa poderá tirar muito proveito disso. Aliás, você deve &lt;em&gt;sempre&lt;/em&gt; procurar uma forma de aprender algo novo que resulte em benefícios para a empresa onde trabalha.&lt;/p&gt;&lt;p&gt;Uma palavra de cautela: &lt;em&gt;muito&lt;/em&gt; cuidado para não prejudicar projetos com &lt;a href="http://maisquebomcodigo.blogspot.com/2010/05/o-prazo-e-curto-e-pressao-e-grande-como.html"&gt;prazo curto e grande pressão&lt;/a&gt; com o seu desejo de experimentar algo novo. Dê preferência a fazer isso em projetos com certa "gordura" no prazo. Se você tem a felicidade de ser consultado sobre prazos, ocasionalmente pode experimentar acrescentar um pouco de "gordura" ao seu prazo para comportar um esforço adicional que gere novos conhecimentos.&lt;/p&gt;&lt;h4&gt;2 - Proponha projetos interessantes&lt;/h4&gt;&lt;p&gt;Fique atento aos problemas existente na sua própria empresa. Identifique um que possa ser resolvido através de software. É o tipo de software em que você se interessaria em trabalhar? Então rascunhe um projeto que resolva ou minimize esse problema e apresente para quem tem o poder de decidir investir nele. Se você conseguir passar confiança de que sabe como resolver o problema e que quer resolvê-lo, pode ser encarregado de cuidar pessoalmente desse projeto.&lt;/p&gt;&lt;p&gt;Há algo nos softwares desenvolvidos pela sua empresa que poderia ser melhor se fosse feito diferente? É o tipo de mudança que você gostaria de fazer? Então crie uma &lt;a href="http://en.wikipedia.org/wiki/Proof_of_concept"&gt;prova de conceito&lt;/a&gt; que valide a sua idéia e proponha a mudança.&lt;/p&gt;&lt;p&gt;Você tem uma ótima ideia de projeto na cabeça, mas não tem os recursos necessários para implementá-lo de forma independente? Acha que a sua empresa seria uma boa parceira de negócios? Proponha uma parceria.&lt;/p&gt;&lt;h4&gt;3 - Crie seus próprios projetos interessantes&lt;/h4&gt;&lt;p&gt;Paralelo ao seu emprego atual, de forma independente, há algo quevocê pode fazer. &lt;a href="http://pt.wikipedia.org/wiki/Robert_Kiyosaki"&gt;Robert Kiyosaki&lt;/a&gt;, no seu livro &lt;a href="http://compare.buscape.com.br/pai-rico-pai-pobre-o-que-os-ricos-ensinam-a-seus-filhos-sobre-dinheiro-robert-t-kiyosaki-sharon-l-lester-853520623x.html"&gt;Pai Rico, Pai Pobre&lt;/a&gt; afirma que as oportunidades estão ao nosso redor o tempo todo. Para nós, que criamos software, isso &amp;eacute; ainda mais verdadeiro. Esse mercado está em constante mudança e isso cria oportunidades novas a todo momento.&lt;p&gt;&lt;p&gt;Em 2008, a Apple inaugurou a &lt;a href="http://www.apple.com/iphone/apps-for-iphone"&gt;App Store&lt;/a&gt;, criando oportunidades para programadores independentes desenvolverem aplicativos para &lt;a href="http://www.apple.com/br/iphone/"&gt;iPhone&lt;/a&gt;, &lt;a href="http://www.apple.com/br/ipodtouch/"&gt;iPod Touch&lt;/a&gt; e, mais recentemente, para &lt;a href="http://www.apple.com/br/ipad/"&gt;iPad&lt;/a&gt;. Em 2009, a Google criou a &lt;a href="http://www.android.com/market"&gt;Android Market&lt;/a&gt; - loja de aplicativos para dispositivos móveis com o sistema operacional &lt;a href="http://www.android.com"&gt;Android&lt;/a&gt;. E no mês passado (19/05/2010), a Google anunciou a &lt;a href="https://chrome.google.com/webstore"&gt;Chrome Web Store&lt;/a&gt; - sua loja de aplicativos na &lt;a href="http://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_em_nuvem"&gt;"nuvem"&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Você provavelmente já possui algum conhecimento que te permita aproveitar a oportunidade de criar e vender software inteligente e criativo, seja num dos novos mercados que citei, seja em algum outro. Se te falta algum conhecimento, certamente é possível adquiri-lo. Muita informação é oferecida de graça ou com baixo custo na internet.&lt;/p&gt;&lt;p&gt;Se sua id&amp;eacute;ia fizer sucesso, você pode conseguir um dinheiro extra ou at&amp;eacute; transformar sua atividade paralela no seu principal negócio. Se, por outro lado, sua id&amp;eacute;ia não der tão certo, pelo menos você terá adquirido novos conhecimentos e habilidades que poderão ser úteis para você mesmo ou para alguma empresa em que você gostaria de trabalhar (al&amp;eacute;m, &amp;eacute; claro, de você ter se divertido no processo).&lt;/p&gt;&lt;h4&gt;4 - Trabalhe em um projeto open source&lt;/h4&gt;&lt;p&gt;Se você é muito bem remunerado para fazer seu trabalho pouco desafiador, talvez queira considerar a possibilidade de trabalhar em paralelo num projeto open source. Você pode criar um ou apoiar um existente que considere interessante. Sua recompensa imediata não virá em forma financeira, mas em forma de satisfação pessoal e &lt;a href="http://maisquebomcodigo.blogspot.com/2010/05/eu-amo-meu-codigo.html"&gt;prestígio&lt;/a&gt; dentro da comunidade que receber o seu apoio. Por outro lado, dependendo da reputação que você conquistar, oportunidades muito interessantes poderão bater &amp;agrave; sua porta.&lt;/p&gt;&lt;h4&gt;5 - Procure outro emprego&lt;/h4&gt;&lt;p&gt;Se você não consegue fazer trabalhos que te deem satisfação no seu emprego atual e seu salário não é suficientemente alto para compensar isso, mudar de emprego &amp;eacute; uma alternativa a considerar. Um problema que você provavelmente terá é encontrar um emprego que junte um trabalho interessante com uma boa remuneração. Mas, mudar de emprego para ganhar um salário menor pode ser vantajoso se o trabalho que você for realizar fizer bom uso da sua inteligêngia e criatividade. Se for numa empresa séria, em pouco tempo o seu talento será reconhecido e você poderá passar a ganhar mais do que no emprego anterior.&lt;/p&gt;&lt;p&gt;Um ponto muito importante &amp;eacute; saber como procurar por um novo emprego. A melhor forma -  para os realmente talentosos - tem se mostrado ser através de &lt;a href="http://pt.wikipedia.org/wiki/Networking"&gt;networking&lt;/a&gt;. Quanto maior e mais rico for o seu, melhores oportunidades você terá. Você pode aumentar o seu networking participando de grupos de discussão, &lt;a href="http://codingdojo.org"&gt;Coding Dojo's&lt;/a&gt;, eventos de tecnologia, cursos e, finalmente, participando de projetos open source.&lt;/p&gt;&lt;p&gt;Você gostou das sugestões ou acha que algo diferente poderia ter sido sugerido? Deixe seu comentário.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="referencias" style="font-size: 80%;"&gt;&lt;p&gt;Fontes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Wikipedia. &lt;a href="http://en.wikipedia.org/wiki/App_Store"&gt;App Store&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Wikipedia. &lt;a href="http://en.wikipedia.org/wiki/Android_Market"&gt;Android Market&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Business Insider. &lt;a href="http://www.businessinsider.com/google-launching-chrome-web-store-2010-5"&gt;Google Launching "Chrome Web Store"&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-8102816238554455872?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/8102816238554455872/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/06/5-dicas-para-aproveitar-sua.html#comment-form' title='8 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/8102816238554455872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/8102816238554455872'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/06/5-dicas-para-aproveitar-sua.html' title='5 dicas para aproveitar sua inteligência e criatividade'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-1575285231568491587</id><published>2010-06-12T08:00:00.040-03:00</published><updated>2011-06-20T23:05:25.164-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='desafio'/><category scheme='http://www.blogger.com/atom/ns#' term='criatividade'/><category scheme='http://www.blogger.com/atom/ns#' term='estágio house'/><category scheme='http://www.blogger.com/atom/ns#' term='talento'/><category scheme='http://www.blogger.com/atom/ns#' term='inteligência'/><title type='text'>O estágio "House" do bom programador</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;ahref="http://2.bp.blogspot.com/_NdUULTfUGRE/TArqdZJY4rI/AAAAAAAAAcs/3IwrHNcTMcY/s1600/HouseMD.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt; &lt;img border="0" src="http://2.bp.blogspot.com/_NdUULTfUGRE/TArqdZJY4rI/AAAAAAAAAcs/3IwrHNcTMcY/s400/HouseMD.jpg"  /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Quando começamos a programar, qualquer problema, por menor que seja, se torna desafiador por ser algo novo. Depois de algum tempo enfrentando os mesmos problemas, nos tornamos bons em resolvê-los e fazemos isso de forma cada vez mais eficiente. Porém, depois de algum tempo aplicando toda a eficiência que adquirimos para resolver os mesmos problemas, nossa inteligência e criatividade começam a ficar subutilizadas. O desafio desaparece; junto vai embora a motivação. Então, &lt;strong&gt;começamos a procurar por novos problemas que desafiem a nossa inteligência e criatividade&lt;/strong&gt;. Esse, pra mim, é o "Estágio House" do bom programador.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;Esse termo me veio &amp;agrave; mente depois de assistir a alguns episódios da série norte-americana &lt;a href="http://www.fox.com/house"&gt;House&lt;/a&gt;, que tem como principal personagem o Dr. Gregory House - um brilhante médico que é obrigado a consultar pacientes com problemas comuns, mas detesta fazer isso! Ele gosta mesmo é de encontrar diagnóstico para os casos mais difíceis - aqueles que desafiam a sua inteligência e raciocínio. É na investigação desses casos que o Dr. House encontra satisfação. É aí que seu talento fica evidente. É aí que estão os desafios que o interessam.&lt;/p&gt;&lt;p&gt;O programador no estágio House ainda gosta muito de programar, por&amp;eacute;m, não mais aqueles "sisteminhas" que programadores medianos podem fazer. Ele quer é &lt;strong&gt;trabalhar em projetos que façam bom uso do talento que ele desenvolveu e em projetos desafiadores que o façam desenvolver novos conhecimentos e habilidades&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Infelizmente (para programadores nesse estágio, felizmente para outros) boa parte das oportunidades de trabalho são para fazer softwares que não requerem programadores muito talentosos. Algumas empresas at&amp;eacute; preferem programadores menos talentosos, pois são mais obedientes e não questionam quando são encarregados de fazer um software ruim (algo comum quando quem está no comando não é bom tecnicamente).&lt;/p&gt;&lt;p&gt;Nem todos os programadores, entretanto, chegam no estágio House. E isso não é necessariamente ruim. O ser humano, de modo geral, gosta de estar na &lt;a href="http://br.answers.yahoo.com/question/index?qid=20100123162310AAkSryA"&gt;Zona de Conforto&lt;/a&gt;. Se você resolve os mesmos problemas ano após ano, provavelmente se tornou bom nisso. Por que arriscar ser mediano resolvendo novos problemas quando você pode continuar sendo bom em resolver os velhos problemas? É uma questão de escolha.&lt;/p&gt;&lt;p&gt;Mas se você está no estágio House e seu trabalho atual subutiliza sua inteligência e criatividade, aguarde, no &lt;a href="http://maisquebomcodigo.blogspot.com/2010/06/5-dicas-para-aproveitar-sua.html"&gt;próximo artigo&lt;/a&gt; apresentarei algumas sugestões do que você pode fazer.&lt;/p&gt;&lt;p&gt;E você, já chegou no estágio House? Compartilhe sua experiência.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="videos_house" style="font-size: 80%;"&gt;&lt;p&gt;Um dos momentos de House que inspiraram este artigo, pode ser visto, em inglês, &lt;a href="http://www.youtube.com/watch?v=pZsICYJ1tW4"&gt;aqui&lt;/a&gt;. Se preferir, há uma péssima dublagem em espanhol &lt;a href="http://www.youtube.com/watch?v=fTNmKJyOLXk"&gt;aqui&lt;/a&gt;. Lamento não ter conseguido um vídeo legendado em português. Ele diz algo mais ou menos assim:&lt;/p&gt;&lt;p&gt;'Olá gente doente, sou o Dr. Gregory House, mas podem me chamar de Greg. Sou um dos três médicos de plantão esta manhã. Sou diagnosticista certificado e tenho especialidade dupla em doenças infecciosas e nefrologia. Também sou o único médico desta clínica forçado a estar aqui contra a vontade, não &amp;eacute;?' (olhando para Cuddy, diretora do hospital) 'Mas não se preocupem porque a maioria de vocês poderia ser tratado por um macaco com um analgésico... Quem quer ser atendido por mim?' (ningu&amp;eacute;m levanta a mão) 'Quem quer ser atendido pelos outros m&amp;eacute;dicos?' (todos levantam a mão)&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-1575285231568491587?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/1575285231568491587/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/06/o-estagio-house-do-bom-programador.html#comment-form' title='9 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/1575285231568491587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/1575285231568491587'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/06/o-estagio-house-do-bom-programador.html' title='O estágio &amp;quot;House&amp;quot; do bom programador'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_NdUULTfUGRE/TArqdZJY4rI/AAAAAAAAAcs/3IwrHNcTMcY/s72-c/HouseMD.jpg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-2675721795049397673</id><published>2010-05-29T11:00:00.006-03:00</published><updated>2011-06-20T23:10:14.607-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='contorno'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='prioridade'/><title type='text'>Quando usar soluções de contorno</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt; &lt;a href="http://4.bp.blogspot.com/_NdUULTfUGRE/TGnoDC_A5XI/AAAAAAAAAhU/d4i8eDaS3YY/s1600/solucoes_de_contorno.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;  &lt;img border="0" src="http://4.bp.blogspot.com/_NdUULTfUGRE/TGnoDC_A5XI/AAAAAAAAAhU/d4i8eDaS3YY/s1600/solucoes_de_contorno.jpg"  /&gt; &lt;/a&gt;&lt;/div&gt;&lt;p&gt;Quando bombeiros chegam a um local em chamas, qual é prioridade número UM? "Apagar o fogo" talvez pareça a resposta óbvia. Mas a prioridade é salvar as vidas que estão em perigo.&lt;/p&gt;&lt;p&gt;Os momentos de maior pressão que enfrentei como desenvolvedor de software foram similares a um incêndio: bugs críticos em softwares em produção. O que aprendi em episódios como esses? &lt;strong&gt;Que a prioridade número UM quando um software em produção para por causa de um bug, não é corrigir o bug, mas fazer com que o fluxo de trabalho do cliente seja restabelecido&lt;/strong&gt;. É como salvar as vítimas de um incêndio. Na maioria das vezes a solução definitiva (apagar o fogo) leva mais tempo do que o cliente (a vítima) pode esperar. É aí que entram as "soluções de contorno".&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;Um exemplo simples:&lt;/p&gt;&lt;p&gt;Um megacliente da sua empresa informa que pagou sem atraso a mensalidade do serviço online XPTO, mas o serviço foi bloqueado. Você descobre que o pagamento realmente entrou na conta, mas não consta no software que você fez para processar os pagamentos. O cliente está furioso! Seu gerente também! Até a sua diretoria já sabe do problema!&lt;/p&gt;&lt;p&gt;Você começa a imaginar em que parte do código está o problema, até já tem uma intuição. E então, pronto para pôr as mãos no seu código? É isso o que você faria?&lt;/p&gt;&lt;p&gt;Eu te faria duas perguntas:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Se, como solução de contorno, você lançar manualmente no banco de dados do seu software o pagamento do cliente, ele terá acesso ao serviço bloqueado muito antes do que se você implementar a solução definitiva?&lt;/li&gt;&lt;li&gt;A solução de contorno pode ser feita com baixo risco de "efeitos colaterais"?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Se a resposta a essas duas perguntas for "sim", minha sugestão é que seja adotada imediatamente a solução de contorno. Em seguida, sob menor pressão, que seja  investigado o que causou o problema e como resolvê-lo.&lt;/p&gt;&lt;p&gt;Soluções de contorno são o que o nome diz: "de contorno". A causa do problema continuará existindo e o problema voltará a acontecer - a menos que seja implementada a solução definitiva. E você DEVE implementá-la enquanto o problema está fresco na sua cabeça.&lt;/p&gt;&lt;p&gt;Priorizar a correção do software ao invés de resolver o problema do cliente é perigoso especialmente quando você não tem noção de quanto tempo levará para concluir a correção. E os efeitos dessa demora podem ser irreparáveis - vidas estão envolvidas (inclusive a sua).&lt;/p&gt;&lt;p&gt;Se você já usou uma solução de contorno numa situação excepcional, deixe seu comentário.&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;span id="imagem" style="font-size: 80%;"&gt;&lt;p&gt;Créditos da foto: http://www.firetactics.com&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-2675721795049397673?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/2675721795049397673/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/05/quando-usar-solucoes-de-contorno.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/2675721795049397673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/2675721795049397673'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/05/quando-usar-solucoes-de-contorno.html' title='Quando usar soluções de contorno'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_NdUULTfUGRE/TGnoDC_A5XI/AAAAAAAAAhU/d4i8eDaS3YY/s72-c/solucoes_de_contorno.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-4472382661928345378</id><published>2010-05-15T10:40:00.016-03:00</published><updated>2011-06-20T22:59:29.162-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='prazo'/><category scheme='http://www.blogger.com/atom/ns#' term='atraso'/><category scheme='http://www.blogger.com/atom/ns#' term='pressão'/><category scheme='http://www.blogger.com/atom/ns#' term='YAGNY'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='programador cowboy'/><category scheme='http://www.blogger.com/atom/ns#' term='qualidade'/><category scheme='http://www.blogger.com/atom/ns#' term='escopo'/><title type='text'>O que fazer quando o prazo é curto e a pressão é grande?</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt; &lt;a href="http://1.bp.blogspot.com/_NdUULTfUGRE/S9yuBM5qCtI/AAAAAAAAAaw/dZIYej88oNU/s1600/O+prazo+e+curto+e+a+pressao+e+grande.jpg"imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;  &lt;img border="0" height="326"src="http://1.bp.blogspot.com/_NdUULTfUGRE/S9yuBM5qCtI/AAAAAAAAAaw/dZIYej88oNU/s1600/O+prazo+e+curto+e+a+pressao+e+grande.jpg"width="520" /&gt; &lt;/a&gt;&lt;/div&gt;&lt;p&gt;Em mais de uma década de experiência profissional, foram raras as ocasiões em que não estive envolvido num projeto com prazo curto e grande pressão. Isso pode ser familiar para você, que também desenvolve software. Muitas vezes, você talvez se sinta como eu: dividido entre manter a qualidade do seu código e atender ao prazo.&lt;/p&gt;&lt;p&gt;Como cumprir prazos sem abrir mão da qualidade? O que fazer quando não for possível cumprir o prazo? São pontos que pretendo abordar neste artigo.&lt;/P&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;Nota: Partirei da premissa de que a pressão é para concluir um projeto ou lançar um release. Em &lt;a href="http://maisquebomcodigo.blogspot.com/2010/05/quando-usar-solucoes-de-contorno.html"&gt;outro artigo&lt;/a&gt; abordarei a pressão para a correção de falhas críticas de software em produção.&lt;/P&gt;&lt;h4&gt;1 - Reduza o escopo&lt;/h4&gt;&lt;p&gt;Quando é evidente que o prazo é curto demais para determinado projeto, minha primeira proposta é a redução de escopo. Particularmente, acho maravilhoso deixar de fora funcionalidades não essenciais. Além de favorecer o cumprimento de prazos, isso geralmente torna o software mais simples de usar, evoluir e manter.&lt;p/p&gt;&lt;blockquote&gt;"...os melhores programadores não são os que possuem as melhores habilidades... e sim aqueles que podem determinar o que não importa." (37signals) &lt;span id="cit_ref-1" style="font-size:70%"&gt;&lt;sup&gt;[&lt;a href="#ref-1"&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;"Inovação... é dizer NÃO para tudo exceto as funcionalidades mais cruciais." (Steve Jobs) &lt;span id="cit_ref-2" style="font-size: 70%"&gt;&lt;sup&gt;[&lt;a href="#ref-2"&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;Algumas funcionalidade que sugeri não implementar em projetos onde estive envolvido, nunca foram implementadas, mesmo depois de anos. Não por esquecimento, e sim porque se mostraram irrelevantes ou porque novas necessidades mais importantes foram identificadas.&lt;/p&gt;&lt;h4&gt;2 - Comece pelo que é mais importante (para o cliente)&lt;/h4&gt;&lt;p&gt;Mesmo com o escopo reduzido, ainda é necessário avaliar o que merece ser implementado primeiro. Se, ao terminar o prazo, o projeto não estiver concluído, você não desejará ter em mãos um software inutilizável porque deixou pra fazer por último as funcionalidades mais complicadas (que por acaso eram as mais importantes). Implemente primeiro as funcionalidades vitais, sem as quais seu software não faz sentido. Se algo não ficar pronto a tempo, que seja o menos importante.&lt;/p&gt;&lt;h4&gt;3 - Faça &lt;em&gt;só&lt;/em&gt; o que tem que ser feito&lt;/h4&gt;&lt;blockquote&gt;"Sempre implemente as coisas quando você realmente precisar delas, nunca quando você prevê que precisará delas" (&lt;a href="http://en.wikipedia.org/wiki/Ron_Jeffries"&gt;Ron Jeffries&lt;/a&gt;, um dos criadores do &lt;a href="http://pt.wikipedia.org/wiki/Extreme_programming"&gt;XP&lt;/a&gt;) &lt;spanid="cit_ref-3" style="font-size: 70%"&gt;&lt;sup&gt;[&lt;a href="#ref-3"&gt;3&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;Muitas vezes, o próprio programador encurta o seu prazo por querer "ir além", fazer aquilo que ele tem certeza que será necessário implementar no futuro, mas ainda não foi solicitado. Essa atitude traz consigo três implicações:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Exige um tempo maior para implementação, testes e ajustes;&lt;/li&gt;&lt;li&gt;Torna o software maior e mais difícil de manter;&lt;/li&gt;&lt;li&gt;O que se pensa ser necessário no presente, talvez nunca se torne necessário; ou se torne necessário, mas não como foi imaginado.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Não é por acaso que a expressão &lt;a href="http://en.wikipedia.org/wiki/You_Ain't_Gonna_Need_It"&gt;"You ain't gonna need it"&lt;/a&gt; (Você não vai precisar disso) ou sua abreviação YAGNY são tão populares entre os adeptos do &lt;a href="http://pt.wikipedia.org/wiki/Extreme_programming"&gt;Extreme Programming&lt;/a&gt;.&lt;/p&gt;&lt;h4&gt;4 - Tenha moderação ao se preocupar com a performance&lt;/h4&gt;&lt;blockquote&gt;"Devemos esquecer as pequenas eficiências, digamos 97% do tempo, otimização prematura é a raiz de todos os males." (&lt;a href="http://pt.wikipedia.org/wiki/Donald_Knuth"&gt;Donald Knuth&lt;/a&gt;)&lt;span id="cit_ref-4" style="font-size: 70%"&gt;&lt;sup&gt;[&lt;a href="#ref-4"&gt;4&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;Segundo &lt;a href="http://pt.wikipedia.org/wiki/Donald_Knuth"&gt;Knuth&lt;/a&gt;, na maioria dos casos, você não deve se preocupar com a performance do código que escreve. Isso pode soar estranho e talvez gere polêmica em torno do assunto, mas faz sentido - mesmo que você não tenha um prazo curto.&lt;/p&gt;&lt;p&gt;Um código otimizado para ter melhor performance, geralmente se torna menos legível e mais difícil de manter. Que percentual do código que você escreve merece se tornar menos legível em benefício da performance?&lt;/p&gt;&lt;p&gt;Outro ponto a considerar é &lt;em&gt;quando&lt;/em&gt; os usuários tolerarão aguardar um pouco por uma resposta do software. Uma geração de relatório que acontece uma vez por mês tende a ter uma tolerância alta, enquanto uma pesquisa realizada dezenas ou centenas de vezes por dia tende a ter uma tolerância baixa.&lt;p&gt;&lt;p&gt;Tornar um algoritmo 10 vezes mais veloz pode ser excitante para você, mas não para seus usuários se isso significar reduzir o tempo de resposta de 100 milissegundos para 10 milissegundos. Por outro lado, se você tornar um algoritmo "apenas" 2 vezes mais veloz, seus usuários ficarão felizes se isso significar uma redução de 60 segundos para 30 segundos no tempo de resposta.&lt;/p&gt;&lt;p&gt;Por último, mas não menos importante, quanto tempo você demorará para implementar um mecanismos que faça algo X vezes mais rápido? Seu prazo comporta esse tempo?&lt;/p&gt;&lt;h4&gt;5 - Compartilhe decisões que diminuirão a qualidade do software&lt;/h4&gt;&lt;p&gt;Há, infelizmente, casos em que a solução capaz de ser implementada dentro do prazo diminua a qualidade do software.&lt;/p&gt;&lt;p&gt;Por exemplo, você começa a codificar uma nova funcionalidade que será adicionada a um software em produção. Depois de alguns minutos, percebe que já escreveu algo parecido em outra parte do programa no passado. Como um bom programador, você logo pensa em tornar genérica a parte comum entre as duas funcionalidades e isolar os códigos específicos. Só que você talvez precise de alguns dias para concluir essa generalização, criar e testar a nova funcionalidade (além de retestar a funcionalidade antiga), enquanto precisará de apenas algumas horas se fizer o famoso "copy &amp;amp; paste", além de algumas alterações no código copiado. Seu gerente (que não te consultou antes de passar o prazo para o cliente) te deu apenas 1 dia para terminar esse trabalho.&lt;/p&gt;&lt;p&gt;Você sabe que duplicar código é algo horrível! É uma daquelas práticas que acabam com a &lt;ahref="http://pt.wikipedia.org/wiki/Manutenibilidade"&gt;manutenibilidade&lt;/a&gt; do software. Se for descoberto um bug no código original, será necessário alterar todas as cópias desse código (se você lembrar delas). Mas você está sob pressão. E então, o que você faria?&lt;/p&gt;&lt;p&gt;Em situações como essa, é preciso ser muito franco. Explique claramente ao seu gerente (que talvez nunca tenha sido um programador) os prós e contras de cada alternativa e deixe-o tomar a decisão junto com você (ou por você, se ele preferir). Se, compreendendo as implicações negativas, seu gerente disser quer a solução mais rápida, coloque  seu chapéu de cowboy &lt;span id="cit_ref-5" style="font-size: 70%"&gt;&lt;sup&gt;[&lt;a href="#ref-5"&gt;5&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt; &lt;span id="cit_ref-6" style="font-size: 70%"&gt;&lt;sup&gt;[&lt;a href="#ref-6"&gt;6&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt; e atenda a vontade dele. Apenas lembre de adicionar &lt;a href="http://maisquebomcodigo.blogspot.com/2010/07/nao-comente-seu-codigo.html"&gt;comentários &lt;em&gt;significativos&lt;/em&gt;&lt;/a&gt; no código que facilitem a manutenção no futuro.&lt;/p&gt;&lt;p&gt;Se você for pressionado a agir como  um "Programador Cowboy" por muito tempo, talvez seja bom considerar uma mudança de emprego.&lt;/p&gt;&lt;h4&gt;6 - Se perceber que vai atrasar, avise antes que aconteça&lt;/h4&gt;&lt;p&gt;Não tente adiar o sofrimento. Se o prazo está terminando e você percebe que não conseguirá concluir o projeto, avise com antecedência. Essa ocasião pode ser um bom momento para sugerir uma reavaliação do escopo (ou uma alteração do prazo).&lt;/p&gt;Lembre-se:&lt;blockquote&gt;"É melhor fazer meio-produto do que um produto meia-boca" (Getting Real) &lt;span id="cit_ref-1" style="font-size: 70%"&gt;&lt;sup&gt;[&lt;a href="#ref-1"&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;span id="imagem" style="font-size: 80%;"&gt;&lt;p&gt;Foto: Escravos numa &lt;a href="http://pt.wikipedia.org/wiki/Galé"&gt;galé&lt;/a&gt; romana - Filme &lt;a href="http://pt.wikipedia.org/wiki/Ben-Hur"&gt;Ben-Hur&lt;/a&gt;, 1959&lt;/p&gt;&lt;/span&gt;&lt;div class="referencias" style="font-size: 80%;"&gt; &lt;p id="ref-1"&gt;[1] &lt;a href="#cit_ref-1"&gt;^&lt;/a&gt; 37signals. &lt;a href="http://gettingreal.37signals.com/GR_por.php"&gt;"Caindo na Real"&lt;/a&gt;&lt;/p&gt; &lt;p id="ref-2"&gt;[2] &lt;a href="#cit_ref-2"&gt;^&lt;/a&gt; Derek Sivers. &lt;a href="http://www.oreillynet.com/onlamp/blog/2004/08/say_no_by_default.html"&gt;"Say NO by default"&lt;/a&gt;&lt;/p&gt; &lt;p id="ref-3"&gt;[3] &lt;a href="#cit_ref-3"&gt;^&lt;/a&gt; Ron Jeffries. &lt;a href="http://www.xprogramming.com/Practices/PracNotNeed.html"&gt;"You're NOT gonna need it!"&lt;/a&gt;&lt;/p&gt; &lt;p id="ref-4"&gt;[4] &lt;a href="#cit_ref-4"&gt;^&lt;/a&gt; Donald Knuth. &lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.6084&amp;rep=rep1&amp;type=pdf"&gt;"Structured Programming with go to Statements"&lt;/a&gt;&lt;/p&gt; &lt;p id="ref-5"&gt;[5] &lt;a href="#cit_ref-5"&gt;^&lt;/a&gt; Online Etymology Dictionary. &lt;a href="http://www.etymonline.com/index.php?term=cowboy"&gt;"Cowboy"&lt;/a&gt;&lt;/p&gt; &lt;p id="ref-6"&gt;[6] &lt;a href="#cit_ref-6"&gt;^&lt;/a&gt; Tim Bowen. &lt;a href="http://www.onestopenglish.com/section.asp?theme=mag&amp;catid=59783&amp;docid=154457"&gt;"Wordof the week: Cowboy"&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-4472382661928345378?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/4472382661928345378/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/05/o-prazo-e-curto-e-pressao-e-grande-como.html#comment-form' title='13 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/4472382661928345378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/4472382661928345378'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/05/o-prazo-e-curto-e-pressao-e-grande-como.html' title='O que fazer quando o prazo é curto e a pressão é grande?'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_NdUULTfUGRE/S9yuBM5qCtI/AAAAAAAAAaw/dZIYej88oNU/s72-c/O+prazo+e+curto+e+a+pressao+e+grande.jpg' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1287486120180593203.post-7772479562038149334</id><published>2010-05-01T18:30:00.020-03:00</published><updated>2011-06-20T22:57:04.926-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='amor'/><category scheme='http://www.blogger.com/atom/ns#' term='reputação'/><title type='text'>Você ama seu código?</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt; &lt;a href="http://4.bp.blogspot.com/_NdUULTfUGRE/S9yU_DT9WfI/AAAAAAAAAao/Shnlnr2V0LM/s1600/Eu+amo+meu+codigo.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em;"&gt;  &lt;img border="0" src="http://4.bp.blogspot.com/_NdUULTfUGRE/S9yU_DT9WfI/AAAAAAAAAao/Shnlnr2V0LM/s400/Eu+amo+meu+codigo.jpg"  /&gt; &lt;/a&gt;&lt;/div&gt;&lt;p&gt;Algum tempo atrás, numa das comunidades de programação que participo, alguém pediu "ajuda" para resolver um problema com matrizes. Era, provavelmente, um iniciante querendo uma solução fácil para um trabalho de faculdade. Não era algo complexo, mas se tratava de um desafio interessante. Naquele mesmo dia, à noite, implementei uma solução para o problema. Fiquei feliz por ajudar o aspirante a programador, mas confesso que o amor ao próximo não foi o único motivador da minha ajuda.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;Acredito que algo semelhante aconteça com muitos dos talentosos programadores que apóiam produtos open source. Não creio que seja apenas o interesse em contribuir com a liberdade de usar, estudar, modificar e distribuir software&lt;span id="cit_ref-1" style="font-size: 70%"&gt;&lt;sup&gt;[&lt;a href="#ref-1"&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt; o que os motiva a trabalhar em prol de algo que não lhes dará retorno financeiro direto. Concordo com Mårten Mickos, ex-CEO da empresa que criou o MySQL, que cita&lt;span id="cit_ref-2" style="font-size: 70%"&gt;&lt;sup&gt;[&lt;a href="#ref-2"&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/span&gt; o desejo de "construir uma reputação" como um dos maiores motivadores. Como essa reputação é construída? Escrevendo código útil e de qualidade. Eles amam programar, amam o código que escrevem e amam a reputação que isso lhes dá.&lt;/p&gt;&lt;p&gt;Acho que a maioria dos programadores não ama seu código. Se amassem não escreveriam código de tão má qualidade. Ou será que amam seu código, mas simplesmente não se dão conta de que escrevem código ruim?&lt;/p&gt;&lt;p&gt;Quando preciso fazer manutenção em algum código escrito por outro programador, é inevitável fazer algumas suposições sobre esse programador. Dois exemplos comuns são:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Não é prático: criou uma solução extremamente complexa sem necessidade;&lt;/li&gt;&lt;li&gt;É desleixado: a organização do código é terrível e nada recebeu um nome adequado (variáveis, classes, funções etc).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Por causa dessas suposições alheias que faço, ao codificar a solução de algum problema em software, sempre penso no que meu código dirá a meu respeito. Isso me motiva a fazer um bom trabalho. Por acreditar que bons programadores terão uma impressão positiva a meu respeito ao olhar o código que escrevo, eu amo meu código.&lt;/p&gt;&lt;p&gt;É claro que escrever código de qualidade é um desafio quando &lt;a href="http://maisquebomcodigo.blogspot.com/2010/05/o-prazo-e-curto-e-pressao-e-grande-como.html"&gt;o prazo é curto e a pressão é grande&lt;/a&gt;, mas isso é papo para outra thread.&lt;/p&gt;&lt;p&gt;A propósito, &lt;a href="http://pastebin.com/YRHrMSGw"&gt;aqui&lt;/a&gt; está o problema e a solução (em Pascal) que citei no início.&lt;/p&gt;&lt;p&gt;E você, ama seu código?&lt;/p&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;&lt;div class="referencias" style="font-size: 80%;"&gt; &lt;p id="ref-1"&gt;[1] &lt;a href="#cit_ref-1"&gt;^&lt;/a&gt; Open Source Initiative. &lt;a href="http://www.opensource.org/docs/definition.php"&gt;"The Open Source Definition"&lt;/a&gt;&lt;/p&gt; &lt;p id="ref-2"&gt;[2] &lt;a href="#cit_ref-2"&gt;^&lt;/a&gt; MIT Sloan Management Review. &lt;a href="http://sloanreview.mit.edu/the-magazine/articles/2008/fall/50109/the-oh-so-practical-magic-of-open-source-innovation"&gt;"The Oh-So-Practical Magic of Open-Source Innovation"&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;&amp;#8212;&lt;/p&gt;

&lt;p&gt;Se você gosta dos meus artigos, é provável que também gostará dos meus tweets.
Siga &lt;a href="http://twitter.com/DirleiDionisio"&gt;@DirleiDionisio&lt;/a&gt; no Twitter!&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1287486120180593203-7772479562038149334?l=maisquebomcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maisquebomcodigo.blogspot.com/feeds/7772479562038149334/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/05/eu-amo-meu-codigo.html#comment-form' title='12 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/7772479562038149334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1287486120180593203/posts/default/7772479562038149334'/><link rel='alternate' type='text/html' href='http://maisquebomcodigo.blogspot.com/2010/05/eu-amo-meu-codigo.html' title='Você ama seu código?'/><author><name>Dirlei Dionísio</name><uri>http://www.blogger.com/profile/08502034198594794171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://2.bp.blogspot.com/-bSa2n6N0Ox0/TvDUonwhh3I/AAAAAAAAA3E/SatxmsE--Ug/s220/profile_cap.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_NdUULTfUGRE/S9yU_DT9WfI/AAAAAAAAAao/Shnlnr2V0LM/s72-c/Eu+amo+meu+codigo.jpg' height='72' width='72'/><thr:total>12</thr:total></entry></feed>
