<?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>Valério Farias &#187; Desenvolvimento Ágil</title>
	<atom:link href="http://valeriofarias.com/category/desenvolvimento-agil/feed/" rel="self" type="application/rss+xml" />
	<link>http://valeriofarias.com</link>
	<description>(Tecnologia + Negócios) = :)</description>
	<lastBuildDate>Tue, 29 Mar 2011 21:07:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Extreme programing e a inteligência coletiva</title>
		<link>http://valeriofarias.com/extreme-programing-e-a-inteligencia-coletiva/</link>
		<comments>http://valeriofarias.com/extreme-programing-e-a-inteligencia-coletiva/#comments</comments>
		<pubDate>Sun, 05 Aug 2007 18:20:55 +0000</pubDate>
		<dc:creator>Valrio Farias</dc:creator>
				<category><![CDATA[Desenvolvimento Ágil]]></category>
		<category><![CDATA[Pense nisso!]]></category>

		<guid isPermaLink="false">http://valeriofarias.wordpress.com/2007/08/05/extreme-programing-e-a-inteligencia-coletiva/</guid>
		<description><![CDATA[Bem vindos à 3ª edição do &#8220;Pense nisso!&#8221;
A revista National Geographic Brasil de julho 2007 veio com uma matéria sobre Inteligência Coletiva, que falava do comportamento de pássaros, abelhas, formigas e peixes que estavam sendo estudados e também aplicados no trabalho, no aeroporto, na internet e eu diria também no desenvolvimento de software com objetivo [...]]]></description>
			<content:encoded><![CDATA[<p>Bem vindos à 3ª edição do &#8220;Pense nisso!&#8221;</p>
<p>A revista National Geographic Brasil de julho 2007 veio com uma matéria sobre <a href="http://nationalgeographic.abril.com.br/ng/edicoes/88/reportagens/mt_239989.shtml#">Inteligência Coletiva</a>, que falava do comportamento de pássaros, abelhas, formigas e peixes que estavam sendo estudados e também aplicados no trabalho, no aeroporto, na internet e eu diria também no desenvolvimento de software com objetivo de facilitar e otimizar processos.</p>
<p>No caso do formigueiro, a colônia é capaz de resolver problemas impossíveis para cada formiga individualmente, como por exemplo, achar o caminho mais curto para a melhor fonte de comida. Se individualmente elas são estupidas, coletivamente são ágeis e eficientes, fenômeno denominado de &#8220;inteligência de enxame&#8221;.</p>
<p>Uma característica muito importante no formigueiro é o fato de ninguém está no comando, e a colônia funciona muito bem, mesmo sem ter um sistema de controle. O funcionamento da colônia é baseado em diversas interações entre as formigas, cada qual seguindo regras práticas muito simples sendo a comunicação por meio do toque e odor (ferormônio).</p>
<p>Outro fato interessante ocorre num enxame de abelhas que mesmo havendo desacordos frequentes sobre os lugares onde formar nova colmeia, elas sempre escolhem o melhor local. Chegando a essa decisão por avaliações independentes e algum tipo de votação. Novamente é um trabalho coletivo descentralizado. A abelha rainha possui a única função de pôr ovos.</p>
<p>Esse comportamento das formigas já é extensamente aproveitado na computação na área de <a href="http://pt.wikipedia.org/wiki/Otimiza%C3%A7%C3%A3o">otimização combinatória</a> através do algoritmo &#8220;<a href="http://alfa.ist.utl.pt/~cvrm/staff/vramos/publico.html">colônia de formigas</a>&#8221; que é utilizado para descobrir a melhor rota para coleta de lixo em uma cidade, transporte de combustíveis a partir de poços de petróleo espalhados geograficamente, com objetivo de diminuir o tempo do serviço,  diminuir o gasto com combustível, evitar que o caminhão passe mais de uma vez pela mesma rua, entre outros problemas.</p>
<p>Comparando um pouco esses princípios da inteligência coletiva podemos identificá-los em práticas do Extreme Programing como a do &#8220;<a href="http://www.improveit.com.br/xp/praticas/codigo_coletivo">Código Coletivo</a>&#8221;  onde todas as classes e métodos pertencem à equipe e caso seja necessário qualquer integrante poderá modificá-lo sem ter que pedir permissão, mas para garantia de segurança só é possível o uso pleno dessa prática se a equipe investir na criação de <a href="http://www.improveit.com.br/xp/praticas/tdd">testes automatizados</a>.</p>
<p>Fazendo analogia com as comunicações simples das formigas o XP utiliza-se das práticas de &#8220;<a href="http://www.improveit.com.br/xp/praticas/programacao_par">programação em pares</a>&#8221; e de &#8220;<a href="http://www.improveit.com.br/xp/praticas/reuniao_pe">Reunião em pé</a>&#8220;, em que o conhecimento poderá ser dividido e propagado para todos os integrantes da equipe garantindo dessa forma a prática do código coletivo e evitando o risco de determinada rotina ou código fique sem manutenção devido a falta de algum desenvolvedor por motivo de doença. Nesse caso logo outro assume pois já tem uma noção do funcionamento do código. As reuniões garantem o andamento correto do desenvolvimento sem correr o risco de fugir do que foi priorizado em planejamento.</p>
<p>Existe várias outros <a href="http://www.improveit.com.br/br/xp">valores, princípios e práticas</a> no XP, que juntos acabam tornando o desenvolvimento mais produtivo, mas algo importante deve ser reforçado: para o funcionamento efetivo cada integrante da equipe deve estar comprometido e assumir as responsabilidades. Isso deve ficar bem claro, senão acaba voltando para outras práticas hierarquizadas em que o desenvolvedor fica esperando que o gerente de projeto lhe dê algo para fazer.</p>
<p>É bem semelhante à coletividade das abelhas, formigas e peixes que sozinhos são prezas fáceis e não conseguem realizar tarefas complexas, mas em conjunto, cada qual fazendo sua parte, conseguem realizar tarefas que até hoje facinam os pesquisadores da área.</p>
<p>Bom, fico por aqui e até o próximo &#8220;pense nisso!&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://valeriofarias.com/extreme-programing-e-a-inteligencia-coletiva/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extreme Programing definitivamente não é Gambiarra!</title>
		<link>http://valeriofarias.com/extreme-programing-definitivamente-nao-e-gambiarra/</link>
		<comments>http://valeriofarias.com/extreme-programing-definitivamente-nao-e-gambiarra/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 15:27:35 +0000</pubDate>
		<dc:creator>Valrio Farias</dc:creator>
				<category><![CDATA[Desenvolvimento Ágil]]></category>
		<category><![CDATA[Pense nisso!]]></category>

		<guid isPermaLink="false">http://valeriofarias.wordpress.com/2007/08/02/extreme-programing-definitivamente-nao-e-gambiarra/</guid>
		<description><![CDATA[Nessa primeira sessão do  &#8220;Pense nisso&#8221;, vou contar para vocês um caso que me ocorreu na saída do meu curso de especialização. Eu consegui uma carona e no carro tinha alguns alunos e alguns professores que continuaram a discussão sobre boas práticas de software, sobre RUP também, que foi um subtema de uma palestra [...]]]></description>
			<content:encoded><![CDATA[<p>Nessa primeira sessão do  &#8220;Pense nisso&#8221;, vou contar para vocês um caso que me ocorreu na saída do meu curso de especialização. Eu consegui uma carona e no carro tinha alguns alunos e alguns professores que continuaram a discussão sobre boas práticas de software, sobre RUP também, que foi um subtema de uma palestra sobre engenharia de software. Mas sem argumentos mais técnicos, simplesmente associaram o XP (Extreme Programing) à uma prática de gambiarra e inclusive citaram até o POG (programação orientada a gambiarras).</p>
<p>Bom, como vocês podem perceber não coloquei nem vou colocar link para páginas que explicam sobre POG, pois trata-se de práticas que realmente são inúteis para um desenvolvedor, mas caso queiram ler com o intuito de distração, ou divertimento sem tomar como referência profissional, podem colocar o termo no google ou na wikipedia que encontrarão algo.</p>
<p>Vejam a definição de <a href="http://pt.wikipedia.org/wiki/Gambiarra">gambiarra</a> citada por Rodrigo em sua dissertação de Mestrado.</p>
<p>&#8220;Gambiarra é o nome dado informalmente ao procedimento necessário para a configuração de um artefato improvisado. O termo também costuma ser usado para definir o artefato em si.&#8221;</p>
<p>Ele também mostra que é preciso compreender tal atitude como um raciocínio projetivo imediato, determinado em situações momentâneas além de associa-lo culturalmente ao chamado jeitinho brasileiro.</p>
<p>Já sei, agora vocês querem saber o que é que isso tem a ver com a prática do XP.</p>
<p>É exatamente isso que vocês pensaram! Não tem absolutamente nada a ver! XP não é improviso, não é um jeitinho e definitivamente não é gambiarra!</p>
<p>O XP são um conjunto de práticas consolidadas que visa tornar o desenvolvimento de software mais dinâmico, <a href="http://www.improveit.com.br/xp/praticas/design_incremental">incremental</a>, com maior velocidade de resposta, com mudanças freqüentes e sempre com <a href="http://www.improveit.com.br/xp/praticas/cliente_real">participação ativa do cliente</a> e usuários.</p>
<p>Ele segue com princípios contrários a outras práticas mais tradicionais, devido ao gargalo formado pelo excesso de documentação e dificuldade de comunicação efetiva entre os diversos responsáveis pelo desenvolvimento. Que terminavam com muita freqüência entregando software com prazo extrapolado e muitas vezes com cliente insatisfeito, que quando não falava pelo menos pensava na seguinte frase: &#8220;Não é nada disso que eu estava querendo!&#8221;.</p>
<p>Ao invés de separar a equipe por funções diferenciadas: analista, gerente de projeto, programadores, etc, cada integrante deve estar envolvido em todo o processo do desenvolvimento de um software, da reunião para decidir o que deverá ser feito, de uma análise para definir como será feito, criação do teste (TDD), criação do módulo escolhido (interface que o usuário poderá testar para dar seu feedback). Essa forma de deixar o profissional ficar a par de todo o processo, deixando-o muito bom no específico ato criativo de programar e também possibilitando uma visão geral foi inspirado na metodologia da Toyota.</p>
<p>Na década de 40 a Toyota precisava encontrar fomas de produzir automóveis com maior agilidade e qualidade e ao mesmo tempo reduzindo os custos. Foi assim que criou a chamada Produção Enxuta e aperfeiçoou por décadas, hoje é conhecida como <em>just in time</em>.</p>
<p>O quinto e o sétimo princípio básico do método se chama &#8220;delegar poder à equipe&#8221; e &#8220;Ver o Todo&#8221; respectivamente. Eles partem do princípio que para ampliar ao máximo a qualidade é necessário obter os detalhes corretamente e a pessoa mais adequada para isso são as que efetivamente executam o trabalho, no popular &#8220;põem a mão na massa&#8221;. Coordenando com isso a uma constante verificação do todo, o conjunto final deve ser sempre mais importante que um componente específico, o que gera a necessidade de cada integrante estar além de sua especificidade tomando decisões também em níveis de análise e projeto.</p>
<p>Utilizando desses e de outros princípios, a Toyota conseguiu em abril de 2007 a marca história e simbólica de <a href="http://www.wsws.org/pt/2007/apr2007/toyo-a28.shtml"> ultrapassar a General Motors(GM)</a> na venda mundial de automóveis.</p>
<p>Em sua <a href="http://www.treinatom.com.br/betaEventos">palestra sobre XP</a> utilizando a interface do Treina Tom, Vinícius Teles mostrou um slide com a foto de Jack Järkvik que é o Vice-Presidente da Ericsson na suécia e que ele falava do quanto a empresa ganhava dinheiro no decorrer dos anos. Muito dinheiro, mas muito dinheiro mesmo! Falou também que Jack apontou para a tela que mostrava as práticas do XP e disse que tudo isso que estava sendo exposto no evento sobre XP eles já utilizavam desde a década de oitenta, que conseqüentemente foi o que fez com que eles ganhassem muito dinheiro.</p>
<p>Peço então aos que ainda acham que XP é gambiarra que perguntem aos dirigentes da Toyota e da Ericsson se os processos deles são gambiarra e acho que terão uma resposta muito interessante. E ainda dou uma dica, <a href="http://www.improveit.com.br/vinicius">Vinícius</a> falou que o Vice-Presidente da Ericsson em sua palestra tinha uma postura bem arrogante. Aqui em baixo tá a foto dele para vocês terem uma noção:</p>
<p><img src='http://valeriofarias.files.wordpress.com/2007/08/jack.jpg' alt='vice presidente da ericsson jack Järkvik' /></p>
<p>Mas ainda acredito bastante na liberdade de expressão, pois foi justamente por isso que consegui ter contato com novos conceitos e tenho também confiança que alunos, profissionais ou pessoas antenadas vão saber detectar a diferença entre um comentário superficial, sem valor, e um comentário melhor elaborado, que aliás é um dos princípios da academia, que repassa conceitos científicos e filosóficos para o cidadão obter mais ferramentas além do conhecimento do senso comum, que é importante, mas quando lidamos com ambientes de produção, ele sozinho não dá conta do domínio do problema.</p>
<p>Mas aí algum profissional pode me questionar, mas o <a href="http://pt.wikipedia.org/wiki/Rational_Unified_Process">RUP</a> tem dado certo em instituições como Banco do Nordeste e não é uma metodologia ágil.</p>
<p>Não estou aqui me desfazendo de nenhum outro processo, só estou afirmando tecnicamente e historicamente que o XP é um processo válido, consolidado e tem gerado resultados bons, inclusive em grandes empresas. Sou a favor que o aluno tenha contato com diversas abordagens e no fim tome a decisão de tentar seguir a que mais se aproxime das suas expectativas e princípios. Confirmo novamente que a desburocratização do processo de comunicação que é praticado no XP torna o ambiente mais dinâmico, menos entediante e mais saldável para essa geração que não se identifica muito com exagero de hierarquias e processos   burocráticos, para pessoas que gostam de priorizar o software e não o exagero de documentos.</p>
<p>Com relação a documentação, sempre há a dúvida se é feita ou não no XP. Sim é feita mas como complemento, somente o necessário, depois da iteração terminada e mostrado algum resultado  para o cliente (interface do software) e ele afirmar que é realmente o que ele procura. A própria classe, se for bem feita é facilmente compreendida por um desenvolvedor experiente, que já pode ser considerado um documento que nunca fica desatualizado. Mas sabemos que também é importante dependendo da complexidade do software complementar com por exemplo um diagrama de classes ou um diagrama ER para obter facilmente uma visão geral do sistema, mas eles são utilizados primeiramente para planejar (tentar encontrar as melhores combinações em um nível de abstração mais alto) e consequentemente como documentação. Outro fator que complementa a documentação são os testes automatizados <a href="http://www.improveit.com.br/xp/praticas/tdd">TDD</a> (Desenvolvimento Orientado a Teste) que no caso específico dos testes unitários são rotinas para verificar se determinada classe terá um funcionamento adequado ou não, dando uma garantia melhor para que seja evitado falhas. Para garantir a integridade dessas práticas voltadas &#8220;mais para o software menos para os documentos&#8221;, utiliza-se as técnica de <a href="http://www.improveit.com.br/xp/praticas/refatoracao">refatoração</a> com o objetivo de deixar o código cada vez mais simples, sem modificar a execução e <a href="http://www.improveit.com.br/xp/praticas/programacao_par">programação em pares</a> que consegue diminuir a quantidade de falhas que um programador individualmente poderia cometer além de propagar o conhecimento sobre o software de uma forma que se torne responsabilidade de cada membro da equipe, não somente de indivíduos isolados.</p>
<p>Para fechar digo também que as práticas do XP não devem ser tomadas como imposições necessárias para obter sucesso. Elas podem e devem ser modificadas dependendo do contexto, podem ou não ser usadas em conjunto. Elas devem ser tomadas como princípios que podem ser aprimorados.</p>
<p>Bom, fico por aqui, até o próximo &#8220;Pense nisso&#8221;.<br />
Para saber mais sobre XP e metodologias ágeis acessem os seguintes links:</p>
<ul>
<li><a href="http://www.improveit.com.br/"><br />
Dissertação de Vinicius Teles e um extenso material de divulgação do XP e suas práticas</a>
</li>
<li>
<a href="http://tudoquequerosaber.com/">Podcasts tudoquequerosaber sobre desenvolvimento ágil</a></li>
<li><a href="http://blog.improveit.com.br/articles/tag/podcast">podcast da improvit sobre Extreme Programing</a></li>
<li><a href="http://agilcoop.incubadora.fapesp.br/portal/agilcast">Podcast da Cooperativa de Desenvolvimento Ágil de Software &#8211; Agilcoop</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://valeriofarias.com/extreme-programing-definitivamente-nao-e-gambiarra/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

