<?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>1up4Developers &#187; resenhas</title>
	<atom:link href="http://1up4dev.org/category/resenhas/feed/" rel="self" type="application/rss+xml" />
	<link>http://1up4dev.org</link>
	<description>Nadando contra o Waterfall. tail -f /mind/realworld &#62;&#62; /blog</description>
	<lastBuildDate>Thu, 29 Jul 2010 04:27:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Os guardiões da cascata</title>
		<link>http://1up4dev.org/2008/11/os-guardioes-da-cascata/</link>
		<comments>http://1up4dev.org/2008/11/os-guardioes-da-cascata/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 03:49:11 +0000</pubDate>
		<dc:creator>Rodrigo Panachi</dc:creator>
				<category><![CDATA[cascata]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[processos]]></category>
		<category><![CDATA[resenhas]]></category>
		<category><![CDATA[devaneios]]></category>

		<guid isPermaLink="false">http://1up4dev.org/?p=228</guid>
		<description><![CDATA[Se você freqüenta este blog já deve ter percebido que nós não gostamos da maldita cascata. Fases bem definidas, detalhamento de requisitos, documentos inúteis, diagramas UML, papéis&#8230; tudo muito lindo na teoria. Eu fico até emocionado quando leio a documentação do RUP. Mas infelizmente a maioria dos profissionais de TI precisam são obrigados a trabalhar [...]]]></description>
			<content:encoded><![CDATA[<p>Se você freqüenta este blog já deve ter percebido que nós não gostamos da <span style="text-decoration: line-through;">maldita</span> <a href="http://pt.wikipedia.org/wiki/Modelo_em_cascata" target="_blank">cascata</a>. Fases bem definidas, detalhamento de requisitos, documentos inúteis, diagramas UML, papéis&#8230; tudo muito lindo na teoria. Eu fico até emocionado quando leio a <a href="http://www.wthreex.com/rup/" target="_blank">documentação</a> do <a href="http://pt.wikipedia.org/wiki/Rational_Unified_Process" target="_blank">RUP</a>. Mas infelizmente a maioria dos profissionais de TI <span style="text-decoration: line-through;">precisam</span> são obrigados a trabalhar nestes ambientes cascateiros, enfrentando chefes sem noção, colegas com <a href="http://www.novacorja.org/" target="_blank">síndrome do funcionário público</a>, <a href="http://desciclopedia.org/wiki/POG#Prazos_de_um_projeto_POG" target="_blank">prazos sem sentido</a>, entre outras <a href="http://1up4dev.org/2008/09/contos-do-programador-pragmatico/" target="_blank">pérolas</a> da <a href="http://1up4dev.org/2008/10/a-perpetuacao-da-especie/" target="_blank">área</a>.</p>
<p>O principal apelo de um processo cascateiro são suas fases e papéis bem definidos, onde cada membro da &#8220;equipe&#8221; é responsável por uma determinada tarefa que é executada em uma seqüência previamente definida. Dentre os <a href="http://www.wthreex.com/rup/process/workers/ovu_works.htm" target="_blank">papéis</a>, pode-se facilmente identificar os especialistas daquela tarefa, que defendem sua <span style="text-decoration: line-through;">necessidade</span> execução com unhas e dentes. Para ilustrar, resolvi chamá-los de <a href="http://pt.wikipedia.org/wiki/Guardi%C3%B5es_do_Universo" target="_blank">guardiões</a>, seja da tecnologia ou da atividade em questão. Um guardião protege sua fase, tarefa e interesses, defendendo-os para que o &#8220;processo&#8221; não seja quebrado. Desta forma, &lt;sarcasmo&gt; a &#8220;equipe&#8221; atinge seu objetivo: o software! &lt;/sarcasmo&gt; Seguem alguns exemplos desses guardiões cascateiros:</p>
<p><strong>O guardião do banco de dados: &#8220;<em>Não rodarás nenhum script na base alheia</em>&#8220;</strong><br />
Começo por este por ser o mais comum dos guardiões. Ele trata o banco de dados como um filho, mesmo que seja um adolescente que não obedeça inteiramente à 3ª regra normal. São vistos como semi-deuses, capazes de transcrever o modelo de negócio da empresa em uma linguagem de alto nível, impossível de ser compreendida por simples programadores. Protejem as tabelas com a própria vida e qualquer alteração na base de dados é motivo para um duelo até a morte! Utilizam um padrão para nomenclatura de campos que somente é conhecido pelo clã dos DBAs. Geralmente são seguidores do Oráculo, o senhor de todos os bancos de dados.</p>
<p><strong>O guardião do projeto: <em>&#8220;Guia-te pelo teu Gantt e serás recompensado&#8221;</em></strong><br />
Este guardião está presente em todos os projetos, garantindo que a palavra do <a href="http://pt.wikipedia.org/wiki/Diagrama_de_Gantt" target="_blank">Gantt</a> seja cumprida, protegendo o escopo do projeto com a própria vida (ou a vida de algum programador). Adicionalmente atua como roteador de atividades: recebe os requisitos pelo email, encaminha para um recurso disponível (programador) que estima o esforço e define uma data de entrega, devolvendo para o guardião que atualiza seu <a href="http://blog.aspercom.com.br/2007/11/15/ganttchartnaofunciona/" target="_blank">Project</a>.</p>
<p><strong>O guardião do framework: <em>&#8220;Venerarás o Struts e nada te faltarás&#8221;</em></strong><br />
O framework é o objeto de adoração deste guardião, nenhum outro framework é tão bom quanto o que ele venera. Ele provê solução para todos seus problemas simplesmente escrevendo um bloco de XML aqui, outro ali, mudando aquela linha acolá e estendendo uma classe X implementando aquela interface Z. Qualquer evolução do framework em questão não passa de uma tentativa frustrada de &#8220;reinventar a roda&#8221;.</p>
<p><strong>O guardião da arquitetura: <em>&#8220;Não usarás a instância do teu objeto em vão&#8221;</em></strong><br />
Uma variação interessante de guardião, que neutraliza seu oponente através de técnicas de tortura e perturbação mental, inundando as sessões de brainstorm com uma enxurrada de DTO&#8217;s, VO&#8217;s, Facades, EJB&#8217;s entre outros patterns que fazem a cabeça dos programadores entrar em conflito, até que seus órgãos faleçam (ou simplesmente se demitam). Geralmente são cúmplices dos guardiões do projeto, conspirando para a dominação do Gannt.</p>
<p><strong>O guardião do root: <em>&#8220;Teu processo não executarás no meu bash&#8221;</em></strong><br />
A jóia mais preciosa da empresa: a senha do root. Seu guardião é o mais honrado dos seres, sendo uma espécie de <a href="http://pt.wikipedia.org/wiki/O_Senhor_dos_An%C3%A9is" target="_blank">Frodo</a>, protegendo-a com a própria vida pois uma vez em mãos erradas pode ser usada para a destruição da humanidade (ou apenas para reiniciar aquela instância do Tomcat travado em produção). Aquele que desafia este guardião perde o direito de executar seus processos como administrador local e fica vagando pelo filesystem eternamente.</p>
<p><strong>O guardião dos guardiões: <em>&#8220;Tua TI é um mal necessário&#8221;</em></strong><br />
Também conhecido como diretor, presidente, CEO, dono, investidor, sócio, etc. É o guardião das decisões, aquele que protege sua riqueza acima de tudo, economizando nos salários, contratando funcionários despreparados e investindo rios de dinheiro em consultorias e licenças de software para garantir seus investimentos.</p>
<p>Enfim, são guardiões dos próprios interesses. A &#8220;equipe&#8221; é apenas uma palavra que usam em discursos mas nunca aplicaram o conceito na prática!</p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2008/11/os-guardioes-da-cascata/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Resenha do livro Pragmatic Unit Testing</title>
		<link>http://1up4dev.org/2008/06/resenha-do-livro-pragmatic-unit-testing/</link>
		<comments>http://1up4dev.org/2008/06/resenha-do-livro-pragmatic-unit-testing/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 19:54:19 +0000</pubDate>
		<dc:creator>Roger Leite</dc:creator>
				<category><![CDATA[resenhas]]></category>
		<category><![CDATA[pragmatic waterfall]]></category>
		<category><![CDATA[testes unitários]]></category>

		<guid isPermaLink="false">http://1up4dev.wordpress.com/?p=44</guid>
		<description><![CDATA[Olá a todos !
Sei que estão estranhando &#8230; perceberam que não tem Waterfall no título ? Pois bem, hoje não vou chorar e digo mais, vou até fingir que não vivo num Waterfall e vou falar sobre TESTES ! Tá bom, sei que enfatizei demais, só vou fazer uma resenha sobre este último livro que [...]]]></description>
			<content:encoded><![CDATA[<p>Olá a todos !</p>
<p>Sei que estão estranhando &#8230; perceberam que não tem Waterfall no título ? Pois bem, hoje não vou chorar e digo mais, vou até fingir que não vivo num <em>Waterfall</em> e vou falar sobre TESTES ! Tá bom, sei que enfatizei demais, só vou fazer uma resenha sobre este último livro que li mesmo.</p>
<p><a href="http://www.amazon.com/Pragmatic-Unit-Testing-Java-JUnit/dp/0974514012"><img class="alignleft size-medium wp-image-47" src="http://1up4dev.org/wp-content/uploads/2008/06/pragmatic_unit_testting.jpg?w=240" alt="Pragmatic Unit Testing" width="240" height="240" /></a></p>
<p>Numa leitura leve e até divertida (sou nerd mesmo), os autores abordam conceitos práticos de testes que não estão ligados diretamente ao <a href="http://www.junit.org">JUnit</a>, e sim a &#8220;Filosofia de Testes&#8221;. O legal que os principais conceitos são apresentados com acrônimos como &#8220;Right BICEP&#8221;, &#8220;CORRECT Boundary Conditions&#8221;, &#8220;A TRIP&#8221;, MockObjects e etc. Depois da passagem por todos esses acrônimos, os próximos capítulos atacam temas como, onde colocar os testes, design dos testes e etc.</p>
<p>Isso pode parecer estranho, mas de todos os capítulos o que eu mais gostei foi do primeiro, a Introdução, talvez porque no momento estou com a água do waterfall até o pescoço, e nele os autores colocam as dicas de como contra-argumentar as desculpas para não fazer testes. Exemplos dos tópicos, &#8220;Por que devo me importar com testes ?&#8221; e &#8220;Desculpas para não testar&#8221;, parece que os autores realmente conhecem o lado negro da força. Por sinal, achei este último tão interessante, que estou pensando em pedir permissão para traduzi-lo e postar aqui, se alguém souber o caminho das pedras e quiser ajudar eu peço a gentileza de entrar em contato.</p>
<p>Gostei muito do livro, o considero uma ótima referência sobre o tema, veja bem, <strong>referência</strong>, pois se queres uma biblia do JUnit, descarte-o. Sei que muitos da nossa área não conhecem nada sobre o assunto, e um ótimo começo seria por ele.</p>
<p>Agora, voltando um pouco pra minha (e de muitos) realidade cruel, antes de ler o livro eu imaginava (ou sonhava ?) que o sistema atual em que trabalho, poderia ser implantado testes, agora, com uma visão mais pragmática, tenho certeza que estava certo, só que mirando na camada errada. Aqui, a maioria da lógica (uns 90%) está em PL/SQL no banco, e a melhor maneira de implantar testes seria começando com um PL/SQLUnit &#8230; mas aí já é assunto pra outro post. Ahh, ainda não pesquisei, mas deve existir com certeza.</p>
<p>Chegando ao fim do livro &#8230;</p>
<p>Uma parte chata do livro foi quando terminei de lê-lo, confesso que fiquei com uma vontade de &#8220;quero mais&#8221; e acabei ficando com a impressão de que só li a ponta do iceberg sobre o tema. Sugestões de mais livros sobre o tema, são bem vindas !</p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2008/06/resenha-do-livro-pragmatic-unit-testing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Pragmatic Programmer, no ambiente Waterfall é claro !</title>
		<link>http://1up4dev.org/2008/05/the-pragmatic-programmer-no-ambiente-waterfall-e-claro/</link>
		<comments>http://1up4dev.org/2008/05/the-pragmatic-programmer-no-ambiente-waterfall-e-claro/#comments</comments>
		<pubDate>Mon, 26 May 2008 12:38:00 +0000</pubDate>
		<dc:creator>Roger Leite</dc:creator>
				<category><![CDATA[real world]]></category>
		<category><![CDATA[resenhas]]></category>
		<category><![CDATA[pragmatic waterfall]]></category>

		<guid isPermaLink="false">http://1up4dev.wordpress.com/2008/05/26/the-pragmatic-programmer-no-ambiente-waterfall-e-claro/</guid>
		<description><![CDATA[
Estou lendo o consagrado The Pragmatic Programmer, o livro é ótimo e faz com que eu tenha certeza que sou um sadomasoquista -calma, eu vou explicar-. Da sua capacidade técnica eu nunca desconfiei, pois sempre é citado nas lista de &#8220;top hits&#8221; de pessoal muito bom como o Guilherme Chapiewski e Phillip Calçado.
Agora entra a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X"><img style="float:left;cursor:pointer;margin:0 10px 10px 0;" src="http://bp1.blogger.com/_XL8FQmVF9qY/SDqv0OnB-jI/AAAAAAAAAF4/DLYKHqhh_2Y/s320/pragmatic-programer-book.jpeg" border="0" alt="" /></a></p>
<p>Estou lendo o consagrado <a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X">The Pragmatic Programmer</a>, o livro é ótimo e faz com que eu tenha certeza que sou um sadomasoquista -calma, eu vou explicar-. Da sua capacidade técnica eu nunca desconfiei, pois sempre é citado nas lista de &#8220;top hits&#8221; de pessoal muito bom como o <a href="http://gc.blog.br/2008/03/27/10-livros-recomendados-para-desenvolvedores/">Guilherme Chapiewski</a> e <a href="http://blog.fragmental.com.br/2008/05/20/trilha-de-livros-desenvolvedor/trackback/">Phillip Calçado</a>.<br />
Agora entra a explicação do sadomasoquismo &#8230; ler um livro destes, realmente nos faz pensar, tanto em corrigir hábitos ruins que adquirimos com o tempo, quanto novas possibilidade em automatizar todas as tarefas rotineiras por exemplo. Até ai tudo bem, maravilha, o livro até parece uma auto-ajuda alá Paulo Coelho para o programador sofrido e abatido pelo rotina Waterfall &#8230; E é nesse momento que volto a realidade e lembro que não sou um programador e muito menos pragmático, pois aqui, no <span style="font-style:italic;">real world</span> Waterfall eu sou apenas um macaco digitador, logo adaptei algumas lições do livro para a vida real:</p>
<ul>
<li><a href="http://www.artima.com/intv/dry.html"><span style="font-style:italic;">The DRY Principle</span></a>, bom aqui é diferente, parafraseando o Miguel, aqui temos o <span style="font-style:italic;">PRY Principle</span>, que se auto explica, <span style="font-style:italic;">Please Repeat Yourself</span>.</li>
<li><span class="ts"><a href="http://www.artima.com/intv/adapt.html">Building Adaptable Systems</a>, essa parte aqui se resume a criar &#8220;flags&#8221; no banco de dados e dar um nome bonitinho de &#8220;parametrização&#8221;.</span></li>
<li><span class="ts"><a href="http://www.artima.com/intv/domain.html">Programming Close to the Domain</a>, Domain !?! Seria enviar 18 ou mais parâmetros pra procedures que contém as regras de negócio ? Se for, aqui a gente faz !</span></li>
<li><span class="ts"><a href="http://www.artima.com/intv/defense.html">Programming Defensively</a>, aqui isso se resume a colocar logs em lugares chaves pra passar a culpa do bug para outro equipe.</span></li>
</ul>
<p>É claro que existem mais conceitos, mais para um programador-pragmático-waterfall os principais estão acima. O significado real de cada tópico você pode ver nos links, apesar que nada substitui a leitura do mesmo, que por sinal eu recomendo!</p>
<p>Enquanto isso, continuo com a minha sessão &#8220;sado&#8221;, lendo sobre <a href="http://en.wikipedia.org/wiki/Domain-driven_design">DDD</a> e tentando descobrir <a href="http://thiagoarrais.wordpress.com/2007/12/10/resenha-por-que-as-pessoas-de-negocios-falam-como-idiotas/trackback/">Por que as pessoas de negócios falam como idiotas</a>.</p>
<p>Qualquer desabafo deixem nos comentários.</p>
<p>*obs: o link do amazon não é &#8220;paitrocinado&#8221;, só ilustrativo mesmo.</p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2008/05/the-pragmatic-programmer-no-ambiente-waterfall-e-claro/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>