<?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>Arkhi &#187; ágil</title>
	<atom:link href="http://blog.arkhi.com.br/tag/agil/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.arkhi.com.br</link>
	<description>Arquitetura Corporativa</description>
	<lastBuildDate>Mon, 30 Nov 2009 01:21:51 +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>Fowler sobre Agilidade com Arquitetura de Software</title>
		<link>http://blog.arkhi.com.br/2009/06/30/fowler-sobre-agilidade-com-arquitetura-de-software/</link>
		<comments>http://blog.arkhi.com.br/2009/06/30/fowler-sobre-agilidade-com-arquitetura-de-software/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 20:11:58 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[ágil]]></category>
		<category><![CDATA[agilidade]]></category>

		<guid isPermaLink="false">http://blog.arkhi.com.br/?p=610</guid>
		<description><![CDATA[Há algum tempo discutimos sobre o aparente conflito entre arquitetura de software e métodos ágeis. Uma interessante e recente apresentação de Martin Fowler e Rebecca Parsons enfatiza os benefícios dos conceitos ágeis para a arquitetura de software. São 45 minutos da sua vida bem investidos  
]]></description>
			<content:encoded><![CDATA[<p>Há algum tempo discutimos sobre o aparente conflito entre <a href="http://blog.arkhi.com.br/2009/04/13/agilidade-versus-arquitetura-de-software/">arquitetura de software e métodos ágeis</a>. Uma interessante e recente <a href="http://www.infoq.com/presentations/agilists-and-architects">apresentação de Martin Fowler e Rebecca Parsons</a> enfatiza os benefícios dos conceitos ágeis para a arquitetura de software. São 45 minutos da sua vida bem investidos <img src='http://blog.arkhi.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/06/30/fowler-sobre-agilidade-com-arquitetura-de-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Booch e Ambler sobre arquitetura em projetos ágeis</title>
		<link>http://blog.arkhi.com.br/2009/04/12/booch-e-ambler-sobre-arquitetura-em-projetos-ageis/</link>
		<comments>http://blog.arkhi.com.br/2009/04/12/booch-e-ambler-sobre-arquitetura-em-projetos-ageis/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 22:53:52 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[ágil]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=534</guid>
		<description><![CDATA[Este interessante vídeo registrou uma entrevista com Grady Booch e Scott Ambler no Second Life a respeito de arquiteturas em projetos ágeis. O polêmico mal-entendido sobre uma suposta incompatibilidade entre agilidade e arquitetura é tratado com elegância por eles. Vale a pena conferir!
Agile is Rational, Rational is Agile Series: Episode 2: Architecture? Agile Don&#8217;t Need [...]]]></description>
			<content:encoded><![CDATA[<p>Este interessante vídeo registrou uma entrevista com Grady Booch e Scott Ambler no Second Life a respeito de arquiteturas em projetos ágeis. O polêmico mal-entendido sobre uma suposta incompatibilidade entre agilidade e arquitetura é tratado com elegância por eles. Vale a pena conferir!</p>
<p>Agile is Rational, Rational is Agile Series: <a href="http://www.facebook.com/video/video.php?v=1090941519721">Episode 2: Architecture? Agile Don&#8217;t Need No Architecture!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/04/12/booch-e-ambler-sobre-arquitetura-em-projetos-ageis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Uma Metáfora Sistêmica</title>
		<link>http://blog.arkhi.com.br/2009/02/02/uma-metafora-sistemica/</link>
		<comments>http://blog.arkhi.com.br/2009/02/02/uma-metafora-sistemica/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 02:00:27 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[ágil]]></category>
		<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[metáfora sistêmica]]></category>
		<category><![CDATA[metodologias ágeis]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=462</guid>
		<description><![CDATA[Metáfora sistêmica, um &#8220;quebra galho&#8221; arquitetural
Há algum tempo, comentamos em relação a como obter a metáfora sistêmica prescrita pelo XP e deixamos uma questão sobre o quanto ela contribui para a representação da arquitetura. Conforme comentário do Paulo Merson, a metáfora sistêmica, de fato, representa muito pouco da arquitetura, apesar de servir como um esboço [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Metáfora sistêmica, um &#8220;quebra galho&#8221; arquitetural</strong><br />
Há algum tempo, comentamos em relação a <a href="http://dearchitectura.wordpress.com/2008/12/12/existe-arquitetura-de-software-em-projetos-xp/">como obter a </a><strong><a href="http://dearchitectura.wordpress.com/2008/12/12/existe-arquitetura-de-software-em-projetos-xp/">metáfora sistêmica</a> </strong>prescrita pelo XP e deixamos uma questão sobre o quanto ela contribui para a representação da arquitetura. Conforme <a href="http://dearchitectura.wordpress.com/2008/12/12/existe-arquitetura-de-software-em-projetos-xp/#comment-52">comentário</a> do <a href="http://www.sei.cmu.edu/staff/pfm/">Paulo Merson</a>, a metáfora sistêmica, de fato, representa muito pouco da arquitetura, apesar de servir como um esboço inicial.</p>
<p><strong> A experiência</strong><br />
Recentemente tivemos uma experiência com uma metáfora sistêmica que julgamos interessante e gostaríamos de dividi-la.</p>
<p>Em um projeto da área de telecomunicações, estávamos prestes a desenvolver um módulo cuja responsabilidade era verificar se os demais módulos estavam funcionando corretamente e, caso algum estivesse apresentando algum tipo de falhas, alertaria uma ferramenta de monitoração via SNMP. Em outras palavras, o módulo deveria observar a saúde do restante do sistema e comunicar qualquer anormalidade.</p>
<p>Ao usar termos como &#8220;saúde&#8221; e &#8220;batida do coração&#8221; (<em>heartbeat </em>é uma tática comum para detecção de falhas), alguns membros da equipe começaram a brincar que o módulo parecia uma clínica médica de diagnósticos. E da brincadeira surgiu a metáfora sistêmica para o módulo: &#8220;Clínica Médica&#8221;.</p>
<p>A metáfora serviu de diretriz segura para a dupla que iria desenvolver o módulo. Bastou uma sessão de modelagem rápida e coletiva (não passou de meia hora) para que a dupla estivesse pronta para meter a mão na massa. Afinal de contas, mesmo quem nunca ficou internado num hospital, assiste a filmes ou seriados médicos. Todos tinham noção muito precisa de como funcionaria o módulo. Para se ter uma idéia, após o módulo ter sido implementado (em menos de uma semana), estava repleto de classes do tipo DoctorBean, NurseBean, Patient, Heartbeat e por aí vai.</p>
<p>Analisando a experiência:</p>
<ul>
<li>A <strong>concretude</strong> da metáfora foi muito eficaz para a orientação da dupla. Tínhamos um desenho anterior, mas a modelagem estava um tanto abstrata e não estava contribuindo muito para o entendimento.</li>
<li>Os <strong>nomes</strong> das classes e mensagens ficaram muito <strong>mais significativos</strong>. Mesmo um programador novato no sistema terá mais facilidades em entender o que faz o <em>DoctorBean </em>(diagnósticos) e que tipo de informação carrega o <em>Heartbeat </em>(sinal de vida). Inclusive, a ausência do <em>heartbeat </em>significa a morte do componente.</li>
<li>O <strong>trabalho</strong> ficou mais <strong>divertido</strong>! <em>Nurse </em>é bem mais legal que nomes como <em>Template Method</em> (nada contra, mas é meio careta).</li>
</ul>
<p>Obviamente só a metáfora não teria sido suficiente para se chegar ao código. A dupla refinou bastante o desenho do módulo e o provou com código. E o sistema como um todo dificilmente poderia ser representado somente por uma metáfora. Na verdade, o sistema todo exigiu vários meses de trabalho arquitetural intensivo.</p>
<p><strong>Modelagem inicial e funcionamento</strong><br />
Segue uma noção da modelagem inicial (diagrama de objetos &#8211; informal). Peço desculpas por não mostrar a foto original do modelo ágil &#8211; eu a perdi.</p>
<p><a href="http://dearchitectura.files.wordpress.com/2009/01/dnp.png"><img class="aligncenter size-medium wp-image-465" title="dnp" src="http://dearchitectura.files.wordpress.com/2009/01/dnp.png?w=300" alt="dnp" width="300" height="128" /></a></p>
<p>Caso esteja curioso sobre o funcionamento:</p>
<ul>
<li>Os monitores dos pacientes emitem os sinais da saúde (<em>heartbeat </em>é um deles).</li>
<li>Os componentes enfermeiras coletam dados dos pacientes (agentes implantados nos módulos) e informam ao médico remotamente (o sistema é distribuído).</li>
<li>O médico realiza o diagnóstico a partir dos dados coletados e, caso necessário, comunica a morte (ou qualquer possível anormalidade) ao HP OpenView.</li>
</ul>
<p><strong>Agradecimentos</strong><br />
Gostaria de agradecer à Luíza D. e ao Diego S. pelo trabalho inspirador. E claro ao Mr. K., um dos arquitetos do sistema. Não consigo imaginar como o desenho poderia ter ficado melhor.</p>
<p><strong>Algumas referências:</strong></p>
<p><a href="http://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1233573323&amp;sr=1-1">Extreme Programming Explained (segunda edição)</a> &#8211; referência clássica do XP</p>
<p><a href="http://www.madetostick.com/">Made to Stick: Why Some Ideas Survive and Others Die</a> &#8211; um excelente livro que aborda aspectos das idéias bem sucedidas, como concretude e simplicidade.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2009/02/02/uma-metafora-sistemica/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Arquitetura Ágil com o AUP</title>
		<link>http://blog.arkhi.com.br/2008/11/20/arquitetura-agil-com-o-aup/</link>
		<comments>http://blog.arkhi.com.br/2008/11/20/arquitetura-agil-com-o-aup/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 10:59:06 +0000</pubDate>
		<dc:creator>Eros Viggiano</dc:creator>
				<category><![CDATA[arquitetura de software]]></category>
		<category><![CDATA[ágil]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agilidade]]></category>
		<category><![CDATA[AMDD]]></category>
		<category><![CDATA[AUP]]></category>
		<category><![CDATA[método]]></category>
		<category><![CDATA[processo]]></category>
		<category><![CDATA[software architecture]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://dearchitectura.wordpress.com/?p=369</guid>
		<description><![CDATA[O AUP (Agile Unified Process) é uma &#8220;versão simplificada&#8221; do RUP idealizada por Scott Ambler que incorpora princípios ágeis. Assim como o OpenUP, o AUP procura balancear agilidade e controle de riscos.
As práticas do AUP se baseiam em técnicas ágeis como, como exemplo, Test Driven Development (TDD), Agile Model Driven Development (AMDD), Agile Change Management, [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://www.ambysoft.com/unifiedprocess/agileUP.html">AUP (Agile Unified Process)</a> é uma &#8220;versão simplificada&#8221; do <a href="http://dearchitectura.wordpress.com/2008/10/30/as-atividades-de-arquitetura-do-processo-unificado/">RUP</a> idealizada por Scott Ambler que incorpora princípios ágeis. Assim como o <a title="OpenUP" href="http://dearchitectura.wordpress.com/2008/11/09/as-atividades-de-arquitetura-do-openup/">OpenUP</a>, o AUP procura balancear <a title="OpenUP - Agilidade, Controle de Riscos e Disciplina Arquitetural" href="http://dearchitectura.wordpress.com/2008/11/09/openup-agilidade-controle-de-riscos-e-disciplina-arquitetural/">agilidade e controle de riscos</a>.</p>
<p>As práticas do AUP se baseiam em técnicas ágeis como, como exemplo, <a href="http://www.agiledata.org/essays/tdd.html">Test Driven Development (TDD)</a>, <a href="http://www.agilemodeling.com/essays/amdd.htm">Agile Model Driven Development (AMDD)</a>, <a href="http://www.agilemodeling.com/essays/changeManagement.htm">Agile Change Management</a>, <a href="http://www.agiledata.org/essays/databaseRefactoring.html">Database Refactoring</a> e <a href="http://www.agilemodeling.com/essays/agileArchitecture.htm">Agile Architecture</a>. Além disso, a filosofia do AUP parte dos seguintes princípios:</p>
<ol>
<li>A equipe sabe o que está fazendo.</li>
<li>Simplicidade.</li>
<li>Agilidade.</li>
<li>Foco em atividades de alto valor.</li>
<li>O processo será personalizável conforme as necessidades de quem o usa.</li>
</ol>
<p>O AUP concentra as atividades de análise, desenho e requisitos em uma única disciplina conhecida por Modelagem. Exatamente por interessar ao tema de Arquitetura de Software, nos concentraremos nessa disciplina. Afinal, como o AUP orienta o trabalho de arquitetura?</p>
<p>Arquitetura Ágil é o conceito que permeia o trabalho arquitetural. Para Ambler, a arquitetura é um dos fatores que, assim como no <a href="http://www.enterpriseunifiedprocess.com/">EUP</a>, permitem escalar o desenvolvimento de software sem perder o caráter ágil. De uma forma geral, a proposta da Arquitetura Ágil, assim como várias outras práticas propostas por Ambler, é dirigida pelo conceito de <em>bom o suficiente </em>(nossa tradução contextualizada para <em><a title="Just Barely Good Enough" href="http://www.agilemodeling.com/essays/barelyGoodEnough.html">Just Barely Good Enough</a> </em>ou JBGE). Nenhum excesso é cometido e procura-se sempre obter a melhor relação valor/tempo. Não significa que os modelos devam ser ruins ou o trabalho negligenciado &#8211; apenas destaca-se que uma atividade não precisa ser executada até a perfeição do produto e, sim, apenas o suficiente para a otimização do esforço.</p>
<p>Da mesma forma que o RUP e o EUP, o AUP propõe a evolução da arquitetura ao longo de duas fases. Na Iniciação, obtém-se uma arquitetura de alto nível, levando em consideração os requisitos técnicos. O objetivo é identificar uma estratégia arquitetural viável capaz de oferecer insumos ao planejamento do projeto e ao cálculo de esforços (lembre-se, o UP é dirigido pela arquitetura). Nesse momento, o diagrama recomendado mais importante é o esboço do modelo de implantação.</p>
<p>Já na Elaboração, o objetivo é refinar a arquitetura até atingir sua estabilidade. A modelagem da arquitetura é dirigida aos maiores riscos técnicos identificados. Tipicamente, protótipos são construídos para provar alguns aspectos da arquitetura. O principal objetivo dessa fase é a arquitetura estável, comprovada através da implementação dos requisitos estruturalmente críticos.</p>
<p>Historicamente, o AUP foi derivado da compreensão e refinamento dos princípios e valores expostos no livro <a href="http://www.ambysoft.com/books/agileModeling.html">Modelagem Ágil (Agile Modeling)</a>, quando Scott Ambler demonstra a possível aplicação da Modelagem Ágil através do RUP. O AUP, influenciado por métodos populares como o XP, RUP e EUP, foi um dos primeiros processos a tentar convergir conceitos do UP e técnicas ágeis Por sua vez, o AUP influenciou fortemente outros processos mais recentes como o notável OpenUP.</p>
<p>Para mais informações:</p>
<ul>
<li><a href="http://www.ambysoft.com/unifiedprocess/agileUP.html">The Agile Unified Process (AUP)</a></li>
<li><a href="http://www.agilemodeling.com/essays/agileArchitecture.htm">Agile Architecture: Strategies for Scaling Agile Development</a></li>
<li><a href="http://www.agilemodeling.com/essays/agileModelingRUP.htm">Agile Modeling and the Rational Unified Process (RUP)</a></li>
<li><a href="http://www.enterpriseunifiedprocess.com/essays/enterpriseArchitecture.html">The Enterprise Architecture Discipline: Scaling Agile Software Development</a></li>
<li><a href="http://www.agilealliance.org/show/1135">Making RUP Agile, por Michael Hirsch</a> </li>
<li><a href="http://www.ambysoft.com/books/agileModeling.html">Modelagem Ágil (Agil Modeling), de Scott Ambler</a> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.arkhi.com.br/2008/11/20/arquitetura-agil-com-o-aup/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
