<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Mentalmorphosis</title>
	<atom:link href="http://mentalmorphosis.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mentalmorphosis.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sat, 20 Dec 2008 02:40:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mentalmorphosis.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Mentalmorphosis</title>
		<link>http://mentalmorphosis.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mentalmorphosis.wordpress.com/osd.xml" title="Mentalmorphosis" />
	<atom:link rel='hub' href='http://mentalmorphosis.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Pacotes, dependência, estabilidade and so for &#8230;</title>
		<link>http://mentalmorphosis.wordpress.com/2008/12/20/pacotes-dependencia-estabilidade-and-so-for/</link>
		<comments>http://mentalmorphosis.wordpress.com/2008/12/20/pacotes-dependencia-estabilidade-and-so-for/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 02:39:10 +0000</pubDate>
		<dc:creator>Rafael Carvalho</dc:creator>
				<category><![CDATA[ddd]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[livros]]></category>
		<category><![CDATA[oo]]></category>

		<guid isPermaLink="false">http://mentalmorphosis.wordpress.com/?p=57</guid>
		<description><![CDATA[Continuando o assunto do post anterior, o livro de Uncle Bob é uma verdadeira salada. Só para se ter uma idéia, aqui vão alguns dos assuntos tratados: Manifesto Ágil, Extreme Programming, Design Ágil, Princípios de OO e Patterns, Princípios de Design de Pacotes, UML, vários casos de estudo e pra fechar a divertida &#8220;Sátira de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=57&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://mentalmorphosis.wordpress.com/2008/12/20/einstabilidade-de-pacotes/">Continuando o assunto do post anterior</a>, o livro de Uncle Bob é uma verdadeira salada. Só para se ter uma idéia, aqui vão alguns dos assuntos tratados: Manifesto Ágil, Extreme Programming, Design Ágil, Princípios de OO e Patterns, Princípios de Design de Pacotes, UML, vários casos de estudo e pra fechar a divertida &#8220;Sátira de duas companias&#8221; e um fabuloso artigo de Jack Reeves, de 1992, entitulado &#8220;What is Software Design&#8221;. Leitura <strong>mais que obrigatória</strong>!</p>
<p>A leitura deste livro me levou a algumas boas reflexões sobre como coisas escritas há anos, até decadas atrás estão presentes  (às vezes nas entranhas às vezes na cara) nos assuntos mais &#8220;badalados&#8221; e buzzwords dos artigos e foruns  a fora.</p>
<p>Quem inicia seus estudos em desenvolvimento de software acha que nunca irá &#8220;saber tudo&#8221;, afinal de contas &#8220;é muita coisa pra estudar&#8221;. A notícia ruim é que vocês têem razão, nunca saberão tudo. Mas nem tudo está perdido. Para a maioria dos softwares corporativos que são desenvolvidos, sólidos conhecimentos de Orientação à Objetos e algumas Práticas Ágeis de desenvolvimento já te deixarão anos luz à frente da maioria dos profissionais do mercado.</p>
<p>Mas o que quero tratar neste post e ouvir a opinião de vocês, é justamente um de meus devaneios durante a leitura.</p>
<p>Um dos temas que me interessou bastante, pois não tinha lido nenhum livro que tratasse do assunto foi sobre Design de Pacotes.<br />
Imaginemos um caso de estudo: Um sistema bem simples para armazenar fotos. A pessoa cria um <strong>pefil</strong>. Cada perfil pode armazenar diversas <strong>fotos</strong>. Além disso cada perfil pode estar associado a vários <strong>amigos</strong>. Você só pode ver as fotos de quem for seu amigo.</p>
<p><strong><em>Solução 1:</em></strong></p>
<p><img src="http://mentalmorphosis.files.wordpress.com/2008/12/sol11.jpg?w=450" alt="Solucao1" /></p>
<p>Consegue enxergar algum problema neste design?</p>
<p>Vamos imaginar que a atual implementação de FotoDaoImpl salve as fotos no sistema de arquivos da própria máquina. O primeiro release tinha que sair rápido, seria uma aplicação desktop e essa solução resolveria o problema por hora. Contudo, no próximo release será entregue uma versão web da aplicação e agora as fotos devem ser salvas em um SGDB, porém a versão desktop da aplicação continuará sendo usada (por qualquer razão que seja). Então, como reutilizar o pacote Domain sem ter que &#8220;levar de brinde&#8221; o pacote de Infra já que a classe Perfil busca as fotos a serem exibidas atraves da interface FotoDao, que por sua vez possui uma implementação para salvar e carregar as fotos do sistema de arquivos local da máquina?</p>
<p>O grande problema é que o pacote domain possui uma dependência direta com o pacote de infra estrutura. O que é uma péssima idéia. As classes de domínio devem depender apenas de classes do mesmo nível de abstração, ou seja, classes que fazem sentido ao negócio, nunca de classes de infra-estrutura. Quanto maior a dependencia do pacote Domain com outros pacotes, maior será o número de razões para este sofrer mudanças. Isso significa que, sempre que o pacote Infra alterar, você terá de revalidar o pacote Domain e verificar se nada foi quebrado.<br />
Uma regra simples é: Pacotes instáveis dependem de pacotes estáveis. Pacotes estáveis não devem depender de pacotes instáveis.<br />
A estabilidade de um pacote tem a ver com o &#8220;esforço necessário para se fazer uma mudança&#8221;. O que isso significa?<br />
Imagine a siguinte situação: os pacotes B, C e D todos dependem do pacote A. Logo o esforço para realizar uma mudança no pacote A é muito grande, pois afetará outros três. A é um pacote estável!<br />
Por outro lado se, nenhum outro pacote depende de B, então ele é instável. O esforço para uma mudança é muito baixo, só afeta ele próprio.<br />
Muitas vezes a estabilidade de algo é confundida com a frequencia com que essa coisa muda, ou seja, se muda muito é instável se muda pouco é estável. Cuidado isso é um equivoco.<br />
Uncle Bob dá o seguinte exemplo em seu livro: Coloque uma moeda em pé. Se ninguém mexer com ela, continuará ali, quietinha, sem nenhuma alteração. Por isso ela está estável?<br />
Não, pois o esforço para mudar sua posição é mínimo. (<a href="http://mentalmorphosis.wordpress.com/2008/12/20/einstabilidade-de-pacotes/">outra tentativa de metáfora</a> para esse problema)<br />
Uma solução é colocar a interface FotoDao no pacote Domain. Dessa forma aplicamos DIP (dependency-inversion principle) e magicamente a dependencia é invertida. O pacote Infra é quem passa a depender do pacote Domain. Com essa mudança nosso pacote de maior nível de abstração, o domínio, passa a ter apenas um bom motivo para sofrer alterações. Ele próprio!</p>
<p><strong>Solução 2:</strong></p>
<p>Aplicar DIP foi uma boa solução. Mas ainda não fiquei satisfeito. Como a classe FotoDao faz parte do domínio da aplicação? O zé que vai publicar suas fotos sabe que raios isso significa?</p>
<p>O que precisamos é de um local para guardarmos e recuperarmos nossas fotos. Uma espécie de repositório de fotos (buzzword++), algo como FotoRepository. Assim não incluimos em nossa linguagem (ubiquotous language) conceitos especificos de tecnologia. Certo? Huunnn&#8230; ainda não.</p>
<p>Invertemos a dependencia, assim consiguimos reutilizar o pacote Domain. Retiramos o cheiro de termos tecnicos da nossa comunicação. Então o que falta?</p>
<p>Será que em uma conversa com com o usuário ele citaria o termo &#8220;repositorio de fotos&#8221;? Acho pouco provavel. Que tal <strong>album</strong>? Um album nada mais é do que uma coleção de fotos. Onde podemos incluir, retirar e consultar nossos fotos. Não? Um repositório de fotos. Aaahh, mas você só mudou o nome, grande coisa. Sim só mudamos o nome. Nomes são muito importantes e fazem toda a diferença.</p>
<p>Então ficariamos com alguma coisa mais ou menos assim:</p>
<p><img src="http://mentalmorphosis.files.wordpress.com/2008/12/sol21.jpg?w=450" alt="Solucao2" /></p>
<p>Veja como conceitos de Orientação à Objetos, Design de Pacotes, Patterns como DIP (e outros SRP, LSP, OCP), Domain Driven Design, Refactoring, Design Ágil, Iterações curtas e pequenos releases, etc se sobrepoem e se completam. No fim das contas, quando você estudar DDD por exemplo irá aproveitar conceitos de OO que aprendeu. Quando for aplicar Refactoring idem, e por aí vai.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mentalmorphosis.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mentalmorphosis.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mentalmorphosis.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mentalmorphosis.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mentalmorphosis.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mentalmorphosis.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mentalmorphosis.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mentalmorphosis.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mentalmorphosis.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mentalmorphosis.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mentalmorphosis.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mentalmorphosis.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mentalmorphosis.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mentalmorphosis.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=57&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mentalmorphosis.wordpress.com/2008/12/20/pacotes-dependencia-estabilidade-and-so-for/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b5c54fc890eaa683b2baaee9a25c5b0b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">zinho</media:title>
		</media:content>

		<media:content url="http://mentalmorphosis.files.wordpress.com/2008/12/sol11.jpg" medium="image">
			<media:title type="html">Solucao1</media:title>
		</media:content>

		<media:content url="http://mentalmorphosis.files.wordpress.com/2008/12/sol21.jpg" medium="image">
			<media:title type="html">Solucao2</media:title>
		</media:content>
	</item>
		<item>
		<title>(e&#124;in)stabilidade de pacotes</title>
		<link>http://mentalmorphosis.wordpress.com/2008/12/20/einstabilidade-de-pacotes/</link>
		<comments>http://mentalmorphosis.wordpress.com/2008/12/20/einstabilidade-de-pacotes/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 02:33:37 +0000</pubDate>
		<dc:creator>Rafael Carvalho</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[livros]]></category>
		<category><![CDATA[oo]]></category>

		<guid isPermaLink="false">http://mentalmorphosis.wordpress.com/?p=54</guid>
		<description><![CDATA[Em seu livro &#8220;Agile Software Development &#8211; Principles, Paterns, and Practices&#8221;, Robert C. Martin (também conhecido como Uncle Bob) dedica bastante atenção à um assunto que, muitas vezes não se dá a devida importância: design de pacotes. Em meio à uma discusão sobre coesão e acoplamento dos pacotes surge o conceito de estável: * &#8220;Something [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=54&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Em seu livro &#8220;Agile Software Development &#8211; Principles, Paterns, and Practices&#8221;, Robert C. Martin (também conhecido como Uncle Bob) dedica bastante atenção à um assunto que, muitas vezes não se dá a devida importância: design de pacotes.<br />
Em meio à uma discusão sobre coesão e acoplamento dos pacotes surge o conceito de estável:</p>
<p>    *  &#8220;Something is stable if it is not easily moved&#8221;</p>
<p>Segundo Uncle Bob, a estabilidade de um pacote está relacionada não á frequencia em que este sofre alterações, mas sim no esforço necessário para a alteração.<br />
Deste ponto de vista, um pacote do qual muitos outros dependem é considerado estável pois uma alteração fará com que todos os outros que dele dependam devam ser revisados. O esforço é grande. Seguindo esta linha, um pacote que depende de vários outros, porém não possui ninguem que dependa dele é considerado instável, pois é muito simples alterá-lo, o esforço é pequeno, ninguém mais será afetado.</p>
<p>Meio confuso não? Vamos tentar uma metáfora.</p>
<p><strong>Cena 1</strong><br />
Imagine que você trabalhe em uma empresa quase perfeita, desenvolvendo software. Maravilhosamente quase nenhum projeto atrasa, são entregues no prazo e com qualidade.<br />
Logo, seu gerente de projetos está sempre de bom humor, sorridente e fanfarrão.<br />
Porém, como você trabalha nessa mesma empresa a 10 anos já o viu algumas vezes mudar de humor. Umas dez vezes mais ou menos. Média de 1 por ano. Fantástico pelo histórico da maioria dos projetos!<br />
Quando isso acontece seu gerente muda completamente de temperamento, age como se fosse outra pessoa. Fica vermelho quando fala, aos berros, palavrões, ameaças de demissão, pressão total. Pede pra sair!<br />
Apesar de ser uma ocasião muito rara em sua empresa dos sonhos, não precisa de muito para que seu gerente perca a paciência. Basta alguém pedir demissão, ou uma atividade atrasar 1 dia, ou um cliente reclamar de 1 funcionalidade, ou algumas outras coisas desse tipo.<br />
Veja que basta que ocorra apenas 1 dessas situações para que ele mude de humor. Porém, como na maior parte do tempo tudo anda como esperado, é raro de se ver.<br />
Pergunta: seu gerente é estável?<br />
Apesar da baixa frequencia na mudança de estado, devemos concordar que é uma pessoa extremamante instável. É muito fácil provocar uma mudança.</p>
<p><strong>Cena 2</strong><br />
Imagine que a empresa onde você trabalha esteja passando por uma nova fase. Muitas mudanças, readaptações, equipe nova, limitada, novos produtos.<br />
Tudo ao mesmo tempo. Uma bagunça só.<br />
Seu gerente de projetos está diariamente irritado. Sempre dando respostas curtas e grossas. Ordem atrás de ordem. Pressionando a equipe o tempo todo.<br />
Como você trabalha nessa mesma empresa, com esse gerente a 10 anos sabe que essa situação não é normal.<br />
Nesses 10 anos você viu o cara descer do salto uma meia duzia de vezes apenas. E mesmo assim nada muito agressivo. Normal.<br />
Para que seu gerente perca a paciência é preciso que o projeto esteja atrasodo pelo menos 1 mês, as pessoas da sua equipe cheguem tarde todos os dias, passem horas no msn e orkut durante o expediente, não façam testes unitários e ainda torçam para o Corinthians. Tudo isso ao mesmo tempo. Como a empresa está passando por um momento difícil, nos ultimos meses isso anda acontecendo todos os dias. Logo, gerente extressado sempre.<br />
Pergunta: seu gerente é instável?<br />
Apesar da alta frequencia na mudança de seu comportamento, acho que não podemos considerá-lo uma pessoa instável. Basta ver como é difícil irritá-lo, mudar seu estado de espírito.</p>
<p>Concordo que é tentador pensar que algo que muda com pouca frequencia seja estável, enquanto que algo que muda constantemente seja instável. Mas tome cuidado!<br />
E o que tudo isso me importa?</p>
<p>A organização de classes em pacotes e a dependência entre esses pacotes são extremamente importantes para a definição de um bom design de software, mas, ao contrário do que possa parecer não é uma tarefa simples.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mentalmorphosis.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mentalmorphosis.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mentalmorphosis.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mentalmorphosis.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mentalmorphosis.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mentalmorphosis.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mentalmorphosis.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mentalmorphosis.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mentalmorphosis.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mentalmorphosis.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mentalmorphosis.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mentalmorphosis.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mentalmorphosis.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mentalmorphosis.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=54&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mentalmorphosis.wordpress.com/2008/12/20/einstabilidade-de-pacotes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b5c54fc890eaa683b2baaee9a25c5b0b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">zinho</media:title>
		</media:content>
	</item>
		<item>
		<title>Falando em Agile</title>
		<link>http://mentalmorphosis.wordpress.com/2008/10/27/falando-em-agile/</link>
		<comments>http://mentalmorphosis.wordpress.com/2008/10/27/falando-em-agile/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 03:04:26 +0000</pubDate>
		<dc:creator>Rafael Carvalho</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[evento agil caelum]]></category>

		<guid isPermaLink="false">http://mentalmorphosis.wordpress.com/?p=43</guid>
		<description><![CDATA[Tenho certeza que terão muitos posts falando sobre o evento &#8220;Falando em Agile 2008&#8243;, porém não poderia deixar de expressar minha impressão sobre as palestras que achei mais interessantes. Para quem se interessar, o objetivo principal de cada palestra pode ser encontrado aqui, logo, focarei mais na minha impressão e opinião pessoal de cada apresentação. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=43&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- 	 	 --></p>
<p>Tenho certeza que terão muitos posts falando sobre o evento &#8220;Falando em Agile 2008&#8243;, porém não poderia deixar de expressar minha impressão sobre as palestras que achei mais interessantes.</p>
<p>Para quem se interessar, o objetivo principal de cada palestra pode ser encontrado <a href="http://www.caelum.com.br/falando-em-agile/palestras.jsp" target="_blank">aqui</a>, logo, focarei mais na minha impressão e opinião pessoal de cada apresentação.</p>
<p>Começando pelo principal. Foi o melhor Coffe Break de todos todos os eventos da <a href="http://blog.caelum.com.br" target="_blank">Caelum</a> que já participei. =D</p>
<p>No primeiro dia o <a href="http://www.dtsato.com/blog/" target="_blank">Danilo Sato</a> e o <a href="http://blog.franktrindade.com/" target="_blank">Francisco Trindade</a> falaram sobre &#8220;Agilidade de tartaruga. Métodos ágeis encontram o mundo real&#8221;. Eles focaram bastante na idéia de evolução contínua de um processo ágil e como &#8220;seguir a receita dos livros&#8221; (agile by the book) pode engessar o processo e acabar deixando de lado algo fundamental para um time ágil: a adaptação e melhoria constante do processo. A palestra foi muito interessante pois eles apresentaram exemplos reais de projetos em que participaram e de como o feedback e adaptação ajudam a &#8220;moldar&#8221; um processo ágil para a realidade daquele cliente ou daquele projeto especificamente. Mas fico um pouco preocupado com interpretações erradas. Imaginem o camarada que está começando a utilizar práticas ágeis e que ainda não conseguiu adaptar-se, por exemplo, à prática de TDD. Ao descobrir que pode adaptar o processo ele logo pensa: &#8220;Ahá, sabia que não precisava desse negócio de testar antes de escrever código&#8221;. Pronto, acontecerá exatamente o que o Phillip mostrou em sua palestra (continue lendo). Obviamente que não foi isso que o Danilo e o Francisco passaram, mas, sabemos até onde vai a criatividade humana. Alias, segundo o Pedro, a preguiça é o maior motivador para a criatividade humana. Preguiça, escrever testes, gerente que diz &#8220;se não tiver tempo não precisa testar&#8221; &#8230; Sugestivo né! Então fica o alertar:<strong> </strong>Para adaptar um processo (ágil ou não), primeiro você precisa <strong>experimentá-lo</strong>, <strong>conhecê-lo muito bem</strong> e saber exatamente quais as <strong>consequencias</strong> da exclusão de uma prática.</p>
<p>O destaque do dia foi a palestra do pessoal de Brasilia, da <a href="http://blog.seatecnologia.com.br/" target="_blank">SEA tecnologia</a>. Foi uma palestra muito divertida onde o pessoal mostrou a dificuldade que enfrentaram para introduzir métodos ágeis na Força Aérea Brasileira, um orgão militar bastante consevador, burocrático e  cheio de regras e procedimentos rígidos. A todo momento o oficial militar responsável pelo projeto, que participou da aparesentação, contava momentos em que pensou &#8220;pronto agora eu vou em cana&#8221;. O relato mais curioso foi com relação aos post-its no quadro. Como o Coronel (não me lembro se era esta a patente correta) &#8220;não gostava de desorganização&#8221; a saída do pessoal foi colar os post-its em folhas A4 e estas no quadro. Guando o Coronel chegava, todos corriam para arrancar as folhas e escontê-las na gaveta. Que situação!</p>
<p>A ultima palestra do dia foi a do <a href="http://gc.blog.br/" target="_blank">Guilherme Chapiewsky</a> da <a href="http://www.globo.com/">globo.com</a>, com o tema &#8220;Liderando equipes agéis&#8221;. A palestra do Guilherme foi incrível. Ele conseguiu deixar muito claro como ele lidera e como é a relação entre o lider e a sua equipe. Eu acompanho os blogs do pessoal da globo.com a algum tempo e é nítida, mesmo pra quem está de fora, a mudança de comportamento que o Scrum trouxe para organização.  Das 12 palestras realizadas nesses dois dias, 4 foram do (ex-)pessoal da globo.com, e todos mostraram-se muito satisfeitos com a introdução de práticas ágeis. É muito legal vermos o surgimento de lideres jovens como o Guilherme, que não conduzem uma equipe de forma imperativa, &#8220;chefeando&#8221; mas sim guiando, ajudando e principalmente fazendo parte da equipe, porque geralmente, as equipes não enchergam o gerente como um membro e sim como chefe (Uga-uga!).</p>
<p>O segundo dia teve início com o KeyNote do <a href="http://amagno.blogspot.com/" target="_blank">Alexendre Magno</a> sobre &#8220;Scrum em ambientes PMBok&#8221;. O Alexandre dispensa apresentações/comentários e como sempre sua palestra foi muito boa. O legal dessa apresentação foi ver como os gerentes de projeto tradicionais destorcem muito as práticas do PMBok, interpretando-as como convêm. O próprio PMBok fala sobre coisas como <a href="http://en.wikipedia.org/wiki/Special:Search?search=Rolling-Wave+Planning&amp;go=Go" target="_blank">Rolling-Wave Planning</a> e <a href="http://en.wikipedia.org/wiki/Progressive_elaboration" target="_blank">Progressive Elaboration</a>, que se parecem muito com o nosso desenvolvimento iterativo. Alguém aí já viu algum PMP falando sobre essas coisas? Veja no link dos mesmos para a Wikipedia a importancia que se dá a essas coisas.</p>
<p>Continuando com o case da globo.com, o <a href="http://blog.bardusco.com/" target="_blank">Danilo Bardusco</a> contou um pouco de como aconteceu o primeiro projeto onde eles utilizaram efetivamente práticas ágeis. Precisavam colocar no ar em 40 dias uma aplicação para o BBB. Todos, inclusive o próprio Danilo, acreditavam que não conseguiriam cumprir esse prazo desenvolvendo software da forma como estavam acostumados a fazer. Quando propôs o uso de Scrum, os próprios membros da equipe, como de costume, continuaram duvidando que seria possível. A solução foi propor uma experiência de 3 dias e, caso não ouvesse evolução, desistiriam do projeto. O resultado foi a adoção de Scrum em todas as equipes da globo.com.</p>
<p>Outra apresentação que merece destaque foi a do <a href="http://www.acarlos.com.br/blog/" target="_blank">Antônio Carlos</a>, do Yahoo. Sua palestra foi um pouco mais específica, focando no papel do Product Owner. Muitas das palestras do evento foram em cima de relatos sobre a experiência na adoção de metodologias ágeis nas empresas. Foi realmente muito legal ouvir essas experiências, uma perspectiva bem diferente e mais prática do que lemos nos livros.  Porem uma das coisas que senti falta no evento foram palestras com temas mais técnicos, específicos e práticos, por isso a palestra do Antônio foi diferenciada. Seria bom se tivessemos um evento em formato de Workshops, com simulação de casos reais e trabalhos em grupo.</p>
<p>Por último tivemos a palestra do <a href="http://blog.fragmental.com.br/" target="_blank">Phillip</a> <a href="http://fragmental.tw/" target="_blank">Calçado</a> (Shoes). Uma palestra bastante esperada pela maioria e que não deixou a desejar. Apesar do tema parece bem polêmico, &#8220;A maldição da fábrica de software ágil&#8221;, a apresentação foi bem amena. Depois de alguns minutos ofegantes, após a corrida atras do notebook, o Phillip apresentou dois exemplos de projetos em que teve a oportunidade de participar pela <a href="http://www.thoughtworks.com/" target="_blank">Thoughtworks</a> Austrália e quais foram os problemas que encontraram. Conta Shoes que em um desses projetos, após obterem sucesso em uma parte do projeto, o gerente do projeto resolveu colocar mais pessoas e paralelizar as tarefas. &#8220;Nine women can&#8217;t make a baby in one month&#8221; já dizia Fred Brooks. A conclusão do Phillip, e aí entra o comentário que fiz sobre o tema do Danilo e do Francisco, é que com tantas pessoas no time perdeu-se na comunicação. A comunicação é um dos pilares do desenvolvimento ágil e, com a falta ou deficiência da mesma, torna-se necessária uma documentação formal mais pesada, já que de alguma forma as informações têem de ser transmitidas entre os membros da equipe. Ao tentar transformar o time em uma especie de fábrica, o gerente de projetos não percebeu que estava abrindo mão da comunicação, e isso colocou em xeque o sucesso de um time ágil.</p>
<p>Como em todo bom evento, ao final de cada dia fomos &#8220;tomar uma&#8221;. Esse é um momento muito interessante, pois temos oportunidade de conhecer pessoalmente várias pessoas que encontramos diariamente nos blogs e foruns. Entre Coffe Breaks e cervejas após o evento tive a oportunidade de conhecer pessoas como o <a href="http://laguiar.wordpress.com/" target="_blank">Luiz Aguiar</a>, <a href="http://lucabastos.blogspot.com/" target="_blank">Luca</a>, <a href="http://blog.aspercom.com.br/" target="_blank">Rodrigo Yoshima</a>, Pedro (do Yahoo), <a href="http://www.danieldestro.com.br/" target="_blank">Daniel Destro</a>, diversos dos palestrantes e muitas outras pessoas que nem tivemos tempo de perguntar o nome uma das outras.</p>
<p>Quem não pode ir desta fez, não perca os próximos. Sem dúvida são essas coisas que ajudarão a formar seu conhecimento e opinião profissional.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mentalmorphosis.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mentalmorphosis.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mentalmorphosis.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mentalmorphosis.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mentalmorphosis.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mentalmorphosis.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mentalmorphosis.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mentalmorphosis.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mentalmorphosis.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mentalmorphosis.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mentalmorphosis.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mentalmorphosis.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mentalmorphosis.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mentalmorphosis.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=43&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mentalmorphosis.wordpress.com/2008/10/27/falando-em-agile/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b5c54fc890eaa683b2baaee9a25c5b0b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">zinho</media:title>
		</media:content>
	</item>
		<item>
		<title>assertEquals para BigDecimal</title>
		<link>http://mentalmorphosis.wordpress.com/2008/10/22/assertequals-para-bigdecimal/</link>
		<comments>http://mentalmorphosis.wordpress.com/2008/10/22/assertequals-para-bigdecimal/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 03:04:43 +0000</pubDate>
		<dc:creator>Rafael Carvalho</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[tests]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://mentalmorphosis.wordpress.com/?p=21</guid>
		<description><![CDATA[Quando, desenvolvendo software, nos deparamos com alguma situação um tanto quanto bizarra, qual a primeira coisa a se fazer? Sair correndo para perguntar naquele forum bacana certo? É uma alternativa. Acho os foruns fantásticos, frequento bastante. São sem dúvida uma ótima fonte de estudo. Porém uma outra solução um pouco mais difícil, demorada, porém menos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=21&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Quando, desenvolvendo software, nos deparamos com alguma situação um tanto quanto bizarra, qual a primeira coisa a se fazer?<br />
Sair correndo para perguntar naquele forum bacana certo? É uma alternativa.<br />
Acho os <a href="http://www.guj.com.br">foruns fantásticos</a>, frequento bastante. São sem dúvida uma ótima fonte de estudo. Porém uma outra solução um pouco mais difícil, demorada, porém <span style="text-decoration:line-through;">menos preguiçosa</span> mais &#8230; digamos &#8230; nobre, seria perder alguns poucos minutos realizando uma pesquisa.</p>
<p>Hoje, desenvolvendo um &#8220;Pet Project&#8221; me deparei com uma situação dessas.<br />
Veja o seguinte código:</p>
<pre><code>import java.math.BigDecimal;

import org.junit.Test;
import static org.junit.Assert.*;

public class BigDecimalTest {

	private final BigDecimal n1 = new BigDecimal("13.23");
	private final BigDecimal n2 = new BigDecimal("13.27");

	@Test
	public void should_not_be_equals_using_junit_assert_method()
	{
		assertEquals(n1, n2);
	}

	@Test
	public void should_not_be_equals_using_BigDecimal_equals_method()
	{
		assertTrue(n1.equals(n2));
	}
}
</code></pre>
<p><!-- 		@page { size: 21.59cm 27.94cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p>Ambos deveriam falhar correto? Mas não foi o que aconteceu.<br />
Inexplicavelmente o primeiro teste passou. Ficou verdinho! Isso mesmo.<br />
Minha primeira idéia foi uma pesquisa rápida no google (ooohhh), mas não encontrei nada. Talvez não tenha procurado direito, é verdade. Achei mais interessante baixar o código fonte do JUnit e eis que encontro o seguinte trecho de código:</p>
<pre><code>static public void assertEquals(Object expected, Object actual) {
	assertEquals(null, expected, actual);

}</code>

static public void assertEquals(String message, Object expected, Object actual) {
	if (expected == null &amp;&amp; actual == null)
		return;
	if (expected != null &amp;&amp; isEquals(expected, actual))
		return;
	else if (expected instanceof String &amp;&amp; actual instanceof String) {
		String cleanMessage= message == null ? "" : message;
		throw new ComparisonFailure(cleanMessage, (String)expected, (String)actual);
	}
	else
	        failNotEquals(message, expected, actual);
}

private static boolean isEquals(Object expected, Object actual) {
	if (expected instanceof Number &amp;&amp; actual instanceof Number)
		return ((Number) expected).longValue() == ((Number) actual).longValue();
	return expected.equals(actual);
}</pre>
<p>Veja que o metodo assertEquals delega para o método isEquals cujo faz um instanceOf verificando se os objetos sendo comparados são do tipo Number. Caso sejam, o metodo os transforma em long para depois compará-los.<br />
Bingo. Com isso compara-se apenas a parte inteira do número, logo, aquele primeiro teste passou.</p>
<p>Meu próximo passo foi procurar na lista de bugs do JUnit se este já era um velho conhecido.<br />
Para minha não surpresa <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1715326&amp;group_id=15278&amp;atid=115278">lá estava o danado</a>.</p>
<p>Esse problema foi encontrado na versão 4.3.1 do JUnit, que vem no eclipse europa, e já foi corrigido, veja o metodo isEqual da versão 4.5</p>
<pre><code>private static boolean isEquals(Object expected, Object actual) {
	return expected.equals(actual);
}</code></pre>
<p>Agora sim &#8230;</p>
<p>Por que eu ainda estava usando o eclipse europa?<br />
Eu sei lá. Só sei que, foi bem mais divertido que postar a pergunta e ficar dando F5 no aguardo da resposta.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mentalmorphosis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mentalmorphosis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mentalmorphosis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mentalmorphosis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mentalmorphosis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mentalmorphosis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mentalmorphosis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mentalmorphosis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mentalmorphosis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mentalmorphosis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mentalmorphosis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mentalmorphosis.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mentalmorphosis.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mentalmorphosis.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=21&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mentalmorphosis.wordpress.com/2008/10/22/assertequals-para-bigdecimal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b5c54fc890eaa683b2baaee9a25c5b0b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">zinho</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA is this &#8230; SOA is that &#8230;</title>
		<link>http://mentalmorphosis.wordpress.com/2008/08/30/soa-is-this-soa-is-that/</link>
		<comments>http://mentalmorphosis.wordpress.com/2008/08/30/soa-is-this-soa-is-that/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 18:30:51 +0000</pubDate>
		<dc:creator>Rafael Carvalho</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mentalmorphosis.wordpress.com/?p=17</guid>
		<description><![CDATA[Não é tão novo mas ainda não tinha visto. Qualquer semelhança com a realidade é mera coincidência. http://www.gregthearchitect.com/episode_SOA_this.html<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=17&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Não é tão novo mas ainda não tinha visto.<br />
Qualquer semelhança com a realidade é mera coincidência.</p>
<p><a href="http://www.gregthearchitect.com/episode_SOA_this.html" target="_blank">http://www.gregthearchitect.com/episode_SOA_this.html</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mentalmorphosis.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mentalmorphosis.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mentalmorphosis.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mentalmorphosis.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mentalmorphosis.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mentalmorphosis.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mentalmorphosis.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mentalmorphosis.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mentalmorphosis.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mentalmorphosis.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mentalmorphosis.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mentalmorphosis.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mentalmorphosis.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mentalmorphosis.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mentalmorphosis.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mentalmorphosis.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=17&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mentalmorphosis.wordpress.com/2008/08/30/soa-is-this-soa-is-that/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b5c54fc890eaa683b2baaee9a25c5b0b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">zinho</media:title>
		</media:content>
	</item>
		<item>
		<title>Curriculo (ou Um post de fúria)</title>
		<link>http://mentalmorphosis.wordpress.com/2008/08/21/curriculo-ou-um-post-de-furia/</link>
		<comments>http://mentalmorphosis.wordpress.com/2008/08/21/curriculo-ou-um-post-de-furia/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 01:32:13 +0000</pubDate>
		<dc:creator>Rafael Carvalho</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://mentalmorphosis.wordpress.com/?p=3</guid>
		<description><![CDATA[Será que alguma empresa me contrataria se eu lhe apresentasse este currículo? Objetivo profissional Desenvolver software de forma simples, não burocrática, (até prazerosa, porque não?) entregando ao cliente o que ele realmente necessita &#8211; Software funcionando (jura!?) Qualificações profissionais Não sou especialista em toda e qualquer tecnologia de 3 ou 4 letras surgida desde mil [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=3&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Será que alguma empresa me contrataria se eu lhe apresentasse este currículo?</p>
<p><strong>Objetivo profissional</strong></p>
<ul>
<li>Desenvolver software de forma simples, não burocrática, (até prazerosa, porque não?) entregando ao cliente o que ele realmente necessita &#8211; Software funcionando (jura!?)</li>
</ul>
<p><strong>Qualificações profissionais</strong></p>
<ul>
<li>Não sou especialista em toda e qualquer tecnologia de 3 ou 4 letras surgida desde mil novecentos e bolinha até o último hipe do momento. Ex: TCP/IP, HTTP, XML, XSD, XSTL, SOAP, JSON, POX, EBJ, JSP, JSTL, HTML, DHTML, DOM, CSS, UML, CVS, SVN, SQL, AJAX, BPM, ESB só para citar algumas. Mas conheço um pouco de cada.</li>
<li>Não tenho vergonha, medo, pavor nem calafrios em dizer &#8220;Não sei, mas posso estudar e lhe digo&#8221;.</li>
<li>Não sei mentir. Não, nem para aquele cliente mala que está exigindo da sua consultoria um mega-blaster, power, ultra profissional, que tenha 25 anos de experiência em todas as tecnologias do primeiro item acima e &#8220;entenda do negócio&#8221;, apenas para ficar &#8220;especificando o sistema&#8221; em Microsoft Word e Enterprise Architect.</li>
<li>Odeio trabalhar mais de 8 horas por dia todos os dias. Eventualmente, veja bem, EVENTUALMENTE pode acontecer.</li>
<li>Não acho que a melhor forma de avaliar quantitativamente e/ou qualitativamente o trabalho das <em>pessoas</em> seja através dos entediantes e inúteis Timeshets. (Atenção para a palavra em <em>itálico. </em>Você trabalha com pessoas. Repita comigo <strong>pes-so-as</strong>. Recursos são impressoras, computadores, aparelhos de fax, etc).</li>
<li>Discordo da visão na qual o analista de sistemas é o cara inteligente, que pensa em tudo e faz o trabalho intelectual de especificar, enquanto o operário programador não precisa pensar pois apenas tem de apertar os parafusos, ops codificar.</li>
<li>Não tenho a &#8220;ambição&#8221; de &#8220;subir de cargo&#8221; até virar gerente de projetos, assim como não tenho nada contra &#8220;programar para sempre&#8221;. (Isso não significa que eu não queira evoluir, paguá!)</li>
<li>Não acho que esses caras (famosos: <a href="http://martinfowler.com" target="_blank">1</a>, <a href="http://www.domainlanguage.com/about/ericevans.html" target="_blank">2</a>, <a href="http://en.wikipedia.org/wiki/Joshua_Bloch" target="_blank">3</a>, <a href="http://www.craiglarman.com">4</a>, <a href="http://c2.com/ppr/about/author/kent.html" target="_blank">5</a>, <a href="http://www.objectmentor.com/omTeam/martin_r.html" target="_blank">6</a>, <a href="http://alistair.cockburn.us/" target="_blank">7</a>, <a href="http://www.scrumalliance.org/profiles/7">8</a> &amp; ainda não tão famosos: <a href="http://blog.fragmental.com.br/" target="_blank">9</a>, <a href="http://blog.caelum.com.br/" target="_blank">10</a>, <a href="http://gc.blog.br" target="_blank">11</a>, <a href="http://www.lixo.org" target="_blank">12</a>, <a href="http://www.improveit.com.br/br" target="_blank">13</a> &#8230;) são xiitas, prepotentes que se acham e inventam ou dizem um monte de coisas simplesmente para promoverem a si mesmos ou suas empresas e/ou vender seus livros pois &#8220;essas coisas só funcionam na teoria&#8221;. (Você pelo menos já tentou?)</li>
<li>Aprecio muito, muito mesmo, uma cervejinha com os amigos de vez em quando (isso, isso mesmo, tenho amigos fora da empresa sim).</li>
</ul>
<p>O engraçado (se não fosse trágico) é que, grande parte dessas colocações são verdades para a maioria dos desenvolvedores. Quem não gostaria de trabalhar 8 horas por dia?Quem conhece a fundo todas as tecnologias? Quantos de nós odiariamos ser gerentes de projeto?<br />
Do outro lado, o empregador não perderia em nada prestando atenção nesses pontos. Todos eles dizem respeito a qualidade de vida, trabalho bem feito, cliente satisfeito, dinheiro no bolso.<br />
Então qual é o problema?<br />
Só me resta concluir que a maioria das empresas gostam de ser enganadas. Dão valor aos mentirosos, aqueles que &#8220;manjam&#8221; tudo de tudo e tem orgasmos multiplos trabalhando 15 horas por dia.</p>
<p>O problema, como já disse, é que não sei mentir!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mentalmorphosis.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mentalmorphosis.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mentalmorphosis.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mentalmorphosis.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mentalmorphosis.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mentalmorphosis.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mentalmorphosis.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mentalmorphosis.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mentalmorphosis.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mentalmorphosis.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mentalmorphosis.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mentalmorphosis.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mentalmorphosis.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mentalmorphosis.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mentalmorphosis.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mentalmorphosis.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mentalmorphosis.wordpress.com&amp;blog=2253994&amp;post=3&amp;subd=mentalmorphosis&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mentalmorphosis.wordpress.com/2008/08/21/curriculo-ou-um-post-de-furia/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b5c54fc890eaa683b2baaee9a25c5b0b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">zinho</media:title>
		</media:content>
	</item>
	</channel>
</rss>
