<?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; processos</title>
	<atom:link href="http://1up4dev.org/category/processos/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>Tue, 20 Mar 2012 03:57:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>TPW: e-mails vs reuniões</title>
		<link>http://1up4dev.org/2011/06/tpw-e-mails-vs-reunioes/</link>
		<comments>http://1up4dev.org/2011/06/tpw-e-mails-vs-reunioes/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 09:00:59 +0000</pubDate>
		<dc:creator>Rodrigo Panachi</dc:creator>
				<category><![CDATA[cascata]]></category>
		<category><![CDATA[processos]]></category>
		<category><![CDATA[questionamento]]></category>
		<category><![CDATA[real world]]></category>

		<guid isPermaLink="false">http://1up4dev.org/?p=634</guid>
		<description><![CDATA[TweetA cilada típica em ambientes corporativos: &#160; E agora, quem poderá nos ajudar? Infelizmente, e-mails e reuniões, mesmo em ambientes ágeis, são inevitáveis, e na maioria das situações, tóxicos. Reuniões de 2 horas de duração ou 50 emails diários são &#8230; <a href="http://1up4dev.org/2011/06/tpw-e-mails-vs-reunioes/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://1up4dev.org/2011/06/tpw-e-mails-vs-reunioes/" data-text="TPW: e-mails vs reuniões" data-count="vertical" data-via="socializeWP" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://1up4dev.org/2011/06/tpw-e-mails-vs-reunioes/&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>A cilada típica em ambientes corporativos:</p>
<p><img class="aligncenter" title="Ciclo corporativo" src="http://lh5.ggpht.com/_JtWk7d3YRZo/S6k6MYuywBI/AAAAAAAALCE/eTVUncdC1s8/ciclocorporativo.jpg" alt="Ciclo corporativo" width="558" height="551" /></p>
<p>&nbsp;</p>
<h2>E agora, quem poderá nos ajudar?</h2>
<p>Infelizmente, <strong>e-mails</strong> e <strong>reuniões</strong>, mesmo em ambientes ágeis, são inevitáveis, e na maioria das situações, tóxicos. Reuniões de 2 horas de duração ou 50 emails diários são sinais claros de que as coisas não andam muito bem.</p>
<p>Atitudes ágeis tendem a evitar &#8220;enrolações&#8221; que desviem o foco da equipe ou desacelerem a produtividade. A seguir, algumas estratégias e dicas que podemos aplicar para quebrar um pouco essas práticas corporativas cascateiras, ajudar a manter o foco da equipe e produzir mais.</p>
<h2>Reuniões</h2>
<p>Simplesmente <strong>evite reuniões</strong>, com temor! Tente resolver os problemas com <strong>conversas cara-a-cara</strong>, na sua mesa mesmo. Se precisar discutir um assunto por mais de 5 minutos, convide as pessoas envolvidas para um cafézinho, de preferência em pé.</p>
<p>Se não puder evitar a reunião, <strong>defina com antecipação</strong>: 1) o(s) <strong>objetivo</strong>(s) e 2) a <strong>duração máxima</strong>. Limite qualquer reunião a no máximo 5 participantes e duração de 15 minutos. Acredite: é  suficiente.</p>
<p>Se um problema for muito complexo para ser resolvido em uma reunião de 15 minutos, <strong>quebre o problema em problemas menores</strong>, e discuta um de cada vez. Os próximos problemas devem ser discutidos somente quando o problema anterior for resolvido.</p>
<p>Antes de começar qualquer discussão, faça com que todos presentes tomem ciência dos <strong>objetivos e da duração máxima</strong>. Assim que alcançarem os objetivos ou o tempo se esgotar, termine a discussão imediatamente! Não dê oportunidade para que alguém inicie uma nova discussão desnecessária.</p>
<p><strong>Diga não</strong>! Em certas ocasiões, é a melhor resposta. Se você não é o responsável por determinado problema, desconhece ou não pode ajudar plenamente, simplesmente diga &#8220;não, obrigado&#8221;.</p>
<h2>E-mails</h2>
<p>Alguns problemas podem ser resolvidos com um simples e-mail, é verdade. A única regra que devemos seguir é a do &#8220;passa, repassa ou paga&#8221;. <strong>Não deixe os e-mails passarem das tréplicas</strong>. Se depois de 3 e-mails o problema ainda não foi resolvido, convide os envolvidos para tomar um cafezinho.</p>
<p><strong>E-mail não é chat</strong>. O time deve conversar cara-a-cara, incluindo os clientes. Trocar mais do que 5 e-mails diários entre a equipe é um mau sinal. Se não puder falar pessoalmente, <strong>use o telefone ou skype</strong> ao invés de mandar um e-mail que pode ser facilmente ignorado pelo destinatário.</p>
<p><strong>E-mail não é documentação</strong>. Não é preciso enviar um e-mail a cada decisão tomada pelo cliente ou pelo time. Se algo importante foi decidido, converse pessoalmente com os envolvidos.</p>
<p>Finalmente, use o e-mail com sabedoria, para trocar informações importantes e relevantes entre a equipe. <strong>E-mail não deve ser regra</strong>, e sim um suporte para comunicação entre a equipe. Lembre-se: <strong>quanto mais e-mails você enviar, maior a chance de ser ignorado.</strong></p>
<h2>Resumo</h2>
<p>Reuniões e e-mails são tóxicos. Evite-os! Se não puder evitar, use-os com sabedoria.</p>
<p>Se identificou com alguma situação? Acha que essas dicas &#8220;choveram no molhado&#8221;? Concorda, discorda, quer complementar algo? Use os comentários.</p>
<p><strong>Reflexão: quais dessas práticas você aplica no seu cotidiano profissional?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2011/06/tpw-e-mails-vs-reunioes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Agilidade é a buzzword do momento</title>
		<link>http://1up4dev.org/2009/04/agilidade-e-a-buzzword-do-momento/</link>
		<comments>http://1up4dev.org/2009/04/agilidade-e-a-buzzword-do-momento/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 14:46:42 +0000</pubDate>
		<dc:creator>Rodrigo Panachi</dc:creator>
				<category><![CDATA[processos]]></category>
		<category><![CDATA[questionamento]]></category>
		<category><![CDATA[real world]]></category>
		<category><![CDATA[waterfall]]></category>
		<category><![CDATA[agilidade]]></category>
		<category><![CDATA[pragmatic waterfall]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://1up4dev.org/?p=427</guid>
		<description><![CDATA[TweetNos últimos anos o mercado de TI cresceu exponencialmente. Surgiram desde pequenas empresas especializadas em construir websites até monstruosas fábricas de software com seus contratos milionários. Algumas com orçamento limitado outras com dinheiro jorrando pelos canos. Umas com problemas por &#8230; <a href="http://1up4dev.org/2009/04/agilidade-e-a-buzzword-do-momento/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://1up4dev.org/2009/04/agilidade-e-a-buzzword-do-momento/" data-text="Agilidade é a buzzword do momento" data-count="vertical" data-via="socializeWP" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://1up4dev.org/2009/04/agilidade-e-a-buzzword-do-momento/&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>Nos últimos anos o mercado de TI cresceu exponencialmente. Surgiram desde pequenas empresas especializadas em construir websites até monstruosas fábricas de software com seus contratos milionários. Algumas com orçamento limitado outras com dinheiro jorrando pelos canos. Umas com problemas por falta de organização outras com problemas burocráticos. Bons profissionais vs. equipes de sobrinhos, habilidade técnica contra enxurradas de documentos&#8230; muito fracasso, pouco sucesso.</p>
<h2>A meta é coletar as moedas até conseguirmos uma estrela</h2>
<p>Surgiram muitas empresas especializadas em desenvolver software ou que têm um software como produto principal. Normalmente, essas empresas se preocupam apenas em satisfazer os investidores e se esquecem dos clientes. Focam em vender e deixam a qualidade de lado. Prezam pela imagem e ignoram os problemas.</p>
<p>É uma triste realidade que essas empresas tenham mais <a href="http://www.youtube.com/watch?v=R47Xe8kVrv0" target="_blank">executivos</a> do que programadores. Como diz o <a href="http://www.luli.com.br/" target="_blank">Luli Radfahrer</a>, <em>executivos são aqueles seres que se vestem com um pensamento fracassado, usam uma linguagem própria sendo uma mistura de termos que só eles entendem e 20% de palavras em inglês</em>&#8230; não vivem os problemas reais da empresa. É como se estivessem em outro mundo: Mario World!</p>
<div id="attachment_439" class="wp-caption aligncenter" style="width: 310px"><a href="http://1up4dev.org/wp-content/uploads/2009/04/marioland-clean.jpg"><img class="size-medium wp-image-439" title="Mario World" src="http://1up4dev.org/wp-content/uploads/2009/04/marioland-clean-300x188.jpg" alt="" width="300" height="188" /></a><p class="wp-caption-text">O mundo dos executivos: nuvens sorrindo</p></div>
<p>A maioria das empresas que têm problemas com desenvolvimento de software ainda estão vivendo na década de 90. Internet ainda é uma palavra assustadora. Programador é apenas um funcionário que sabe o que significam siglas de informática e sabem mexer no computador. Mudança ainda é encarada como algo arriscado, que deve ser planejado, estudado e aprovado pelo presidente, diretoria e gestores. A palavra da vez é <strong>processo</strong> e seu fiel companheiro é <strong>prazo</strong>. A burocracia é uma amiga que garante que as coisas não fujam de controle. Nesse cenário não há como fugir do waterfall.</p>
<p>O maior problema do waterfall são os papéis: cada um com sua &#8220;especialidade&#8221;. Alguém determina que um <span style="text-decoration: line-through;">infeliz</span> funcionário vai ser responsável por &#8220;levantar requisitos&#8221;. Faz um cursinho de UML e começa a escrever uma quantidade sem fim de Casos de Uso sem ter noção alguma do que seu trabalho afeta no processo. Então a &#8220;equipe&#8221; começa a ter muito &#8220;retrabalho&#8221;, uma vez que os clientes não estão satisfeitos com o que está sendo entregue. Logo percebem que devem fazer o &#8220;levantamento&#8221; mais detalhado e passam a engessar ainda mais o processo com reuniões, assinaturas, etc. Conclusão: tempo e dinheiro desperdiçados e nenhum resultado satisfatório.</p>
<div id="attachment_441" class="wp-caption aligncenter" style="width: 310px"><a href="http://1up4dev.org/wp-content/uploads/2009/04/lost_hatch_locke.jpg"><img class="size-medium wp-image-441" title="Lost" src="http://1up4dev.org/wp-content/uploads/2009/04/lost_hatch_locke-300x199.jpg" alt="Seu trabalho é digitar xxx a cada 108 segundos" width="300" height="199" /></a><p class="wp-caption-text">Meu trabalho é digitar 4 8 15 16 23 42 a cada 108 segundos</p></div>
<p>Falta de foco? Profissionais não qualificados? Processo falho? Não apenas isso: não há comunicação, não há troca de experiências. O waterfall favorece o aparecimento da síndrome do funcionário público: &#8220;eu sou gerente: eu <a href="http://www.youtube.com/watch?v=R47Xe8kVrv0" target="_blank">córdeno</a>, não preciso saber programar&#8221;. As decisões geralmente são tomadas por uma única pessoa. Os projetos seguem o modelo de construção civil. Os profissionais se acomodam pois não veem perspectiva, não conhecem o processo completo, não são ouvidos e por isso não são valorizados.</p>
<p>O foco destas empresas está longe de ser tecnologia. Se concentram em suas <a href="http://migre.me/rwD" target="_blank">buzzwords</a>, processos e reuniões e se esquecem do produto, ou seja, o software. Focam mais na solução do que no problema. Fazendo uma analogia, essas empresas são como um barco furado, onde está entrando água mas há pessoas com baldes para retirá-la e mantê-lo flutuando. Se a agua subir muito, contratam mais pessoas para operar os baldes. Enquanto isso, os executivos ficam acenando como se nada tivesse acontecendo. Quando perguntam se há algum problema, nenhum <span style="text-decoration: line-through;">fdp</span> infeliz tem coragem para falar que o problema é o furo no barco!</p>
<p>As empresas que focam em tecnologia e nos profissionais, tipo o <a href="http://lmgtfy.com/?q=empresas+que+investem+em+tecnologia" target="_blank">Google</a> ou a <a href="http://37signals.com/" target="_blank">37signals</a>, estão se dando bem e mostrando que agilidade não é apenas mais um processo&#8230; é algo real e que funciona!</p>
<h2>Agilidade é sair fazendo as coisas de qualquer jeito</h2>
<p>Diante do cenário caótico das empresas, um grupo de profissionais organizou um movimento a fim de unificar as práticas bem sucedidas e tornar o processo de desenvolvimento mais produtivo e pragmático: <a href="http://agilemanifesto.org/" target="_blank">o manifesto ágil</a>. Quem freqüenta esse blog sabe que nós somos fãs e seguidores das práticas ágeis, não porque somos fanáticos e acreditamos somente em uma verdade absoluta, mas por que já sofremos muito com projetos e empresas fracassadas, vivenciamos os problemas que compartilhamos neste blog, passamos noites em claro corrigindo código escrito por maus profissionais, acumulamos horas em reuniões suficiente para tirarmos brevê, tivemos que negociar com cliente, com o chefe, fazer entrevista, contratar, gerenciar, analisar, programar, testar&#8230; nós sofremos os problemas do waterfall na pele!</p>
<p>O termo agilidade é bem popular atualmente: &#8220;precisamos <strong>agilizar</strong> nosso processo de desenvolvimento&#8221;. Como divulgação do manifesto ágil é algo muito positivo, pois mais pessoas podem conhecer e utilizar as práticas ágeis. Mas, como toda fama tem seu lado negativo, não seria diferente neste caso. Muitos profissionais &#8220;gafanhoto&#8221; estão utilizando esse termo como alavancagem profissional. Já tem gerente falando que RUP é ágil, arquiteto defensor de modelagem UML ágil, diagrama ER ágil, modelo de dados ágil, caso de uso ágil, cronograma ágil, etc. Ou seja, estão distorcendo totalmente o propósito e a filosofia da agilidade.</p>
<p>Como disse o <a href="http://gc.blog.br/2008/11/22/agile-indo-para-o-buraco/" target="_blank">Chapiewski</a>, os programadores estão querendo ir direto para a sobremesa e esquecendo de comer seus vegetais. Agile é muito mais do que desenvolver iterativamente, fazer stand-up meetings e planejamentos ágeis. Não dá para ignorar todas as práticas de engenharia de software que realmente fazem com que a produção e mudanças em softwares sejam ágeis, sem contar todos os princípios e práticas que fazem uma diferença enorme.</p>
<p>O mercado que não é bobo já percebeu esse movimento migratório e lançou seus cursos de &#8220;Gerenciamento de projetos ágeis com MSProject&#8221;, &#8220;Desenvolvendo aplicações web com agilidade&#8221;, &#8220;Aprenda a programar com JUnit e TDD&#8221;. Não demorou muito para que uma massa de desenvolvedores colocasse o termo ágil em seus currículos. Pretensiosos demais em achar que um cursinho qualquer pode ensinar todo conceito e técnicas ágeis catalogadas por profissionais com décadas de experiência em desenvolvimento de software.</p>
<p>&#8220;Estou aprendendo Ruby on Rails por que o mercado está <a href="http://gc.blog.br/2009/02/15/plano-de-cargos-e-salarios/" target="_blank">pagando bem</a>&#8220;. do dia para a noite surgiram milhares de especialistas ágeis. O cara que programava em .NET ou Java no modelo tradicional (digitador de código), faz um cursinho rápido e de repente começa a desenvolver aplicações numa tecnologia que exige uma enorme bagagem conceitual. Faz tudo errado, pois não <strong>sabe</strong> realmente o que está fazendo, o projeto fracassa e ainda deixa a tecnologia com má fama. Isso aconteceu com PHP, ASP e está acontecendo com <a href="http://www.mouseoverstudio.com/blog/2009/04/08/nao-deixa-o-mar-te-engolir/" target="_blank">Rails.</a></p>
<p>Programar é difícil, não é um trabalho para qualquer aventureiro. É preciso <a href="http://akitaonrails.com/2009/04/17/off-topic-devo-fazer-faculdade" target="_blank">estudar</a> muito, se dedicar e principalmente, gostar! Não basta apenas estudar para conseguir uma <a href="http://www.nomedojogo.com/2009/02/17/um-modelo-de-maturidade-para-projetos-rails-e-pratico/" target="_blank">certificação</a> pois não garante nada. Deve-se viver a programação, participar de fóruns, contribuir com projetos open-source, discutir idéias, ser auto-crítico, ler muito, praticar, apreciar as boas práticas e abolir o que não presta&#8230;</p>
<div id="attachment_443" class="wp-caption aligncenter" style="width: 235px"><a href="http://1up4dev.org/wp-content/uploads/2009/04/controle-wii-remote.jpg"><img class="size-medium wp-image-443" title="controle-wii-remote" src="http://1up4dev.org/wp-content/uploads/2009/04/controle-wii-remote-225x300.jpg" alt="Agilidade é propor soluções simples para os problemas" width="225" height="300" /></a><p class="wp-caption-text">Agilidade é propor soluções simples para os problemas</p></div>
<p>Agilidade não é anarquia, não significa &#8220;sair fazendo as coisas de qualquer jeito&#8221;, dizer &#8220;não&#8221; para documentação, etc. É uma mudança de atitude, uma nova maneira de enfrentar os problemas e propor soluções <a href="http://blog.aspercom.com.br/2008/07/21/hierarquias-sao-inteligentes-nas-pontas/" target="_blank">simples e práticas</a>, é ter foco, é saber fazer mais com menos, é automatizar tarefas, é estar comprometido&#8230; agilidade é atitude.</p>
<h2>Contratamos uma consultoria para implantar Scrum</h2>
<p>Scrum é a <em>metodologia</em> da moda. Assim que começou a se popularizar entre a comunidade de desenvolvedores, não demorou muito para o que vários sites e blogs se dedicassem exclusivamente na sua divulgação, apresentando benefícios, artigos, guias, exemplos, certificados para imprimir e pendurar em uma moldura na parede, etc. Logo surgiram as consultorias especializadas em <span style="text-decoration: line-through;">adestramento</span> treinamento e implantação de Scrum nas empresas. Um pouco de política aqui e influência ali até que a INFO Magazine publicasse uma matéria dizendo sua empresa <strong>deveria</strong> usar Scrum como solução para todos os problemas.</p>
<p>Mais uma vez, a falta de foco e maturidade das empresas distorcem tudo. Muitas empresas &#8220;compraram&#8221; o Scrum como a solução pronta. Bastar treinar os funcionários, comprar blocos de post-it e tudo passa a funcionar bem e gerar lucro. Pagam um curso de &#8220;gerenciamento de projetos com Scrum&#8221; para os gerentes. Depois apostam todos as fichas em um projeto &#8220;piloto&#8221;. Fazem tudo que manda o manual: reuniões diárias, planing-pocker, quadro com post-its, etc. E o projeto&#8230; fracassa!</p>
<div id="attachment_454" class="wp-caption aligncenter" style="width: 210px"><a href="http://1up4dev.org/wp-content/uploads/2009/04/burning_money.jpg"><img class="size-medium wp-image-454" title="burning_money" src="http://1up4dev.org/wp-content/uploads/2009/04/burning_money.jpg" alt="Queimando dinheiro" width="200" height="150" /></a><p class="wp-caption-text">Queimando dinheiro</p></div>
<p>Então quer dizer que Scrum não funciona? Foi dinheiro desperdiçado? Tanto esforço para nada? Neste caso, devo dizer que sim! Se esqueceram do processo anterior falho, funcionários pouco qualificados e dos líderes sem foco. Escolheram aqueles funcionários mais &#8220;experientes&#8221; para serem o Scrum Master. Sim, aqueles mesmos que só sabiam escrever casos de uso e diagramas UML. Se esqueceram dos valores, dos princípios, <a href="http://rogerioalcantara.blogspot.com/2009/04/ah-entao-vc-usa-scrum.html" target="_blank">da atitude</a>, do relacionamento com o cliente. O pensamento não mudou, o foco ainda era no processo. Depois de tanto esforço, só deram outro nome o waterfall. Não demorou muito e surgiram os papéis, artefatos, documentos&#8230; ou seja, a empresa continua cometendo os mesmos erros!</p>
<p>Não importa a tecnologia ou processo se não souber usá-lo corretamente! E definitivamente Scrum não pode ser encarado como mais um processo bonitinho, com seus papéis, artefatos, bla bla bla. Um processo de software que funciona é aquele onde a equipe está realmente comprometida e tem experiência acumulada para enfrentar e resolver problemas ao longo do desenvolvimento da aplicação. O processo, ou metodologia, será meramente um nome para as práticas que a equipe conhece e utiliza naturalmente.</p>
<h2>Resumo</h2>
<p>Não há ferramenta, metodologia ou processo que substitua a atitude e experiência de um verdadeiro desenvolvedor ágil. Estude, pratique, esteja comprometido, estude denovo, questione-se, estude novamente. <a href="http://smartic.us/2008/09/09/10-things-you-could-be-doing-to-your-code-right-now/" target="_blank">Revise seu código</a>, estude mais um pouco, e principalmente, tenha atitude! <strong>Agilidade não é metodologia, é atitude!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2009/04/agilidade-e-a-buzzword-do-momento/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Agilidade cascateira</title>
		<link>http://1up4dev.org/2008/12/agilidade-cascateira/</link>
		<comments>http://1up4dev.org/2008/12/agilidade-cascateira/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 13:50:09 +0000</pubDate>
		<dc:creator>Rodrigo Panachi</dc:creator>
				<category><![CDATA[cascata]]></category>
		<category><![CDATA[processos]]></category>
		<category><![CDATA[real world]]></category>
		<category><![CDATA[agilidade]]></category>

		<guid isPermaLink="false">http://1up4dev.org/?p=262</guid>
		<description><![CDATA[TweetAtualmente as metodologias ágeis vêm aparecendo com cada vez mais freqüência nas empresas que desenvolvem software, introduzidas pelos próprios desenvolvedores (o que é mais comum) ou em alguns raros casos pela &#8220;cúpula&#8221; da empresa, na esperança de melhorar a produtividade &#8230; <a href="http://1up4dev.org/2008/12/agilidade-cascateira/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://1up4dev.org/2008/12/agilidade-cascateira/" data-text="Agilidade cascateira" data-count="vertical" data-via="socializeWP" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://1up4dev.org/2008/12/agilidade-cascateira/&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>Atualmente as metodologias ágeis vêm aparecendo com cada vez mais freqüência nas empresas que desenvolvem software, introduzidas pelos próprios desenvolvedores (o que é mais comum) ou em alguns <span style="text-decoration: line-through;">raros</span> casos pela &#8220;cúpula&#8221; da empresa, na esperança de melhorar a produtividade e/ou o alto tempo de resposta do fracassado processo cascateiro. Porém, esta &#8220;fama&#8221; prematura dos métodos ágeis tem gerado mais resultados ruins do que bons. Sua aplicação na vida real, <span style="text-decoration: line-through;">na maioria</span> em muitos casos, ocorre de maneira equivocada, distorcida e desprezando-se os reais valores e princípios que apoiaram o surgimento desta filosofia.</p>
<p>Um exemplo claro de como os valores ágeis estão sendo <span style="text-decoration: line-through;">desprezados</span> distorcidos é o aumento constante de &#8220;cursos&#8221; e treinamentos de metodologias ágeis. Não é raro eu receber semanalmente vários <span style="text-decoration: line-through;">spams</span> e-mails de escolas de treinamento que ministram cursos de Scrum, XP, preparação para certificação ScrumMaster, técnicas de TDD, DDD, BDD, etc. Infelizmente o que estes cursos não ensinam (como todos os outros) é o verdadeiro significado de &#8220;ser ágil&#8221;. Fazer um curso de 20 horas de Scrum não o torna um ScrumMaster (você pode até ter um certificado, mas se você realmente é &#8220;ágil&#8221;, sabe que um certificado é um mero pedaço de papel sem valor).</p>
<p>E assim chegamos à &#8220;agilidade cascateira&#8221;, onde todos na empresa estufam o peito para falar que seguem práticas ágeis, <a href="http://pindureta.wordpress.com/2008/12/02/dialogo-imaginario-baseado-em-fatos-reais/">desenvolvimento orientados à testes</a>, utilizam <a href="http://fmeyer.org/archives/2008/11/20/o-scrume/">Scrume</a> para gerenciar os projetos, etc. Na verdade estão apenas praticando um <a href="http://1up4dev.org/2008/06/waterfalling/">waterfall incremental</a>, cometendo os mesmos <a href="http://1up4dev.org/2008/10/software-e-sobre-investimento/">erros clássicos da cascata</a>, valorizando os processos ao invés das pessoas, focando em soluções equivocadas ao invés de <a href="http://1up4dev.org/2008/11/foco-no-problema/">resolver os problemas dos clientes</a> e assim, <a href="http://1up4dev.org/2008/10/a-perpetuacao-da-especie/">difamando e denegrindo</a> a reputação e o propósito do <a href="http://agilemanifesto.org/">AgileManifesto</a>.</p>
<p>Esse é o cenário ideal para os <a href="http://1up4dev.org/2008/11/os-guardioes-da-cascata/">guardiões cascateiros</a>. É por estes e outros motivos que vemos &#8220;flames&#8221; oportunistas como <a href="http://jamesshore.com/Blog/The-Decline-and-Fall-of-Agile.html">The Decline and Fall of Agile</a> começarem a fazer sentido na comunidade. Como disse o <a href="http://gc.blog.br/2008/11/22/agile-indo-para-o-buraco/">Guilherme Chapiewski</a>, as pessoas estão querendo ir direto para a sobremesa e esquecendo de comer seus vegetais. Utilizar uma metodologia ágil não é desenvolver software de forma anarquista, existe muito conceito e experiência adquirida para sustentar esta filosofia.</p>
<p>Neste blog você já viu várias maneiras de como ser um verdadeiro cascateiro e de como não ser ágil. Já que estamos falando nisso, vamos tentar resumir alguns pontos e características que tornam um desenvolvedor realmente ÁGIL!</p>
<h3>Estude, mantenha-se atualizado!</h3>
<p>A principal característica de um agilista é sua sede por conhecimento, sua busca incansável por novas técnicas, linguagens, ferramentas, etc. O seguidor ágil lê artigos, revistas, livros e o faz como diversão. Se você não leu pelo menos um livro técnico nos últimos 6 meses, isto é um mal sinal. Faça laboratórios, testes de novos frameworks, bibliotecas, etc. Pet-projects também são uma maneira pragmática de aprender novas formas e técnicas de desenvolvimento. Finalmente, conheça e pratique os princípios e valores do <a href="http://agilemanifesto.org/principles.html">AgileManifesto</a>, tendo-os como seu mantra, seu guia filosófico e seu mentor profissional.</p>
<h3>Entenda realmente o problema do seu cliente</h3>
<p>Isto parece ser óbvio, mas na maioria das vezes não é. Existem vários perfis de clientes, e é claro que você deve lidar de maneiras diferentes com cada um deles.</p>
<p>Alguns são visionários sonhadores e sempre têm necessidades mirabolantes, sem sentido. Outros são simplistas demais e muitas vezes &#8220;ocultam&#8221; detalhes importantes. Também existem os pseudo-técnicos, que acham que sabem fazer seu trabalho e já vêm sugerindo como você deve implementar aquela nova funcionalidade.</p>
<div id="attachment_272" class="wp-caption aligncenter" style="width: 310px"><a href="http://1up4dev.org/wp-content/uploads/2008/12/imagem_spam_problem.jpg"><img class="size-medium wp-image-272" title="Reação comum quando há um problema" src="http://1up4dev.org/wp-content/uploads/2008/12/imagem_spam_problem-300x181.jpg" alt="Reação comum quando há um problema" width="300" height="181" /></a><p class="wp-caption-text">Reação comum quando há um problema</p></div>
<p>Como verdadeiro agilista, saber identificar o perfil de seu cliente é o início para um relacionamento de confiança e transparência. Só assim você será capaz de concentrar esforços para <a href="http://1up4dev.org/2008/11/foco-no-problema/">resolver seu problema</a> e <a href="http://1up4dev.org/2008/10/software-e-sobre-investimento/">agregar valor ao produto</a>.</p>
<h3>Não tenha medo de mudanças</h3>
<p>A única maneira de criar, corrigir ou melhorar algo é com coragem E com mudança. O essencial para mudar algo é saber identificar o que está errado. Por exemplo, você sofre diariamente para fazer o <em>deploy</em> da sua aplicação para homologação. Identificado o problema e uma possível solução, por exemplo, fazer o <em>deploy</em> em .war, você tem duas soluções: ou deixa como está e coloca a culpa na aplicação ou no processo de desenvolvimento (conformismo) ou com muita coragem investe algumas horas e resolve de vez o problema (agilismo).</p>
<p>Quando bater a insegurança, repita: <strong>coragem! coragem! coragem!</strong></p>
<div id="attachment_266" class="wp-caption aligncenter" style="width: 160px"><a href="http://1up4dev.org/wp-content/uploads/2008/12/coragemcaocovarde.jpg"><img class="size-medium wp-image-266" title="Tenha Coragem!" src="http://1up4dev.org/wp-content/uploads/2008/12/coragemcaocovarde.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">Coragem: o cão covarde!</p></div>
<h3>Reflita e aprenda com os próprios erros</h3>
<p>Existem várias maneiras de você evoluir seu conhecimento, e a maioria dos programadores utilizam somente uma: tomando na cabeça.</p>
<div id="attachment_268" class="wp-caption aligncenter" style="width: 180px"><a href="http://1up4dev.org/wp-content/uploads/2008/12/fotopregocomcabeca.jpg"><img class="size-medium wp-image-268" title="Prego só toma na cabeça!" src="http://1up4dev.org/wp-content/uploads/2008/12/fotopregocomcabeca.jpg" alt="Prego só toma na cabeça!" width="170" height="170" /></a><p class="wp-caption-text">Prego só toma na cabeça!</p></div>
<p>Como um bom seguidor de práticas ágeis, reflita e aprenda com seus erros. Compartilhar seus problemas é a melhor maneira de escolher um solução adequada e ainda espalhar sua experiência entre a equipe para que outras pessoas não cometam o mesmo erro.</p>
<p>Errar é humano. Persistir no erro é burrice. Se você está com problemas, procure por pessoas que já tiveram um problema parecido e aprenda com ele. Não cometa os mesmo erros, e mais importante, não cometa os mesmo erros dos outros!</p>
<h3>Resumo</h3>
<p>Se tudo que você leu até agora não é novidade, parabéns! Caso contrário comece o quanto antes estudar e principalmente praticar estes conceitos no seu trabalho e na sua vida.</p>
<p>Seja responsável e <a href="http://www.velhosabio.com.br/mensagem.exibir.php?codmsg=297">comprometido</a> com seu trabalho. Esforce-se para fazer o melhor. Faça valer o seu salário. E lembre-se: cuidado com os falsos agilistas!</p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2008/12/agilidade-cascateira/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Foco no problema</title>
		<link>http://1up4dev.org/2008/11/foco-no-problema/</link>
		<comments>http://1up4dev.org/2008/11/foco-no-problema/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 21:33:43 +0000</pubDate>
		<dc:creator>Rodrigo Panachi</dc:creator>
				<category><![CDATA[cascata]]></category>
		<category><![CDATA[real world]]></category>
		<category><![CDATA[waterfall]]></category>
		<category><![CDATA[agilidade]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[metodologia]]></category>

		<guid isPermaLink="false">http://1up4dev.org/?p=243</guid>
		<description><![CDATA[TweetDesenvolver software é uma atividade muito gratificante pois sempre podemos (ou deveríamos) exercitar nossa criatividade para solucionar os problemas dos clientes. Isto, apesar de divertido pode ser perigoso e/ou catastrófico se estivermos com o foco errado. Num ambiente cascateiro, onde &#8230; <a href="http://1up4dev.org/2008/11/foco-no-problema/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://1up4dev.org/2008/11/foco-no-problema/" data-text="Foco no problema" data-count="vertical" data-via="socializeWP" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://1up4dev.org/2008/11/foco-no-problema/&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>Desenvolver software é uma atividade muito gratificante pois sempre podemos (ou deveríamos) exercitar nossa criatividade para solucionar os problemas dos clientes. Isto, apesar de divertido pode ser perigoso e/ou catastrófico se estivermos com o foco errado. Num ambiente cascateiro, onde cada envolvido está comprometido apenas com o processo e não se preocupa verdadeiramente com os problemas dos clientes, não é difícil que isto ocorra. Quase sempre o foco acaba sendo direcionado para a solução ao invés do problema.</p>
<p>Mas qual a diferença entre foco no <strong>problema</strong> ou <strong>solução</strong>? Vamos a um exemplo:</p>
<blockquote><p>Quando a Nasa enviou os primeiros astronautas ao espaço, descobriu que as canetas não funcionavam com gravidade zero. Para resolver esse problema, os engenheiros contrataram uma empresa especializada para projetar a caneta espacial.<br />
Dez anos e US$ 12 milhões depois, estava pronta a caneta que podia ser usada no espaço, em qualquer posição. Nem a temperatura poderia atrapalhar: a supercaneta funcionava bem fizesse frio ou calor.<br />
Os russos, que tiveram o mesmo problema, optaram por uma solução mais simples: passaram a usar um lápis.</p></blockquote>
<p><a href="http://1up4dev.org/wp-content/uploads/2008/11/spaceball.gif"><img class="alignnone size-medium wp-image-247" title="spaceball" src="http://1up4dev.org/wp-content/uploads/2008/11/spaceball.gif" alt="" width="1" height="1" /></a>A história acima é bem famosa e mesmo sendo <a href="http://www.e-farsas.com/artigo.php?id=58" target="_blank">falsa</a>, demonstra muito bem o que acontece quando o problema não está em foco. Neste caso, o problema é a impossibilidade de escrever em gravidade zero. Uma das soluções seria uma caneta que escreva nessas condições. Veja que aqui a <strong>solução</strong> já está em foco. Outra solução para o problema seria utilizar algo que escrevesse em gravidade zero: um pedaço de carvão ou um giz já serviriam. Assim, o problema seria resolvido.</p>
<p>Outro exemplo de falta de foco no problema é esta <a href="http://blog.aspercom.com.br/2008/07/21/hierarquias-sao-inteligentes-nas-pontas/" target="_blank">história</a> da fábrica de pasta de dente, onde ocasionalmente algumas caixas da pasta de dente eram entregues vazias. Para eliminar este problema, a empresa <span style="text-decoration: line-through;">gastou</span> investiu milhões para garantir que durante a fabricação, nenhuma caixa ficasse sem o tubo de pasta de dente dentro. Mas o problema foi realmente resolvido depois que um operário deixou um ventilador soprando as caixas vazias para fora da esteira de produção. Simples não?</p>
<p>Na área de desenvolvimento de software não é tão raro acontecer algo parecido, onde o foco está inteiramente na solução. Sabe aquele sistema meio capenga, que funciona e dá dinheiro para empresa mas não é &#8220;web 2.0&#8243; nem utiliza conceitos de &#8220;SOA&#8221;? De repente a diretoria decide que este sistema deve ser &#8220;migrado&#8221; para uma tecnologia <span style="text-decoration: line-through;">da moda</span> mais atual, que o permita &#8220;evoluir&#8221; mais facilmente.</p>
<p>Para atender esta necessidade, normalmente uma equipe nova é contratada, toneladas de <a href="http://blog.fragmental.com.br/2008/07/25/uh-eme-ele/" target="_blank">documentos e diagramas</a> são produzidos até que os programadores comecem a <a href="http://www.martinfowler.com/bliki/CheaperTalentHypothesis.html" target="_blank">codificar</a>. A esta altura, o prazo já está apertado e os &#8220;stakeholders&#8221; ainda não viram os resultados. Depois de muito tempo e dinheiro desperdiçados, um sistema feito às pressas, <em>bonitinho</em> mas meia-boca, é entregue com os mesmos defeitos do anterior. E o problema não foi resolvido&#8230;</p>
<p>Desenvolver software deve ser um investimento <a href="http://1up4dev.org/2008/10/software-e-sobre-investimento/" target="_blank">lucrativo</a>, proporcionando algum ganho às partes envolvidas. Quando uma <strong>necessidade</strong> surgir, o primeiro passo é identificar o <strong>problema</strong> para então encontrar a melhor <strong>solução</strong>, ou seja, foco no problema. Neste exemplo da &#8220;migração&#8221;, o problema é que a manutenção do software atual é muito cara, porém &#8220;migrar&#8221; o sistema inteiro não vai resolver o problema, no máximo criará um novo.</p>
<p>Mas de quem é a culpa quando o foco está na solução? Eu respondo: a <strong>cascata</strong>! Apesar das metodologias ágeis estarem em alta e aos poucos serem adotadas pelas empresas, a maldição do waterfall ainda é está entre nós. Clientes continuam com a mania de pedir tudo no início do projeto. Ao exporem seus problemas, já estão pensando na solução. Fazem questão de engordar o escopo com coisas das quais não têm certeza da utilidade, mas querem que estejam lá pois podem precisar um dia. Os desenvolvedores também não estão isentos dessa culpa. Um legítimo analista cascateiro não se envolve com os problemas do cliente, apenas ouvem suas solicitações e transformam em casos de uso ou diagramas. É aí que uma simples necessidade se transforma numa bola de neve e a lenda da caneta da Nasa se repete&#8230;</p>
<p><a href="http://1up4dev.org/wp-content/uploads/2008/11/software.jpg"><img class="aligncenter size-medium wp-image-249" title="software" src="http://1up4dev.org/wp-content/uploads/2008/11/software-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Um verdadeiro desenvolvedor ágil deve se comprometer com o cliente, ouvir, entender e se envolver com suas necessidades para então sugerir uma solução simples, focada e que resolva o problema. Esta interação é muito importante e deve ser constante, pois o cliente passa a identificar <strong>o que</strong> realmente ele <strong>precisa</strong>, ou seja, o qual seu<strong> problema</strong>! Assim, começa a se concentrar em funcionalidades que realmente serão úteis e agregarão valor ao software e, consequentemente, ao negócio. Feedback é muito importante. O pessoal do Google sabe muito bem disso&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2008/11/foco-no-problema/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Arquiteto Cascateiro</title>
		<link>http://1up4dev.org/2008/11/arquiteto-cascateiro/</link>
		<comments>http://1up4dev.org/2008/11/arquiteto-cascateiro/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 09:44:44 +0000</pubDate>
		<dc:creator>Roger Leite</dc:creator>
				<category><![CDATA[cascata]]></category>
		<category><![CDATA[real world]]></category>
		<category><![CDATA[waterfall]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[pragmatic waterfall]]></category>

		<guid isPermaLink="false">http://1up4dev.org/?p=210</guid>
		<description><![CDATA[Definição do que é um Arquiteto Cascateiro. E leves dicas de como tentar transformá-lo num integrante da equipe de desenvolvimento. <a href="http://1up4dev.org/2008/11/arquiteto-cascateiro/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://1up4dev.org/2008/11/arquiteto-cascateiro/" data-text="Arquiteto Cascateiro" data-count="vertical" data-via="socializeWP" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://1up4dev.org/2008/11/arquiteto-cascateiro/&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px !important; height:65px;" allowTransparency="true"></iframe></div></div><blockquote><p>Este post é uma homenagem aos Arquitetos defensores do <em>waterfall</em>/cascata.</p></blockquote>
<p>Recentemente tive o <span style="text-decoration: line-through;">des</span>prazer de conhecer um arquiteto, é isso mesmo, aquele com certificado e tudo, com direito a broche da Sun em seu terninho. Aliás, certificado é um tema polêmico que eu não tenho uma opinião muito certa e/ou formada&#8230; bom, vou deixar esta parte para um próximo post, quem sabe.</p>
<p>Voltando ao assunto, hoje no fretado, comecei a pensar nas semelhanças que um arquiteto de sistemas (certificado que decorou patterns inutéis da Sun) tem com um arquiteto de obras. Só para deixar claro, na tabela abaixo estou usando dois estados: <em><span style="color: #ff0000;">FAIL</span></em> e <span style="color: #008000;">Ok</span>. Fail quer dizer que <span style="text-decoration: line-through;">vai dá merda</span> não vai dar certo e não tem jeito, caso queira uma definição mais formal, o <a href="http://en.wikipedia.org/wiki/Failure">wikipédia</a> ajuda, agora se você prefere imagens, o <a href="http://www.failblog.net/">Fail Blog</a> também serve.</p>
<div id="attachment_235" class="wp-caption aligncenter" style="width: 310px"><a href="http://1up4dev.org/wp-content/uploads/2008/11/soccer_fail.jpg"><img class="size-medium wp-image-235" title="Exemplo de FAIL" src="http://1up4dev.org/wp-content/uploads/2008/11/soccer_fail-300x201.jpg" alt="Exemplo de FAIL" width="300" height="201" /></a><p class="wp-caption-text">Exemplo de FAIL</p></div>
<table style="border: thin solid;" border="0">
<tbody>
<tr>
<th style="width: 60%;">Objetivos</th>
<th style="width: 20%;">Cascateiro</th>
<th style="width: 20%;">De Obras</th>
</tr>
<tr>
<td>Colocam as futuras &#8220;obras&#8221; no papel antes de começar.</td>
<td><span style="color: #ff0000;">FAIL</span></td>
<td><span style="color: #008000;">OK</span></td>
</tr>
<tr>
<td>Ainda no papel, colocam <strong>todas</strong> as necessidades do cliente, do início ao fim.</td>
<td><span style="color: #ff0000;">FAIL</span></td>
<td><span style="color: #008000;">OK</span></td>
</tr>
<tr>
<td>O cliente do Arq. de Obras sabe que depois que começar não pode mudar.</td>
<td><span style="color: #ff0000;">FAIL</span></td>
<td><span style="color: #008000;">OK</span></td>
</tr>
<tr>
<td>O arquiteto de Obras <strong>não</strong> define quais tipos de blocos, cimento e ferro a obra vai usar, o Cascateiro <strong>sim</strong>.</td>
<td><span style="color: #ff0000;">FAIL</span></td>
<td><span style="color: #008000;">OK</span></td>
</tr>
</tbody>
</table>
<p>Parei a tabela por aqui pois já dá pra saber que o <span style="color: #ff0000;">FAIL</span> tende a infinito né.<br />
Pergunta: o que ambos arquitetos estão fazendo!?!<br />
Resposta educada: Estão <strong>fechando o escopo</strong> do projeto.</p>
<div id="attachment_220" class="wp-caption alignleft" style="width: 237px"><a href="http://1up4dev.org/wp-content/uploads/2008/11/construcao-crea.jpg"><img class="size-medium wp-image-220" title="construcao de arquiteto cascateiro" src="http://1up4dev.org/wp-content/uploads/2008/11/construcao-crea-300x225.jpg" alt="Arquiteto Cascateiro trabalhando ..." width="227" height="171" /></a><p class="wp-caption-text">Arquiteto Cascateiro trabalhando ...</p></div>
<p>A resposta acima é uma <span style="text-decoration: underline;">frase chave</span> pra você ter certeza que vive num projeto waterfall cascateiro. Fechar o escopo do projeto inteiro deve ser muito bom para o arquiteto de obras, já para um sistema, o efeito é contrário. Acredito muito na teoria que <a href="http://gc.blog.br/2008/07/20/cuidando-para-que-o-software-nao-apodreca/">desenvolver software não é construir prédios</a>. Livros de renome como <a href="http://1up4dev.org/2008/05/the-pragmatic-programmer-no-ambiente-waterfall-e-claro/">Pragmatic Programmer</a> citam isso.</p>
<p>Sei que este tema de construção civil já está batido. Comecei a escrever este post ao mesmo tempo que o Sr. Panachi publicou o <a href="http://1up4dev.org/2008/10/software-e-sobre-investimento/">anterior</a>, e com a idéia de ficar menos repetitivo, já vou <em>linkar</em> as sugestões dos nossos incríveis leitores:</p>
<ul>
<li>O <a href="http://www.mouseoverstudio.com/blog/">Diego Carrion</a> (grande peruano! <img src='http://1up4dev.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) cita este <a href="http://agiletips.blogspot.com/2008/07/agile-bridge-analogy.html"><em>link</em></a>, que fala que a engenharia civil também consegue ser ágil em alguns casos.</li>
<li>O <a href="http://witaro.wordpress.com/">Witaro</a>, fez um ótimo post &#8220;<a href="http://witaro.wordpress.com/2008/08/11/desenvolvendo-software-como-uma-rock-band/">Desenvolvendo software como uma Rock Band</a>&#8221; que quebra a barreira da analogia com a engenharia civil. Cara, continue escrevendo, porque a sua visão é muito legal!</li>
</ul>
<p>Bom, agora que acabou o desabafo, vamos as possíveis soluções. O que fazer com o Arquiteto Cascateiro?</p>
<p>Acho que a primeira coisa seria conscientizá-lo de que ele não é o <a href="http://pt.wikipedia.org/wiki/Oscar_Niemeyer">Oscar Niemeyer</a> e que a primeira versão de seu software nunca será completa de uma vez. Você deve conversar sobre iterações com ele e mostrar que o software deve evoluir conforme o cliente também evolui nas descobertas das suas reais necessidades. Sei que o post já está cheio de <em>links</em>, mas este post do Phillip Calçado, <a href="http://blog.fragmental.com.br/2008/08/09/analista-pedreiro/">Analista Pedreiro</a>, resume bem o que quero dizer.</p>
<p><strong>Arquiteto</strong>, este nome ou termo ou cargo ou seja-lá-o-que-for, é coisa de modelo <em>waterfall</em>/cascata. Numa equipe, não deve haver distinção desta maneira. Todos programam, modelam, configuram, trabalham no Banco de Dados quando necessário, ou seja, ninguém deve exercer um papel único. Papéis únicos, representam <a href="http://1up4dev.org/2008/11/os-guardioes-da-cascata/">Guardiões</a> que defendem somente seus interesses e não trabalham em pró da equipe/cliente/projeto.</p>
<p>O Arquiteto deve programar, colocar a mão na massa, assim como toda a equipe, pois UML, Caso de Uso, Diagrama de Sequência, etc. <strong>sempre compilam</strong>! Muito diferente na vida real, onde muitas vezes você é obrigado a implementar uma coisa diferente e torta para acompanhar estes documentos cascateiros. Caso você seja obrigado a gerar a documentação fútil acima, pense em algo que seja automatizado após você ter programado e testado, com certeza você será umas cinco vezes mais produtivo.</p>
<p>E por último e não menos importante, a equipe (inclusive o Arquiteto) tem que conhecer o negócio que implementa. Quando se inicia um novo projeto ou até mesmo decidem reestruturar um existente, o arquiteto cascateiro <span style="text-decoration: line-through;">sempre</span> prioriza novas tecnologias e frameworks, o que na maioria das vezes, não é necessário. Novos projetos ou <em>refactoring</em> em existentes, devem ter um único prioritário objetivo: <a href="http://pt.wikipedia.org/wiki/Keep_it_Simple_Stupid">KISS</a>. Com esta prioridade em mente, novas tecnologias e frameworks serão escolhidos naturalmente, e não somente usar porque é a última moda no estilo SunTechDays.</p>
<p>E vocês leitores?! Sofrem ou já sofreram muito com Arquitetos Cascateiros!?!</p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2008/11/arquiteto-cascateiro/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<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[TweetSe 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 &#8230; <a href="http://1up4dev.org/2008/11/os-guardioes-da-cascata/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://1up4dev.org/2008/11/os-guardioes-da-cascata/" data-text="Os guardiões da cascata" data-count="vertical" data-via="socializeWP" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://1up4dev.org/2008/11/os-guardioes-da-cascata/&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px !important; height:65px;" allowTransparency="true"></iframe></div></div><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>Software é sobre investimento</title>
		<link>http://1up4dev.org/2008/10/software-e-sobre-investimento/</link>
		<comments>http://1up4dev.org/2008/10/software-e-sobre-investimento/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 03:00:33 +0000</pubDate>
		<dc:creator>Rodrigo Panachi</dc:creator>
				<category><![CDATA[processos]]></category>
		<category><![CDATA[real world]]></category>
		<category><![CDATA[agilidade]]></category>

		<guid isPermaLink="false">http://1up4dev.wordpress.com/?p=40</guid>
		<description><![CDATA[TweetAtualmente, desenvolver software não é uma atividade barata. O custo com os profissionais envolvidos, equipamentos, licenças de software (não é o caso se a equipe utiliza software livre), entre outros recursos, para um software que demore em média três meses &#8230; <a href="http://1up4dev.org/2008/10/software-e-sobre-investimento/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://1up4dev.org/2008/10/software-e-sobre-investimento/" data-text="Software é sobre investimento" data-count="vertical" data-via="socializeWP" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://1up4dev.org/2008/10/software-e-sobre-investimento/&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>Atualmente, desenvolver software não é uma atividade barata. O custo com os profissionais envolvidos, equipamentos, licenças de software (não é o caso se a equipe utiliza software livre), entre outros recursos, para um software que demore em média três meses para ser desenvolvido com uma equipe de 5 pessoas sairá pelo mesmo valor de um carro <span style="text-decoration: line-through;">popular</span> de luxo, por exemplo. Já que o investimento é alto, é importante que o software seja confiável, durável, adaptável e principalmente que sua utilização/adoção, além de atender a um problema/necessidade, obtenha o <a href="http://pt.wikipedia.org/wiki/Retorno_sobre_investimento" target="_blank">retorno sobre o investimento</a>.</p>
<p>Para uma empresa que desenvolve software por encomenda, o retorno sobre o investimento (equipe, equipamentos, etc) é o lucro obtido com a venda do software através de uma conta muito simples: investimento &#8211; custo = lucro. Desta forma, qualquer CEO sabe que quanto menor for o &#8220;custo&#8221;, maior será o &#8220;lucro&#8221;. É aqui que mora o perigo!</p>
<p>Uma das falsas ilusões das metodologias baseadas no waterfall é o controle sobre o processo. Ou seja, com um processo bem <span style="text-decoration: line-through;">engessado</span> definido, o &#8220;motor&#8221; da empresa giraria de modo uniforme, sendo controlável e mensurável. Uma vez que esse mecanismo esteja funcionando, pode-se conter gastos contratando-se mão-de-obra mais barata para fazer a parte repetitiva e &#8220;não-criativa&#8221; do processo, que já foi previamente &#8220;projetada&#8221; pelos analistas e arquitetos. Desta forma, concentra-se a maioria do esforço no projeto ou desenho do software, que é mais caro, para recuperar o &#8220;gasto&#8221; na fase de construção, que é mais barata.</p>
<div id="attachment_31" class="wp-caption aligncenter" style="width: 310px"><a href="http://1up4dev.org/wp-content/uploads/2008/06/waterfall_model.png"><img class="size-medium wp-image-31" title="Waterfall Model" src="http://1up4dev.org/wp-content/uploads/2008/06/waterfall_model-300x230.png" alt="Waterfall Model" width="300" height="230" /></a><p class="wp-caption-text">Modelo Waterfal: etapas bem definidas </p></div>
<p>Este método funciona muito bem&#8230; na <a href="http://pt.wikipedia.org/wiki/Engenharia_civil" target="_self">engenharia civil</a>, onde os problemas são bem definidos (a necessidade de atravessar um rio, por exemplo), a solução <strong>deve</strong> ser projetada (uma ponte) e executada por especialistas em construção (pedreiros). O esforço pode ser mensurado e cobrado do cliente. Dificilmente ocorrerão mudanças no projeto (ao invés de ponte, decidem mudar para um teleférico, por exemplo) e o tempo de construção pode ser diminuído aumentando-se a mão-de-obra porém permanecendo o mesmo custo no final do processo.</p>
<p>Infelizmente com software <a href="http://wordaligned.org/articles/why-software-development-isnt-like-construction" target="_blank">não é bem assim</a>. O desenvolvimento de software é (ou deve ser) um processo criativo e <a href="http://pt.wikipedia.org/wiki/Desenvolvimento_iterativo_e_incremental" target="_blank">iterativo</a>, mais parecido com <a href="http://gc.blog.br/2008/07/20/cuidando-para-que-o-software-nao-apodreca/" target="_blank">jardinagem</a>. O problema/necessidade dificilmente é bem definido (dificuldade de controlar as vendas pela internet, por exemplo) e os requisitos geralmente mudam o tempo todo. Os clientes normalmente não sabem exatamente quais são suas necessidades e precisam &#8220;aprender&#8221; enquanto o software vai sendo desenvolvido, atendendo às necessidades aos poucos.</p>
<div id="attachment_208" class="wp-caption aligncenter" style="width: 310px"><a href="http://1up4dev.org/wp-content/uploads/2008/10/iterating.jpg"><img class="size-medium wp-image-208" title="Iterativo" src="http://1up4dev.org/wp-content/uploads/2008/10/iterating-300x80.jpg" alt="Cliente não sabe exatamente o que quer" width="300" height="80" /></a><p class="wp-caption-text">Clientes não sabem exatamente o que querem no início do projeto</p></div>
<p>Voltando ao assunto do post, para o cliente o que mais importa é que o software atenda suas necessidades (mesmo que ele ainda não saiba exatamente quais são). O retorno sobre o investimento começa a ficar evidente quando o cliente utiliza o software e obtém proveito dele, por exemplo, tendo um maior controle e organização de suas vendas pela internet. Neste caso o software é um meio pelo qual o cliente consegue resolver seus problemas ou atender suas necessidades. Isto o software não faz por sí só.</p>
<p>Para uma empresa que desenvolve software, o retorno sobre o investimento é obtido durante o desenvolvimento do software, guiado por <a href="http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema" target="_blank">práticas</a> e ferramentas que fornecem velocidade e confiabilidade ao software, deixando-o adequado às necessidades do cliente, estável e fácil de ser mantido. Para obter estas características, a equipe deve estar muito alinhada e ter a experiência e habilidade técnica necessária para evitar trabalho desnecessário e focar na resolução do problema, colaborando com o cliente para fornecer constantemente software funcionando e que agrega valor ao negócio. Ou seja, devem seguir o <a href="http://agilemanifesto.org/" target="_blank">manifesto ágil</a>!</p>
<p>Atualmente, as empresas de desenvolvimento de software mais bem sucedidas utilizam metodologias ágeis, ou seja, pessoas ao invés de processos. O investimento em um bom profissional é recompensado pela sua experiência que pode economizar muito tempo e dinheiro ao longo de um projeto. Bons profissionais, motivados, utlizando metodologias ágeis são mais produtivos, ou seja, valem o investimento.</p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2008/10/software-e-sobre-investimento/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A perpetuação da espécie</title>
		<link>http://1up4dev.org/2008/10/a-perpetuacao-da-especie/</link>
		<comments>http://1up4dev.org/2008/10/a-perpetuacao-da-especie/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 02:48:18 +0000</pubDate>
		<dc:creator>Humberto</dc:creator>
				<category><![CDATA[questionamento]]></category>
		<category><![CDATA[real world]]></category>
		<category><![CDATA[waterfall]]></category>

		<guid isPermaLink="false">http://1up4dev.org/?p=200</guid>
		<description><![CDATA[TweetNa semana passada uma desconfortável discussão me pôs a pensar sobre os obstáculos culturais na aceitação de princípios ágeis no desenvolvimento de sistemas. A discussão ocorreu quando um amigo meu comentou comigo a respeito de uma metodologia que ele pretende &#8230; <a href="http://1up4dev.org/2008/10/a-perpetuacao-da-especie/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://1up4dev.org/2008/10/a-perpetuacao-da-especie/" data-text="A perpetuação da espécie" data-count="vertical" data-via="socializeWP" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://1up4dev.org/2008/10/a-perpetuacao-da-especie/&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>Na semana passada uma desconfortável discussão me pôs a pensar sobre os obstáculos culturais na aceitação de princípios ágeis no desenvolvimento de sistemas. A discussão ocorreu quando um amigo meu comentou comigo a respeito de uma metodologia que ele pretende aplicar em um projeto no qual está envolvido. Fiz questão que ouvi-lo com atenção, pois ele, além de ser uma pessoa da minha consideração, possui um background de sistemas muito diferente do meu. O que permite tentar entender outros lados de problemas em comum.</p>
<p>Logo nos primeiros instantes da conversa, percebi que a metodologia que ele estava a me explicar era nada menos que algo derivado de waterfall, onde, basicamente, um &#8220;sistema&#8221; é definido, por sábios analistas, em um conjunto de diagramas diversos, para depois passar por &#8220;estágios&#8221; de aprovações e assinaturas mil, e então finalmente cair nas mãos sujas de pizza dos programadores. Documentos. Documentos e mais documentos. Tudo para garantir que não houvesse mal-entendidos, nenhum &#8220;re-trabalho&#8221;, nenhuma oportunidade de &#8220;o cliente&#8221; pedir mais do que podia ou mudar de idéia depois de todos os acordos &#8212; simplesmente, a metodologia era sinônimo de controle total e absoluto sobre todas as &#8220;fases&#8221; de um projeto.</p>
<p>Eu não podia ouvir tudo aquilo e ficar calado. A primeira pergunta que eu fiz foi: quais problemas essa idéia vai combater? Ou, pra ser mais sincero com o eventual leitor, perguntei que problemas, <strong>observados na prática</strong>, seriam resolvidos com a metodologia. Sim, na prática, pois durante a conversa ele havia dado exemplos bastante hipotéticos e superficiais de problemas. Recebi como resposta um olhar de espanto, como se eu tivesse perguntado se a Lua era feita de queijo Minas. Deveria ser óbvio para mim quais eram os problemas! Na raiz de todos os males está a informalidade total no andamento dos projetos! Cliente conversando direto com programador! Sistema que foge às especificações! Cronogramas que não são cumpridos! Programador dando uma de arquiteto! E outras na mesma linha.</p>
<p>Diante de tantas certezas, vi que a conversa já não ia dar em nada, mas continuei o debate. Respondi que, no projeto em que eu estou trabalhando, uma situação de caos total foi revertida sem que a equipe tivesse que conversar em UML, sem que colocássemos travas no diálogo com o cliente&#8230; mas com muito, muito &#8220;re-trabalho&#8221;. Disse ainda que, do meu ponto de vista, os problemas eram de fundo humano: equipe mal qualificada e expectativas amadoras dos assim chamados responsáveis. E ainda afirmei que não acreditava em especificação perfeita, primeiro porque especificações e diagramas são feitos por seres humanos (ainda que na qualidade de iluminados analistas), e segundo porque software se trata de algo mutável pela própria natureza. (Ou então seria chamado &#8220;hardware&#8221;.) Não falei em termos tão professorais assim, ou ao menos, procurei ser humilde nas colocações.</p>
<p>Continuei dizendo que, por causa desse fundamento humano, a solução dos problemas, se é que existe, passaria por: apoiar o talento das pessoas, não ser reativo nas negociações, recrutar direito, apostar em um gerenciamento mais adaptativo (em nenhum momento usei a palavra &#8220;ágil&#8221;) de projetos. Certamente, soluções bem menos simples do que dar ordens de se produzir e seguir diagramas ao pé da letra. (Como se houvesse leitura &#8220;ao pé da letra&#8221;&#8230;)</p>
<p>Pensei que possuía alguma credibilidade, mas acho que a essa altura da conversa o meu amigo já não me via como desenvolvedor experiente, e sim como um encarregado que tinha ido trocar a água do bebedouro perto do qual estávamos e resolveu dar palpite sobre esse troço de sistemas. Tive que ouvir que eu estava &#8220;totalmente errado&#8221;, que esse papo de dar valor às pessoas era &#8220;a causa de nada funcionar&#8221;, que as empresas precisavam reter conhecimento através de documentação (no que ele está certo), e que &#8220;muitas empresas grandes&#8221; estavam trabalhando com essa metodologia. (Não citou as empresas e eu não questionei pra não ficar chato.)</p>
<p>O papo acabou logo depois, mas se alguém ainda está lendo e achou que brigamos, não foi o que aconteceu. Continuamos amigos igual antes. Mas dificilmente volto a ter uma conversa com ele sobre esses assuntos. Existe uma diferença cultural muito grande entre nós dois no que diz respeito a software, e é esse o assunto do post!</p>
<p>Em toda a minha carreira eu apostei na minha capacidade de resolver coisas, no meu domínio sobre as questões relevantes aos trampos com os quais me envolvi, na confiança que eu podia estabelecer com as pessoas em volta e, reciprocamente, na confiança que essas pessoas podiam ter em mim. Eu não sei trabalhar de outro jeito e nem quero mudar, pois várias vezes tive o prazer de ver as coisas funcionando/mudando justamente pelas minhas atitudes. Uma metodologia na base do diagrama, na base do analista/deus e programador/vassalo não é só inútil pra mim como simplesmente não me oferece condições de trabalho.</p>
<p>Por outro lado, não me lembro de ter visto esse meu amigo falar com orgulho a respeito de algum projeto do qual tenha participado. Percebo que sua carreira foi marcada por muito trabalho, muito esforço com equipes ruins, muita pedrada de cliente folgado. Chefes ignorantes. Tarefas monótonas. Isso tudo, sem a contrapartida de gostar do que faz, nem de conseguir se motivar observando os próprios sucessos, pode facilmente, na minha opinião, produzir um semeador de waterfall, como meu amigo parece ter se tornado. Para um perpetuador de waterfall, um sistema é uma coisa plana, composta de tarefas registradas em alguma linguagem esquemática pobre, que será transcrita para o computador por pessoas-robôs cujo maior erro é, eventualmente, pensar.</p>
<p>Uma coisa plana sem espaço para a confiança, nem para a imaginação &#8212; origens de todos os males, pelo bate-papo ao pé do bebedouro.</p>
<p>(Parte da motivação para este post veio de &#8220;<a id="z5o_" title="What are the right conditions for agile adoption?" href="http://www.agilemanagement.net/Articles/Weblog/Whataretherightconditions.html">What are the right conditions for agile adoption?</a>&#8220;, de David Anderson.)</p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2008/10/a-perpetuacao-da-especie/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Guerrilha agile: a motivação</title>
		<link>http://1up4dev.org/2008/06/guerrilha-agile-parte-1/</link>
		<comments>http://1up4dev.org/2008/06/guerrilha-agile-parte-1/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 03:58:51 +0000</pubDate>
		<dc:creator>Humberto</dc:creator>
				<category><![CDATA[cascata]]></category>
		<category><![CDATA[processos]]></category>
		<category><![CDATA[waterfall]]></category>
		<category><![CDATA[devaneios]]></category>

		<guid isPermaLink="false">http://1up4dev.wordpress.com/?p=41</guid>
		<description><![CDATA[TweetEu preciso desenvolver uma idéia que vem me provocando ultimamente. Na verdade é menos uma idéia do que um reflexo da situação desoladora em que a maioria de nós está. Em se tratando de 1up4dev, nem preciso dizer que a &#8230; <a href="http://1up4dev.org/2008/06/guerrilha-agile-parte-1/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://1up4dev.org/2008/06/guerrilha-agile-parte-1/" data-text="Guerrilha agile: a motivação" data-count="vertical" data-via="socializeWP" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://1up4dev.org/2008/06/guerrilha-agile-parte-1/&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>Eu preciso desenvolver uma idéia que vem me provocando ultimamente. Na verdade é menos uma idéia do que um reflexo da situação desoladora em que a maioria de nós está.</p>
<p>Em se tratando de 1up4dev, nem preciso dizer que a situação a que me refiro é a de quase inevitabilidade do waterfall, em que estamos tão engolidos pelo &#8220;sistema&#8221; que, aparentemente, só nos resta lamentar, se frustrar e eventualmente se acostumar com tudo. Não deduzo, porém, que esses são estágios de uma manifestação de bunda-molice. Do contrário, seria suficiente encerrar o assunto com algo do tipo <em>&#8220;ou somos parte da solução ou do problema&#8221;</em> (doutrina Bush, em pleno 2008). E ainda assim, sem que ao menos sejam esboçados tanto &#8220;o problema&#8221; como &#8220;a solução&#8221;, esse raciocínio binário não serviria para nada.</p>
<p>Antes de continuar com a minha idéia, gostaria de escrever rapidamente sobre o panorama que se desenha para o futuro. Especificamente, o nosso futuro. Nem sempre lembramos dele, mas é lá que vamos viver em breve. E sem querer parecer auto-ajudesco, digo que o futuro do desenvolvimento de software está nas nossas mãos &#8212; e não de forma indireta ou abstrata. É lógico: as mãos que hoje controlam o &#8220;sistema&#8221; vão se aposentar daqui uns anos, e as nossas vão substituí-las. Nessa seqüência, é possível imaginar que, em breve, estaremos perpetuando o waterfall. Pois nesse dia nós é que seremos o status quo, e o status quo, para ser digno do nome, não quer saber de mudar nada.</p>
<p>Software já é estratégico há algum tempo e ocupará cada vez mais espaço na vida das pessoas, das empresas e dos governos. Que qualidade de software será oferecida quando nossa geração estiver no comando? Imagine o alto custo financeiro e social de se manter na periferia de TI. Sub-desenvolvimento passa a ter um novo significado, não é? Temos que assumir a responsabilidade, até porque ela pode significar a existência dos nossos empregos. Ou você vai preferir usar um software made in India?</p>
<p>Nada contra a Índia, claro. Mas o alerta já tinha sido dado por <a href="http://www.agilemanagement.net/" target="_blank">David Anderson</a> no comecinho do livro <a href="http://books.google.com.br/books?id=hawMF31KCRsC&amp;dq=david+anderson+agile+management&amp;pg=PP1&amp;ots=Zj4cGr8IU-&amp;sig=HQVvzFyMrtJ3jPR5TUyqYOYBuFo&amp;hl=pt-BR&amp;prev=http://www.google.com.br/search%3Fq%3Ddavid%2Banderson%2Bagile%2Bmanagement%26ie%3Dutf-8%26oe%3Dutf-8%26rls%3Dorg.mozilla:en-US:official%26client%3Dfirefox-a&amp;sa=X&amp;oi=print&amp;ct=title&amp;cad=one-book-with-thumbnail" target="_blank">Agile Management for Software Engineering</a>. Abaixo traduzo livremente um trecho cujo original você encontra na página xxvi do livro:</p>
<blockquote><p>Se a atividade intelectual de software tiver que permanecer nos países desenvolvidos e se os engenheiros de software americanos, europeus e japoneses quiserem manter o alto padrão de vida ao qual se acostumaram, eles devem aumentar sua competitividade. Há um mercado global de desenvolvimento de software, o que encolheu a distância entre um cliente na América do Norte e um fornecedor na China ou na Índia.</p></blockquote>
<p>Esse medo do sr Anderson tem que ser nosso também (exceto que nós não temos como rebaixar nosso &#8220;alto padrão de vida&#8221;). Sabemos que precisamos melhorar, e muito, a nossa competitividade, e não só individualmente. Agora, a grande questão é: como vamos fazer isso, se não temos suporte para viabilizar novas formas de trabalho sem dispararmos o sinal de pânico no chefe, no cliente?</p>
<p>Pretendo desenvolver a minha sugestão em alguns posts, seguindo alguns princípios:</p>
<ol>
<li>&#8220;Mudança&#8221; é definida como o amplo abandono da mentalidade waterfall no mercado de TI.</li>
<li>Você acredita na mudança e é o maior interessado nela, pois ela representa o futuro que <strong>você</strong> quer.</li>
<li>O risco da mudança é percebido com mais intensidade quanto maior é o poder de quem a observa.</li>
<li>O benefício da mudança é percebido com menor intensidade quanto maior é o poder de quem a observa.</li>
<li>A mudança pode ocorrer de baixo para cima na cadeia de poder.</li>
</ol>
<p>No próximo post, pretenderei detalhar melhor os efeitos desses cinco pontos. Dali em diante, dificilmente irei sugerir uma ação coordenada e planejada &#8212; nada menos ágil que isso! Prefiro apostar no desenrolar natural das coisas, desde que os princípios sejam válidos. No mínimo, vamos avançar o debate. Tomara que eu não escreva muita besteira, e espero ser corrigido a qualquer momento.</p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2008/06/guerrilha-agile-parte-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parem o mundo que eu quero descer !</title>
		<link>http://1up4dev.org/2008/06/parem-o-mundo-que-eu-quero-descer/</link>
		<comments>http://1up4dev.org/2008/06/parem-o-mundo-que-eu-quero-descer/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 22:00:41 +0000</pubDate>
		<dc:creator>Roger Leite</dc:creator>
				<category><![CDATA[cascata]]></category>
		<category><![CDATA[processos]]></category>
		<category><![CDATA[real world]]></category>
		<category><![CDATA[waterfall]]></category>
		<category><![CDATA[devaneios]]></category>
		<category><![CDATA[paranoia]]></category>

		<guid isPermaLink="false">http://1up4dev.wordpress.com/?p=33</guid>
		<description><![CDATA[TweetFalta pessoal qualificado em TI, diz Assespro http://www.guj.com.br/posts/list/15/92783.java#497015 Esta discussão está boa, e no meio das chamas levei um &#8220;impacto&#8221; ao ler a frase abaixo. louds wrote: [...] Não usem a incompetência alheia como desculpa. Se está ruim e você &#8230; <a href="http://1up4dev.org/2008/06/parem-o-mundo-que-eu-quero-descer/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://1up4dev.org/2008/06/parem-o-mundo-que-eu-quero-descer/" data-text="Parem o mundo que eu quero descer !" data-count="vertical" data-via="socializeWP" >Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://1up4dev.org/2008/06/parem-o-mundo-que-eu-quero-descer/&amp;layout=box_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px !important; height:65px;" allowTransparency="true"></iframe></div></div><p><span class="maintitle"><span class="maintitle">Falta pessoal qualificado em TI, diz Assespro</span></span></p>
<p><a href="http://www.guj.com.br/posts/list/15/92783.java#497015" target="_blank">http://www.guj.com.br/posts/list/15/92783.java#497015</a></p>
<p>Esta discussão está boa, e no meio das chamas levei um &#8220;impacto&#8221; ao ler a frase abaixo.</p>
<p><span class="postbody"><strong><cite>louds wrote:</cite></strong> [...] Não usem a incompetência alheia como desculpa. Se está ruim e você não está ativamente combatendo isso, você é parte do problema e não da solução. [...]</span></p>
<p>Esta é uma das frases que eu deveria lembrar toda vez que começo a lamentar sobre o ambiente atual de trabalho, eu tento, me gerencio, mas confesso que é difícil.</p>
<p>Com o diabinho no ombro, logo ouvi um suspiro &#8230; Waterfall é bom ! Não questione &#8230; volte a codificar &#8230; Só que ao olhar pro lado, vi o meu poster do <a href="http://gc.blog.br/2007/09/13/dijkstra-is-watching/" target="_blank">Dijkstra</a> e voltei a realidade. Foi quando me perguntei:</p>
<p><strong>Por que é difícil combater o Waterfall ?!?</strong></p>
<p>Sei que esta é uma pergunta sem resposta direta e que depende de muitos fatores do seu ambiente de trabalho, mas eu numa análise fria e cruel respondo: <strong>Porque a maioria não sabe o que é waterfall</strong>.</p>
<p>No último ano da faculdade (cursei Sistemas de Informação), e sem brincadeira, nas aulas de Engenharia fui obrigado a decorar todas as fases, papéis, artefatos e etc. do <a href="http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process" target="_blank">RUP</a>, e pra fechar com chave de ouro, no segundo semestre veio o famoso Análise de Ponto de Função. Isso somente prova que já aprendemos errado, e sei que muita gente fica nisso. Se hoje tivesse a oportunidade de encontrar este mesmo professor, iria fazer a pergunta acima, e acrescentar com questionamentos como, engenharia de software não é eng. civil e neste processo todo quem está preocupado com o Retorno de Investimento do cliente !?!</p>
<p>Acredito que a chave para combater o Waterfall é conhecimento, temos que trazer questionamentos a quem está do lado e isso não é nada fácil, como você convence os mais de vinte desenvolvedores que estão ao seu redor que eles estão na Matrix !?! O que fazer com o pessoal que não quer sair da Matrix !?! <strong>O Waterfall é uma grande mãe que coloca muitas pessoas (Analistas, Desenvolvedores, Gerentes, Testers &#8230; etc.) numa casca irreal de proteção e que gera um ciclo vicioso que se auto sustenta.</strong></p>
<p>Neste exato momento que sou obrigado a concordar com o grande malucão <a href="http://pt.wikipedia.org/wiki/Raul_Seixas" target="_blank">Raulzito</a>:</p>
<blockquote><p>É pena não ser burro ! Não sofria tanto.</p></blockquote>
<p>As vezes me questiono sobre esta insistência em tentar mudar, nadar contra o Waterfall. Não seria melhor se &#8220;render&#8221; logo e entrar no jogo, sei lá, poder falar, &#8220;Caso de Uso não é comigo, só programação!&#8221; e ver que são 10 pras 18, desligar o computador e sair sem o minimo peso na consciência.</p>
<p>Por que numa equipe de dez desenvolvedores, só eu sinto falta de testes unitários !?! Fico indignado ao receber um caso de uso que não agrega nada ao cliente, somente foi &#8220;inventado&#8221; pra ser cobrado dele, e só eu que vejo isso !?! Sei lá, eu devo estar maluco mesmo com toda esta historia de desenvolvimento ágil, e se preocupar com ROI do cliente, apesar de achar uns <a href="http://queroseragil.wordpress.com/2007/11/08/apresentando-scrum-ao-gerente/trackback/" target="_blank">malucos</a> por ai que sofrem do mesmo &#8220;problema&#8221; que o meu.</p>
<p>Como no filme dos <a href="http://pt.wikipedia.org/wiki/300_(filme)" target="_blank">300</a>, tenho esperanças e sei que poucos enfrentarão muitos, e continuo minha batalha com o Waterfall.</p>
<p>Paz a Todos !</p>
<p>Obs: Sei que o RUP é mal usado, pois uma brecha dele é ser muito <a href="http://blog.fragmental.com.br/2008/02/11/generico/" target="_blank">genérico</a>, e isto cada vez se confirma mais, que o <a href="http://blog.aspercom.com.br/2008/04/23/so-agilidade-funciona/" target="_blank">modelo atual &#8220;tradicional&#8221; está falido</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://1up4dev.org/2008/06/parem-o-mundo-que-eu-quero-descer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

