<?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>CrisDev - Cristian Medeiros &#187; Engenharia de Software</title>
	<atom:link href="http://crisdev.eti.br/category/engenharia-de-software/feed" rel="self" type="application/rss+xml" />
	<link>http://crisdev.eti.br</link>
	<description>Desenvolvedor Web</description>
	<lastBuildDate>Sun, 03 Apr 2011 15:38:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Visão Ágil – Community Journal 02</title>
		<link>http://crisdev.eti.br/visao-agil-%e2%80%93-community-journal-02.html</link>
		<comments>http://crisdev.eti.br/visao-agil-%e2%80%93-community-journal-02.html#comments</comments>
		<pubDate>Thu, 15 Jul 2010 13:59:04 +0000</pubDate>
		<dc:creator>cristianmedeiros</dc:creator>
				<category><![CDATA[Engenharia de Software]]></category>
		<category><![CDATA[Metodologias]]></category>

		<guid isPermaLink="false">http://crisdev.eti.br/?p=91</guid>
		<description><![CDATA[Saiu a segunda edição do jornal do pessoal do Visão Ágil (ok, saiu faz um tempo já, mas eu só vi agora), segue o release: Acabamos de publicar a segunda edição do Visão Ágil – Community Journal, nessa edição, estamos trazendo as seguintes matérias: Manifesto de TI 2.0 Entrevista com Klaus Wuestefeld Um Passeio pelo [...]]]></description>
			<content:encoded><![CDATA[<p>Saiu a segunda edição do jornal do pessoal do Visão Ágil (ok, saiu faz um tempo já, mas eu só vi agora), segue o release:</p>
<blockquote>
<p style="text-align: justify;">Acabamos de publicar a segunda edição do  <a href="http://visaoagil.files.wordpress.com/2010/06/va-communityjournal-02.pdf" onclick="urchinTracker('/outgoing/visaoagil.files.wordpress.com/2010/06/va-communityjournal-02.pdf?referer=');">Visão  Ágil – Community Journal</a>, nessa edição, estamos trazendo as  seguintes matérias:</p>
<div id="_mcePaste" style="text-align: justify;">
<ul>
<li>Manifesto de TI 2.0</li>
<li>Entrevista com Klaus Wuestefeld</li>
<li>Um Passeio pelo Coaching</li>
<li>APLN chega ao Brasil</li>
<li>Por Que Usar “Story Points”? Parte 2</li>
<li>Os Desafios da Venda de Projetos com Agile</li>
</ul>
</div>
<p style="text-align: justify;">Uma grande novidade nessa edição, é que  mudamos o formato de apresentação dos textos. Essa mudança visa melhorar  a usabilidade de nosso material em PDF por nossos leitores on-line,  proporcionando a todos uma leitura mais agradável.</p>
<p style="text-align: justify;">Como queremos continuar melhorando nosso  trabalho, feedbacks, dúvidas ou sugestões serão super bem-vindos!</p>
<p style="text-align: justify;">Boa leitura!</p>
</blockquote>
<p style="text-align: justify;">Mais informações: http://visaoagil.wordpress.com/2010/06/21/visaoagil%E2%80%93communityjournal-02/</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://crisdev.eti.br/visao-agil-%e2%80%93-community-journal-02.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visão Ágil – Community Journal 01</title>
		<link>http://crisdev.eti.br/visao-agil-%e2%80%93-community-journal-01.html</link>
		<comments>http://crisdev.eti.br/visao-agil-%e2%80%93-community-journal-01.html#comments</comments>
		<pubDate>Tue, 09 Mar 2010 12:11:09 +0000</pubDate>
		<dc:creator>cristianmedeiros</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Engenharia de Software]]></category>
		<category><![CDATA[Metodologias]]></category>
		<category><![CDATA[desenvolvimento agil]]></category>

		<guid isPermaLink="false">http://crisdev.eti.br/?p=67</guid>
		<description><![CDATA[O pessoal do Visão Ágil saiu com uma nova publicação, bem interessante como sempre, no lugar da antiga Revista Visão Ágil, segue o release da edição: Visando ter um canal mais simples, direto e mais ágil (com entregas constantes), criamos um novo formato de disponibilização de notícias e conhecimentos para nossa comunidade de agilistas. Portanto, [...]]]></description>
			<content:encoded><![CDATA[<p>O pessoal do Visão Ágil saiu com uma nova publicação, bem interessante como sempre, no lugar da antiga Revista Visão Ágil, segue o release da edição:</p>
<blockquote><p>Visando ter um canal mais simples, direto e mais ágil (com entregas constantes), criamos um novo formato de disponibilização de notícias e conhecimentos para nossa comunidade de agilistas. Portanto, gostaria de apresentar a todos: o Visão Ágil Community Journal, que nessa primeira edição oferece aos nossos leitores as seguintes matérias:</p>
<ul>
<li>Agile Brazil 2010</li>
<li>Experiência Sicoob Brasil</li>
<li>Testes Unitários</li>
<li>Por que usar “story points”?</li>
<li>Coaching para Auto-Organizacão</li>
<li>Essência Ágil</li>
<li>Notícias</li>
</ul>
</blockquote>
<p>O download da edição pode ser realizado diretamente no site deles: http://visaoagil.wordpress.com/2010/03/08/visao-agil-community-journal-01/</p>
]]></content:encoded>
			<wfw:commentRss>http://crisdev.eti.br/visao-agil-%e2%80%93-community-journal-01.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encontro Ágil 2008</title>
		<link>http://crisdev.eti.br/encontro-agil-2008.html</link>
		<comments>http://crisdev.eti.br/encontro-agil-2008.html#comments</comments>
		<pubDate>Thu, 18 Sep 2008 19:07:15 +0000</pubDate>
		<dc:creator>cristianmedeiros</dc:creator>
				<category><![CDATA[Engenharia de Software]]></category>
		<category><![CDATA[desenvolvimento agil]]></category>
		<category><![CDATA[Metodologias]]></category>

		<guid isPermaLink="false">http://crisdev.eti.br/?p=35</guid>
		<description><![CDATA[11 de Outubro de 2008 IME-USP &#8211; Rua do Mat&#227;o, 1010 &#8211; Cidade Universit&#225;ria S&#227;o Paulo O Encontro &#193;gil &#233; um evento gratuito que reunir&#225;, por um dia inteiro, alguns dos principais nomes brasileiros do desenvolvimento &#225;gil de software. Dia 11 de Outubro est&#225; reservado para discuss&#245;es, trocas de experi&#234;ncias e palestras de especialistas em [...]]]></description>
			<content:encoded><![CDATA[<p>11 de Outubro de 2008</p>
<p></p>
<div id="data">
<p>IME-USP &#8211; Rua do Mat&atilde;o, 1010 &#8211; Cidade Universit&aacute;ria<br />
S&atilde;o Paulo</p>
</div>
<p>O <strong>Encontro &Aacute;gil</strong> &eacute; um evento <strong>gratuito</strong> que reunir&aacute;, por um dia inteiro, alguns dos principais nomes  				brasileiros do desenvolvimento &aacute;gil de software.</p>
<p>Dia 11 de Outubro est&aacute; reservado para discuss&otilde;es, trocas de experi&ecirc;ncias e palestras 				 de especialistas em Programa&ccedil;&atilde;o eXtrema, Scrum e nas metodologias mais produtivas do mercado.</p>
<p>Conhe&ccedil;a os profissionais que j&aacute; usam m&eacute;todos &aacute;geis. Junte-se ao grupo que est&aacute;  				revolucinando a maneira de produzir software. Participe das discuss&otilde;es mais atuais do 				 mercado, tire suas d&uacute;vidas e descubra como as t&eacute;cnicas &aacute;geis podem ajud&aacute;-lo a aumentar a  				produtividade da sua equipe e a qualidade do seu software.</p>
<p>Tudo isso, no <strong>Encontro &Aacute;gil 2008</strong>. N&atilde;o perca!</p>
<p>&nbsp;</p>
<p>mais informa&ccedil;&otilde;es: <a href="http://www.encontroagil.com.br/principal/home.jsf" target="_blank" onclick="urchinTracker('/outgoing/www.encontroagil.com.br/principal/home.jsf?referer=');">http://www.encontroagil.com.br/principal/home.jsf</a></p>
<p>Tags BlogBlogs: <a href="http://blogblogs.com.br/tag/%3Cspan%3Emetodologias" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/_3Cspan_3Emetodologias?referer=');"><span>metodologias</a>, <a href="http://blogblogs.com.br/tag/%3C%2Fspan%3E%3Cspan%3E+desenvolvimento+agil%3C%2Fspan%3E" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/_3C_2Fspan_3E_3Cspan_3E+desenvolvimento+agil_3C_2Fspan_3E?referer=');"></span><span> desenvolvimento agil</span></a>, <a href="http://blogblogs.com.br/tag/scrum" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/scrum?referer=');">scrum</a></p>
]]></content:encoded>
			<wfw:commentRss>http://crisdev.eti.br/encontro-agil-2008.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCRUM &#8211; Primeiros passos</title>
		<link>http://crisdev.eti.br/scrum-primeiros-passos.html</link>
		<comments>http://crisdev.eti.br/scrum-primeiros-passos.html#comments</comments>
		<pubDate>Wed, 23 Jul 2008 13:18:14 +0000</pubDate>
		<dc:creator>cristianmedeiros</dc:creator>
				<category><![CDATA[Engenharia de Software]]></category>
		<category><![CDATA[desenvolvimento agil]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://crisdev.eti.br/?p=23</guid>
		<description><![CDATA[Mudei de emprego recentemente, e tive a oportunidade de ter contato com o SCRUM, que curiosamente segue a fio a teoria que eu vinha acompanhando. Em resumo, o cliente ou o gerente (que &#233; chamado de PO &#8211; Project Owner) quer fazer algo, ent&#227;o ele separa isso em partes, algo como: criar base de dados, [...]]]></description>
			<content:encoded><![CDATA[<p>Mudei de emprego recentemente, e tive a oportunidade de ter contato com o SCRUM, que curiosamente segue a fio a teoria que eu vinha acompanhando.</p>
<p>Em resumo, o cliente ou o gerente (que &eacute; chamado de PO &#8211; Project Owner) quer fazer algo, ent&atilde;o ele separa isso em partes, algo como: criar base de dados, modelar classes, criar interface, desenvolver, etc (essas partes s&atilde;o chamadas hist&oacute;rias), ent&atilde;o em uma reuni&atilde;o com a equipe o PO diz o que precisa ser feito.</p>
<p>A equipe analisa cada hist&oacute;ria e o coordenador ou l&iacute;der de projeto (chamado de Scrum Master) solicita que cada membro da equipe diga o qu&atilde;o dificil isso &eacute; de fazer, cada equipe adota uma escala, no meu caso a escala foi a seguinte 0,1/2,2 e 3 para facil, 5 e 8 para dificuldade m&eacute;dia e acima disso dificil. Quando todos apontam a dificuldade que acham ser a da hist&oacute;ria, temos uma discuss&atilde;o entre os extremos, por exemplo, algu&eacute;m sozinho colocou 1/2 e outra pessoa sozinha colocou 3, temos dois pontos de vista extremos e precisamo entender o que levou a essa vis&atilde;o, ap&oacute;s uma r&aacute;pida argumenta&ccedil;&atilde;o das partes, todos os membro apontam a dificuldade novamente, e esse processo se repete at&eacute; chegarmos em valores coerentes.</p>
<p>Se analisarem, dessa forma, voc&ecirc; consegue segmentar as equipes para trabalharem com n&iacute;veis de dificuldades diferentes, tendo assim equipes que solucionam dificuldades de at&eacute; 3 pontos para tarefas f&aacute;ceis, equipes que trabalham com dificuldades acima de 5 pontos e assim por diante.</p>
<p>Ap&oacute;s a distribui&ccedil;&atilde;o de dificuldades entre as hist&oacute;rias, selecionamos as hist&oacute;rias que ser&atilde;o executadas at&eacute; a pr&oacute;xima reuni&atilde;o (isso &eacute; chamado de sprint), as reuni&otilde;es podem ter intervalos diferentes dependendo da equipe, no meu caso temos sprints de 15 dias, ent&atilde;o escolhes as hist&oacute;rias que iremos trabalhar pelos pr&oacute;ximos 15 dias. Podemos saber quantos pontos uma equipe &eacute; capaz de trabalhar por sprint, assim conseguimos medir a produtividade em rela&ccedil;&atilde;o a dificuldade da equipe.</p>
<p>Finalizada a etapa de separa&ccedil;&atilde;o das hist&oacute;rias por dificuldade, reunimos a equipe sem o PO e dividimos as hist&oacute;rias em tarefas. E realizamos um processo semelhante, por&eacute;m indicando quanto tempo leva para realizar cada tarefa e n&atilde;o a dificuldade, assim, cada historia pode ter n tarefas, no entanto, podemos identificar se houve alguma falha no planejamento, caso hist&oacute;rias com dificuldades semelhantes tenham tempos de execu&ccedil;&atilde;o muito diferentes.</p>
<p>&Eacute; um resumo do que vi at&eacute; agora, quando tiver mais experi&ecirc;ncia com isso eu passo mais detalhes.</p>
<p>Para saber mais:</p>
<ul>
<li><a href="http://crisdev.eti.br/metodologias-ageis-de-desenvolvimento.html">Metodologias &aacute;geis de desenvolvimento</a></li>
<li><a href="http://    * http://gcirne.wordpress.com/tag/scrum/" target="_blank" onclick="urchinTracker('/outgoing/http_//gcirne.wordpress.com/tag/scrum/?referer=');">http://gcirne.wordpress.com/tag/scrum/</a></li>
</ul>
<p>&nbsp;<p>Tags BlogBlogs: <a href="http://blogblogs.com.br/tag/scrum" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/scrum?referer=');">scrum</a>, <a href="http://blogblogs.com.br/tag/desenvolvimento+%26aacute%3Bgil" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/desenvolvimento+_26aacute_3Bgil?referer=');">desenvolvimento &aacute;gil</a></p>
]]></content:encoded>
			<wfw:commentRss>http://crisdev.eti.br/scrum-primeiros-passos.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Metodologias ágeis de desenvolvimento</title>
		<link>http://crisdev.eti.br/metodologias-ageis-de-desenvolvimento.html</link>
		<comments>http://crisdev.eti.br/metodologias-ageis-de-desenvolvimento.html#comments</comments>
		<pubDate>Wed, 11 Jun 2008 13:15:19 +0000</pubDate>
		<dc:creator>cristianmedeiros</dc:creator>
				<category><![CDATA[Engenharia de Software]]></category>
		<category><![CDATA[Metodologias]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://crisdev.eti.br/?p=16</guid>
		<description><![CDATA[&#160; Extra&#237;do integralmente de:http://simplus.com.br/artigos/a-nova-metodologia/ &#160; A Nova Metodologia Martin Fowler &#218;ltima Atualiza&#231;&#227;o Significativa: Abril de 2003 Tradu&#231;&#227;o em portugu&#234;s: Luciano Passuello, Dezembro de 2005 Texto Original: The New Methodology Nos &#250;ltimos anos, vem crescendo rapidamente o interesse em metodologias &#225;geis (ou &#34;leves&#34;). Tamb&#233;m caracterizadas como um ant&#237;doto contra a burocracia ou uma licen&#231;a para &#34;hackear&#34;, [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Extra&iacute;do integralmente de:<a href="http://simplus.com.br/artigos/a-nova-metodologia/" target="_blank" onclick="urchinTracker('/outgoing/simplus.com.br/artigos/a-nova-metodologia/?referer=');">http://simplus.com.br/artigos/a-nova-metodologia/</a></p>
<p>&nbsp;</p>
<h1>A Nova Metodologia</h1>
<h2><a href="http://www.martinfowler.com/" onclick="urchinTracker('/outgoing/www.martinfowler.com/?referer=');">Martin Fowler</a></h2>
<p>&Uacute;ltima Atualiza&ccedil;&atilde;o Significativa: <a href="#version-list">Abril de 2003</a></p>
<p>Tradu&ccedil;&atilde;o em portugu&ecirc;s: <a href="http://litemind.com" onclick="urchinTracker('/outgoing/litemind.com?referer=');">Luciano Passuello</a>, Dezembro de 2005</p>
<p>Texto Original: <a href="http://martinfowler.com/articles/newMethodology.html" onclick="urchinTracker('/outgoing/martinfowler.com/articles/newMethodology.html?referer=');">The New Methodology</a></p>
<p><em>Nos &uacute;ltimos anos, vem crescendo rapidamente o interesse em metodologias &aacute;geis (ou &quot;leves&quot;). Tamb&eacute;m caracterizadas como um ant&iacute;doto contra a burocracia ou uma licen&ccedil;a para &quot;hackear&quot;, estas metodologias despertaram o interesse em toda a extens&atilde;o da ind&uacute;stria do software. Neste artigo, eu exploro os motivos para as metodologias &aacute;geis, focando n&atilde;o tanto em sua leveza, mas sim em sua natureza adapt&aacute;vel e na sua tend&ecirc;ncia em colocar as pessoas em primeiro lugar. Eu tamb&eacute;m apresento um sum&aacute;rio e refer&ecirc;ncias aos processos nesta linha de pensamento ainda considero os fatores que deveriam influenciar sua decis&atilde;o sobre trilhar ou n&atilde;o este novo caminho.</em></p>
<ul>
<li><a href="#N58">Do Nada, ao Monumental, ao &Aacute;gil</a></li>
<li><a href="#N85">Predeterminante contra Adaptativo</a>
<ul>
<li><a href="#N8A">Separa&ccedil;&atilde;o de Design e Constru&ccedil;&atilde;o</a></li>
<li><a href="#NCE">A Imprevisibilidade dos Requisitos</a></li>
<li><a href="#NEF">A Previsibilidade &eacute; Imposs&iacute;vel?</a></li>
<li><a href="#N104">Controlando um Processo Imprevis&iacute;vel &#8211; Itera&ccedil;&otilde;es</a></li>
<li><a href="#N119">O Cliente Adapt&aacute;vel</a></li>
</ul>
</li>
<li><a href="#N138">Colocando as Pessoas em Primeiro Lugar</a>
<ul>
<li><a href="#N140">Conecte Unidades de Programa&ccedil;&atilde;o Compat&iacute;veis</a></li>
<li><a href="#N167">Programadores s&atilde;o Profissionais Respons&aacute;veis</a></li>
<li><a href="#N179">Gerenciando um Processo Orientado a Pessoas</a></li>
<li><a href="#N197">A Dificuldade da Medi&ccedil;&atilde;o</a></li>
<li><a href="#N1B3">O Papel da Lideran&ccedil;a de Neg&oacute;cio</a></li>
</ul>
</li>
<li><a href="#N1C6">O Processo Auto-Adaptativo</a></li>
<li><a href="#N1F0">As Metodologias</a>
<ul>
<li><a href="#N1F8">XP (Programa&ccedil;&atilde;o Extrema)</a></li>
<li><a href="#N233">A Fam&iacute;lia Crystal de Cockburn</a></li>
<li><a href="#N258">C&oacute;digo Aberto</a></li>
<li><a href="#N276">Desenvolvimento de Software Adaptativo de Highsmith</a></li>
<li><a href="#N2A3">Scrum</a></li>
<li><a href="#N2CC">Desenvolvimento Orientado a Funcionalidades</a></li>
<li><a href="#N307">DSDM (M&eacute;todo para Desenvolvimento de Sistemas Din&acirc;micos)</a></li>
<li><a href="#N323">O Manifesto para Desenvolvimento &Aacute;gil de Software</a></li>
<li><a href="#N341">Verifica&ccedil;&atilde;o Orientada ao Contexto</a></li>
<li><a href="#N361">RUP &eacute; uma metodologia &aacute;gil?</a></li>
<li><a href="#N382">Outras Fontes</a></li>
</ul>
</li>
<li><a href="#N3C0">Voc&ecirc; deve se tornar &aacute;gil?</a></li>
<li><a href="#N3F3">Agradecimentos</a></li>
</ul>
<h2>Do Nada, ao Monumental, ao &Aacute;gil</h2>
<p>A pr&aacute;tica do desenvolvimento de software &eacute; uma atividade ca&oacute;tica em sua maior parte, normalmente caracterizada pela express&atilde;o &quot;codificar e consertar&quot;. O software &eacute; escrito sem um plano definido e o projeto do sistema &eacute; repleto de v&aacute;rias decis&otilde;es de curto prazo. Isso funciona muito bem se o sistema &eacute; pequeno &#8211; mas &agrave; medida que o sistema cresce, torna-se cada vez mais dif&iacute;cil adicionar novos recursos a ele. Defeitos subseq&uuml;entes se tornam cada vez mais dominantes e cada vez mais dif&iacute;ceis de serem eliminados. Um sinal t&iacute;pico de um sistema desse tipo &eacute; uma longa fase de testes depois que o sistema est&aacute; &quot;pronto&quot;. Esta longa fase de testes entra em confronto direto com o cronograma, pois testes e depura&ccedil;&atilde;o s&atilde;o atividades cujos tempos s&atilde;o imposs&iacute;veis de serem estimados.</p>
<p>N&oacute;s convivemos com este estilo de desenvolvimento h&aacute; muito tempo, mas tamb&eacute;m temos uma alternativa h&aacute; muito tempo: Metodologia. Metodologias imp&otilde;em um processo disciplinado no desenvolvimento de software, com o objetivo de torn&aacute;-lo mais previs&iacute;vel e mais eficiente. Elas fazem isso desenvolvendo um processo detalhado com uma forte &ecirc;nfase em planejamento e inspirado em outras disciplinas de engenharia &#8211; por isso eu tendo a referir-me a elas como <strong>metodologias de engenharia</strong>.</p>
<p>Metodologias de engenharia est&atilde;o dispon&iacute;veis h&aacute; muito tempo. Elas n&atilde;o t&ecirc;m sido percebidas como sendo particularmente bem-sucedidas. Elas t&ecirc;m sido notadas menos ainda por serem populares. A cr&iacute;tica mais freq&uuml;ente &eacute; que estas metodologias s&atilde;o burocr&aacute;ticas. H&aacute; tanta coisa a se fazer para seguir a metodologia que o todo o ritmo de desenvolvimento fica mais lento.</p>
<p>Como uma rea&ccedil;&atilde;o a tais metodologias, um novo grupo delas surgiu nos &uacute;ltimos anos. Durante algum tempo elas foram conhecidas como metodologias leves, mas agora o termo mais aceito &eacute; <em>metodologia &aacute;gil</em>. Para muitas pessoas o apelo das metodologias &aacute;geis &eacute; a rea&ccedil;&atilde;o delas &agrave; burocracia das metodologias monumentais. Estas novas metodologias tentam criar um equil&iacute;brio entre nenhum processo e muito processo, provendo apenas o suficiente de processo para obter um retorno razo&aacute;vel.</p>
<p>O resultado disso tudo &eacute; que os m&eacute;todos &aacute;geis t&ecirc;m algumas mudan&ccedil;as de &ecirc;nfase significativas em rela&ccedil;&atilde;o aos m&eacute;todos de engenharia. A diferen&ccedil;a mais evidente &eacute; que metodologias &aacute;geis s&atilde;o menos centradas em documenta&ccedil;&atilde;o, normalmente enfatizando uma quantidade menor de documentos para uma dada tarefa. De v&aacute;rias maneiras, elas s&atilde;o mais voltadas ao c&oacute;digo-fonte do programa: seguindo um caminho que diz que a parte-chave da documenta&ccedil;&atilde;o &eacute; o pr&oacute;prio c&oacute;digo-fonte.</p>
<p>Entretanto, eu n&atilde;o acho ser este o ponto-chave das metodologias &aacute;geis. Menos documenta&ccedil;&atilde;o &eacute; apenas um sintoma de duas diferen&ccedil;as mais profundas:</p>
<ul>
<li><em>Metodologias &aacute;geis s&atilde;o adaptativas ao inv&eacute;s de predeterminantes.</em> Metodologias de engenharia tendem a tentar planejar uma grande parte do processo de desenvolvimento detalhadamente por um longo per&iacute;odo de tempo. Isso funciona bem at&eacute; as coisas mudarem. Ent&atilde;o a natureza de tais m&eacute;todos &eacute; a de resistir &agrave; mudan&ccedil;a. Para os m&eacute;todos &aacute;geis, entretanto, mudan&ccedil;as s&atilde;o bem-vindas. Eles tentam ser processos que se adaptam e se fortalecem com as mudan&ccedil;as, at&eacute; mesmo ao ponto de se auto-modificarem.</li>
<li><em>M&eacute;todos &aacute;geis s&atilde;o orientados a pessoas ao inv&eacute;s de serem orientados a processos.</em>O objetivo dos m&eacute;todos de engenharia &eacute; de definir um processo que ir&aacute; funcionar bem, independentemente de quem os estiverem utilizando. M&eacute;todos &aacute;geis afirmam que nenhum processo jamais ser&aacute; equivalente &agrave; habilidade da equipe de desenvolvimento. Portanto, o papel do processo &eacute; dar suporte &agrave; equipe de desenvolvimento e seu trabalho.</li>
</ul>
<p>Nas sess&otilde;es seguintes irei explorar estas diferen&ccedil;as em mais detalhes, para que voc&ecirc; possa entender como &eacute; um m&eacute;todo adaptativo e centrado em pessoas, seus benef&iacute;cios e inconveni&ecirc;ncias, e se &eacute; algo que voc&ecirc; deve utilizar &#8211; seja como desenvolvedor ou como cliente do software.</p>
<h2>Predeterminante contra Adaptativo</h2>
<h3>Separa&ccedil;&atilde;o de Design e Constru&ccedil;&atilde;o</h3>
<p>A inspira&ccedil;&atilde;o comum para as metodologias s&atilde;o as &aacute;reas da engenharia, tais como Engenharia Civil ou Mec&acirc;nica. Tais &aacute;reas enfatizam o planejamento antes da constru&ccedil;&atilde;o. Engenheiros destas &aacute;reas trabalhar&atilde;o em uma s&eacute;rie de desenhos que indicam precisamente o que precisa ser constru&iacute;do e como todas as coisas devem se encaixar. Muitas decis&otilde;es de <em>design</em>, tais como a maneira de lidar com a carga em uma ponte, s&atilde;o feitas &agrave; medida que os desenhos s&atilde;o produzidos. Os desenhos s&atilde;o ent&atilde;o entregues para um outro grupo, normalmente de outra empresa, pra serem constru&iacute;dos. Assume-se que o processo de constru&ccedil;&atilde;o ir&aacute; seguir os desenhos. Na pr&aacute;tica, os construtores v&atilde;o se deparar com alguns problemas, mas normalmente s&atilde;o pequenos.</p>
<p>Uma vez que os desenhos especificam as partes e como elas se encaixam, eles agem como uma funda&ccedil;&atilde;o para um plano de constru&ccedil;&atilde;o detalhado. De tal plano pode ser derivado o que precisa ser feito e quais depend&ecirc;ncias existem entre as tarefas. Isso permite um cronograma e um or&ccedil;amento razoavelmente previs&iacute;veis para a constru&ccedil;&atilde;o. Ainda especifica em detalhes como as pessoas que far&atilde;o a constru&ccedil;&atilde;o devem fazer seus trabalhos. Isso permite que os trabalhadores da constru&ccedil;&atilde;o possam ser menos habilidosos intelectualmente, embora freq&uuml;entemente sejam muito habilidosos manualmente.</p>
<p>Ent&atilde;o, o que vemos s&atilde;o duas atividades fundamentalmente diferentes. <em>Design</em> &#8211; que &eacute; dif&iacute;cil prever e requer pessoas caras e criativas, e <em>constru&ccedil;&atilde;o</em> &#8211; que &eacute; mais f&aacute;cil de prever. Uma vez que tivermos o <em>design</em>, podemos planejar a constru&ccedil;&atilde;o. Uma vez que tivermos o plano para a constru&ccedil;&atilde;o, n&oacute;s podemos lidar com a constru&ccedil;&atilde;o de uma forma muito mais previs&iacute;vel. Em engenharia civil, a constru&ccedil;&atilde;o &eacute; muito maior tanto em custo como em tempo que <em>design</em> e planejamento.</p>
<p>Ent&atilde;o, a abordagem das metodologias de engenharia de software &eacute; algo semelhante a isto: n&oacute;s queremos um cronograma previs&iacute;vel que possamos utilizar pessoas com pouca habilidade. Para fazer isto, devemos separar as atividades de <em>design</em> e constru&ccedil;&atilde;o. Logo, n&oacute;s precisamos descobrir como fazer o <em>design</em> do software de forma que a constru&ccedil;&atilde;o seja algo simples, uma vez que o planejamento esteja feito.</p>
<p>Ent&atilde;o qual o formato deste planejamento? Para muitos, este &eacute; o papel de nota&ccedil;&otilde;es de modelagem, tais como a <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0321193687" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0321193687&amp;referer=');"> UML</a>. Se n&oacute;s conseguirmos fazer todas as decis&otilde;es utilizando UML, poderemos criar um plano de constru&ccedil;&atilde;o e entreg&aacute;-lo aos programadores, para uma atividade estritamente de constru&ccedil;&atilde;o.</p>
<p>Mas aqui se encontra a pergunta crucial: Voc&ecirc; pode criar um <em>design</em> que &eacute; capaz de transformar a programa&ccedil;&atilde;o em uma atividade de constru&ccedil;&atilde;o previs&iacute;vel? E, em caso positivo, o custo de fazer isto &eacute; suficientemente baixo para que essa seja uma abordagem vantajosa?</p>
<p>Tudo isso traz &agrave; tona algumas perguntas. A primeira &eacute; a quest&atilde;o do qu&atilde;o dif&iacute;cil &eacute; conseguir um <em>design</em> estilo UML em um estado que possa ser entregue aos programadores. O problema com um <em>design</em> UML &eacute; que ele pode parecer muito bom no papel, e ainda ser seriamente problem&aacute;tico quando voc&ecirc; tem que traduzi-lo em c&oacute;digo-fonte. Os modelos utilizados por engenheiros civis s&atilde;o baseados em diversos anos de pr&aacute;tica adquirida em c&oacute;digos de engenharia. Al&eacute;m disso, quest&otilde;es-chave, tais como o modo que for&ccedil;as f&iacute;sicas atuam no projeto, s&atilde;o triviais &agrave; an&aacute;lise matem&aacute;tica. A &uacute;nica checagem que podemos fazer em diagramas UML s&atilde;o revis&otilde;es cuidadosas. Enquanto estas s&atilde;o &uacute;teis, levam a erros que s&atilde;o freq&uuml;entemente descobertos apenas durante a codifica&ccedil;&atilde;o e testes. At&eacute; mesmo <em>designers</em> habilidosos, como eu me considero , s&atilde;o freq&uuml;entemente surpreendidos quando transformamos tais <em>design</em>s em software.</p>
<p>Outro problema &eacute; o custo comparativo. Quando se constr&oacute;i uma ponte, o custo do esfor&ccedil;o de <em>design</em> &eacute; aproximadamente 10% do total, com o resto sendo constru&ccedil;&atilde;o. Em software, a quantidade de tempo gasta em codifica&ccedil;&atilde;o &eacute; muito, muito menor. <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/1556159005" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/1556159005&amp;referer=');"> McConnell</a> sugere que para um projeto de larga escala, apenas 15% do projeto &eacute; codifica&ccedil;&atilde;o e testes unit&aacute;rios &#8211; uma invers&atilde;o quase perfeita da propor&ccedil;&atilde;o em constru&ccedil;&atilde;o de pontes. Mesmo que voc&ecirc; considere toda a etapa de testes como sendo constru&ccedil;&atilde;o, o <em>design</em> ainda representa apenas 50% do trabalho. Isso levanta uma quest&atilde;o importante sobre a natureza do <em>design</em> em software comparado com seu papel em outros ramos da engenharia.</p>
<p>Estes questionamentos levaram Jack Reeves <a href="http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm" onclick="urchinTracker('/outgoing/www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm?referer=');">a sugerir</a> que na verdade o c&oacute;digo-fonte &eacute; um documento de <em>design</em> e que a fase de constru&ccedil;&atilde;o &eacute; apenas o uso do compilador e do <em>linker</em>. De fato, tudo que pode ser tratado como constru&ccedil;&atilde;o pode e deve ser automatizado.</p>
<ul>
<li>Em software, a constru&ccedil;&atilde;o &eacute; t&atilde;o barata que pode ser considerada gratuita.</li>
<li>Em software, todo o esfor&ccedil;o &eacute; <em>design</em>, logo requer pessoas criativas e talentosas.</li>
<li>Processos criativos n&atilde;o s&atilde;o planejados facilmente, logo a previsibilidade &eacute; provavelmente um objetivo imposs&iacute;vel.</li>
<li>N&oacute;s devemos ter muito cuidado com a met&aacute;fora tradicional de engenharia para construir software. Esse &eacute; um tipo diferente de atividade e requer um processo diferente.</li>
</ul>
<h3>A Imprevisibilidade dos Requisitos</h3>
<p>H&aacute; um coment&aacute;rio que eu escuto em todos os projetos problem&aacute;ticos que encontro . Os desenvolvedores v&ecirc;m a mim e dizem: &quot;o problema com este projeto &eacute; que os requisitos est&atilde;o sempre mudando&quot;. O que acho surpreendente a respeito dessa situa&ccedil;&atilde;o &eacute; que algu&eacute;m ainda se surpreende com ela. Se mudan&ccedil;as em requisitos de neg&oacute;cio ao construir software s&atilde;o a regra, a pergunta &eacute; o que devemos fazer a esse respeito.</p>
<p>Um caminho &eacute; tratar requisitos mutantes como resultado de uma engenharia de requisitos pobre. A id&eacute;ia por tr&aacute;s da engenharia de requisitos &eacute; a de obter uma vis&atilde;o completamente clara dos requisitos antes de come&ccedil;ar a construir o software, obter uma aprova&ccedil;&atilde;o do cliente destes requisitos, e depois implantar procedimentos que limitam mudan&ccedil;as nestes requisitos.</p>
<p>Um problema com isto &eacute; que apenas entender as op&ccedil;&otilde;es para os requisitos j&aacute; &eacute; dif&iacute;cil. E &eacute; ainda mais dif&iacute;cil pois normalmente a empresa que desenvolve o <em>software</em> n&atilde;o prov&ecirc; as informa&ccedil;&otilde;es do custo dos requisitos. Voc&ecirc; acaba em uma situa&ccedil;&atilde;o onde voc&ecirc; tem uma certa vontade de comprar um teto solar para o seu carro, mas o vendedor n&atilde;o pode lhe dizer se isso aumenta o custo do carro em $10 ou $10.000. Sem muita id&eacute;ia do custo, como voc&ecirc; pode decidir se realmente quer pagar pelo teto solar?</p>
<p>Estimativas s&atilde;o dif&iacute;ceis por v&aacute;rios motivos. Parte &eacute; por que desenvolvimento de software &eacute; uma atividade de <em>design</em>, portanto dif&iacute;cil de planejar ou custear. Parte &eacute; por que os materiais b&aacute;sicos se mant&ecirc;m sempre mudando rapidamente. Parte &eacute; por que depende muito de quais pessoas est&atilde;o envolvidas, e pessoas s&atilde;o dif&iacute;ceis de prever ou quantificar.</p>
<p>A natureza intang&iacute;vel do software tamb&eacute;m contribui. &Eacute; muito dif&iacute;cil ver o valor de uma funcionalidade do software at&eacute; que ela seja materializada. Apenas quando voc&ecirc; v&ecirc; uma vers&atilde;o preliminar do software voc&ecirc; realmente come&ccedil;a a entender que funcionalidades s&atilde;o valiosas e quais n&atilde;o s&atilde;o.</p>
<p>Isso leva ao ponto ir&ocirc;nico onde as pessoas esperam que os requisitos sejam mut&aacute;veis. Afinal de contas, o software deve ser <em>&quot;soft&quot;</em>. Assim n&atilde;o somente os requisitos s&atilde;o mut&aacute;veis, mas espera-se que assim o sejam. Gasta-se muita energia para que os clientes consertem os requisitos. &Eacute; ainda pior se eles j&aacute; estiveram de alguma forma envolvidos em desenvolvimento de software, pois a&iacute; eles &quot;sabem&quot; que &eacute; f&aacute;cil de modificar software.</p>
<p>Mas mesmo que voc&ecirc; pudesse concordar e realmente conseguisse um conjunto preciso e est&aacute;vel de requisitos, ainda assim isso provavelmente n&atilde;o seria suficiente. Na economia de hoje, as for&ccedil;as de neg&oacute;cio fundamentais est&atilde;o mudando o valor dos requisitos de software muito rapidamente. O que pode ser um bom conjunto de requisitos agora, n&atilde;o ser&aacute; um bom conjunto de requisitos em seis meses. Mesmo que os clientes possam fixar seus requisitos, o mundo dos neg&oacute;cios n&atilde;o vai parar para eles. E muitas mudan&ccedil;as no mundo dos neg&oacute;cios s&atilde;o completamente imprevis&iacute;veis: qualquer um que diga o contr&aacute;rio est&aacute; ou mentindo, ou j&aacute; conseguiu um bilh&atilde;o de d&oacute;lares no mercado de a&ccedil;&otilde;es .</p>
<p>Tudo mais no desenvolvimento de software depende dos requisitos. Se voc&ecirc; n&atilde;o pode obter requisitos est&aacute;veis, ent&atilde;o voc&ecirc; n&atilde;o pode ter um plano de projeto est&aacute;vel.</p>
<h3>A Previsibilidade &eacute; Imposs&iacute;vel?</h3>
<p>Em geral, n&atilde;o. Existem alguns casos de desenvolvimento de software onde a previsibilidade &eacute; poss&iacute;vel. Organiza&ccedil;&otilde;es como o grupo de software do &ocirc;nibus espacial da NASA s&atilde;o um exemplo t&iacute;pico de como o desenvolvimento de software pode ser previs&iacute;vel. &Eacute; necess&aacute;rio muita cerim&ocirc;nia, um time grande e requisitos est&aacute;veis. Existem projetos que s&atilde;o &ocirc;nibus espaciais. Entretanto, eu n&atilde;o acredito que muitos sistemas se enquadrem nesta categoria. Para estes, voc&ecirc; precisa de um tipo diferente de processo.</p>
<p>Um dos grandes riscos &eacute; fingir que voc&ecirc; pode seguir um processo previs&iacute;vel quando voc&ecirc; n&atilde;o pode. As pessoas que trabalham com metodologia n&atilde;o s&atilde;o muito boas em identificar condi&ccedil;&otilde;es-limite: os lugares onde a metodologia passa de apropriada para inapropriada. Muitos dos estudiosos em metodologias querem que suas metodologias sejam utilizadas por todos, para que eles n&atilde;o precisem entender ou divulgar suas condi&ccedil;&otilde;es-limite. Isso leva as pessoas a utilizar a metodologia nas circunst&acirc;ncias erradas, como por exemplo, usando uma metodologia previs&iacute;vel em uma situa&ccedil;&atilde;o imprevis&iacute;vel.</p>
<p>H&aacute; uma forte tenta&ccedil;&atilde;o a fazer isso. Previsibilidade &eacute; uma propriedade muito desej&aacute;vel. Entretanto, se voc&ecirc; acredita que pode ser previs&iacute;vel quando voc&ecirc; n&atilde;o pode, isso leva a situa&ccedil;&otilde;es onde as pessoas constroem um plano no in&iacute;cio e depois n&atilde;o conseguem lidar com a situa&ccedil;&atilde;o onde o plano falha. Voc&ecirc; v&ecirc; a realidade lentamente distanciando-se do plano. Por muito tempo, voc&ecirc; pode fingir que o plano ainda &eacute; v&aacute;lido. Mas em algum ponto, o distanciamento fica muito grande e o plano simplesmente cai em peda&ccedil;os. Normalmente a queda &eacute; dolorosa.</p>
<p>Ent&atilde;o, se voc&ecirc; est&aacute; em uma situa&ccedil;&atilde;o que n&atilde;o &eacute; previs&iacute;vel, voc&ecirc; n&atilde;o pode usar uma metodologia previs&iacute;vel. Essa &eacute; a dura realidade. Isto significa que muitos dos modelos para controle de projetos e muitos dos modelos para o relacionamento com clientes simplesmente n&atilde;o se aplicam mais. Os benef&iacute;cios da previsibilidade s&atilde;o enormes, &eacute; muito dif&iacute;cil abrir m&atilde;o deles. Como muitos problemas, a parte mais dif&iacute;cil &eacute; simplesmente perceber que o problema existe.</p>
<p>Entretanto, abandonar a previsibilidade n&atilde;o significa que voc&ecirc; precise voltar ao caos incontrol&aacute;vel. Ao inv&eacute;s disso, voc&ecirc; precisa de um processo que lhe d&ecirc; controle sobre a imprevisibilidade. &Eacute; justamente esse o ponto principal da adaptatividade.</p>
<h3>Controlando um Processo Imprevis&iacute;vel &#8211; Itera&ccedil;&otilde;es</h3>
<p>Ent&atilde;o como controlamos um mundo imprevis&iacute;vel? O mais importante, e ainda mais dif&iacute;cil, &eacute; saber com precis&atilde;o onde estamos. Precisamos de um mecanismo honesto de <em>feedback</em> que possa dizer-nos com precis&atilde;o qual &eacute; a situa&ccedil;&atilde;o em intervalos freq&uuml;entes.</p>
<p>A chave para este <em>feedback</em> &eacute; o desenvolvimento iterativo. Esta n&atilde;o &eacute; uma id&eacute;ia nova. Desenvolvimento iterativo j&aacute; existe por algum tempo sob v&aacute;rios nomes diferentes: incremental, evolucion&aacute;rio, em est&aacute;gios, espiral&#8230; muitos nomes. A chave para o desenvolvimento iterativo &eacute; freq&uuml;entemente produzir vers&otilde;es que funcionam do sistema final, que cont&eacute;m um subconjunto dos recursos requeridos. Estas vers&otilde;es s&atilde;o bastante limitadas em funcionalidade, mas devem ser fi&eacute;is &agrave;s demandas do sistema final. Elas devem ser totalmente integradas e cuidadosamente testadas como se fossem a entrega final.</p>
<p>O ponto &eacute; que n&atilde;o existe nada como um sistema testado e integrado para trazer uma dose de realidade a qualquer projeto. Documentos podem esconder todo tipo de falhas. C&oacute;digo-fonte n&atilde;o-testado pode esconder muitas falhas. Mas quando as pessoas sentam em frente a um sistema e trabalham com ele, as falhas se tornam verdadeiramente aparentes: tanto em termos de defeitos como em termos de requisitos mal-interpretados.</p>
<p>Desenvolvimento iterativo faz sentido em processos previs&iacute;veis tamb&eacute;m. Mas &eacute; essencial em processos adaptativos, pois um processo adaptativo precisa ser capaz de lidar com mudan&ccedil;as nas funcionalidades requisitadas. Isso leva a um estilo de planejamento onde os planos de longo prazo s&atilde;o bastante fluidos, e os &uacute;nicos planos est&aacute;veis s&atilde;o os de curto prazo, feitos para uma &uacute;nica itera&ccedil;&atilde;o. O desenvolvimento iterativo lhe d&aacute; uma funda&ccedil;&atilde;o firme em cada itera&ccedil;&atilde;o onde voc&ecirc; pode basear seus planos futuros.</p>
<p>Uma pergunta comum &eacute; o qu&atilde;o longa uma itera&ccedil;&atilde;o deve serqual o tamanho ideal para cada itera&ccedil;&atilde;o. Pessoas diferentes dar&atilde;o respostas diferentes. XP sugere intera&ccedil;&otilde;es entre uma e tr&ecirc;s semanas. SCRUM sugere a dura&ccedil;&atilde;o de um m&ecirc;s. Em Crystal, vai ser maior. A tend&ecirc;ncia, entretanto, &eacute; fazer cada itera&ccedil;&atilde;o o t&atilde;o curta quanto poss&iacute;vel. Isso prov&ecirc; <em>feedback</em> mais freq&uuml;ente, para que voc&ecirc; possa saber com mais freq&uuml;&ecirc;ncia onde est&aacute;.</p>
<h3>O Cliente Adapt&aacute;vel</h3>
<p>Esse tipo de processo adaptativo requer um tipo diferente de relacionamento com o cliente do que as alternativas consideradas normalmente, especialmente quando o desenvolvimento &eacute; feito por outra empresa. Quando voc&ecirc; contrata uma outra empresa para fazer o desenvolvimento do software, a maioria dos clientes prefere um contrato de custo fixo. Diga aos desenvolvedores o que quer, junte propostas, aceite uma delas, e ent&atilde;o o &ocirc;nus do desenvolvimento ser&aacute; da empresa que foi escolhida para desenvolver o software.</p>
<p>Um contrato de custo fixo requer requisitos est&aacute;veis, e, portanto, um processo predeterminista. Processos adaptativos e requisitos inst&aacute;veis implicam que voc&ecirc; n&atilde;o pode trabalhar com a no&ccedil;&atilde;o habitual de custo fixo. Tentar encaixar um modelo de custo fixo em um processo adaptativo termina com uma explos&atilde;o muito traum&aacute;tica. A pior parte dessa explos&atilde;o &eacute; que o cliente sai t&atilde;o prejudicado como a empresa de desenvolvimento. Afinal de contas, o cliente n&atilde;o iria querer o software se seu neg&oacute;cio n&atilde;o estivesse precisando dele. Se eles n&atilde;o t&ecirc;m o produto, seu neg&oacute;cio sai prejudicado. Ent&atilde;o, mesmo que eles n&atilde;o paguem nada &agrave; empresa de desenvolvimento, eles ainda saem no preju&iacute;zo. Na verdade, eles perdem mais do que eles teriam investido pagando pelo software (por que eles pagariam pelo software se seu valor agregado fosse menor que o valor pago?).</p>
<p>Logo, existem perigos para ambas as partes em assinar um contrato de custo fixo em condi&ccedil;&otilde;es onde um processo predeterminista n&atilde;o pode ser utilizado. Isso quer dizer que o cliente tem de trabalhar de forma diferente.</p>
<p>Isso n&atilde;o quer dizer que voc&ecirc; n&atilde;o possa fixar um or&ccedil;amento para o software antes de desenvolv&ecirc;-lo. O que significa &eacute; que voc&ecirc; n&atilde;o pode fixar tempo, pre&ccedil;o e escopo. A abordagem &aacute;gil comum &eacute; fixar tempo e pre&ccedil;o, deixando o escopo variar de forma controlada.</p>
<p>Em um processo adaptativo, o cliente tem um controle muito mais refinado sobre o processo de desenvolvimento do software. Em cada itera&ccedil;&atilde;o, podem tanto verificar o progresso como alterar a dire&ccedil;&atilde;o do desenvolvimento. Isso leva a um relacionamento muito mais pr&oacute;ximo com os desenvolvedores do software, uma verdadeira parceria de neg&oacute;cios. Esse n&iacute;vel de engajamento n&atilde;o &eacute; para qualquer organiza&ccedil;&atilde;o contratante, nem para qualquer desenvolvedor; mas &eacute; essencial para fazer um processo adaptativo funcionar corretamente.</p>
<p>Tudo isso traz diversas vantagem para o cliente. Para come&ccedil;ar, eles obt&ecirc;m um desenvolvimento de software muito mais responsivo. Um sistema m&iacute;nimo, mas j&aacute; utiliz&aacute;vel, pode entrar em produ&ccedil;&atilde;o muito cedo. O cliente pode mudar as funcionalidades &agrave; medida que o neg&oacute;cio muda, e tamb&eacute;m aprender com a forma que o sistema &eacute; utilizado na realidade.</p>
<p>T&atilde;o importante quanto isso &eacute; a maior visibilidade sobre o verdadeiro estado de um projeto. O problema com m&eacute;todos predeterministas &eacute; que a qualidade &eacute; medida pela conformidade com o plano. Isso torna dif&iacute;cil para as pessoas sinalizarem quando a realidade e o plano divergem. O resultado usual&eacute; um grande atraso no cronograma, posteriormente no projeto. Em um projeto &aacute;gil, h&aacute; um constante retrabalho no plano de projeto com cada itera&ccedil;&atilde;o. Se m&aacute;s not&iacute;cias est&atilde;o &agrave; espreita, elas tendem a chegar mais cedo, quando ainda h&aacute; tempo para se fazer algo a respeito. De fato, esse controle dos riscos &eacute; uma vantagem-chave do desenvolvimento iterativo. M&eacute;todos &aacute;geis v&atilde;o um passo al&eacute;m, mantendo as dura&ccedil;&otilde;es dessas itera&ccedil;&otilde;es curtas, mas tamb&eacute;m vendo estas varia&ccedil;&otilde;es como oportunidades.</p>
<p>Isso tem um impacto importante sobre o que constitui um projeto bem-sucedido. Um projeto predeterminista normalmente &eacute; medido em rela&ccedil;&atilde;o ao cumprimento de seu plano. Um projeto que est&aacute; dentro do prazo e do custo &eacute; considerado bem-sucedido. Essa medida n&atilde;o faz sentido algum em um ambiente &aacute;gil. Para os praticantes de metodologias &aacute;geis, a quest&atilde;o &eacute; valor no neg&oacute;cio &#8211; o cliente obteve um software que vale mais do que o dinheiro que ele empregou em seu desenvolvimento. Um bom projeto predeterminista ocorrer&aacute; conforme o plano, um bom projeto &aacute;gil ir&aacute; construir algo diferente e melhor que o plano original previu.</p>
<h2>Colocando as Pessoas em Primeiro Lugar</h2>
<p>Executar um processo adaptativo n&atilde;o &eacute; f&aacute;cil. Particularmente, exige uma equipe bastante eficaz de desenvolvedores. A equipe precisa ser efetiva tanto na qualidade de seus indiv&iacute;duos, quanto em como essa equipe interage como um time de verdade. Existe tamb&eacute;m uma sinergia importante: n&atilde;o apenas a adaptatividade requer uma equipe mais forte, mas tamb&eacute;m a maioria dos bons desenvolvedores prefere um processo adaptativo.</p>
<h3>Conecte Unidades de Programa&ccedil;&atilde;o Compat&iacute;veis</h3>
<p>Um dos objetivos das metodologias tradicionais &eacute; desenvolver um processo onde as pessoas envolvidas s&atilde;o partes substitu&iacute;veis. Com tais processos, voc&ecirc; pode tratar pessoas como recursos que est&atilde;o dispon&iacute;veis de v&aacute;rias formas. Voc&ecirc; tem um analista, alguns programadores, alguns especialistas em testes, um gerente. Os indiv&iacute;duos n&atilde;o s&atilde;o t&atilde;o importantes, somente suas fun&ccedil;&otilde;es. Desta forma se voc&ecirc; planeja um projeto, n&atilde;o importa qual analista ou quais especialistas em testes voc&ecirc; vai ter, apenas que voc&ecirc; saiba quantos deles voc&ecirc; ter&aacute;, para saber o quanto o n&uacute;mero de recursos afetar&aacute; seu planejamento.</p>
<p>Mais isso levanta uma quest&atilde;o-chave: as pessoas envolvidas em um desenvolvimento de software s&atilde;o pe&ccedil;as substitu&iacute;veis? Uma das principais caracter&iacute;sticas das metodologias &aacute;geis &eacute; que elas rejeitam tal premissa.</p>
<p>Talvez a rejei&ccedil;&atilde;o mais expl&iacute;cita ao tratamento de pessoas como recursos seja por Alistair Cockburn. Em seu artigo <a href="http://alistair.cockburn.us/crystal/articles/cpanfocisd/characterizingpeopleasnonlinear.html" onclick="urchinTracker('/outgoing/alistair.cockburn.us/crystal/articles/cpanfocisd/characterizingpeopleasnonlinear.html?referer=');"> Caracterizando Pessoas em Desenvolvimento de Software como Componentes de Primeira Ordem, N&atilde;o-lineares</a>, ele indica que processos predeterministas exigem componentes previs&iacute;veis. Entretanto, pessoas n&atilde;o s&atilde;o componentes previs&iacute;veis. Mais adiante, seus estudos de projetos de software o levaram a concluir que as pessoas s&atilde;o o fator mais relevante no desenvolvimento de software.</p>
<blockquote>
<p><em>No t&iacute;tulo, [de seu artigo] eu me refiro as pessoas como &quot;componentes&quot;. &Eacute; assim que as pessoas s&atilde;o tratadas na literatura de processo/metodologia. O engano nesta abordagem &eacute; que &quot;pessoas&quot; s&atilde;o altamente vari&aacute;veis e n&atilde;o-lineares, com fatores de sucesso e fracasso &uacute;nicos. Esses fatores s&atilde;o de primeira ordem, n&atilde;o negligenci&aacute;veis. Falhas em levar em conta esses fatores por parte dos criadores de processos e metodologias contribuem para todo tipo de trajet&oacute;rias n&atilde;o-planejadas que comumente vemos.</em><br />
&#8211; <a href="http://alistair.cockburn.us/crystal/articles/cpanfocisd/characterizingpeopleasnonlinear.html" onclick="urchinTracker('/outgoing/alistair.cockburn.us/crystal/articles/cpanfocisd/characterizingpeopleasnonlinear.html?referer=');"> [Cockburn, n&atilde;o-linear]</a></p>
</blockquote>
<p>Algu&eacute;m pode se perguntar se pr&oacute;pria natureza do desenvolvimento de software n&atilde;o vai contra n&oacute;s neste caso. Quando estamos programando um computador, controlamos uma m&aacute;quina inerentemente previs&iacute;vel. Uma vez que estamos nessa profiss&atilde;o por sermos bons nisso, n&oacute;s temos uma tend&ecirc;ncia particular em ter muitas dificuldades quando em frente a seres humanos.</p>
<p>Mesmo sendo Cockburn um dos mais expl&iacute;citos em sua vis&atilde;o do desenvolvimento do software orientado a pessoas, a no&ccedil;&atilde;o que as pessoas v&ecirc;m em primeiro lugar &eacute; um tema comum entre v&aacute;rios pensadores da &aacute;rea de software. O problema, na maioria das vezes, &eacute; que metodologia se op&ocirc;s &agrave; no&ccedil;&atilde;o que as pessoas s&atilde;o fatores de primeira ordem no sucesso de um projeto.</p>
<p>Isso cria um forte efeito de retro alimenta&ccedil;&atilde;o positiva. Se voc&ecirc; espera que seus desenvolvedores sejam unidades de programa&ccedil;&atilde;o substitu&iacute;veis, voc&ecirc; n&atilde;o tenta trat&aacute;-los como indiv&iacute;duos. Isso diminui o moral (e a produtividade). Os bons profissionais procuram um lugar melhor para trabalhar e voc&ecirc; termina exatamente com o que voc&ecirc; desejou: unidades de programa&ccedil;&atilde;o substitu&iacute;veis.</p>
<p>Decidir que as pessoas devem vir em primeiro lugar &eacute; uma grande decis&atilde;o, uma destas que requer muita determina&ccedil;&atilde;o para ser levada adiante. A no&ccedil;&atilde;o que pessoas s&atilde;o recursos est&aacute; profundamente arraigada no pensamento de neg&oacute;cios, com suas ra&iacute;zes datando desde a &eacute;poca da <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0140260803" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0140260803&amp;referer=');"> Abordagem da Administra&ccedil;&atilde;o Cient&iacute;fica de Frederick Taylor</a>. Em se tratando de uma f&aacute;brica, o modelo Taylorista pode fazer sentido. Mas para trabalho altamente criativo e profissional, o que acredito que o desenvolvimento de software seja, o modelo n&atilde;o se sustenta. (E, de fato, at&eacute; mesmo a manufatura moderna j&aacute; est&aacute; se afastando do modelo Taylorista).</p>
<h3>Programadores s&atilde;o Profissionais Respons&aacute;veis</h3>
<p>Um conceito-chave da no&ccedil;&atilde;o Taylorista &eacute; que as pessoas que est&atilde;o fazendo o trabalho n&atilde;o s&atilde;o as melhores pessoas para descobrir qual a melhor forma de fazer este trabalho. Em uma f&aacute;brica, isso pode ser verdade por uma s&eacute;rie de motivos. Em parte por que muitos trabalhadores fabris n&atilde;o s&atilde;o as pessoas mais inteligentes ou criativas, em parte por que existe uma tens&atilde;o entre a administra&ccedil;&atilde;o e os trabalhadores a respeito da administra&ccedil;&atilde;o ganhar mais dinheiro enquanto os trabalhadores ganham menos.</p>
<p>A hist&oacute;ria recente cada vez mais nos mostra o quanto isto &eacute; falso no caso do desenvolvimento de software. Cada vez mais pessoas brilhantes e capazes s&atilde;o atra&iacute;das ao desenvolvimento de software, atra&iacute;das tanto pela sua ostenta&ccedil;&atilde;o como pelas recompensas potencialmente grandes (Ambas as raz&otilde;es que me afastaram da engenharia eletr&ocirc;nica ). Esquemas como os de programas de distribui&ccedil;&atilde;o de a&ccedil;&otilde;es cada vez mais alinham os interesses dos programadores com os da empresa.</p>
<p>(H&aacute; provavelmente tamb&eacute;m um efeito de gera&ccedil;&otilde;es aqui. Evid&ecirc;ncias circunstanciais me fazem pensar se pessoas mais brilhantes se aventuraram em engenharia de software nos &uacute;ltimos 10 anos. Se sim, essa seria uma raz&atilde;o do porqu&ecirc; h&aacute; um certo culto &agrave; juventude na ind&uacute;stria de computadores. Assim como a maioria dos outros cultos, h&aacute; de ter um pouco de verdade neste tamb&eacute;m ).</p>
<p>Quando voc&ecirc; quer contratar e reter boas pessoas, voc&ecirc; deve reconhecer que eles s&atilde;o profissionais competentes. Assim sendo, elas s&atilde;o as melhores pessoas para decidir como conduzir seus trabalhos t&eacute;cnicos. A no&ccedil;&atilde;o Taylorista de um departamento de planejamento que decide como as coisas s&atilde;o feitas, s&oacute; funciona se os planejadores entenderem melhor o problema do que as pessoas o executando. Se voc&ecirc; tem pessoas brilhantes e motivadas executando o trabalho, isso n&atilde;o se sustenta.</p>
<h3>Gerenciando um Processo Orientado a Pessoas</h3>
<p>A orienta&ccedil;&atilde;o a pessoas se manifesta de v&aacute;rias formas em processos &aacute;geis. Isto leva a diversos efeitos, nem todos consistentes.</p>
<p>Um dos elementos-chave &eacute; o de aceita&ccedil;&atilde;o do processo, ao inv&eacute;s da imposi&ccedil;&atilde;o do processo. Normalmente, processos de software s&atilde;o impostos pela administra&ccedil;&atilde;o. Desta forma, estes processos freq&uuml;entemente sofrem resist&ecirc;ncia, particularmente quando a administra&ccedil;&atilde;o est&aacute; h&aacute; muito tempo distante da atividade do desenvolvimento de software. Aceitar um processo requer comprometimento, e como tal precisa do envolvimento ativo de toda a equipe.</p>
<p>Isso resulta no fato que apenas os pr&oacute;prios desenvolvedores podem optar por seguirem um processo adaptativo. Isso &eacute; particularmente verdade para XP, que requer muita disciplina para ser executado. Isso &eacute; onde Crystal &eacute; um complemento efetivo, j&aacute; que objetiva ser minimamente disciplinado.</p>
<p>Outro ponto &eacute; que os desenvolvedores devem ser capazes de tomar todas as decis&otilde;es t&eacute;cnicas. XP vai direto a esse ponto, j&aacute; que em seus processos de planejamento apenas os desenvolvedores podem fazer estimativas de tempo sobre uma determinado tarefa que ser&aacute; executada.</p>
<p>Tal lideran&ccedil;a t&eacute;cnica &eacute; uma grande mudan&ccedil;a para muitas pessoas em posi&ccedil;&otilde;es gerenciais. Tal abordagem exige um compartilhamento de responsabilidade onde desenvolvedores e ger&ecirc;ncia t&ecirc;m uma divis&atilde;o igual na lideran&ccedil;a do projeto. Perceba que eu digo igual. A ger&ecirc;ncia ainda exerce um papel, mas reconhece o conhecimento dos desenvolvedores.</p>
<p>Uma raz&atilde;o importante para essa divis&atilde;o &eacute; a velocidade de mudan&ccedil;a das tecnologias em nossa ind&uacute;stria . Depois de poucos anos, o conhecimento t&eacute;cnico se torna obsoleto. Esta meia-vida das habilidades t&eacute;cnicas n&atilde;o tem paralelo em nenhuma outra ind&uacute;stria. At&eacute; mesmo os t&eacute;cnicos t&ecirc;m que reconhecer que, ao entrar na &aacute;rea gerencial, suas habilidades t&eacute;cnicas se tornar&atilde;o obsoletas. Ex-desenvolvedores precisam reconhecer que suas habilidades t&eacute;cnicas desaparecer&atilde;o rapidamente e precisam confiar nos desenvolvedores atuais.</p>
<h3>A Dificuldade de Medi&ccedil;&atilde;o</h3>
<p>Se voc&ecirc; tem um processo onde as pessoas que dizem como um trabalho deve ser feito n&atilde;o s&atilde;o as mesmas que executam o trabalho de fato, os l&iacute;deres precisam de alguma forma de medir o qu&atilde;o efetivos s&atilde;o os trabalhadores. Na Administra&ccedil;&atilde;o Cient&iacute;fica existia uma forte tend&ecirc;ncia a desenvolver abordagens objetivas para a medi&ccedil;&atilde;o da produtividade das pessoas.</p>
<p>Isto &eacute; particularmente relevante para software, devido &agrave; dificuldade de aplicar medi&ccedil;&otilde;es. Mesmo com nossos melhores esfor&ccedil;os, somos incapazes de medir at&eacute; mesmo as coisas mais simples a respeito de software &#8211; como por exemplo, produtividade. Sem boas medidas para estas coisas, qualquer tipo de controle externo estar&aacute; fadado ao fracasso.</p>
<p>Introduzir gerenciamento por medidas, sem boas medidas, leva aos seus pr&oacute;prios problemas. <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0932633366" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0932633366&amp;referer=');"> Robert Austin</a> discutiu isso de forma brilhante. Ele aponta que, quando medindo desempenho, voc&ecirc; deve levar todos os fatores importantes em conta. Qualquer fator que seja deixado de fora, traz o inevit&aacute;vel resultado de que os trabalhados ir&atilde;o alterar o que produzem para melhor conformidade com as melhores medidas &#8211; mesmo que isso claramente reduza a verdadeira efetividade daquilo que fazem. Essa disfun&ccedil;&atilde;o causada pela medi&ccedil;&atilde;o &eacute; o calcanhar de Aquiles do gerenciamento por medidas.</p>
<p>A conclus&atilde;o de Austin &eacute; que voc&ecirc; deve escolher entre gerenciamento por medidas e gerenciamento delegativo (onde os trabalhadores decidem como fazer o trabalho). O gerenciamento por medidas &eacute; mais adequado para trabalhos simples e repetitivos, com poucos requisitos de conhecimento e com produ&ccedil;&atilde;o facilmente mensur&aacute;vel &#8211; exatamente o oposto do desenvolvimento de software.</p>
<p>O ponto disso &eacute; que os m&eacute;todos tradicionais t&ecirc;m operado sob a premissa que o gerenciamento por medidas &eacute; a maneira mais eficiente de se gerenciar. A comunidade &aacute;gil reconhece que as caracter&iacute;sticas do desenvolvimento de software s&atilde;o tais, que o gerenciamento por medidas leva a altos &iacute;ndices de disfun&ccedil;&atilde;o nestas medidas. Na verdade, &eacute; mais eficiente utilizar um estilo delegativo de gerenciamento &#8211; este &eacute; o tipo de abordagem que est&aacute; no centro focal das metodologias &aacute;geis.</p>
<h3>O Papel da Lideran&ccedil;a de Neg&oacute;cio</h3>
<p>Mas as pessoas t&eacute;cnicas n&atilde;o podem fazer todo o processo sozinhas. Elas precisam de orienta&ccedil;&atilde;o nas necessidades de neg&oacute;cio. Isso leva a outro aspecto importante dos processos adaptativos: eles precisam de contato pr&oacute;ximo ao conhecimento de neg&oacute;cio.</p>
<p>Isso vai al&eacute;m do envolvimento do neg&oacute;cio usual na maioria dos projetos hoje. Equipes &aacute;geis n&atilde;o podem existir com comunica&ccedil;&atilde;o ocasional. Elas precisam de acesso cont&iacute;nuo ao conhecimento de neg&oacute;cio. Al&eacute;m disso, este acesso n&atilde;o &eacute; algo que &eacute; administrado em n&iacute;vel gerencial, e sim algo que est&aacute; presente para cada desenvolvedor. Uma vez que os desenvolvedores s&atilde;o profissionais capazes em suas pr&oacute;prias &aacute;reas de conhecimento, eles precisam trabalhar como iguais com os outros profissionais das outras &aacute;reas de conhecimento.</p>
<p>Uma grande parte disso, &eacute; claro, &eacute; devido &agrave; natureza do desenvolvimento adaptativo. Uma vez que toda a premissa do desenvolvimento adaptativo &eacute; que as coisas mudam rapidamente, voc&ecirc; precisa de contato constante para tornar as mudan&ccedil;as vis&iacute;veis a todos.</p>
<p>N&atilde;o h&aacute; nada mais frustrante para um desenvolvedor que algu&eacute;m ver seu trabalho duro desperdi&ccedil;ado. Ent&atilde;o, &eacute; importante assegurar que conhecimento de neg&oacute;cio de qualidade esteja n&atilde;o s&oacute; dispon&iacute;vel ao desenvolvedor, mas que tamb&eacute;m seja de suficiente qualidade para que seja confi&aacute;vel.</p>
<h2>O Processo Auto-Adaptativo</h2>
<p>At&eacute; agora, eu falei sobre adaptatividade no contexto de um projeto adaptando seu software para atender aos requisitos mut&aacute;veis de seus clientes. Entretanto, h&aacute; um outro &acirc;ngulo para a adaptatividade: o pr&oacute;prio processo mudar ao longo do tempo. Um projeto que se inicia utilizando um processo adaptativo n&atilde;o ter&aacute; o mesmo processo um ano depois. Com o tempo, a equipe vai encontrar aquilo que funciona para ela, e alterar o processo de acordo.</p>
<p>A primeira parte da auto-adaptatividade s&atilde;o revis&otilde;es regulares do processo. Normalmente voc&ecirc; as faz ao fim de cada itera&ccedil;&atilde;o. No fim de cada uma delas, tenha uma reuni&atilde;o curta e fa&ccedil;a as seguintes perguntas (coletadas por <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0932633447" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0932633447&amp;referer=');"> Norm Kerth</a>):</p>
<ul>
<li>O que fizemos bem?</li>
<li>O que aprendemos?</li>
<li>O que podemos fazer melhor?</li>
<li>O que nos intriga?</li>
</ul>
<p>Estas perguntas levar&atilde;o a id&eacute;ias para mudar o processo para a pr&oacute;xima itera&ccedil;&atilde;o. Desta forma, o processo que inicia com problemas pode melhorar &agrave; medida que caminha, adaptando-se de forma melhor &agrave; equipe que o utiliza.</p>
<p>Se a auto-adaptatividade ocorre dentro de um projeto, ela &eacute; ainda mais marcante dentro da organiza&ccedil;&atilde;o. Para aprofundar o processo de auto-adaptatividade, eu sugiro que as equipes fa&ccedil;am uma revis&atilde;o mais formal ao final de grandes marcos do projeto, seguindo as sess&otilde;es retrospectivas descritas por Norm Kerth. Essas retrospectivas envolvem um encontro de 2 a 3 dias fora da empresa, com um facilitador treinado. Elas n&atilde;o somente ensinam a equipe, mas tamb&eacute;m ensinam a organiza&ccedil;&atilde;o como um todo .</p>
<p>A conseq&uuml;&ecirc;ncia da auto-adaptatividade &eacute; que voc&ecirc; nunca deveria esperar encontrar uma metodologia corporativa &uacute;nica. Ao inv&eacute;s disso, cada equipe deve, n&atilde;o apenas escolher seu pr&oacute;prio processo, mas tamb&eacute;m ativamente ajustar seus processos &agrave; medida que avan&ccedil;am no projeto. Processos publicados e a experi&ecirc;ncia de projetos anteriores podem agir como inspira&ccedil;&atilde;o e uma linha-mestre, mas &eacute; responsabilidade profissional dos desenvolvedores adaptarem o processo &agrave; tarefa atual.</p>
<p>Essa auto-adaptatividade &eacute; mais marcante em ASD e Crystal. As regras r&iacute;gidas do XP parecem proibi-la, mas isso &eacute; apenas uma impress&atilde;o superficial, uma vez que XP, de fato, estimula ajustes no processo. A principal diferen&ccedil;a &eacute; que seus proponentes sugerem segui-la literalmente por diversas itera&ccedil;&otilde;es, antes de adapt&aacute;-la. Al&eacute;m disso, revis&otilde;es n&atilde;o s&atilde;o nem encorajadas, nem s&atilde;o parte do processo, apesar de haver sugest&otilde;es que revis&otilde;es sejam incorporadas como umas das pr&aacute;ticas do XP.</p>
<h2>As Metodologias</h2>
<p>V&aacute;rias metodologias est&atilde;o dentro da categoria &aacute;gil. Enquanto todas elas compartilham algumas caracter&iacute;sticas, tamb&eacute;m existem algumas diferen&ccedil;as significativas entre elas. Eu n&atilde;o posso ilustrar todos os pontos importantes neste breve estudo, mas pelo menos posso apontar alguns lugares para buscar mais informa&ccedil;&otilde;es. Eu tamb&eacute;m n&atilde;o posso falar com experi&ecirc;ncia significativa sobre a maioria destas metodologias. Eu trabalhei muito baseado em XP, e vi diversas formas de RUP mas, para a maioria das outros pessoas, meu conhecimento acad&ecirc;mico n&atilde;o &eacute; o mais adequado.</p>
<h3>XP (Programa&ccedil;&atilde;o Extrema)</h3>
<p>De todas as metodologias &aacute;geis, essa &eacute; a que atrai mais aten&ccedil;&atilde;o. Parcialmente pela not&aacute;vel habilidade de seus l&iacute;deres, particularmente Kent Beck, de atra&iacute;rem aten&ccedil;&atilde;o. &Eacute; tamb&eacute;m pela habilidade de Kent Beck em atrair pessoas para sua abordagem, e exercer um papel de lideran&ccedil;a nela. De alguma forma, entretanto, a popularidade do XP se tornou um problema, j&aacute; que deixou de atrair pessoas para as outras metodologias e suas id&eacute;ias valiosas.</p>
<p>As ra&iacute;zes do XP est&atilde;o na comunidade Smalltalk, e em particular na colabora&ccedil;&atilde;o estreita entre Kent Beck e Ward Cunningham no final da d&eacute;cada de 1980. Ambos refinaram suas pr&aacute;ticas em diversos projetos durante a d&eacute;cada de 90, estendendo suas id&eacute;ias para uma abordagem do desenvolvimento de software que fosse tanto adaptativa, quanto orientada a pessoas.</p>
<p>O passo crucial para a passagem da pr&aacute;tica informal para metodologia ocorreu na primavera de 1996. Kent foi chamado para revisar o progresso no projeto C3, o controle de folha de pagamento da Chrysler. O projeto estava sendo desenvolvido em Smalltalk por uma empresa terceirizada, e estava em problemas. Devido &agrave; baixa qualidade do c&oacute;digo, Kent recomendou jogar tudo fora e reiniciar do zero. O projeto ent&atilde;o foi reiniciado sob sua lideran&ccedil;a e, desde ent&atilde;o, se tornou a bandeira e o campo de treinamento para o XP.</p>
<p>A primeira fase do C3 foi muito bem-sucedida e este entrou em produ&ccedil;&atilde;o no in&iacute;cio de 1997. O projeto continuou desde ent&atilde;o e entrou em dificuldades posteriormente, o que resultou no cancelamento de qualquer desenvolvimento adicional em 1999 (o que, se nada mais, pelo menos prova que XP n&atilde;o &eacute; garantia de sucesso).</p>
<p>XP come&ccedil;a com quatro valores: comunica&ccedil;&atilde;o, <em>feedback</em>, simplicidade e coragem. Depois disso, s&atilde;o constru&iacute;das 12 pr&aacute;ticas que os projetos XP devem seguir. Muitas dessas pr&aacute;ticas s&atilde;o t&eacute;cnicas antigas e testadas, entretanto muitas vezes esquecidas por muitos &#8211; inclusive pela maioria dos processos planejados. Al&eacute;m de ressuscitar essas t&eacute;cnicas, XP as tem como um todo sin&eacute;rgico, onde cada t&eacute;cnica refor&ccedil;a as outras.</p>
<p>Uma das t&eacute;cnicas mais not&aacute;veis, pelo menos inicialmente atraente para mim , &eacute; a forte &ecirc;nfase nos testes. Enquanto todos os processos mencionam a verifica&ccedil;&atilde;o atrav&eacute;s de testes, a maioria a faz de forma pouco enf&aacute;tica. Entretanto, XP a coloca na base do desenvolvimento, com cada programador escrevendo testes &agrave; medida que escrevem c&oacute;digo de produ&ccedil;&atilde;o. Os testes s&atilde;o integrados em um processo de integra&ccedil;&atilde;o cont&iacute;nua e constru&ccedil;&atilde;o (<em>build</em>), o que leva a uma plataforma altamente est&aacute;vel para desenvolvimento futuro.</p>
<p>Nesta plataforma, XP constr&oacute;i um processo de <em>design</em> evolutivo que se baseia em <em>refactoring</em> de uma base de c&oacute;digo simples a cada itera&ccedil;&atilde;o. Todo o <em>design</em> &eacute; centrado na itera&ccedil;&atilde;o atual, sem que nada seja feito para necessidades futuras antecipadas. O resultado &eacute; um processo de <em>design</em> que &eacute; disciplinado, e ainda mais, combinando disciplina com adaptatividade &#8211; de uma forma que pode ser considerada a mais bem desenvolvida de todas as metodologias adaptativas.</p>
<p>XP desenvolveu uma lideran&ccedil;a muito ampla, muitos destes l&iacute;deres provenientes do projeto C3 original. Como resultado, existem muitas fontes para mais informa&ccedil;&otilde;es. Kent Beck escreveu <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0201616416" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0201616416&amp;referer=');"> Extreme Programming Explained</a>, o manifesto-chave para XP, que explica todo o racioc&iacute;nio por tr&aacute;s da metodologia e cont&eacute;m explica&ccedil;&otilde;es suficientes para que as pessoas saibam se est&atilde;o interessadas em seguir adiante. Nos &uacute;ltimos anos houve um crescimento epid&ecirc;mico de livros de XP, v&aacute;rios deles muito similares, no sentido que descrevem todo o processo do ponto de vista dos v&aacute;rios pioneiros na ado&ccedil;&atilde;o do XP.</p>
<p>Assim como livros, h&aacute; um n&uacute;mero razo&aacute;vel de recursos na Web. Para encontrar uma abordagem mais estruturada ao XP, &eacute; melhor come&ccedil;ar pelos dois sites dos ex-participantes do C3: <a href="http://www.xprogramming.com/" onclick="urchinTracker('/outgoing/www.xprogramming.com/?referer=');">xProgramming.com</a> , de Ron Jeffries e <a href="http://www.extremeprogramming.org/" onclick="urchinTracker('/outgoing/www.extremeprogramming.org/?referer=');">extremeProgramming.org</a> , de Don Wells. Muitas das descobertas e id&eacute;ias iniciais ocorreram na <em><a href="http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap" onclick="urchinTracker('/outgoing/c2.com/cgi/wiki?ExtremeProgrammingRoadmap&amp;referer=');">wiki</a></em> de Ward Cunningham , um ambiente web de escrita colaborativa. A Wiki se mant&eacute;m como um lugar fascinante para descobertas, mesmo com sua natureza divagante, que acaba muitas vezes envolvendo um pouco demais. Existe um <a href="http://www.egroups.com/group/extremeprogramming/" onclick="urchinTracker('/outgoing/www.egroups.com/group/extremeprogramming/?referer=');">grupo de discuss&atilde;o</a> ativo e freq&uuml;entemente interessante. Uma das vis&otilde;es mais interessantes &quot;de fora&quot; do XP &eacute; a de Mark Paulk, um dos l&iacute;deres da comunidade CMM &#8211; seu artigo analisa <a href="http://www.sei.cmu.edu/publications/articles/paulk/xp-from-a-cmm-perspective.html" onclick="urchinTracker('/outgoing/www.sei.cmu.edu/publications/articles/paulk/xp-from-a-cmm-perspective.html?referer=');">XP de uma perspectiva CMM</a>.</p>
<h3>Fam&iacute;lia Crystal de Cockburn</h3>
<p><a href="http://alistair.cockburn.us/" onclick="urchinTracker('/outgoing/alistair.cockburn.us/?referer=');">Alistair Cockburn</a> trabalha com metodologias desde que foi contratado pela IBM para escrever sobre o assunto, no in&iacute;cio da d&eacute;cada de 90. Sua abordagem difere da utilizada pela maioria dos estudiosos de metodologias. Ao inv&eacute;s de acumular experi&ecirc;ncia pessoal e construir uma teoria de como as coisas devem ser feitas, ele suplementa sua experi&ecirc;ncia direta com uma busca ativa por pesquisar projetos e ver como eles funcionam. Al&eacute;m disso, ele n&atilde;o tem medo de alterar suas vis&otilde;es baseado em suas descobertas: tudo isso o fez meu estudioso de metodologias favorito.</p>
<p>Seu livro, <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0201498340" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0201498340&amp;referer=');"> Sobrevivendo a Projetos Orientados a Objetos</a>, foi seu primeiro conselho sobre como executar projetos, e continua como minha recomenda&ccedil;&atilde;o n&uacute;mero um sobre como executar projetos iterativos. Mais recentemente, Alistar escreveu um livro com uma vis&atilde;o geral de <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0201699699" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0201699699&amp;referer=');"> desenvolvimento de software &aacute;gil</a> que analisa os princ&iacute;pios fundamentais por tr&aacute;s dessas metodologias.</p>
<p>Depois deste livro, ele explorou metodologias &aacute;geis ainda mais, criando a <a href="http://alistair.cockburn.us/crystal/crystal.html" onclick="urchinTracker('/outgoing/alistair.cockburn.us/crystal/crystal.html?referer=');">fam&iacute;lia Crystal de metodologias</a>. &Eacute; uma fam&iacute;lia, pois ele acredita que diferentes tipos de projetos exigem diferentes tipos de metodologias. Ele olha para esta quest&atilde;o sob dois eixos:pelo n&uacute;mero de pessoas no projeto e pelas conseq&uuml;&ecirc;ncias dos erros. Cada metodologia se encaixa em uma parte diferente do gr&aacute;fico, logo um projeto de 40 pessoas que pode perder dinheiro indiscriminadamente tem uma metodologia diferente de um projeto tipo miss&atilde;o-cr&iacute;tica de seis pessoas.</p>
<p>As metodologias Crystal compartilham a orienta&ccedil;&atilde;o humana tal como XP, mas sua orienta&ccedil;&atilde;o a pessoas &eacute; feita de forma diferente. Alistar considera que pessoas consideram dif&iacute;cil seguir um processo disciplinado, ent&atilde;o ao inv&eacute;s de seguir a r&iacute;gida disciplina do XP, Alistar explora o m&eacute;todo menos disciplinado poss&iacute;vel que possa ainda assim ser bem sucedido, conscientemente trocando produtividade por facilidade de execu&ccedil;&atilde;o. Assim, ele considera que apesar do Crystal ser menos produtivo que XP, mais pessoas estar&atilde;o aptas a segui-lo.</p>
<p>Alistair atribui muita import&acirc;ncia &agrave;s revis&otilde;es no final das itera&ccedil;&otilde;es, assim encorajando o processo a ser auto-melhor&aacute;vel. Sua afirma&ccedil;&atilde;o &eacute; que desenvolvimento iterativo existe para detectar problemas cedo, e ent&atilde;o habilitar as pessoas a corrigi-los. Isso coloca mais &ecirc;nfase em pessoas monitorando e ajustando o processo &agrave; medida que se desenvolvem.</p>
<h3>C&oacute;digo Aberto</h3>
<p>Talvez voc&ecirc; esteja surpreso com este t&iacute;tulo. Afinal, c&oacute;digo aberto &eacute; um estilo de software, n&atilde;o muito um processo. Entretanto, definitivamente existe um jeito de se fazer as coisas na comunidade do c&oacute;digo aberto, e muito de sua abordagem &eacute; aplic&aacute;vel para projetos de c&oacute;digo fechado tamb&eacute;m. Em particular, seus processos s&atilde;o habilitados para equipes fisicamente distribu&iacute;das, o que &eacute; importante, pois a maioria dos processos adaptativos s&atilde;o focados em equipes locais.</p>
<p>A maioria dos projetos de c&oacute;digo aberto tem um ou mais mantenedores. Um mantenedor &eacute; a &uacute;nica pessoa permitida para efetivar uma mudan&ccedil;a no reposit&oacute;rio do c&oacute;digo aberto. Entretanto, outras pessoas, que n&atilde;o o mantenedor, podem mudar o c&oacute;digo. A diferen&ccedil;a-chave &eacute; que as outras pessoas precisam mandar suas mudan&ccedil;as a ele, que revisa e ent&atilde;o as efetiva. Normalmente essas mudan&ccedil;as s&atilde;o feitas no formato de arquivos de<em>patch</em> com a corre&ccedil;&atilde;o, o que facilita o processo. O mantenedor ent&atilde;o &eacute; respons&aacute;vel por coordenar essas corre&ccedil;&otilde;es e manter a coes&atilde;o do <em>design</em> do software.</p>
<p>Projetos diferentes lidam com o papel do mantenedor de formas diferentes. Alguns t&ecirc;m um mantenedor para todo o projeto, alguns dividem o projeto em m&oacute;dulos e t&ecirc;m um mantenedor por m&oacute;dulo; alguns revezam o mantenedor; alguns t&ecirc;m m&uacute;ltiplos mantenedores para o mesmo c&oacute;digo; outros combinam essas id&eacute;ias. Muitas das pessoas que trabalham com c&oacute;digo aberto n&atilde;o o fazem em per&iacute;odo integral. Logo, existem problemas sobre o qu&atilde;o bem tais equipes poderiam ser coordenadas em um projeto de tempo integral.</p>
<p>Uma caracter&iacute;stica pr&oacute;pria do desenvolvimento de c&oacute;digo aberto &eacute; que a depura&ccedil;&atilde;o &eacute; altamente pass&iacute;vel de ser realizada em paralelo. Muitas pessoas podem estar envolvidas na depura&ccedil;&atilde;o. Quando elas encontram um defeito, mandam uma corre&ccedil;&atilde;o ao mantenedor. Esta &eacute; uma boa regra para n&atilde;o-mantenedores, j&aacute; que a maior parte do tempo gasto &eacute; para encontrar o defeito. Tamb&eacute;m &eacute; bom para as pessoas envolvidas que n&atilde;o t&ecirc;m muita habilidades em <em>design</em>.</p>
<p>O processo utilizado em c&oacute;digo aberto ainda n&atilde;o est&aacute; bem descrito. O artigo mais famoso &eacute; o de Eric Raymond, <a href="http://www.catb.org/%7Eesr/writings/cathedral-bazaar/cathedral-bazaar/" onclick="urchinTracker('/outgoing/www.catb.org/_7Eesr/writings/cathedral-bazaar/cathedral-bazaar/?referer=');">A Catedral e o Bazar</a>, que enquanto excelente ainda &eacute; razoavelmente breve. O <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/1576104907" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/1576104907&amp;referer=');"> livro</a> de Karl Fogel sobre o reposit&oacute;rio CVS tamb&eacute;m cont&ecirc;m uma s&eacute;ria de bons cap&iacute;tulos a respeito do processo em c&oacute;digo aberto, que seriam interessantes mesmo para aqueles que jamais utilizaram o software CVS.</p>
<h3>Desenvolvimento de Software Adaptativo de Highsmith</h3>
<p><a href="http://www.adaptivesd.com/" onclick="urchinTracker('/outgoing/www.adaptivesd.com/?referer=');">Jim Highsmith</a> passou diversos anos trabalhando com metodologias predeterministas. Ele desenvolveu, instalou, ensinou e concluiu que tais metodologias s&atilde;o profundamente falhas: particularmente para empresas modernas.</p>
<p>Seu <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0932633404" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0932633404&amp;referer=');"> livro</a> mais recente foca na natureza adaptativa de novas metodologias, com uma &ecirc;nfase particular em aplicar id&eacute;ias originantes do mundo dos sistemas complexos adaptativos (comumente conhecidos como teoria do caos). A metodologia n&atilde;o prov&ecirc; pr&aacute;ticas detalhadas como o XP faz, mas traz o fundamento do porqu&ecirc; o desenvolvimento adaptativo &eacute; importante, e as conseq&uuml;&ecirc;ncias nos n&iacute;veis organizacionais e administrativos mais profundos.</p>
<p>No cora&ccedil;&atilde;o do ASD (<em>Adaptative Software Development</em>) est&atilde;o tr&ecirc;s fases n&atilde;o-lineares e sobrepostas: especula&ccedil;&atilde;o, colabora&ccedil;&atilde;o e aprendizado.</p>
<p>Highsmith v&ecirc; o planejamento como um paradoxo em um ambiente adaptativo, uma vez que os produtos s&atilde;o naturalmente imprevis&iacute;veis. No planejamento tradicional, desvios dos planos s&atilde;o enganos e devem ser corrigidos. Em um ambiente adaptativo, entretanto, desvios nos guiam &agrave; solu&ccedil;&atilde;o correta.</p>
<p>Neste ambiente imprevis&iacute;vel voc&ecirc; precisa de pessoas colaborando de forma rica pra lidar com a incerteza. A aten&ccedil;&atilde;o da administra&ccedil;&atilde;o &eacute; menor a respeito de dizer &agrave;s pessoas o que fazer, e maior a respeito de estimular a comunica&ccedil;&atilde;o, para que as pessoas possam criar solu&ccedil;&otilde;es criativas por conta pr&oacute;pria.</p>
<p>Em ambientes predeterministas, o aprendizado normalmente &eacute; desestimulado. As coisas s&atilde;o planejadas de antem&atilde;o e depois seguem o <em>design</em> estipulado.</p>
<blockquote>
<p><em>Em um ambiente adaptativo, o aprendizado desafia todos os envolvidos no projeto &#8211; desenvolvedores e seus clientes &#8211; a examinar suas premissas e a utilizar os resultados de cada ciclo de desenvolvimento para adaptar o seguinte.</em><br />
&#8211; <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0932633404" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0932633404&amp;referer=');"> [Highsmith]</a></p>
</blockquote>
<p>Dessa forma, o aprendizado &eacute; uma caracter&iacute;stica cont&iacute;nua e importante, que assume que os planos e designs devem mudar &agrave; medida que o desenvolvimento avan&ccedil;a.</p>
<blockquote>
<p><em>O benef&iacute;cio principal, poderoso, indivis&iacute;vel, e predominante do ciclo de vida do Desenvolvimento Adaptativo &eacute; que ele nos for&ccedil;a a confrontar nossos modelos mentais, que est&atilde;o na raiz de nossas pr&oacute;prias ilus&otilde;es. Ele nos for&ccedil;a a estimar nossa habilidade de forma mais realista.</em><br />
&#8211; <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0932633404" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0932633404&amp;referer=');"> [Highsmith]</a></p>
</blockquote>
<p>Com esta &ecirc;nfase, o trabalho de Highsmith foca diretamente em abordar as partes dif&iacute;ceis do desenvolvimento adaptativo, em particular em como lidar com a colabora&ccedil;&atilde;o e o aprendizado dentro do projeto. Desta forma, seu livro ajuda a prover id&eacute;ias para explorar essas &aacute;reas <em>&quot;soft&quot;</em>, o que faz que seja um bom complemento para as abordagens baseadas em pr&aacute;ticas fundamentadas, tais como XP, FDD e Crystal.</p>
<h3>Scrum</h3>
<p>Scrum est&aacute; presente ha algum tempo em c&iacute;rculos da comunidade de orienta&ccedil;&atilde;o a objetos, entretanto confesso que n&atilde;o tenho muito conhecimento de sua hist&oacute;ria ou desenvolvimento. Novamente, foca que processos definidos e repet&iacute;veis s&oacute; funcionam para atacar problemas definidos e repet&iacute;veis com pessoas definidas e repet&iacute;veis em ambientes definidos e repet&iacute;veis.</p>
<p>Scrum divide um projeto em itera&ccedil;&otilde;es (chamadas de <em>sprints</em>) de 30 dias. Antes de iniciar um <em>sprint</em>, voc&ecirc; define a funcionalidade requerida para o sprint e ent&atilde;o deixa a cargo do time para implementar tais funcionalidades. O ponto &eacute; estabilizar os requisitos durante o sprint.</p>
<p>Entretanto, a administra&ccedil;&atilde;o n&atilde;o perde o envolvimento durante o sprint. Todo dia, a equipe tem uma pequena reuni&atilde;o (15 minutos), chamada de <em>scrum</em>, onde ela passa por tudo que vai fazer no pr&oacute;ximo dia. Em particular, eles fazem transparecer os impedimentos administrativos: impedimentos que dificultam o avan&ccedil;o, e que a ger&ecirc;ncia precisa resolver. Eles tamb&eacute;m reportam o que est&aacute; sendo feito para que a ger&ecirc;ncia tenha uma atualiza&ccedil;&atilde;o di&aacute;ria sobre em que ponto o projeto se encontra.</p>
<p>A literatura sobre Scrum foca principalmente no planejamento iterativo e em processos de acompanhamento. &Eacute; muito parecida com outras metodologias &aacute;geis em diversos aspectos, e deve funcionar bem com as pr&aacute;ticas de programa&ccedil;&atilde;o do XP.</p>
<p>Depois de muito tempo sem um livro, Ken Schwaber e Mike Beedle escreveram o <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0130676349" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0130676349&amp;referer=');"> primeiro livro sobre Scrum</a>. Ken Schwaber tamb&eacute;m administra o site <a href="http://www.controlchaos.com" onclick="urchinTracker('/outgoing/www.controlchaos.com?referer=');">controlchaos.com</a>, que &eacute; provavelmente a melhor vis&atilde;o geral do Scrum. Jeff Sutherlan sempre teve um site bastante ativo sobre tecnologia de objetos e inclui uma <a href="http://jeffsutherland.com/scrum/" onclick="urchinTracker('/outgoing/jeffsutherland.com/scrum/?referer=');">sess&atilde;o</a> sobre Scrum. H&aacute; tamb&eacute;m uma boa vis&atilde;o geral das pr&aacute;ticas do Scrum no livro <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0201433044" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0201433044&amp;referer=');"> PloPD4</a>. Scrum tamb&eacute;m tem um <a href="http://groups.yahoo.com/group/scrumdevelopment" onclick="urchinTracker('/outgoing/groups.yahoo.com/group/scrumdevelopment?referer=');">grupo de discuss&atilde;o no Yahoo</a>.</p>
<h3>Desenvolvimento Orientado a Funcionalidades</h3>
<p>Desenvolvimento Orientado a Funcionalidades</p>
<p>(<em>Feature Driven Development, FDD</em>) foi desenvolvido por Jeff De Luca e pelo, a longo tempo guru de orienta&ccedil;&atilde;o a objetos, Peter Coad. Assim como as outras metodologias adaptativas, foca em itera&ccedil;&otilde;es curtas e em entregar funcionalidade tang&iacute;vel. No caso do FDD, as itera&ccedil;&otilde;es t&ecirc;m duas semanas de dura&ccedil;&atilde;o.</p>
<p>FDD tem cinco processos. Os tr&ecirc;s primeiros s&atilde;o executados no in&iacute;cio do projeto:</p>
<ul>
<li>Desenvolver um modelo geral;</li>
<li>Construir uma lista de funcionalidades;</li>
<li>Planejar por funcionalidade.</li>
</ul>
<p>Os dois &uacute;ltimos s&atilde;o feitos em cada itera&ccedil;&atilde;o:</p>
<ul>
<li><em>Design</em> por funcionalidade;</li>
<li>Constru&ccedil;&atilde;o por funcionalidade.</li>
</ul>
<p>Cada processo &eacute; dividido em tarefas e lhe s&atilde;o atribu&iacute;dos crit&eacute;rios de valida&ccedil;&atilde;o.</p>
<p>Existem ent&atilde;o dois tipos de desenvolvedores: os propriet&aacute;rios de classes e os programadores-chefe. Os programadores-chefe s&atilde;o os desenvolvedores mais experientes. A eles s&atilde;o atribu&iacute;dos funcionalidades a serem constru&iacute;das. Entretanto, eles n&atilde;o as constroem sozinhos. Ao inv&eacute;s disso, o programador-chefe identifica quais classes est&atilde;o envolvidas para se desenvolver a funcionalidade e re&uacute;ne seus propriet&aacute;rios de classes, criando uma equipe para desenvolver aquela funcionalidade. O programador-chefe age como um coordenador, <em>design</em>er l&iacute;der e mentor, enquanto os propriet&aacute;rios de classes fazem a maior parte da programa&ccedil;&atilde;o das funcionalidades.</p>
<p>At&eacute; recentemente, a documenta&ccedil;&atilde;o do FDD era muito escassa. Finalmente h&aacute; um <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0130676152" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0130676152&amp;referer=');"> livro completo sobre FDD</a>. Jeff De Luca, o inventor principal, agora tem um <a href="http://www.featuredrivendevelopment.com/" onclick="urchinTracker('/outgoing/www.featuredrivendevelopment.com/?referer=');">portal</a> com artigos, <em>blogs</em> e pain&eacute;is de discuss&atilde;o. A descri&ccedil;&atilde;o original est&aacute; no livro <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/013011510X" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/013011510X&amp;referer=');"> UML em Cores</a>, de Peter Coad. A sua empresa, <a href="http://www.togethersoft.com/" onclick="urchinTracker('/outgoing/www.togethersoft.com/?referer=');">TogetherSoft</a>, tamb&eacute;m d&aacute; consultoria e treinamento em FDD .</p>
<h3>DSDM (M&eacute;todo para Desenvolvimento de Sistemas Din&acirc;micos)</h3>
<p><a href="http://www.dsdm.org/" onclick="urchinTracker('/outgoing/www.dsdm.org/?referer=');">DSDM</a> (<em>Dynamic System Development Method</em>) come&ccedil;ou na Inglaterra em 1994 como um cons&oacute;rcio de empresas brit&acirc;nicas que queriam construir algo em cima do conceito de RAD (<em>Rapid Application Development</em>, ou Desenvolvimento R&aacute;pido de Aplica&ccedil;&otilde;es) e desenvolvimento iterativo. Come&ccedil;ando com 17 fundadores, agora tem mais de mil membros e cresceu al&eacute;m de suas ra&iacute;zes brit&acirc;nicas. Sendo desenvolvida por um cons&oacute;rcio, ela parece diferente das outros metodologias &aacute;geis. H&aacute; uma organiza&ccedil;&atilde;o em tempo integral por tr&aacute;s dela dando suporte, com manuais, programas de certifica&ccedil;&atilde;o, e similares. H&aacute; tamb&eacute;m um custo associado, o que limitou minhas investiga&ccedil;&otilde;es na metodologia. Entretanto, Jennifer Stapleton escreveu um <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0321112245" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0321112245&amp;referer=');"> livro</a> que d&aacute; uma vis&atilde;o geral da metodologia.</p>
<p>Utilizar o m&eacute;todo come&ccedil;a com um estudo de viabilidade e um estudo de neg&oacute;cio. O estudo de viabilidade considera se o DSDM &eacute; adequado ao projeto em quest&atilde;o. O estudo de neg&oacute;cio &eacute; uma pequena s&eacute;rie de <em>workshops</em> para entender a &aacute;rea de neg&oacute;cio sobre a qual o desenvolvimento acontecer&aacute;. Ele tamb&eacute;m prop&otilde;e esbo&ccedil;os da arquitetura do sistema e um plano de projeto.</p>
<p>O resto do processo forma tr&ecirc;s ciclos interligados: o ciclo do modelo funcional, onde se analisa a documenta&ccedil;&atilde;o e prot&oacute;tipos; o ciclo de <em>design</em> e constru&ccedil;&atilde;o, onde o sistema &eacute; constru&iacute;do para uso operacional; e o ciclo de implementa&ccedil;&atilde;o, onde &eacute; resolvido o problema da implanta&ccedil;&atilde;o para uso operacional.</p>
<p>DSDM tem princ&iacute;pios b&aacute;sicos que incluem intera&ccedil;&atilde;o ativa do usu&aacute;rio, entregas freq&uuml;entes, equipes aut&ocirc;nomas, e testes ao longo do ciclo. Como outras metodologias &aacute;geis, usa ciclos de tempo fixo entre duas e seis semanas. H&aacute; uma &ecirc;nfase na alta qualidade e na adaptabilidade para requisitos mut&aacute;veis.</p>
<p>Eu n&atilde;o tenho visto muitos ind&iacute;cios de seu uso fora do Reino Unido, mas DSDM &eacute; not&aacute;vel por possuir bastante da infra-estrutura das metodologias mais tradicionais, enquanto segue os princ&iacute;pios das abordagens &aacute;geis. Parece existir uma quest&atilde;o se seus materiais encorajam uma maior orienta&ccedil;&atilde;o a processo e mais cerim&ocirc;nia que eu gostaria .</p>
<h3>O Manifesto para Desenvolvimento &Aacute;gil de Software</h3>
<p>Com tantas similaridades entre essas metodologias, houve um razo&aacute;vel interesse em alguma forma de trabalho coletivo. Dessa forma, os representantes de cada uma dessas metodologias foram convidados para um workshop de dois dias em Snowbird, Utah em fevereiro de 2001. Eu assisti, sem muitas expectativas. Afinal, quando voc&ecirc; coloca alguns estudiosos de metodologias em uma sala, civilidade &eacute; normalmente o melhor que voc&ecirc; pode esperar.</p>
<p>O resultado final &eacute; que acabei me surpreendendo . Todos estavam conscientes do fato de haver muito em comum, e esse reconhecimento era muito maior que as diferen&ccedil;as entre os processos. Ent&atilde;o, assim como um contato &uacute;til entre os l&iacute;deres dos processos, ainda havia a id&eacute;ia de fazer uma declara&ccedil;&atilde;o &uacute;nica &#8211; um chamado a favor de mais processos de software &aacute;geis (nesta ocasi&atilde;o tamb&eacute;m concordamos em usar o termo &quot;&aacute;gil&quot; para nossas id&eacute;ias em comum.)</p>
<p>O resultado &eacute; o <a href="http://agilemanifesto.org/" onclick="urchinTracker('/outgoing/agilemanifesto.org/?referer=');">Manifesto para Desenvolvimento &Aacute;gil de Software</a>, uma declara&ccedil;&atilde;o de valores comuns e princ&iacute;pios de processos &aacute;geis. H&aacute; tamb&eacute;m um desejo de colaborar ainda mais no futuro, para encorajar n&atilde;o somente tecn&oacute;logos, mas tamb&eacute;m pessoas de neg&oacute;cios para usar e requerer abordagens &aacute;geis para o desenvolvimento de software. H&aacute; um artigo em uma revista de desenvolvimento de software que &eacute; um <a href="http://www.sdmagazine.com/documents/s=844/sdm0108a/0108a.htm" onclick="urchinTracker('/outgoing/www.sdmagazine.com/documents/s=844/sdm0108a/0108a.htm?referer=');">coment&aacute;rio e explica&ccedil;&atilde;o sobre o manifesto</a>.</p>
<p>O manifesto era apenas isso, uma publica&ccedil;&atilde;o que agia como um ponto de partida para aqueles que compartilhavam as mesmas id&eacute;ias b&aacute;sicas. Um dos frutos deste esfor&ccedil;o foi a cria&ccedil;&atilde;o de uma entidade mais permanente, a <a href="http://agilealliance.org/" onclick="urchinTracker('/outgoing/agilealliance.org/?referer=');">Alian&ccedil;a &Aacute;gil</a>. A Alian&ccedil;a &Aacute;gil &eacute; uma organiza&ccedil;&atilde;o sem fins lucrativos que procura promover o conhecimento e discuss&atilde;o sobre todas as metodologias &aacute;geis. Muitos dos l&iacute;deres do movimento &aacute;gil que mencionei, s&atilde;o tamb&eacute;m membros da Alian&ccedil;a &Aacute;gil.</p>
<h3>Verifica&ccedil;&atilde;o Orientada ao Contexto</h3>
<p>Desde o in&iacute;cio, tem sido os desenvolvedores que conduzem a comunidade &aacute;gil. Entretanto, muitas das outras pessoas envolvidas em desenvolvimento de software s&atilde;o afetadas por este novo movimento. Um desses grupos &oacute;bvios s&atilde;o os especialistas em testes, que freq&uuml;entemente vivem em um mundo contido no pensamento do desenvolvimento em cascata. Com direcionamentos comuns que dizem que o papel dos testes &eacute; de assegurar que o software est&aacute; de acordo com a especifica&ccedil;&atilde;o pr&eacute;via, o papel dos especialistas em testes em um mundo &aacute;gil fica longe de estar claro.</p>
<p>De fato, v&aacute;rias pessoas na comunidade de testes t&ecirc;m questionado muito do pensamento vigente sobre testes por algum tempo. Isso levou a um grupo conhecido como verifica&ccedil;&atilde;o orientada ao contexto. A melhor descri&ccedil;&atilde;o para isso &eacute; o livro <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0471081124" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0471081124&amp;referer=');"> Li&ccedil;&otilde;es Aprendidas em Verifica&ccedil;&atilde;o de Software</a>. A comunidade &eacute; tamb&eacute;m muito ativa na Web, veja os <em>sites</em> organizados <a href="http://testing.com/" onclick="urchinTracker('/outgoing/testing.com/?referer=');">Brian Marick</a> (um dos autores do manifesto &aacute;gil), <a href="http://pettichord.com/" onclick="urchinTracker('/outgoing/pettichord.com/?referer=');">Brett Pettichord</a>, <a href="http://www.satisfice.com/" onclick="urchinTracker('/outgoing/www.satisfice.com/?referer=');">James Bach</a> e <a href="http://www.kaner.com/" onclick="urchinTracker('/outgoing/www.kaner.com/?referer=');">Cem Kaner</a>.</p>
<h3>RUP &eacute; uma metodologia &aacute;gil?</h3>
<p>Independentemente de quando come&ccedil;armos a discutir sobre metodologias no campo da orienta&ccedil;&atilde;o a objetos, inevitavelmente nos depararemos com o papel do <em><a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0201707101" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0201707101&amp;referer=');"> Rational Unified Process</a></em> (RUP). O Processo Unificado foi desenvolvido por Philippe Kruchten, Ivar Jacobson e outros da <em>Rational</em>, como o complemento de processo ao UML. RUP &eacute; uma plataforma processual, e como tal pode acomodar uma vasta variedade de processos. De fato, essa &eacute; minha principal cr&iacute;tica ao RUP &#8211; algo que pode ser tudo, acaba n&atilde;o sendo nada. Eu prefiro um processo que lhe diga o que fazer ao inv&eacute;s de um que lhe ofere&ccedil;a op&ccedil;&otilde;es intermin&aacute;veis.</p>
<p>Como resultado dessa mentalidade de plataforma processual, RUP pode ser usado em uma maneira bastante tradicional, como desenvolvimento em cascata, ou tamb&eacute;m de forma &aacute;gil. Logo, como resultado voc&ecirc; pode usar RUP como um processo &aacute;gil ou como um processo tradicional &#8211; tudo depende de como voc&ecirc; o adapta para seu ambiente.</p>
<p>Craig Larman &eacute; um forte defensor de se utilizar RUP de maneira &aacute;gil. Seu excelente <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0130925691" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0130925691&amp;referer=');"> livro introdut&oacute;rio</a> sobre desenvolvimento orientado a objetos cont&eacute;m um processo bastante fundamentado em seu pensamento RUP. Sua vis&atilde;o &eacute; que muito da corrente atual a favor das metodologias &aacute;geis nada mais &eacute; que o aceite do desenvolvimento orientado a objetos, que j&aacute; foi capturado no RUP. Uma das coisas que Craig faz &eacute; investir os primeiros dois ou tr&ecirc;s dias de uma itera&ccedil;&atilde;o de um m&ecirc;s com todo o time, usando UML para esbo&ccedil;ar o trabalho a ser feito durante a itera&ccedil;&atilde;o. Isso n&atilde;o &eacute; um plano de projeto que n&atilde;o pode ser desviado, mas sim um esbo&ccedil;o que d&aacute; perspectiva &agrave;s pessoas de como fazer as coisas durante a itera&ccedil;&atilde;o.</p>
<p>Outra abordagem ao RUP &aacute;gil &eacute; o <a href="http://www.objectmentor.com/publications/RUPvsXP.pdf" onclick="urchinTracker('/outgoing/www.objectmentor.com/publications/RUPvsXP.pdf?referer=');">processo dX</a>, de Robert Martin. O processo dX &eacute; uma inst&acirc;ncia totalmente conforme com RUP, que simplesmente &eacute; id&ecirc;ntica ao XP (vire dX de ponta-cabe&ccedil;a para entender a brincadeira). dX foi projetada para pessoas que tem que usar RUP, mas gostariam de estar usando XP. Como tal, &eacute; tanto XP como RUP e, portanto, um bom exemplo de um uso &aacute;gil do RUP.</p>
<p>Para mim, uma das principais coisas que precisa acontecer ao RUP &eacute; que seus l&iacute;deres na ind&uacute;stria precisam enfatizar suas abordagens ao desenvolvimento de software. Mais de uma vez eu vi pessoas utilizarem RUP juntamente com um processo de desenvolvimento estilo cascata. Gra&ccedil;as a meus contatos na ind&uacute;stria, eu sei que Philippe Krutchen e sua equipe s&atilde;o seguidores fi&eacute;is do desenvolvimento iterativo. Tornar claro esses princ&iacute;pios e encorajar inst&acirc;ncias &aacute;geis de RUP, tais como as de Craig e Robert, teriam um efeito importante.</p>
<h3>Outras Fontes</h3>
<p>Recentemente vimos dois bons livros surgirem que analisam o t&oacute;pico amplo de metodologias &aacute;geis, de <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0201699699" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0201699699&amp;referer=');"> Alistair Cockburn</a> e <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0201760436" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0201760436&amp;referer=');"> Jim Highsmith</a>.</p>
<p>H&aacute; uma s&eacute;rie de outros artigos e discuss&otilde;es sobre o tema de metodologias &aacute;geis. Enquanto estes podem n&atilde;o ser metodologias completas, eles oferecem <em>insights</em> neste campo em expans&atilde;o.</p>
<p>As confer&ecirc;ncias <a href="http://hillside.net/conferences/" onclick="urchinTracker('/outgoing/hillside.net/conferences/?referer=');">Linguagem de Padr&otilde;es de Programa&ccedil;&atilde;o</a> freq&uuml;entemente t&ecirc;m artigos que tocam neste assunto, mesmo que somente por que muitas das pessoas interessadas em padr&otilde;es tamb&eacute;m est&atilde;o interessadas em m&eacute;todos mais humanos e adaptativos. Um artigo pioneiro foi o de Jim Coplier na <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0201607344" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0201607344&amp;referer=');"> PLoP1</a>. A linguagem de padr&otilde;es Epis&oacute;dios, de Ward Cunningham apareceu na <a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=phaedrus0b&amp;creative=9325&amp;path=ASIN/0201895277" onclick="urchinTracker('/outgoing/www.amazon.com/exec/obidos/redirect?link_code=ur2_amp_camp=1789_amp_tag=phaedrus0b_amp_creative=9325_amp_path=ASIN/0201895277&amp;referer=');"> PloP2</a>. Jim Complein agora mant&eacute;m o site <a href="http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns" onclick="urchinTracker('/outgoing/www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns?referer=');">orgPatterns</a>, uma <em>wiki</em> que coleta padr&otilde;es organizacionais.</p>
<p>Dirk Riehle mandou um artigo para XP2000 que <a href="http://www.riehle.org/computer-science/research/2000/xp-2000.html" onclick="urchinTracker('/outgoing/www.riehle.org/computer-science/research/2000/xp-2000.html?referer=');">compara os sistemas</a> de valores do XP e do Desenvolvimento de Software Adaptativo. A <a href="http://bdn.borland.com/article/0,1410,29684,00.html" onclick="urchinTracker('/outgoing/bdn.borland.com/article/0_1410_29684_00.html?referer=');">edi&ccedil;&atilde;o de fevereiro de 2002</a> do peri&oacute;dico de Coad compara XP a FDD. A edi&ccedil;&atilde;o de julho da IEEE Software inclui v&aacute;rios artigos sobre &quot;<a href="http://www.computer.org/software/so2000/s4toc.htm" onclick="urchinTracker('/outgoing/www.computer.org/software/so2000/s4toc.htm?referer=');">diversidade de processos</a>&quot; que menciona essas metodologias.</p>
<p>Mary Poppendieck escreveu um artigo fascinante comparando <a href="http://www.poppendieck.com/lean.htm" onclick="urchinTracker('/outgoing/www.poppendieck.com/lean.htm?referer=');">metodologias &aacute;geis com a manufatura estilo <em>lean</em></a>.</p>
<h2>Voc&ecirc; deve se tornar &aacute;gil?</h2>
<p>Usar uma metodologia &aacute;gil n&atilde;o &eacute; para todos. Existem v&aacute;rias coisas para se ter em mente se voc&ecirc; decidir trilhar este caminho. Entretanto, eu sem d&uacute;vida acredito que estas novas metodologias s&atilde;o amplamente aplic&aacute;veis e deveriam ser utilizadas por mais pessoas que hoje consideram em faz&ecirc;-lo.</p>
<p>No ambiente de hoje, a metodologia mais comum &eacute; a de codificar e consertar. Aplicar mais disciplina que o caos certamente ir&aacute; ajudar, e a abordagem &aacute;gil tem a vantagem de ser um passo muito menos largo que usar uma metodologia pesada. Aqui, uma das principais vantagens das metodologias &aacute;geis &eacute; justamente sua leveza. Processos simples s&atilde;o muito mais propensos de serem seguidos quando voc&ecirc; est&aacute; acostumado a eles, do que nenhum processo.</p>
<p>Uma das maiores limita&ccedil;&otilde;es destas novas metodologias &eacute; como elas lidam com times grandes. Como muitas novas abordagens, elas tendem a ser utilizadas primeiramente em pequena escala. Tamb&eacute;m freq&uuml;entemente s&atilde;o criadas com &ecirc;nfase em equipes pequenas. <em>Extreme Programming</em> explicitamente diz que foi feita para equipes de at&eacute; doze pessoas. Vale a pena lembrar que muitas equipes de software poderiam ser reduzidas em tamanho sem reduzir a produtividade geral.</p>
<p>Outras abordagens &aacute;geis s&atilde;o dirigidas para equipes maiores. FDD foi originalmente projetada para um projeto de cinq&uuml;enta pessoas. A <em>ThoughtWorks</em> utilizou projetos influenciados por XP com uma equipe de aproximadamente 100 pessoas, em tr&ecirc;s continentes. Scrum tamb&eacute;m j&aacute; foi utilizado para lidar com projetos de equipes com tamanhos similares.</p>
<p>Espero que uma mensagem que tenha ficado clara com este artigo &eacute; a de que processos adaptativos s&atilde;o bons quando os requisitos s&atilde;o incertos ou vol&aacute;teis. Se voc&ecirc; n&atilde;o tem requisitos est&aacute;veis, ent&atilde;o voc&ecirc; n&atilde;o est&aacute; na posi&ccedil;&atilde;o de ter um <em>design</em> est&aacute;vel e seguir um processo planejado. Nestas situa&ccedil;&otilde;es, um processo adaptativo pode ser menos confort&aacute;vel, mas ser&aacute; mais efetivo. Normalmente aqui a maior barreira &eacute; o cliente. Na minha vis&atilde;o, &eacute; importante para o cliente entender que seguir um processo predeterminante quando os requisitos mudam &eacute; t&atilde;o arriscado pra eles quanto para a equipe de desenvolvimento.</p>
<p>Se voc&ecirc; for trilhar a rota adaptativa, voc&ecirc; precisa confiar em seus desenvolvedores e envolv&ecirc;-los na decis&atilde;o. Processos adaptativos se baseiam em voc&ecirc; confiar em seus desenvolvedores, ent&atilde;o se voc&ecirc; considera que seus desenvolvedores s&atilde;o de baixa qualidade e motiva&ccedil;&atilde;o, ent&atilde;o voc&ecirc; deve usar uma abordagem predeterminista.</p>
<p>Ent&atilde;o, para sumarizar: os seguintes fatores sugerem um processo adaptativo:</p>
<ul>
<li>Requisitos incertos ou vol&aacute;teis;</li>
<li>Desenvolvedores respons&aacute;veis e motivados;</li>
<li>Cliente que entende e ir&aacute; se envolver.</li>
</ul>
<p>Estes fatores sugerem um processo predeterminista:</p>
<ul>
<li>Uma equipe com mais de 100 pessoas;</li>
<li>Um contrato de pre&ccedil;o fixo, ou, mais corretamente, de escopo fixo</li>
</ul>
<h2>Agradecimentos</h2>
<p>Eu peguei muitas id&eacute;ias de outras pessoas para este artigo, mais do que poderia aqui listar. Por sugest&otilde;es concretas, eu gostaria de agradecer Marc Balcer, Kent Beck, Alistair Cockburn, Ward Cunningham, Bill Kimmel e Fran Westphal.</p>
<p>Lembre-se que este &eacute; um artigo da web em evolu&ccedil;&atilde;o e prov&aacute;vel de ser mudado sempre que eu tiver a inclina&ccedil;&atilde;o em assim fazer. Eu irei adicionar um registro para mudan&ccedil;as significativas, entretanto mudan&ccedil;as pequenas poder&atilde;o ocorrer sem aviso.</p>
<h3>Hist&oacute;rico de Revis&otilde;es</h3>
<p>Eis uma lista das revis&otilde;es importantes deste artigo:</p>
<ul>
<li><em>Abril de 2003:</em> V&aacute;rias sess&otilde;es revisadas. Adicionada a sess&atilde;o sobre dificuldade de medi&ccedil;&atilde;o e verifica&ccedil;&atilde;o orientada a contexto.</li>
<li><em>Junho de 2002:</em> Refer&ecirc;ncias atualizadas.</li>
<li><em>Novembro de 2001:</em> Algumas refer&ecirc;ncias recentes atualizadas.</li>
<li><em>Mar&ccedil;o de 2001:</em> Atualizado para refletir a apari&ccedil;&atilde;o da Alian&ccedil;a &Aacute;gil.</li>
<li><em>Novembro de 2000:</em> Atualizada a sess&atilde;o sobre ASD e adicionadas as sess&otilde;es sobre DSDM e RUP.</li>
<li><em>Dezembro de 2000:</em> Vers&atilde;o editada publicada na revista <em><a href="http://www.sdmagazine.com/" onclick="urchinTracker('/outgoing/www.sdmagazine.com/?referer=');">Software Development</a></em>, sob o t&iacute;tulo de <em>&quot;Put your Process on a Diet&quot;</em>.</li>
<li><em>Julho de 2000:</em> Publica&ccedil;&atilde;o original em martinfowler.com.</li>
</ul>
<p>&copy; Copyright <a href="http://www.martinfowler.com/" onclick="urchinTracker('/outgoing/www.martinfowler.com/?referer=');">Martin Fowler</a>, todos os direitos reservados.</p>
<p>Tags BlogBlogs: <a href="http://blogblogs.com.br/tag/metodologias" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/metodologias?referer=');">metodologias</a>, <a href="http://blogblogs.com.br/tag/ageis" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/ageis?referer=');">ageis</a>, <a href="http://blogblogs.com.br/tag/metodologias+ageis" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/metodologias+ageis?referer=');">metodologias ageis</a>, <a href="http://blogblogs.com.br/tag/scrum" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/scrum?referer=');">scrum</a>, <a href="http://blogblogs.com.br/tag/xp" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/xp?referer=');">xp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://crisdev.eti.br/metodologias-ageis-de-desenvolvimento.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

