<?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>AgileZ &#187; fdd</title>
	<atom:link href="http://www.brasiltech.net/agilez/tag/fdd/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brasiltech.net/agilez</link>
	<description>Metodologias e técnicas aplicadas a desenvolvimento e gerenciamento</description>
	<lastBuildDate>Wed, 29 Dec 2010 23:40:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Voc&#234; entrega algo de valor para seu cliente?</title>
		<link>http://www.brasiltech.net/agilez/2009/10/12/voce-entrega-algo-de-valor-para-seu-cliente-fdd-desenvolvimento-orientado-a-funcionalidade/</link>
		<comments>http://www.brasiltech.net/agilez/2009/10/12/voce-entrega-algo-de-valor-para-seu-cliente-fdd-desenvolvimento-orientado-a-funcionalidade/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 22:23:10 +0000</pubDate>
		<dc:creator>Douglas Cunha</dc:creator>
				<category><![CDATA[Metodologias]]></category>
		<category><![CDATA[estimativas]]></category>
		<category><![CDATA[fdd]]></category>
		<category><![CDATA[produtividade]]></category>
		<category><![CDATA[projeto]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.brasiltech.net/agilez/2009/10/12/voce-entrega-algo-de-valor-para-seu-cliente-fdd-desenvolvimento-orientado-a-funcionalidade/</guid>
		<description><![CDATA[Quando trabalhamos com equipes mais enxutas, utilizando metodologias ágeis (como o Scrum), temos um considerável poder de decisão e planejamento sobre o que será implementado em cada build. Digo considerável pois existem vários fatores que influenciam o que fará parte do seu sprint (sprint é uma interação que segue o ciclo PDCA e entrega incremento [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="dilbert" src="http://www.brasiltech.net/agilez/wp-content/uploads/2009/10/dilbert.gif" border="0" alt="dilbert" width="591" height="208" /></p>
<p>Quando trabalhamos com equipes mais enxutas, utilizando metodologias ágeis (como o Scrum), temos um considerável poder de decisão e planejamento sobre o que será implementado em cada build. Digo considerável pois existem vários fatores que influenciam o que fará parte do seu sprint (<a rel="nofollow" href="http://pt.wikipedia.org/wiki/Scrum" target="_blank">sprint</a> é uma interação que segue o ciclo <a rel="nofollow" href="http://pt.wikipedia.org/wiki/Ciclo_pdca" target="_blank">PDCA</a> e entrega incremento de software pronto), como a priorização do <em>Product Owner (</em>o cliente)<em>, </em>tamanho estimado para cada uma das <em>user stories </em>que farão parte da interação, restrições técnicas e outras.</p>
<p>Durante o processo de estimativa, é comum decompormos as <em>user stories</em> em várias tarefas menores, com o objetivo de facilitar a pontuação de cada uma delas. Esse processo é adequado e, se bem feito, aumenta muito a precisão das estimativas, porém, ao quebrar uma solicitação em atividades menores, corremos um sério risco de perdermos de vista o real objetivo de cada uma das tarefas, que é contribuir para a conclusão de um recurso solicitado pelo cliente. Convém não esquecermos que, para o cliente, essas pequenas atividades geralmente não possuem valor por si, a não ser que todas sejam feitas e a <em>feature </em>solicitada seja entregue.<span id="more-90"></span></p>
<p>No parágrafo anterior, introduzi dois conceitos chaves para este artigo: o conceito de <em>feature </em>e <em>valor.</em> Uma <em>Feature </em>pode ser definida como um recurso/funcionalidade e geralmente é escrita da seguinte forma: &lt;ação&gt;&lt;resultado&gt;&lt;objeto&gt;. Por exemplo &lt;emitir&gt;&lt;a nota fiscal&gt;&lt;de venda&gt; (para mais detalhes, veja <a rel="nofollow" href="http://www.heptagon.com.br/fdd-oque" target="_blank">FDD</a> – uma metodologia ágil guiada por funcionalidade). Já <em>valor</em>, neste contexto, é toda <em>feature </em>que traga algum benefício para o cliente, ou seja, é seu cliente (no scrum chamado de <em>Product Owner</em>) quem deve <strong>valorar </strong>o recurso.</p>
<p>Tendo isto em mente, podemos dizer que uma interação deve ter como <strong>principal </strong>objetivo entregar uma nova versão/build com novas funcionalidades para o cliente. Toda implementação que não contribua para a inclusão das novas <em>features</em> deve ser considerada tempo perdido e ser removida do <em>sprint.</em> Um pouco radical? Vejamos: refactoring, melhorias visuais, troca de tecnologia, otimizações e outras, será que tudo isto pode ser considerado tempo perdido? A resposta é sim e não. Não se a alteração for necessária para dar estrutura ao desenvolvimento de um novo recurso, e sim se for somente para satisfazer o ego do programador. É claro que tudo tem sua exceção, e uma refatoração visual pode, por exemplo, ser uma necessidade de mercado e ser solicitada pelo departamento de marketing, e por esse motivo ser considerada uma <em>feature </em>de valor devido ao seu significado estratégico para o  mercado.</p>
<p>Ao planejar seu <em>sprint </em>focando em funcionalidades, deverá tomar cuidado para que nenhuma funcionalidade seja entregue pela metade. Por isso, verifique a possibilidade com o cliente de desmembrar recursos maiores em partes, e entregue uma parte a cada final de interação, deixando claro que a cada fim de <em>sprint </em>ele deverá ter uma versão do programa funcionando e com um novo valor agregado.</p>
<p>Relatórios como o <em>Parking Lot</em>, que nos dá uma visão de progresso por <em>feature</em>, são indispensáveis para gerenciar o andamento do <em>sprint</em> e antecipar qualquer problema que implique na não entrega de uma funcionalidade completa para o cliente. Veja abaixo um exemplo:</p>
<p><a href="http://www.brasiltech.net/agilez/wp-content/uploads/2009/10/ParkingLot.045.preview.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ParkingLot.045.preview" src="http://www.brasiltech.net/agilez/wp-content/uploads/2009/10/ParkingLot.045.preview_thumb.png" border="0" alt="ParkingLot.045.preview" width="593" height="445" /></a></p>
<p>(imagem de: <a title="http://www.featuredrivendevelopment.com/node/1038" href="http://www.featuredrivendevelopment.com/node/1038">http://www.featuredrivendevelopment.com/node/1038</a>)</p>
<p>Existem vários outros conceitos utilizados neste relatório, como a divisão de funcionalidades por área de negócio, que não irei explicar aqui neste artigo. Para se aprofundar mais sobre o desenvolvimento dirigido à funcionalidade, leia o excelente livro do Alexandre Magno: <a rel="nofollow" href="http://www.visaoagil.com/downloads/biblioteca/axmagno_FDDEmUmaCascaDeBanana.pdf" target="_blank">FDD em uma casca de banana</a> e veja o que se encaixa na realidade de sua equipe.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brasiltech.net/agilez/2009/10/12/voce-entrega-algo-de-valor-para-seu-cliente-fdd-desenvolvimento-orientado-a-funcionalidade/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

