<?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://www.makemesimple.com/blog/category/opiniao/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.makemesimple.com/blog</link>
	<description>Conhecimento nunca é o bastante</description>
	<lastBuildDate>Wed, 28 Apr 2010 21:28:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Comprometa-se consigo mesmo.</title>
		<link>http://www.makemesimple.com/blog/2010/04/28/comprometa-se-consigo-mesmo/</link>
		<comments>http://www.makemesimple.com/blog/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://www.makemesimple.com/blog/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://www.makemesimple.com/blog/2009/11/04/desenvolvedor-arquiteto-programador-engenheiro/</link>
		<comments>http://www.makemesimple.com/blog/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 diferente, [...]]]></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://www.makemesimple.com/blog/2009/11/04/desenvolvedor-arquiteto-programador-engenheiro/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Sobre investimentos, startups, limitações e tudo mais &#8211; em um parágrafo</title>
		<link>http://www.makemesimple.com/blog/2009/10/27/sobre-investimentos-startups-limitacoes-e-tudo-mais-em-um-paragrafo/</link>
		<comments>http://www.makemesimple.com/blog/2009/10/27/sobre-investimentos-startups-limitacoes-e-tudo-mais-em-um-paragrafo/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 17:05:27 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Empreendedorismo]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=327</guid>
		<description><![CDATA[&#8220;This is one of the reasons I encourage entrepreneurs to bootstrap instead of taking outside money. On day one, a bootstrapped company sets out to make money. They have no choice, really. On day one a funded company sets out to spend money. They hire, they buy, they invest, they spend. Making money isn’t important [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;This is one of the reasons I encourage entrepreneurs to bootstrap instead of taking outside money. On day one, a bootstrapped company sets out to make money. They have no choice, really. On day one a funded company sets out to spend money. They hire, they buy, they invest, they spend. Making money isn’t important yet. <strong>They practice spending, not making</strong>.&#8221;</p></blockquote>
<p>&#8211; Jason Fried (37signals) em &#8220;<a href="http://37signals.com/svn/posts/1985-making-money-takes-practice-like-playing-the-piano-takes-practice">Making money takes practice like playing the piano takes practice</a>&#8221;</p>
<p>Escrevi dois posts para, no fim das contas, não conseguir expressar a mensagem. Minha falha foi tentar explicar demais o raciocínio ao invés de simplesmente expressar a conclusão (e ainda causei alguns acidentes no caminho). Pronto, através das palavras do Jason Fried, está aí tudo que eu quis dizer sobre o tema.</p>
<p>PS: Sim, os dois posts anteriores foram para o limbo. Como em todo processo criativo iterativo, as tentativas fracassadas podem ser descartadas. <img src='http://www.makemesimple.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2009/10/27/sobre-investimentos-startups-limitacoes-e-tudo-mais-em-um-paragrafo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Seu chefe é incompetente? A ciência explica!</title>
		<link>http://www.makemesimple.com/blog/2009/09/03/seu-chefe-e-incompetente-a-ciencia-explica/</link>
		<comments>http://www.makemesimple.com/blog/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://www.makemesimple.com/blog/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://www.makemesimple.com/blog/2009/08/31/voce-confia-em-metricas/</link>
		<comments>http://www.makemesimple.com/blog/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 enfraquecer [...]]]></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://www.makemesimple.com/blog/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://www.makemesimple.com/blog/2009/08/27/como-aumentei-minha-produtividade-eliminando-distracoes/</link>
		<comments>http://www.makemesimple.com/blog/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 dia: se [...]]]></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://www.makemesimple.com/blog/2009/08/27/como-aumentei-minha-produtividade-eliminando-distracoes/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Como falhar com métodos ágeis</title>
		<link>http://www.makemesimple.com/blog/2009/07/20/como-falhar-com-metodos-ageis/</link>
		<comments>http://www.makemesimple.com/blog/2009/07/20/como-falhar-com-metodos-ageis/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 18:44:25 +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=240</guid>
		<description><![CDATA[É comum vermos guias de como fazer algo da maneira correta. A meu ver, muitas vezes, um guia de como fazer tudo errado acaba sendo mais últil, pois mostra o outro lado da moeda e acaba servindo melhor de indicador de sucesso (ou falta de).
Dada alguma experiência que possuo com métodos ágeis, aqui vai um [...]]]></description>
			<content:encoded><![CDATA[<p>É comum vermos guias de como fazer algo da maneira correta. A meu ver, muitas vezes, um guia de como fazer tudo errado acaba sendo mais últil, pois mostra o outro lado da moeda e acaba servindo melhor de indicador de sucesso (ou falta de).</p>
<p>Dada alguma experiência que possuo com métodos ágeis, aqui vai um guia 100% garantido de como falhar utilizando-os. Todas as recomendações foram vistas em prática e são ótimas receitas para o fracasso, ainda mais quando utilizadas em conjunto:</p>
<ul>
<li><strong>Não utilize equipes multi-funcionais</strong><br />
Separe os membros em equipes de Criação, Desenvolvimento, Infra-estrutura e várias outras, assim como setores em grandes empresas. Mantenha-os distantes, de preferência em salas separadas, dificultando a comunicação (o pilar central dos métodos ágeis) ao máximo &#8211; sabemos que basta ficar em mesas separadas para que as pessoas se comuniquem apenas via e-mail, quando muito. Crie processos para que as equipes façam requisições umas às outras, faça com que isso seja demorado: com isso você desestimula qualquer resquício de colaboração.
</li>
<li><strong>Espere até o final da iteração para avaliar as histórias</strong><br />
Crie um processo de QA intrincado e lento. Faça com que a avaliação das histórias fique para o último dia da iteração &#8211; desta forma, se uma história não for aprovada, não haverá tempo para correção, garantindo assim mais um passo rumo ao fracasso.
</li>
<li><strong>Não abrace a mudança</strong><br />
Crie processos burocráticos com várias etapas, dificulte a resposta rápida e limite os profissionais o mais que puder. Deixe o caos reinar sob a desculpa de que não fará micro-gerenciamento quando, na verdade, não há gerenciamento nenhum. Não escute o que a equipe tem a dizer, esse bando de programadores, designers e administradores de sistemas não tem experiência com gerenciamento de verdade e não sabe o que está dizendo.</li>
<li><strong>Centralize o controle e as (in)decisões</strong><br />
Crie comitês para qualquer problema, dos mais simples aos mais complexos. Responsabilize uma pessoa pelo controle de cada comitê, que deve fazer inúmeras reuniões, coletar muita informação e repassar ao responsável. Esse tem a tarefa de levar toda a informação ao &#8220;chefe&#8221; que, por sua vez, não decidirá nada e criará mais comitês. Dessa forma você garante que nenhuma decisão será tomada e todos os problemas se arrastarão até que se combinem no caos completo.
</li>
<li><strong>Utilize &#8220;Agile by the book&#8221;</strong><br />
Leia vários livros sobre Extreme Programming, Scrum, Lean e o que mais estiver na moda. Adote todos os processos do jeito que são descritos &#8211; o que, num primeiro momento, é bom, já que não há experiência. No entanto, recuse-se a modificar qualquer detalhe, mesmo que as coisas não estejam funcionando e que a experiência adquirida pela equipe aponte em uma direção diferente. Sempre refute qualquer argumentação com uma citação ao estilo &#8220;Ken Schwaber diz que&#8230;&#8221; (vale qualquer nome &#8220;de peso&#8221;), afinal Ken Schwaber está trabalhando junto à equipe todos os dias e conhece suas necessidades, correto?
</li>
</ul>
<p>Este é um trabalho em progresso. Quais práticas você adicionaria ao guia?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2009/07/20/como-falhar-com-metodos-ageis/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Waterfall é xadrez. Agile é futebol.</title>
		<link>http://www.makemesimple.com/blog/2009/06/29/waterfall-e-xadrez-agile-e-futebol/</link>
		<comments>http://www.makemesimple.com/blog/2009/06/29/waterfall-e-xadrez-agile-e-futebol/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 17:55:55 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=149</guid>
		<description><![CDATA[Essa é uma boa analogia quando necessário comparar esses dois tipos de filosofia/metodologia (é apenas uma analogia, não uma comparação perfeita, mas ajuda bastante).
Waterfall é xadrez: você usa muito tempo para pensar e planejar, fazendo o máximo de esforço para tentar prever cada possível movimento durante o jogo. Dada essa natureza de muito planejamento antes [...]]]></description>
			<content:encoded><![CDATA[<p>Essa é uma boa analogia quando necessário comparar esses dois tipos de filosofia/metodologia (é apenas uma analogia, não uma comparação perfeita, mas ajuda bastante).</p>
<p>Waterfall é xadrez: você usa muito tempo para pensar e planejar, fazendo o máximo de esforço para tentar prever cada possível movimento durante o jogo. Dada essa natureza de muito planejamento antes da execução, faz sentido apenas em domínios muito estáveis e conhecidos, sem mudanças na demanda (geralmente em software de alto risco, como para voos espaciais).</p>
<p>Agile é futebol (ou qualquer esporte coletivo): as decisões durante o jogo devem ser tomadas muito rapidamente, sem tempo para análise de todas as possíveis consequências. Por isso, é &#8220;ideal&#8221; para domínios altamente dinâmicos e instáveis, com constantes alterações na demanda (como software para a web). Outra semelhança muito importante a ser notada é: mesmo que você tenha os melhores jogadores, se a equipe não jogar bem junta, o time não vence.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2009/06/29/waterfall-e-xadrez-agile-e-futebol/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile não é para todos</title>
		<link>http://www.makemesimple.com/blog/2009/02/09/agile-nao-e-para-todos/</link>
		<comments>http://www.makemesimple.com/blog/2009/02/09/agile-nao-e-para-todos/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 02:11:11 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Extreme Programming]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=145</guid>
		<description><![CDATA[Agile não é para todos. Waterfall também não. Nem RUP, nem qualquer método, técnica ou filosofia.
Assim como nem todos são bons jogadores de futebol ou bons em matemática, nem todos serão bons ou se adaptarão ao desenvolvimento ágil de software. 
Note o destaque em negrito na frase acima, pois estou aqui falando de práticas ágeis [...]]]></description>
			<content:encoded><![CDATA[<p>Agile não é para todos. Waterfall também não. Nem RUP, nem qualquer método, técnica ou filosofia.</p>
<p>Assim como nem todos são bons jogadores de futebol ou bons em matemática, nem todos serão bons ou se adaptarão ao desenvolvimento ágil <strong>de software</strong>. </p>
<p>Note o destaque em negrito na frase acima, pois estou aqui falando de práticas ágeis para o desenvolvimento de software, uma coisa que o Scrum <strong>não é</strong> (o Scrum é apenas um framework gerencial &#8220;ágil&#8221;, podendo ser aplicado à projetos de software ou de outros mercados). Extreme Programming já vai além, sendo, essa sim, uma metodologia de desenvolvimento ágil de software (que, por usa vez, usa muitos conceitos gerenciais do Scrum no que diz respeito à comunicação intra e extra-equipe).</p>
<p>Cada metodologia possui um conjunto de princípios básicos, algumas possuem práticas e, outras, formatos bem específicos de documentos a serem seguidos fielmente. Algumas possuem tudo isso junto.</p>
<p>De acordo com o perfil psicológico, social e profissional, é comum que pessoas envolvidas em desenvolvimento de software (gerentes, desenvolvedores, designers, testadores etc) possuam suas preferências quanto à metodologias e práticas. Alguns se dão muito bem apenas com waterfall, outros apenas com agile, uns poucos com ambas e muitas outras. E isso é extremamente normal. As metodologias ágeis são vistas como a salvação do mundo do desenvolvimento de software, principalmente num mercado dinâmico como a internet. Mas, não se engane, nem todos os profissionais conseguem trabalhar num ambiente realmente ágil. Eles são piores do que os que conseguem? Não. São apenas pessoas diferentes.</p>
<p>Ambientes &#8220;ágeis&#8221; exigem um conjunto de habilidades bem diferentes em relação a outros tipos de ambientes. Geralmente, exigem também muito sacrifício pessoal em detrimento do próprio ego, sendo essa uma das principais barreiras para que se consiga implementar uma cultura de desenvolvimento ágil de software.</p>
<p>Alguns profissionais (desenvolvedores e outros) não estão acostumados e não querem praticar coisas como feedback rápido, desenvolvimento orientado por testes, daily meetings e as outras práticas que as acompanham. Desenvolvimento ágil de software não é apenas escrever centenas de post-its e colá-los num quadro branco ou numa parede. É estar disposto a mudar muitos hábitos e fazer alguns sacrifícios, aceitar algumas &#8220;imposições&#8221; das metodologias, trabalhar em equipe e <strong>para a equipe</strong>.</p>
<p>Se a pessoa não se encaixa nesse tipo de mentalidade, tudo bem. Não significa nada em termos de qualidade profissional, mas uma empresa que deseja trabalhar com métodos ágeis definitivamente não é o lugar certo para ela, já que ambos os lados sairão perdendo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2009/02/09/agile-nao-e-para-todos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Seu framework não faz BDD</title>
		<link>http://www.makemesimple.com/blog/2009/01/08/seu-framework-nao-faz-bdd/</link>
		<comments>http://www.makemesimple.com/blog/2009/01/08/seu-framework-nao-faz-bdd/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 03:49:51 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Opinião]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Test-Driven Development]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=142</guid>
		<description><![CDATA[Eu sinto uma &#8220;pontada&#8221; no cérebro quando ouço ou leio coisas como &#8220;o RSpec (ou Shoulda, test/spec etc) é um framework BDD&#8221;.
Não existe algo como um &#8220;framework BDD&#8221;. Tenha em mente que quem pratica ou não o BDD é o desenvolvedor. O que existe são frameworks ou bibliotecas que adicionam uma boa dose de açúcar [...]]]></description>
			<content:encoded><![CDATA[<p>Eu sinto uma &#8220;pontada&#8221; no cérebro quando ouço ou leio coisas como &#8220;o RSpec (ou Shoulda, test/spec etc) é um framework BDD&#8221;.</p>
<p>Não existe algo como um &#8220;framework BDD&#8221;. Tenha em mente que quem pratica ou não o BDD é o desenvolvedor. O que existe são frameworks ou bibliotecas que adicionam uma boa dose de açúcar sintático para facilitar o estilo de escrita para quem deseja praticar essa técnica de testes.</p>
<p>Os <a href="http://dannorth.net/introducing-bdd" target="_blank">maiores</a> <a href="http://blog.daveastels.com/files/BDD_Intro.pdf" target="_blank">proponentes</a> do BDD enfatizam que a maior mudança em relação às técnicas tradicionais é mesmo a sintaxe. Porém, isso não quer dizer que basta utilizar uma sintaxe &#8220;mais legível&#8221; (o que é discutível também) para pular no vagão do BDD. A sintaxe bonitinha é um auxílio, uma ferramenta com o objetivo de diminuir as dificuldades na transição de um <strong>modo de pensar</strong>, que é onde a verdadeira diferença reside. Muitas dessas dificuldades são, inclusive, ditas de origem &#8220;psicológica&#8221;, como a abolição da palavra &#8220;test&#8221; nos nomes dos métodos para forçar o pensamento no sentido de uma verificação de comportamento ao invés de um teste de estado (medida defendida através da <a href="http://pt.wikipedia.org/wiki/Hip%C3%B3tese_de_Sapir-Whorf" target="_blank">hipótese de Sapir-Whorf</a>).</p>
<p>De fato, posso afirmar que a maior parte das suítes de testes escritas em RSpec, Shoulda ou test/spec que já tive a oportunidade de examinar (seja trabalhando, seja &#8220;navegando&#8221; por projetos open source &#8211; uma grande fonte de aprendizado), falha miseravelmente na tentativa de adotar o BDD, tropeçando feio em erros como verificar estado ao invés de comportamento, testar funcionalidades da linguagem ou framework e, principalmente, overmocking &#8211; chegando ao ponto em que um teste não verifica mais nada, apenas mocks e stubs &#8211; o que nos leva a testes quebradiços ou testes que não falham mesmo que você apague o código que eles deveriam verificar.</p>
<p>Esse último item leva a um outro ponto importante (e, aqui, uma visão muito pessoal &#8211; acredito ser compartilhada por poucos): acredita-se que o uso de mocks configura o uso do BDD, pois estabelecer expectativas em relação à interfaces e, consequentemente, isolar horizontalmente os componentes testados, passa a ser, &#8220;automaticamente&#8221;, verificação de comportamento. O uso de mocks não estabelece nada além de uma expectativa de interação &#8211; uma interface. </p>
<p>Como um <a href="http://martinfowler.com/articles/mocksArentStubs.html#ClassicalAndMockistTesting" target="_blank">classicista</a> evito o uso de mocks (e dublês em geral), reservando-os para onde realmente é difícil ou pouco prático o uso de um objeto real ou, como deveria ser seu principal uso, uma ferramenta de design de código através da qual modelamos interfaces ainda não existentes à medida em que praticamos o TDD (ou seja, escrevemos testes antes da implementação do código real) &#8211; e os substituo assim que a classe real é implementada, quando aplicável.</p>
<p>Então, não acredite que por utilizar alguma ferramenta facilitadora, você, instantâneamente, estará praticando BDD. Estude a técnica e a filosofia envolvida e você poderá utilizá-la com qualquer ferramenta para testes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2009/01/08/seu-framework-nao-faz-bdd/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.628 seconds -->
