<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Keep Learning &#187; Cultura</title>
	<atom:link href="http://blog.lucashungaro.com/category/cultura/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lucashungaro.com</link>
	<description>Conhecimento nunca é o bastante</description>
	<lastBuildDate>Tue, 10 Apr 2012 17:18:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>[Rant] Menos guerrinhas. Mais princípios</title>
		<link>http://blog.lucashungaro.com/2011/04/29/rant-menos-guerrinhas-mais-principios/</link>
		<comments>http://blog.lucashungaro.com/2011/04/29/rant-menos-guerrinhas-mais-principios/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 16:51:47 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Cultura]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://blog.lucashungaro.com/?p=406</guid>
		<description><![CDATA[Aviso: o post não é lá a coisa mais coesa do mundo mas, bem, é um rant, então estou despejando pensamentos aqui. É algo muito bom que cada desenvolvedor possua sua &#8220;stack&#8221; preferida de ferramentas. O apreço por esse conjunto leva à dedicação e ao domínio do mesmo. Entre nós, que orgulhosamente nos categorizamos como [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Aviso</strong>: o post não é lá a coisa mais coesa do mundo mas, bem, é um rant, então estou despejando pensamentos aqui. <img src='http://blog.lucashungaro.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>É algo muito bom que cada desenvolvedor possua sua &#8220;stack&#8221; preferida de ferramentas. O apreço por esse conjunto leva à dedicação e ao domínio do mesmo. </p>
<p>Entre nós, que orgulhosamente nos categorizamos como &#8220;trabalhadores do conhecimento&#8221;, creio que, apesar desse apreço à priori não causar prejuízo, trocar de conjunto de ferramentas deveria ser muito fácil (e uma habilidade desejável) já que o que importa é a transformação do conhecimento da forma bruta (dados) à forma desejada (informação), independente do que foi utilizado para isso. É claro que há sempre a curva de aprendizado numa troca dessas: uma nova linguagem, nova DSL/API etc, mas os fundamentos e princípios se mantém.</p>
<p>Nerds, assim como toda pessoa imersa numa sociedade consumista, se definem pelo que consomem e utilizam. Isso é algo bem comum atualmente e vai desde roupas até computadores, editores de texto, smartphones e, pasmem, à p**** da biblioteca que o cara usa pra fazer parsing de XML. Algo que tornou-se muito comum, principalmente com a facilidade que existe para que cada um publique seus pensamentos (blogs, Twitter e afins), é que ocorram &#8220;guerras&#8221; sobre esse tipo de coisa, já que, em nossa mente, criticar uma coisa que consumo é praticamente criticar a mim e meu modo de viver.</p>
<p>Entre desenvolvedores isso é bem visível. Além das guerrinhas entre comunidades (.NET x Java, Ruby x Python etc) há também as guerras intra-comunidade, em que escolhas de ferramentas são motivo para disputas de ego intermináveis. O cenário, em geral, mostra uma galera que gosta da ferramenta X e acha que, por isso, a ferramenta Y é uma merda inútil e o pessoal que gosta da ferramenta Y achando o mesmo da ferramenta X.</p>
<p>Passemos a um exemplo num contexto diferente para que pré-disposições não afetem nossas conclusões. Imagine que Gordon Ramsay irá a sua casa para fazer o jantar. Ele não vai levar as facas, panelas e demais utensílios que usa em seu dia-a-dia. Vai utilizar apenas o que tem em sua casa. Dias depois você irá a casa dele e utilizará todos os utensílios profissionais à disposição. Bom, a não ser que você seja um anônimo chef de primeira categoria, sabemos quem irá preparar o melhor jantar, não? (sem piadinhas hein! <img src='http://blog.lucashungaro.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> )</p>
<p>Mais um. Quem será que toca melhor: Steve Vai com uma guitarra Giannini de 500 reais ou você com as guitarras ultra-caras dele?</p>
<p>Onde está o conhecimento? Na ferramenta ou no profissional?</p>
<p>Algo bizarro que acontece é ver pessoas que deveriam ter bons conhecimentos sobre lógica confundindo argumento com preferência. Dizer que você prefere X porque acha mais bonito ou mais legal é só sua preferência, não é um argumento para diminuir as alternativas. Chega de &#8220;RSpec é mais bonito e moderno, então Test::Unit sucks!&#8221; e vice-versa (exemplo aleatório, sem flames por favor).</p>
<p>BREAKING NEWS: se você não sabe patavinas sobre design de código orientado a objeto e uma meia dúzia de princípios básicos, escrever testes em RSpec não vai fazer com que você escreva código melhor do que escrevendo com Test::Unit. Aliás, é bem capaz de piorar as coisas, mas isso é conversa pra outro post. <img src='http://blog.lucashungaro.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Em linhas mais práticas, pouco importa para o interessado na informação se ela é processada em PHP ou Ruby, se é formatada em ERB ou HAML ou se está armazenada em MySQL ou PostgreSQL. A ferramenta &#8220;certa&#8221; é a que faz o trabalho. Sempre há muita discussão sobre isso de &#8220;ferramenta certa&#8221; e, a não ser que seja algo obviamente errado como usar o Rails pra fazer uma aplicação desktop com controles nativos, o que sempre acaba entrando em jogo é preferência, gosto, estética e etc. Novamente, isso simplesmente não serve como evidência de que algo é superior ou inferior.</p>
<p>&#8220;Mas <strong>eu</strong> sou mais produtivo com X do que com Y!&#8221;<br />
&#8220;Olha só como <strong>meu</strong> código fica mais limpo com Z do que com N!&#8221;</p>
<p>É, amiguinho. Pra você. Assim como tem muita gente que acredita em divindades criadoras e muita gente que não. Muita gente que acha carros da Porsche bonitos e muita gente que os acha toscos e que os carros da Toyota sim são lindos. Daí a dizer que algum é melhor ou pior é um longo caminho (e, na minha visão, um caminho inexistente).</p>
<p>Pois bem. Por isso creio que, como comunidade, devemos mudar um pouco nosso foco. Tudo bem falar sobre ferramentas, é algo saudável desde que feito com bom senso. Com argumentos, fatos, contexto e harmonia. Não com guerrinhas bobas sobre gosto pessoal e como <del datetime="2011-04-29T10:50:26+00:00">seu pau é maior que o dos outros</del> sua gem preferida é a mais fodolenta do OMNIverso. É bom para conhecermos alternativas e evoluirmos. Se todo mundo se prendesse ao atual e rejeitasse as novidades, ainda estaríamos perfurando cartões. Enfim, é preciso foco em coisas que realmente fazem a diferença na qualidade. Foco em fundamentos e princípios.</p>
<p>Estatísticas do DataLucas mostram que, a cada dois dias, surgem dezenas de posts falando sobre alguma gem que é a coisa mais maravilhosa já inventada desde o <del datetime="2011-04-29T10:50:26+00:00">carro voador</del> Toddynho (e que prova que todo o resto é uma merda!), sobre uma miríade de workflows para o VCS da moda, sobre porque a minha biblioteca é mais foda que a sua, sobre como o Agile morreu e, claro, como ele ainda está vivo e funciona muito bem sim senhor!</p>
<p>Legal, todo mundo tem uma opinião sobre o que prefere e sobre o que não gosta. Muito bom, ótimo, sensacional. Mas e o que é imutável? Aquilo que determina qualidade independente do meio utilizado? Já postei bastante essa frase, mas sempre gosto de relembrar:</p>
<blockquote><p>As to methods there may be a million and then some, but principles are few. The man who grasps principles can successfully select his own methods. The man who tries methods, ignoring principles, is sure to have trouble.</p></blockquote>
<p>— Ralph Waldo Emerson</p>
<p>Ainda não achei frase que se encaixe mais com meu pensamento sobre desenvolvimento de software. Seja no nível gerencial ou técnico, dominar métodos (ferramentas) ignorando princípios com certeza leva à problema. Manjar de todas as cerimônias e artefatos das metodologias ágeis não vai produzir software de qualidade magicamente. Entender seus princípios, mesmo que você não aplique toda a parafernalha cerimonial, com certeza trará efeitos positivos.</p>
<p>Então fica a pergunta: onde estão os posts e talks sobre princípios? Vamos falar sobre coisas como SOLID (não, não é um besteirol acadêmico), acoplamento, coesão, testes que realmente especificam comportamento, trade-offs arquiteturais e outras questões importantes?</p>
<p>Tentarei fazer a minha parte nisso. Ano passado na RubyConf parte da minha apresentação falou sobre princípios (e outra sobre ferramentas <img src='http://blog.lucashungaro.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) e penso em continuar com essa temática tanto no blog quanto em futuras apresentações. Gostaria muito que a comunidade valorizasse mais esse tipo de discussão (wishful thinking&#8230;). </p>
<p>Já fiz muito dessas guerrinhas, não sou inocente, mas aprendi a valorizar a base, principalmente abrindo a mente (olha a piadinha!)  e dando chances à ferramentas diferentes e, com isso, percebendo que em nossa profissão, felizmente, há vários meios eficientes para atingir os resultados desejados.</p>
<p>And&#8230; here comes the flames? <img src='http://blog.lucashungaro.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>PS</strong>: se você é do contra e vai bater o pézinho dizendo que preferência e estética são evidências qualitativas, pode desistir e vaza. <img src='http://blog.lucashungaro.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Leitura recomendada: &#8220;<a href="http://bit.ly/hKN0bQ">A Little Knowledge is a Dangerous Thing</a>&#8220;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucashungaro.com/2011/04/29/rant-menos-guerrinhas-mais-principios/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O modelo Dreyfus e a fuga de cérebros</title>
		<link>http://blog.lucashungaro.com/2008/05/01/o-modelo-dreyfus-e-a-fuga-de-cerebros/</link>
		<comments>http://blog.lucashungaro.com/2008/05/01/o-modelo-dreyfus-e-a-fuga-de-cerebros/#comments</comments>
		<pubDate>Thu, 01 May 2008 04:31:49 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Cultura]]></category>
		<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/2008/05/01/o-modelo-dreyfus-e-a-fuga-de-cerebros/</guid>
		<description><![CDATA[Muitas empresas sofrem com o que se chama &#8220;fuga de cérebros&#8221;: os melhores profissionais da empresa estão sempre saindo para outros empregos. Isso pode ter vários motivos, como problemas de relacionamento pessoal, baixos salários, mudança de foco profissional, insatisfação com a estratégia ou foco da empresa e vários outros. Mas há um fator muito importante [...]]]></description>
			<content:encoded><![CDATA[<p>Muitas empresas sofrem com o que se chama &#8220;fuga de cérebros&#8221;: os melhores profissionais da empresa estão sempre saindo para outros empregos. Isso pode ter vários motivos, como problemas de relacionamento pessoal, baixos salários, mudança de foco profissional, insatisfação com a estratégia ou foco da empresa e vários outros. Mas há um fator muito importante que geralmente é ignorado: a falta de confiança na intuição do profissional especialista (<em>expert</em>).</p>
<p>Pausa para explicação.</p>
<p>O modelo Dreyfus de aquisição de habilidades divide os profissionais em cinco níveis de conhecimento para uma dada habilidade (isto é, você pode estar no nível 1 em culinária e no nível 5 em jardinagem, ninguém &#8220;é&#8221; um nível 5 e pronto). Bem resumidamente, são eles:</p>
<ol>
<li><strong>Novato</strong>: o novato precisa de regras claras e independentes de contexto (&#8220;receita de bolo&#8221;) para guiar seu trabalho, e não sabe lidar com problemas pois não tem experiência para tomar decisões sozinho. Também não toma responsabilidade pelas regras que segue &#8211; &#8220;Eu estava apenas seguindo ordens!&#8221;.</li>
<li><strong>Iniciante avançado</strong>: começa a tomar decisões mais básicas pois já possui alguma experiência e percebe que pode adaptar algumas regras a certos contextos. Ainda não toma decisões contrárias às regras, não sabe lidar com problemas inesperados e não experimenta a sensação de responsabilidade pessoal. A maioria das pessoas está nesse nível.</li>
<li><strong>Competente</strong>: questiona as regras de acordo com sua experiência e percebe consequências a longo prazo. Começa a tomar decisões de acordo com o contexto, resolver problemas inesperados e a tomar a responsabilidade sobre seus atos.</li>
<li><strong>Proficiente</strong>: se utiliza de pouquíssimas regras, começa a valorizar mais sua intuição e sempre analisa o contexto em que está inserido de acordo com o que já experimentou. Sente-se completamente responsável por suas decisões e respectivas consequências.</li>
<li><strong>Especialista</strong>: o especialista usa a intuição que adquiriu com a experiência e faz tudo parecer muito fácil. Toma decisões e resolve problemas sem esforço, pois reconhece padrões muito rapidamente. É o pior professor para um novato, pois não segue qualquer receita, apenas sabe o que fazer.</li>
</ol>
<p>Um ponto interessante é que pessoas nos níveis mais baixos costumam se sobreavaliar, enquanto as pessoas nos níveis mais altos são bem mais críticos em relação ao seu trabalho e nível de conhecimento.</p>
<p><span id="more-120"></span><br />
Citando Dave Thomas:</p>
<blockquote><p>So, high-quality experience turns us from a novice to something approaching an expert. We process information in a qualitatively different way in the two states: novices need rules, experts need concepts and contexts. Novices need external feedback, experts generate their own. Stuff that works when teaching a novice drives an expert up the wall, and vice-versa. Experts are often the worst teachers of novices.</p></blockquote>
<p>Este modelo foi utilizado na década de 80 para resolver alguns problemas na profissão de enfermagem, problemas esses que são agora enfrentados pelos desenvolvedores de software: a profissão não é valorizada (sendo considerada simplesmente operacional), os salários são baixos (o que torna mais interessante financeiramente dar palestras/consultoria ou partir para cargos administrativos), a educação de novos profissionais piora cada vez mais (devido à sobrevalorização de modelos formais e desvalorização da experiência prática) e a perda de visão do real objetivo (satisfazer aos clientes ao invés de simplesmente &#8220;fabricar&#8221; software).</p>
<p>Voltando:</p>
<p>Tudo o que você precisa fazer para arruinar o trabalho de um especialista é fazer com que ele siga regras. É o que Andy Hunt chama de &#8220;arrebanhar cavalos de corrida&#8221;. Para arruinar o trabalho de um novato, deixe-o livre de receitas, o que Andy chama de &#8220;colocar ovelhas para correr&#8221;. É por isso que metodologias e regras não podem ser aplicadas a todos em uma equipe: equipes são heterogêneas, possuem profissionais em vários níveis de conhecimento em uma dada habilidade. Os chamados &#8220;gestores de pessoas&#8221; simplesmente não conseguem perceber isso, ou fingem não perceber.</p>
<p>Outro fator que atrapalha é acreditar que todos devem ser tratados da mesma forma ou haverá insatisfação: dado que os tratamentos diferenciados não sejam coisas absurdas e seja deixado bem claro que qualquer um que se torne mais experiente pode alcançar os benefícios, não há problema nisso. Basta haver transparência.</p>
<p>Esses mesmos gestores ignoram a intuição dos especialistas e usam a justificativa de que <em>não é científico</em> ou <em>não segue a metodologia XYZ</em>. Desta forma, forçam seus melhores profissionais a seguir regras que não fazem o menor sentido para eles. Resultado: insatisfação, baixa produtividade, qualidade do trabalho acaba menor do que poderia ser e, finalmente, a perda do profissional. Basicamente, pagam mais para os especialistas e desperdiçam o que os torna diferentes. Não é assim em todos os lugares mas, infelizmente, é o que acontece na grande maioria.</p>
<p>Escute seus especialistas. Dê espaço àqueles que já provaram seu valor e são referência dentro de sua equipe. Ignore o senso de &#8220;politicamente correto&#8221; e, sim, trate os desenvolvedores de sua equipe de forma diferente, de acordo com o respeito natural que surge dentro da equipe em relação aos melhores e mais experientes. Lembre-se que métodos formais não alimentam criatividade, intuição e inventividade. Não há &#8220;tamanho único&#8221; quando falamos de experiência e competência.</p>
<p><strong>Referências</strong>:<br />
Dave Thomas &#8211; <a href="http://pragdave.pragprog.com/pragdave/2004/04/end_of_the_know.html" target="_blank">End of the Knowledge Worker? </a><br />
Andy Hunt &#8211; <a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning" target="_blank">Pragmatic Thinking and Learning: Refactor Your &#8220;Wetware&#8221;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucashungaro.com/2008/05/01/o-modelo-dreyfus-e-a-fuga-de-cerebros/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

