<?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; Opinião</title>
	<atom:link href="http://blog.lucashungaro.com/category/opiniao/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lucashungaro.com</link>
	<description>Conhecimento nunca é o bastante</description>
	<lastBuildDate>Sat, 03 Sep 2011 19:36:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</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>Uma frase para complementar o último post&#8230;</title>
		<link>http://blog.lucashungaro.com/2010/12/15/uma-frase-para-complementar-o-ultimo-post/</link>
		<comments>http://blog.lucashungaro.com/2010/12/15/uma-frase-para-complementar-o-ultimo-post/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 01:28:29 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linguagens]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://blog.lucashungaro.com/?p=389</guid>
		<description><![CDATA[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. — Ralph Waldo Emerson Substitua &#8220;método&#8221; por &#8220;linguagem&#8221; e isso resume muito bem o meu pensamento.]]></description>
			<content:encoded><![CDATA[<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>Substitua &#8220;método&#8221; por &#8220;linguagem&#8221; e isso resume muito bem o meu pensamento.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucashungaro.com/2010/12/15/uma-frase-para-complementar-o-ultimo-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O poliglotismo &#8220;cria&#8221; bons desenvolvedores?</title>
		<link>http://blog.lucashungaro.com/2010/12/15/o-poliglotismo-cria-bons-desenvolvedores/</link>
		<comments>http://blog.lucashungaro.com/2010/12/15/o-poliglotismo-cria-bons-desenvolvedores/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 14:53:37 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linguagens]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://blog.lucashungaro.com/?p=387</guid>
		<description><![CDATA[Não. Vejo algumas concepções falaciosas em nossa comunidade que há muito já foram superadas em outras profissões. Uma delas é que dominar mais ferramentas torna o profissional melhor. Será mesmo? Estudamos tanto lógica para aprender a programar e nos esquecemos de uma armadilha lógica básica: confundir causa e efeito com correlação. Ou, pior, caímos na [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Não</strong>.</p>
<p>Vejo algumas concepções falaciosas em nossa comunidade que há muito já foram superadas em outras profissões. Uma delas é que <strong>dominar mais ferramentas torna o profissional melhor</strong>. Será mesmo?</p>
<p>Estudamos tanto lógica para aprender a programar e nos esquecemos de uma armadilha lógica básica: confundir <strong>causa e efeito</strong> com <strong>correlação</strong>. Ou, pior, caímos na falácia do <a href="http://str.com.br/Scientia/falacias2.htm#wrong">Efeito pela Causa</a> e acabamos invertendo as coisas. O fato é que quanto melhor o profissional, mais ferramentas ele vai querer explorar.</p>
<p>Explico: um bom desenvolvedor vai querer aprender mais linguagens para aumentar seu repertório de soluções. Um péssimo desenvolvedor pode aprender 20247232 linguagens e o máximo que conseguirá é ser um péssimo desenvolvedor em 20247232 linguagens. Causas: dedicação e proficiência. Efeito (um deles): desejo de expandir o conhecimento. E, assim, temos um ciclo virtuoso. </p>
<p>Não me entenda mal: eu acredito que conhecer várias linguagens é algo muito positivo. Mas também vejo acontecer um tipo de &#8220;pressão social&#8221; por isso, como se não pudessem haver preferências e predileções. É o mesmo tipo de pressão social que rola se você falar que não gosta de &#8220;The Beatles&#8221;. As pessoas vão te olhar feio, pode ter certeza (os caras foram &#8211; ou ainda são &#8211; muito fodas e mudaram muita coisa, só não fazem o meu estilo, então por favor não arranquem meu couro &#8211; e olha eu com medo da pressão). <img src='http://blog.lucashungaro.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Em geral, quando eu digo que acho legal conhecer e brincar com várias linguagens mas que prefiro, de longe, desenvolver com Ruby, muita gente já &#8220;olha torto&#8221;. Veja bem, eu não quero dizer que vou escolher Ruby pra tudo for desenvolver &#8211; isso é ser cego. O que eu quero dizer é: se eu estiver num &#8220;empate técnico&#8221; durante a escolha de linguagem, vou preferir Ruby sempre (hoje, pois o futuro não se sabe, não é?). Além disso, quase sempre que eu for programar algo por diversão, vai ser nessa linguagem.</p>
<p>Acredito que há ótimos desenvolvedores monoglotas (que logo sentem a necessidade de expandir seu vocabulário) e péssimos desenvolvedores poliglotas. E vice-versa. Não é um requisito, é uma opção. Como diz aquela famosa frase: &#8220;Você pode escrever Fortran em qualquer linguagem&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucashungaro.com/2010/12/15/o-poliglotismo-cria-bons-desenvolvedores/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Android e iOS são realmente competidores?</title>
		<link>http://blog.lucashungaro.com/2010/12/13/android-e-ios-sao-realmente-competidores/</link>
		<comments>http://blog.lucashungaro.com/2010/12/13/android-e-ios-sao-realmente-competidores/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 21:24:40 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Mercado]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://blog.lucashungaro.com/?p=386</guid>
		<description><![CDATA[Acredito que não. Pelo menos, não diretamente. Escrevi um pouco sobre isso aqui: Oceano Azul vs Oceano Vermelho: Android vs iOS (meu Tumblr, onde passarei a concentar os textos não relacionados à programação)]]></description>
			<content:encoded><![CDATA[<p>Acredito que não. Pelo menos, não diretamente.</p>
<p>Escrevi um pouco sobre isso aqui: <a href="http://thoughts.lucashungaro.com/post/2188947393/oceano-azul-vs-oceano-vermelho-android-vs-ios">Oceano Azul vs Oceano Vermelho: Android vs iOS</a> (meu Tumblr, onde passarei a concentar os textos não relacionados à programação)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucashungaro.com/2010/12/13/android-e-ios-sao-realmente-competidores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O que você está construindo?</title>
		<link>http://blog.lucashungaro.com/2010/08/21/o-que-voce-esta-construindo/</link>
		<comments>http://blog.lucashungaro.com/2010/08/21/o-que-voce-esta-construindo/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 16:41:35 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=358</guid>
		<description><![CDATA[O ser humano é um construtor. Nós, desenvolvedores de software, independente de formação ou posição, temos fome de construir. O que queremos é construir coisas a partir de nossas ideias, botar à prova nosso conhecimento e, dessa forma, adquirir maturidade, experiência e mais conhecimento. Vejo dois comportamentos profissionais comuns que podem prejudicar muito isso: Quero [...]]]></description>
			<content:encoded><![CDATA[<p>O ser humano é um construtor. Nós, desenvolvedores de software, independente de formação ou posição, temos fome de construir. O que queremos é construir coisas a partir de nossas ideias, botar à prova nosso conhecimento e, dessa forma, adquirir maturidade, experiência e mais conhecimento.</p>
<p>Vejo dois comportamentos profissionais comuns que podem prejudicar muito isso:</p>
<ul>
<li><strong>Quero ser promovido</strong>: aquela pessoa que acredita que deve se dedicar 100% à agradar aos seus superiores. Dessa forma ela conseguirá &#8220;evoluir&#8221; profissionalmente até chegar à tão sonhada liberdade profissional/financeira.</li>
<li><strong>Eu não ligo</strong>: para esta pessoa, &#8220;é apenas um trabalho&#8221;. Ela não vai se aprimorar, simplesmente porque não vê necessidade. Em geral, não constrói nada, pois não acredita estar fazendo algo em benefício próprio.</li>
</ul>
<p>No primeiro caso, a dita &#8220;liberdade&#8221; nunca será alcançada pois, na verdade, ela não existe. Pouquíssimas pessoas (se existir alguma) possuem a &#8220;verdadeira&#8221; liberdade: estar completamente livre de qualquer restrição de tempo, espaço e recursos. Isto é: dinheiro infinito e possibilidade de tempo e localização para estar onde quiser no momento que quiser, independente de qualquer fator externo. Isto é utópico.</p>
<p>A liberdade está em cada um &#8211; basta se sentir livre para ser livre &#8211; e é bem possível atingir isso nessa sociedade louca movida à sacrifícios em nome da tal &#8220;vida profissional&#8221;: basta não participar da loucura. <img src='http://blog.lucashungaro.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>No segundo comportamento, vai ficar sempre um vazio pois, independente de ser por trabalho ou por diversão, temos essa necessidade intrínseca de construir: daí o fato de pessoa nenhuma, mesmo com riqueza &#8220;infinita&#8221;, conseguir ficar absolutamente sem fazer nada por muito tempo. A maioria de nós precisa trabalhar pra se sustentar, então temos de encontrar meios para conciliar isso com a satisfação por criar.</p>
<p>No final das contas, é sim &#8220;apenas&#8221; um trabalho: o seu trabalho, a sua criação (seja em troca de dinheiro ou não). Evite errar pelo excesso ou pela falta. Deve ser algo a se construir e se orgulhar, não um empecilho para seu bem estar. Se esse for o caso, hora de se movimentar para mudar: o que você está construindo?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucashungaro.com/2010/08/21/o-que-voce-esta-construindo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Comprometa-se consigo mesmo.</title>
		<link>http://blog.lucashungaro.com/2010/04/28/comprometa-se-consigo-mesmo/</link>
		<comments>http://blog.lucashungaro.com/2010/04/28/comprometa-se-consigo-mesmo/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 21:28:04 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Empreendedorismo]]></category>
		<category><![CDATA[Mercado]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=348</guid>
		<description><![CDATA[Uma frase que ouço com frequência é: &#8220;não se comprometa com trabalho feito para outros, apenas com um negócio próprio&#8221;. Bom, tenho que dizer que isso é um perfeito discurso de perdedor. Primeiro porque, em geral, as pessoas que falam isso estão trabalhando para outras. Segundo porque elas não tem coragem para assumir riscos e [...]]]></description>
			<content:encoded><![CDATA[<p>Uma frase que ouço com frequência é: &#8220;não se comprometa com trabalho feito para outros, apenas com um negócio próprio&#8221;. Bom, tenho que dizer que isso é um perfeito discurso de perdedor. Primeiro porque, em geral, as pessoas que falam isso estão trabalhando para outras. Segundo porque elas não tem coragem para assumir riscos e começar um negócio próprio.</p>
<p>Isso costuma ser trazido muito à tona em conversas com amigos e conhecidos pois prefiro trabalhar em startups em oposição à empresas grandes e tradicionais. De alguma forma, startups estão ligadas a profissionais mais comprometidos, o que nem sempre é verdade, e muitas usam esse &#8220;status&#8221; para exigir longas e estafantes jornadas de trabalho. Ninguém deve se comprometer com esse tipo de vida, seja a empresa uma startup ou não.</p>
<p>Não consigo me imaginar passando oito horas por dia fazendo algo com que eu não tenha comprometimento e não acredite que vai dar certo. E isso não é exclusivo à startups: esse tipo de atitude é necessária esteja você trabalhando em uma startup com mais três pessoas, em uma corporação gigantesca ou no seu próprio negócio.</p>
<p>Você iniciaria uma empresa para fazer algo em que não acredita? Penso que não. Então por que em um emprego &#8220;normal&#8221; isso seria diferente? Fazendo uma conta bem básica, são cento e sessenta horas por mês, durante trezentos e sessenta meses (equivalente a trinta anos), o que dá seis anos e meio continuamente fazendo algo que você não dá a mínima.</p>
<p>Enquanto você não inicia seu próprio empreendimento (talvez nunca), a solução é encarar o &#8220;trabalho para os outros&#8221; como seu empreendimento. Afinal, é isso mesmo o que ele é. O lucro (ou prejuízo) final pode não ficar na sua mão, mas o trabalho que você realizou e a sua satisfação com ele não dependem disso.</p>
<p>Se você não consegue enxergar isso como possível, é um ótimo sinal de que você deve parar de se lamentar e iniciar seu empreendimento. Comprometa-se consigo mesmo, independente do fato de, no momento, você ter um chefe ou ser o chefe.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucashungaro.com/2010/04/28/comprometa-se-consigo-mesmo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Desenvolvedor, arquiteto, programador, engenheiro&#8230;</title>
		<link>http://blog.lucashungaro.com/2009/11/04/desenvolvedor-arquiteto-programador-engenheiro/</link>
		<comments>http://blog.lucashungaro.com/2009/11/04/desenvolvedor-arquiteto-programador-engenheiro/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 13:16:53 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=336</guid>
		<description><![CDATA[É realmente necessário ter equipes de arquitetura separadas de equipes de desenvolvimento? Essa pergunta é muito antiga e cada um tem uma resposta. Pra mim, não. Mas vamos pensar mais sobre isso. Em primeiro lugar, o que é um arquiteto de software? É um desenvolvedor com muito conhecimento e experiência (minha resposta)? É um profissional [...]]]></description>
			<content:encoded><![CDATA[<p>É realmente necessário ter equipes de arquitetura separadas de equipes de desenvolvimento? Essa pergunta é muito antiga e cada um tem uma resposta. Pra mim, não. Mas vamos pensar mais sobre isso.</p>
<p>Em primeiro lugar, o que é um arquiteto de software? É um desenvolvedor com muito conhecimento e experiência (minha resposta)? É um profissional diferente, especificamente treinado para a arquitetura de sistemas? É alguém que possui algum &#8220;dom&#8221; especial?</p>
<p>O cargo de &#8220;Arquiteto de Software&#8221; como empregado hoje na indústria do software é mais uma <a href="http://blog.fragmental.com.br/2007/07/24/contratando-agilistas-retardatarios/" target="_blank">herança ruim da comparação entre desenvolvimento de software e construção civil</a>. Nesta última, o arquiteto faz o projeto mas, em geral, não suja as mãos no cimento. O ponto é: arquitetar um sistema de software é ou não é fundamentalmente diferente de construir software, isto é, programá-lo, testá-lo e mantê-lo? Não. Existem algumas diferenças e algumas preocupações diferentes mas é impossível dissociar as atividades no nível em que é feito em outras áreas.</p>
<p>Um fato interessante é que apenas empresas grandes, com orçamentos folgados (que, em geral, desperdiçam tempo e dinheiro com futilidades e becos sem saída) costumam oferecer o cargo de arquiteto de software. Eles geralmente ficam em equipes de arquitetura, longe das equipes que &#8220;sujam&#8221; as mãos no código no dia-a-dia. Ora, isso, por si só, <a href="http://blog.fragmental.com.br/2008/12/09/nao-vai-subir-ninguem/" target="_blank">cria as Torres de Marfim e uma certa animosidade latente</a> entre as diferentes equipes &#8211; que deveriam trabalhar em conjunto todos os dias.</p>
<p>Não faz sentido (e não é eficiente) ter equipes de arquitetura separadas, sem contato direto e constante com as equipes de desenvolvimento. Também não faz sentido empregar arquitetos de software que só planejam e não participam da execução diariamente.</p>
<p>Usando a já batida metáfora do desenvolvimento de software como jardinagem é fácil perceber que estamos longe do processo utilizado, por exemplo, na construção civil ou na indústria automobilística. Não é possível projetar todo o software com antecedência, como um prédio ou um carro, comprar a matéria-prima, contratar os operários e implementá-lo praticamente sem desvios. <strong>O projeto é o software e o software é o projeto</strong>.</p>
<p>Podemos, sim, ter um plano geral, um conjunto de guias e processos a serem seguidos, interfaces definidas, padrões e tudo mais, mas é preciso adaptação rápida à mudança. Na <strong>criação</strong> (e não construção, isso é importante) de um jardim, uma planta pode não se desenvolver por um entre vários fatores. Na <strong>criação</strong> de software, uma especificação da equipe de arquitetura pode não se encaixar nas necessidades do projeto.</p>
<p>Se houver uma &#8220;equipe de arquitetura&#8221; como uma entidade especial, separada, perde-se muito tempo para reagir às mudanças. Se os arquitetos são do tipo que se acha bom demais pra se sujar na programação as conseqüências são ainda piores &#8211; em primeiro lugar porque eles não tem noção da realidade do projeto enquanto fazem os planos e, em segundo, porque tendem a resistir à mudanças no que consideram um plano perfeito.</p>
<p>Se insistíssemos em utilizar a metáfora da construção civil, podemos comparar <strong>todo</strong> o ciclo de desenvolvimento de software com o ciclo de arquitetura e projeto de um edifício, excluindo sua construção. O desenvolvimento de software é uma atividade criativa, não &#8220;mecânica&#8221;.</p>
<p>Um desenvolvedor de software que não se atenta à arquitetura, que não tenta melhorar nos fundamentos básicos necessários ao entendimento do software como um todo, não passa de um programador &#8211; um mero codificador, facilmente substituível.</p>
<p>Um arquiteto de software que não programa, não se envolve com o dia-a-dia da produção de software e não se interessa pelos outros aspectos da disciplina, não passa de um &#8220;<a href="http://blog.fragmental.com.br/2008/08/09/analista-pedreiro/">masturbador mental de software</a>&#8220;. Daí para o que os americanos chamam de &#8220;Death by PowerPoint&#8221; leva um piscar de olhos.</p>
<p>Sim, é necessário que tenhamos a figura do &#8220;líder técnico&#8221;, aquele desenvolvedor com bastante experiência e jogo de cintura, que já viu e já fez de tudo na área. Ele, inclusive, pode ter o cargo formal de arquiteto de software. O que não pode acontecer é que ele seja um profissional isolado em uma esfera de cristal, um &#8220;deus&#8221; criando o que ele pensa ser adequado, dando ordens e ignorando eventuais questionamentos de sua intocável arquitetura. Isso é tudo o que um time de verdade não precisa.</p>
<p>Em resumo, um bom desenvolvedor é também um bom arquiteto. E um bom programador. E um bom qualquer coisa que seja necessária para criar software consistentemente.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucashungaro.com/2009/11/04/desenvolvedor-arquiteto-programador-engenheiro/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Seu chefe é incompetente? A ciência explica!</title>
		<link>http://blog.lucashungaro.com/2009/09/03/seu-chefe-e-incompetente-a-ciencia-explica/</link>
		<comments>http://blog.lucashungaro.com/2009/09/03/seu-chefe-e-incompetente-a-ciencia-explica/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 19:28:33 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Empreendedorismo]]></category>
		<category><![CDATA[Mercado]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=288</guid>
		<description><![CDATA[Pesquisas feitas na Universidade de Catania, na Itália, mostram que, quanto mais promoções, mais incompetente é o profissional. A pesquisa foi feita a partir do chamado Princípio de Peter, formulado pelo psicólogo canadense Laurence J. Peter, com a seguinte frase (original, em inglês): &#8220;Every new member in a hierarchical organization climbs the hierarchy until he/she [...]]]></description>
			<content:encoded><![CDATA[<p>Pesquisas feitas na <a target="_blank" href="http://arxiv.org/abs/0907.0455">Universidade de Catania</a>, na Itália, mostram que, quanto mais promoções, mais incompetente é o profissional. A pesquisa foi feita a partir do chamado Princípio de Peter, formulado pelo psicólogo canadense Laurence J. Peter, com a seguinte frase (original, em inglês): &#8220;Every new member in a hierarchical organization climbs the hierarchy until he/she reaches his/her level of maximum incompetence&#8221;.</p>
<p>A explicação é simples: no sistema de promoção por mérito, pessoas muito boas em dada especialidade são promovidas para outras áreas, para as quais podem ser menos aptas (claro, isso só ocorre quando a promoção leva o profissional a uma área em que suas habilidades atuais não são fundamentais). Dessa forma, cair nas garras do Princípio de Peter torna-se inevitável, levando a empresa a uma perda geral de eficiência ao longo do tempo.</p>
<p>A solução, segundo os cientistas, é reservar 50% das promoções para os piores profissionais da empresa &#8211; a chance de que eles &#8220;se encontrem&#8221; nos cargos aos quais são promovidos é muito maior.</p>
<p>Que desenvolvedor de software nunca topou com esse tipo de problema? Aquele cara, ótimo desenvolvedor, acaba sendo promovido à gerente (e aceita, seja pela grana, pelo status ou por falta de opção) e é simplesmente um zero à esquerda na função. É claro que isso acontece em qualquer área, mas é nesta em que eu tenho experiência.</p>
<p>Podemos tirar duas lições disso:</p>
<ul>
<li>Se, por ser um ótimo desenvolvedor, você for agraciado com uma promoção para outra área, pense duas vezes antes de aceitar &#8211; isso pode significar o fim da sua carreira como profissional competente. Se a empresa não lhe der opção (é bem comum que só se consiga um aumento aceitando uma promoção-bomba dessas), procure outro lugar &#8211; quando você realmente é competente, escolhas não faltam. </li>
<li>Se você se tornar um empreendedor, primeiro busque ajuda especializada caso não se sinta à vontade com as tarefas necessárias nesse seu &#8220;novo cargo&#8221;. Você pode ser um ótimo designer com uma ótima ideia, mas isso não quer dizer que será um bom empresário. Além disso, pense bem na política de promoção que vai utilizar se a empresa for bem sucedida. Um exemplo: pode ser muito mais satisfatório recompensar os bons funcionários com melhorias salariais do que promovê-los a cargos para os quais eles não possuem aptidão.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucashungaro.com/2009/09/03/seu-chefe-e-incompetente-a-ciencia-explica/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Você confia em métricas?</title>
		<link>http://blog.lucashungaro.com/2009/08/31/voce-confia-em-metricas/</link>
		<comments>http://blog.lucashungaro.com/2009/08/31/voce-confia-em-metricas/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 17:29:23 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Opinião]]></category>
		<category><![CDATA[Test-Driven Development]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=154</guid>
		<description><![CDATA[Usar métricas no seu código é uma boa prática. Existem várias ferramentas que provém métricas muito interessantes e ferramentas, como o metric_fu, que integram várias delas. No entanto, é preciso ter bastante cuidado. Métricas são como muletas: muito úteis quando você não consegue andar sem a ajuda delas mas, se você utilizá-las sem necessidade, vai [...]]]></description>
			<content:encoded><![CDATA[<p>Usar métricas no seu código é uma boa prática. Existem várias ferramentas que provém métricas muito interessantes e ferramentas, como o metric_fu, que integram várias delas.</p>
<p>No entanto, é preciso ter bastante cuidado. Métricas são como muletas: muito úteis quando você não consegue andar sem a ajuda delas mas, se você utilizá-las sem necessidade, vai enfraquecer suas pernas.</p>
<p>Um bom exemplo disso é uma métrica muito utilizada por quem escreve testes: a cobertura de código. É uma ferramenta muito útil quando é preciso &#8220;correr atrás&#8221; do prejuízo, isto é, adicionar testes a código sem cobertura. Nesse caso, é prática comum estabelecer uma porcentagem de cobertura a ser atingida dentro de um prazo limitado. Mas, se você pratica BDD/TDD consistentemente e não deixa código importante sem cobertura, é realmente necessário confirmar isso com um gráfico ou uma porcentagem?</p>
<p>O uso e confiança cega em métricas mesmo sem necessidade de um amparo como esse pode levar à má aplicação da técnica do desenvolvimento guiado por testes, já que ela passa a ser baseada em um número artificial &#8211; é muito fácil ter 100% de cobertura de código com uma suíte de testes ruim. Antes uma suite boa mas que, conscientemente, não passa por cada linha de código do que uma suite que execute cada linha, mas seja um lixo como especificação e ferramenta de refactoring.</p>
<p>Mais um exemplo de fragilidade fica claro no famoso e cantado aos quatro ventos <em>code to test ratio</em>: ao utilizar um framework de testes verboso, é fácil obter uma razão de linhas de teste por linhas de código muito maior do que utilizando um framework mais compacto ou macros. Me desculpe quem utiliza e divulga esse número como algum indicativo de qualidade, mas essa medida é simplesmente ridícula, além de totalmente ilusória.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucashungaro.com/2009/08/31/voce-confia-em-metricas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como aumentei minha produtividade eliminando distrações</title>
		<link>http://blog.lucashungaro.com/2009/08/27/como-aumentei-minha-produtividade-eliminando-distracoes/</link>
		<comments>http://blog.lucashungaro.com/2009/08/27/como-aumentei-minha-produtividade-eliminando-distracoes/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 16:23:20 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=261</guid>
		<description><![CDATA[(ou: Como deixei de me preocupar e deixei de assinar muitos feeds) Não, ainda não sou uma pessoa super-mega-produtiva, mas aqui está como consegui aumentar minha produtividade usando alguns truques (e o incrível sistema operacional que é o Mac OS X em conjunto com ótimas aplicações): Não verifique seu e-mail mais de quatro vezes ao [...]]]></description>
			<content:encoded><![CDATA[<p>(ou: Como deixei de me preocupar e deixei de assinar muitos feeds)</p>
<p>Não, ainda não sou uma pessoa super-mega-produtiva, mas aqui está como consegui aumentar minha produtividade usando alguns truques (e o incrível sistema operacional que é o Mac OS X em conjunto com ótimas aplicações):</p>
<ul>
<li>Não verifique seu e-mail mais de quatro vezes ao dia: se você está esperando algum e-mail importante, peça para quem for enviá-lo que te avise quando isso acontecer, usando, por exemplo, uma SMS;</li>
<li>Não verifique seu e-mail se você sabe que não estará apto a agir sobre alguma mensagem imediatamente: por exemplo, verificar seu e-mail de trabalho no final da tarde de Sexta &#8211; deixe para fazer isso na Segunda;</li>
<li>Livre-se dos feeds que você assina: você não vai realmente sentir falta deles sem ficar um tempo longe. Se, após alguns dias, você sentir muita falta de ler um deles, assine-o novamente, mas não verifique seus feeds mais do que uma vez ao dia. Essa é uma excelente técnica para descobrir o que é realmente importante dentre tudo que você consome;</li>
<li>Deixe que as pessoas sejam seu filtro: acredite em mim, se algo é realmente importante (ou banal, mas &#8220;quente&#8221;), vai chegar a você. Você não precisa ficar garimpando. O recurso de &#8220;shared items&#8221; do Google Reader é excelente nesse ponto &#8211; estou à caminho de usar apenas ele, me livrando de todos os feeds que assino (são por volta de oito hoje). Quando realmente precisar encontrar algo, o Google é seu amigo;</li>
<li>Desabilite notificações desnecessárias: como muitas do Growl ou os &#8220;contadores vermelhos&#8221; nos ícones de aplicações na Dock do OS X &#8211; mantenha apenas as que você realmente precisa (por exemplo, eu mantenho as notificações do <a target="_blank" href="http://propaneapp.com/">Propane</a>, já que é importante saber o que meus colegas de trabalho dizem no Campfire);</li>
<li>Não use um monitor muito grande: isso pode parecer estranho, mas <a target="_blank" href="http://lifehacker.com/367391/do-larger-monitors-make-you-more-productive">pesquisas</a> mostram que, após aproximadamente 26 polegadas, o tamanho do monitor diminui a produtividade. É óbvio: muitas coisas no seu campo visual vão lhe distrair. Use o Spaces e divida as telas de acordo com a tarefa (uma para programação, uma para navegação na internet etc);</li>
<li>Aumente o espaço livre na sua tela eliminando itens do seu Desktop: configura o Finder para não exibir discos rígidos (eu deixo apenas discos ópticos e dispositivos removíveis). Elimine da Dock as aplicações que você não usa muito frequentemente. Use o QuickSilver ou algo similar para acessar as aplicações e arquivos que você não usa frequentemente, apenas não deixe que eles se empilhem na Dock e no Desktop;</li>
<li>Elimine da Menu Bar os itens que você não precisa, como o ícone de status do Bluetooth, o indicador AM/PM se você usa o formato americano (é fácil saber isso olhando pela janela), o ícone do Time Machine etc;</li>
<li>Use o <a target="_blank" href="http://adium.im/">Adium</a> e configure-o para que fique oculto a menos que seja a aplicação ativa (veja aqui: <a target="_blank" href="http://yfrog.com/amactivep">ativo</a>, <a target="_blank" href="http://yfrog.com/ajinactive2p">inativo</a>, <a target="_blank" href="http://yfrog.com/e3picture2fuap">configurações 1</a>, <a target="_blank" href="http://yfrog.com/avpicture12xp">configurações 2</a>);</li>
<li>Use o <a target="_blank" href="http://fluidapp.com/">Fluid</a> para criar SSBs para as aplicações web que você precisa para trabalhar: o motivo para isso é evitar ter um browser repleto de abas abertas te distraindo enquanto você usa uma aplicação para trabalhar. Com as aplicações Fluid você pode focar apenas na tarefa à mão;</li>
<li>Use o <a target="_blank" href="http://www.gravityapps.com/tags/">Tags</a> para facilitar o processo de organização e busca de arquivos.</li>
</ul>
<p>É difícil tomar algumas dessas ações, como se livrar dos feeds que você assina &#8211; especialmente porque o número de feeds assinados geralmente é motivo de &#8220;disputazinhas&#8221; entre nerds/geeks. É estupidez pura, como competir para ver <a target="_blank" href="http://37signals.com/svn/posts/1006-sleep-deprivation-is-not-a-badge-of-honor">quem dorme menos e fica acordado programando por mais tempo</a>.</p>
<p>De qualquer modo, dê uma chance. Após algum tempo (eu recomendo tentar por, pelo menos, dez dias), você vai sentir falta das coisas que realmente precisa e pode tê-las novamente assim que quiser.</p>
<p><strong>Update</strong>: Como bem notado pelo <a target="_blank" href="http://www.arthurgeek.net/">ArthurGeek</a>, a imagem de configuração do Adium para que a lista de contatos se esconda automaticamente estava errada (a que eu chamei de &#8220;configuração 2&#8243;). Arrumei o link e deixo aqui também: <a target="_blank" href="http://yfrog.com/avpicture12xp">http://yfrog.com/avpicture12xp</a>.</p>
<p>&#8211;</p>
<p>Também <a target="_blank" href="http://lucashungaro.github.com/productivity/2009/08/27/how-i-increased-my-productivity.html">em inglês</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucashungaro.com/2009/08/27/como-aumentei-minha-produtividade-eliminando-distracoes/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

