<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Clavius Tales</title>
	<atom:link href="http://blogue.claviustales.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogue.claviustales.com.br</link>
	<description>Desenvolvimento (Ágil) de &#34;Software&#34;</description>
	<lastBuildDate>Mon, 14 Nov 2011 23:52:53 +0000</lastBuildDate>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blogue.claviustales.com.br' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/75494d094e98471ba223d2ac62a911b0?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Clavius Tales</title>
		<link>http://blogue.claviustales.com.br</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blogue.claviustales.com.br/osd.xml" title="Clavius Tales" />
	<atom:link rel='hub' href='http://blogue.claviustales.com.br/?pushpress=hub'/>
		<item>
		<title>[off-topic] resenha do livro The Seven-Day Weekend: Changing the Way Work Works</title>
		<link>http://blogue.claviustales.com.br/2011/11/14/off-topic-resenha-do-livro-the-seven-day-weekend-changing-the-way-work-works/</link>
		<comments>http://blogue.claviustales.com.br/2011/11/14/off-topic-resenha-do-livro-the-seven-day-weekend-changing-the-way-work-works/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 23:46:28 +0000</pubDate>
		<dc:creator>Clavius Tales</dc:creator>
		
		<guid isPermaLink="false">http://blogue.claviustales.com.br/?p=195</guid>
		<description><![CDATA[Classifiquei o post como off-topic pois o livro é sobre gestão (de pessoas), mas resolvi falar dele aqui pois as práticas apresentadas pelo Ricardo Semler, autor do livro, têm clara relação com a abordagem de auto-organização proposta pelas metodologias ágeis de desenvolvimento de software. Semler é um empresário brasileiro conhecido por seus métodos pouco &#8211; ou nada [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=195&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Classifiquei o <em>post</em> como <em>off-topic</em> pois o livro é sobre gestão (de pessoas), mas resolvi falar dele aqui pois as práticas apresentadas pelo Ricardo Semler, autor do livro, têm clara relação com a abordagem de auto-organização proposta pelas metodologias ágeis de desenvolvimento de <em>software</em>.</p>
<p>Semler é um empresário brasileiro conhecido por seus métodos pouco &#8211; ou nada &#8211; ortodoxos de gestão. Ele escreveu <em>best-sellers</em> como Virando a Própria Mesa e Maverick. Já li o primeiro, há muitos anos, mas confesso que não lembro absolutamente nada &#8211; apenas que o achei revolucionário. Resolvi ler este de que falo aqui depois que vi o Semler ser bastante citado por algumas pessoas bem conhecidas na comunidade ágil brasileira, especialmente o <a href="http://twitter.com/dwildt" target="_blank">Daniel Wildt</a>.</p>
<p>Neste livro &#8211; assim como nos demais, se não me engano -, Semler apresenta as práticas de gestão adotadas em sua empresa, a Semco. Um resumo: autogerenciamento, democracia organizacional (os funcionários escolhem seus próprios líderes), horário flexível, <em>home office</em>, ausência de organograma formal, ausência de descrição de cargos, ausência de missão, visão e valores, ausência de planos de longo prazo (no máximo, seis meses), funcionários escolhendo em que projetos vão trabalhar, funcionários definindo seus próprios salários.</p>
<p>Abaixo um conjunto de trechos que achei interessante reproduzir:</p>
<p><a href="http://t.co/MOorxHZ" target="_blank">http://t.co/MOorxHZ</a><br />
<a href="http://t.co/VmNnwGTn" target="_blank">http://t.co/VmNnwGTn</a><br />
<a href="http://t.co/VmNnwGTn" target="_blank">http://t.co/uyKSL3uL</a><br />
<a href="http://t.co/JgJhENNa" target="_blank">http://t.co/JgJhENNa</a><br />
<a href="http://t.co/kQitoxk0" target="_blank">http://t.co/kQitoxk0</a><br />
<a href="http://t.co/z79cemba" target="_blank">http://t.co/z79cemba</a><br />
<a href="http://t.co/bAWjF8RM" target="_blank">http://t.co/bAWjF8RM</a><br />
<a href="http://t.co/7iJwxl3i" target="_blank">http://t.co/7iJwxl3i</a><br />
<a href="http://t.co/hwKUMg6j" target="_blank">http://t.co/hwKUMg6j</a><br />
<a href="http://t.co/0purSsTn" target="_blank">http://t.co/0purSsTn</a><br />
<a href="http://t.co/ycQRSnw4" target="_blank">http://t.co/ycQRSnw4</a><br />
<a href="http://t.co/pRRevs4b" target="_blank">http://t.co/pRRevs4b</a><br />
<a href="http://t.co/5MFc6TUp" target="_blank">http://t.co/5MFc6TUp</a><br />
<a href="http://t.co/KktFNcSK" target="_blank">http://t.co/KktFNcSK</a><br />
<a href="http://t.co/XUpRxCk2" target="_blank">http://t.co/XUpRxCk2</a><br />
<a href="http://t.co/QUW0m197" target="_blank">http://t.co/QUW0m197</a></p>
<p>Este foi o melhor livro que já li até hoje sobre gestão (de pessoas). Mas um alerta: o livro talvez provoque muitas dúvidas e ceticismo naqueles que ainda não tiveram contato com modelos formais de auto-organização no mundo &#8220;empresarial&#8221;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/claviustales.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/claviustales.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/claviustales.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/claviustales.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/claviustales.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/claviustales.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/claviustales.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/claviustales.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/claviustales.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/claviustales.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/claviustales.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/claviustales.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/claviustales.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/claviustales.wordpress.com/195/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=195&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogue.claviustales.com.br/2011/11/14/off-topic-resenha-do-livro-the-seven-day-weekend-changing-the-way-work-works/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tales</media:title>
		</media:content>
	</item>
		<item>
		<title>Agile Brazil 2011</title>
		<link>http://blogue.claviustales.com.br/2011/05/12/agile-brazil-2011/</link>
		<comments>http://blogue.claviustales.com.br/2011/05/12/agile-brazil-2011/#comments</comments>
		<pubDate>Thu, 12 May 2011 23:13:13 +0000</pubDate>
		<dc:creator>Clavius Tales</dc:creator>
				<category><![CDATA[principal]]></category>

		<guid isPermaLink="false">http://blogue.claviustales.com.br/?p=179</guid>
		<description><![CDATA[Quando você escolhe um médico, por exemplo, espera que ele esteja atualizado, que frequente os principais congressos de sua especialidade. Ora, se você quer ser um bom, um excelente desenvolvedor, espera-se o mesmo: que esteja atualizado, que frequente os principais congressos. Atualmente no Brasil há dois principais congressos de desenvolvimento de software não ligados a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=179&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Quando você escolhe um médico, por exemplo, espera que ele esteja atualizado, que frequente os principais congressos de sua especialidade. Ora, se você quer ser um bom, um excelente desenvolvedor, espera-se o mesmo: que esteja atualizado, que frequente os principais congressos.</p>
<p>Atualmente no Brasil há dois principais congressos de desenvolvimento de <em>software</em> não ligados a tecnologias específicas: <a href="http://www.agilebrazil.com/" target="_blank">Agile Brazil</a> e <a href="http://www.qcon.com.br" target="_blank">QCon</a>. Se portanto você quer ser um grande desenvolvedor, deve participar de pelo menos um desses dois congressos, preferencialmente de ambos.</p>
<p>Estou aqui para falar do <a href="http://www.agilebrazil.com" target="_blank">Agile Brazil</a>, da edição deste ano, 2011. Antes, um esclarecimento: faço parte da <a href="http://www.agilebrazil.com/2011/pt/organizacao.php" target="_blank">organização</a> e vou <a href="http://www.agilebrazil.com/2011/pt/detalhes.php#314" target="_blank">palestrar</a> no evento.</p>
<p>A <a href="http://www.agilebrazil.com" target="_blank">Agile Brazil 2011</a> (AB2011) &#8211; Conferência Brasileira sobre Métodos Ágeis de Desenvolvimento de <em>Software</em> &#8211; vai acontecer de <strong>27 de junho a 1° de julho</strong>, em Fortaleza, Ceará. Além de dezenas de <a href="http://www.agilebrazil.com/2011/pt/programacao.php" target="_blank">palestras, <em>workshops</em>, tutoriais e <em>lightning talks</em></a>, vai haver os imperdíveis <em>keynotes</em> de <a href="http://www.agilebrazil.com/2011/pt/convidados.php" target="_blank">Jim Highsmith</a>, <a href="http://www.agilebrazil.com/2011/pt/convidados.php" target="_blank">Joshua Kerievsky</a> e <a href="http://www.agilebrazil.com/2011/pt/convidados.php" target="_blank">Vinícius Teles</a>. Nos dois primeiros dias, 27 e 28 de junho, quatro excelentes cursos: <strong><a href="http://www.agilebrazil.com/2011/pt/csm.php" target="_blank">CSM</a></strong> e <strong><a href="http://www.agilebrazil.com/2011/pt/cspo.php" target="_blank">CSPO</a></strong>, cursos oficiais da <a href="http://www.scrumalliance.org" target="_blank">Scrum Alliance</a> (SA), <strong><a href="http://www.agilebrazil.com/2011/pt/tdd.php" target="_blank">TDD: do básico ao avançado</a></strong>, ministrado por figurinhas conhecidas na comunidade nacional de desenvolvimento ágil, e <strong><a href="http://www.agilebrazil.com/2011/pt/lean.php" target="_blank">Introdução ao Lean Thinking</a></strong>, pelo <a href="http://www.lean.org.br" target="_blank">Lean Institute Brasil</a>. Todos esses cursos estão com preços superespeciais. Um exemplo: os cursos oficiais de <a href="http://www.scrumalliance.org/pages/CSM" target="_blank">CSM</a> e <a href="http://www.scrumalliance.org/pages/certified_scrum_product_owner" target="_blank">CSPO</a> da SA custam em média no Brasil de R$1.700,00 a R$2.000,00; na AB2011, R$990,00 (primeiro lote).</p>
<p>Abri o <em>post</em> com uma obviedade e vou repeti-la: ser você quer ser um grande desenvolvedor, participe dos principais congressos. Participe da <strong><a href="http://www.agilebrazil.com" target="_blank">Agile Brazil 2011</a></strong>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/claviustales.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/claviustales.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/claviustales.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/claviustales.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/claviustales.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/claviustales.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/claviustales.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/claviustales.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/claviustales.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/claviustales.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/claviustales.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/claviustales.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/claviustales.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/claviustales.wordpress.com/179/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=179&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogue.claviustales.com.br/2011/05/12/agile-brazil-2011/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tales</media:title>
		</media:content>
	</item>
		<item>
		<title>a dialética do escopo</title>
		<link>http://blogue.claviustales.com.br/2009/09/13/a-dialetica-do-escopo/</link>
		<comments>http://blogue.claviustales.com.br/2009/09/13/a-dialetica-do-escopo/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 19:18:19 +0000</pubDate>
		<dc:creator>Clavius Tales</dc:creator>
				<category><![CDATA[principal]]></category>

		<guid isPermaLink="false">http://blogue.claviustales.com.br/?p=176</guid>
		<description><![CDATA[Hoje em dia não sei se a proposta da prática do XP de contrato de escopo negociável foi uma boa. Não pela prática em si, que é excelente, mas pela forma como ela é normalmente entendida e os efeitos negativos desse entendimento. Muitos a interpretam como ausência de escopo definido. Em Planning Extreme Programming, Beck [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=176&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hoje em dia não sei se a proposta da prática do XP de contrato de escopo negociável foi uma boa. Não pela prática em si, que é excelente, mas pela forma como ela é normalmente entendida e os efeitos negativos desse entendimento. Muitos a interpretam como ausência de escopo definido. Em <a href="http://www.amazon.com/Planning-Extreme-Programming-Kent-Beck/dp/0201710919/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1252868875&amp;sr=8-1" target="_blank">Planning Extreme Programming</a>, Beck e Fowler mostram claramente que o escopo é sim definido. A principal questão da prática é um modelo simples e fácil de alterar o escopo, em contrapartida à tradicional <a href="http://en.wikipedia.org/wiki/Change_request" target="_blank">Change Request</a> e toda a parafernália normalmente associada a ela.</p>
<p>Definir o escopo é interessante por dois grandes motivos: dá aos envolvidos uma noção de custo e prazo do projeto e o mantém focado naquilo que deve ser entregue. O problema é que muita gente pensa que definir o escopo é o mesmo que fixá-lo. Além de achar que não dá para trabalhar com desenvolvimento ágil definindo escopo. Pelo contrário: é recomendável. O problema mesmo é a forma como o escopo é definido.</p>
<p>Antes de falar sobre isso, uma explicação: uma coisa é o escopo, outra é o detalhamento dos requisitos. De forma simples, escopo é apenas a lista de requisitos, sem seus detalhamentos.</p>
<p>Em métodos tradicionais, define-se o escopo habitualmente através de um documento de requisitos bem detalhados. Ou seja, um documento de requisitos normalmente contém tanto o escopo quanto o detalhamento dos requisitos. Esse tipo de abordagem tem dois grandes problemas:</p>
<p>Primeiro:</p>
<p>Como o documento de requisitos é muito detalhado, sua manutenção se torna bastante trabalhosa.</p>
<p>Quando o escopo muda, o documento deve ser atualizado. Devem ser retirados os requisitos que não são mais necessários e incluídos os novos, com seus detalhamentos. Além disso, uma mudança de escopo pode implicar numa mudança do detalhamento dos requisitos já existentes. Por exemplo: imagine um sistema tradicional de controle de ponto. No decorrer do projeto, o cliente decide incluir no sistema a possibilidade de controlar também escalas de revezamento. Isso vai promover alterações no cadastro de empregados, para indicar se o horário do empregado é tradicional ou é escala e qual sua escala de revezamento. No caso, então, seria necessário atualizar o detalhamento do cadastro de empregados no documento de requisitos. Há ainda as fusões de requisitos. Exemplos: dois relatórios com informações comuns que são condensados num só; duas telas que realizam operações similares que são condensadas numa só. Ou seja, mais atualização do documento.</p>
<p>Quando o detalhamento de um requisito muda, o documento deve ser atualizado. Exemplo simples: incluir mais três colunas num relatório.</p>
<p>Como as mudanças são mais custosas, normalmente o processo de mudança é mais elaborado, com documentos de solitações de mudanças, de avaliação de impacto, de aprovação de mudança, etc.</p>
<p>Segundo:</p>
<p>Promove uma indução ao congelamento dos requisitos com seus detalhamentos. Como o trabalho inicial de elaboração do documento de requisitos e extenuante, o cliente e a equipe acham que tudo sobre o projeto está no documento. O cliente então se afasta do projeto, esperando simplesmente receber o sistema no prazo acordado. A equipe desenvolve o sistema baseado no documento de requisitos. Ou seja, todo o aprendizado que poderia ser gerado com as entregas parciais é minorado.</p>
<p>De toda forma, os documentos tradicionais de requisitos podem trazer alguma vantagem. Tem-se um documento em linguagem humana que descreve o comportamento do sistema. Isso pode ser interessante por exemplo quando um novato chega na equipe. Mas acho que o custo não vale benefício. Até mesmo porque os aspectos mais relevantes para um programador saber normalmente não estão no documento, mas sim no código. Por isso a defesa do código expressivo.</p>
<p>Em XP, por exemplo, no início do projeto define-se o escopo (lista de histórias). Quando o escopo muda, basta retirar da lista os requisitos (histórias) não mais desejados e incluir os novos. No caso de uma fusão de requisitos, simples: inclue-se um novo requisito e excluem-se os dois que se fundiram.</p>
<p>A pergunta que normalmente se faz é: “Como estimar o projeto se as histórias não estão detalhadas?” Durante o planejamento do projeto, quando as histórias estão sendo identificadas, o cliente normalmente dá uma explicação rápida sobre cada uma. Por exemplo: num saite de oferta de empregos, há a seguinte história: “Eu como empregador quero anunciar uma vaga para que os candidatos possam encontrá-la”. Verbalmente então o cliente dá uma breve explicação: “O empregador informa o título da vaga, sua descrição, os prerrequisitos, os conhecimentos necessários e os desejáveis.” Isso é suficiente para estimar a história. Não precisa ser uma estimativa perfeita. Algumas histórias serão superestimadas, outras subestimadas. No somatório total, esses erros, para mais e para menos, acabam se equilibrando, conseguindo então um nível aceitável de precisão na estimativa total do sistema, que é o que se quer no início do projeto. Esse é o ponto: o que se quer no início do projeto é uma estimativa orçamentária do projeto, não uma estimativa precisa de cada história.</p>
<p>Alguns autores defendem que essa breve explicação de cada história deve ser documentada. Eu particularmente não gosto dessa abordagem, e nunca tivemos problemas com isso. Aqui na Fortes já desenvolvemos uns dez projetos utilizando essa forma de planejamento. Tivemos problema de prazo em um ou dois desses projetos, mas a causa não foi a falta da documentação dessa breve explicação. Muito menos a falta de um documento de requisitos.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/claviustales.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/claviustales.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/claviustales.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/claviustales.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/claviustales.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/claviustales.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/claviustales.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/claviustales.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/claviustales.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/claviustales.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/claviustales.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/claviustales.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/claviustales.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/claviustales.wordpress.com/176/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=176&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogue.claviustales.com.br/2009/09/13/a-dialetica-do-escopo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tales</media:title>
		</media:content>
	</item>
		<item>
		<title>XP no &#8220;underground&#8221; &#8211; Scrum no &#8220;mainstream&#8221;</title>
		<link>http://blogue.claviustales.com.br/2009/08/15/xp-no-underground-scrum-no-mainstream/</link>
		<comments>http://blogue.claviustales.com.br/2009/08/15/xp-no-underground-scrum-no-mainstream/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 20:48:38 +0000</pubDate>
		<dc:creator>Clavius Tales</dc:creator>
				<category><![CDATA[principal]]></category>

		<guid isPermaLink="false">http://blogue.claviustales.com.br/?p=149</guid>
		<description><![CDATA[Rodrigo Yoshima (Yosha) enviou a seguinte mensagem para algumas listas de discussão de agilidade: Tracei um gráfico hoje no Google Insight que mostra bem o cenário Agile no BR: http://bit.ly/scrum_vs_xp O gráfico desde 2004 mostra uma queda vertiginosa nas buscas por Extreme Programming e um crescimento por Scrum. Qual é o comentário de vocês? Para quem [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=149&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.aspercom.com.br/" target="_blank">Rodrigo Yoshima</a> (Yosha) enviou a seguinte mensagem para algumas listas de discussão de agilidade:</p>
<blockquote><p>Tracei um gráfico hoje no Google Insight que mostra bem o cenário Agile no BR:</p>
<p><a href="http://bit.ly/scrum_vs_xp" target="_blank">http://bit.ly/scrum_vs_xp</a></p>
<p>O gráfico desde 2004 mostra uma queda vertiginosa nas buscas por Extreme Programming e um crescimento por Scrum.</p>
<p>Qual é o comentário de vocês?</p></blockquote>
<p>Para quem acompanha os pensamentos do Yosha, sabe que por trás dessa mensagem há algo que ele vem falando há algum tempo: o que matou o RUP vai matar a agilidade. É um pândego, mesmo. Quer ver o circo pegar fogo. Concordo plenamente. Obs.: vocês vão entender o que esse parágrafo tem a ver com o assunto quando lerem o último.</p>
<p>Por que Scrum passou de XP?</p>
<p>Por que é natural. Para mim, isso não foi surpresa. Na verdade, até foi, mas depois de refletir um pouco, entendi que essa é a configuração natural. A situação atípica era a que acontecia antes, com XP sendo o mais procurado. A pergunta então seria: &#8220;Por que antes XP era mais procurado que Scrum?&#8221; Acho que era pela capacidade de mobilização da comunidade (se não me engano o <a href="http://martinfowler.com/" target="_blank">Fowler</a> já falou disso) e pelo suporte teórico promovido por <a href="http://www.threeriversinstitute.org/" target="_blank">Beck</a>, Fowler, <a href="http://xprogramming.com" target="_blank">Jeffries</a>, <a href="http://c2.com/~ward/" target="_blank">Cunningham</a>, etc., pela quebra de paradigma promovida por XP, pelas práticas polêmicas como programação em par, TDD e código coletivo, pela crítica mordaz a documentação inútil, etc. Uma grande massa de desenvolvedores teve um estalo: &#8220;Meus deus! É isso&#8230;!&#8221; Scrum não conseguiria esse efeito inicial exatamente por tratar apenas de gestão. Faltariam respostas.</p>
<p>Nesse meio tempo, agilidade começou a se tornar sedutora. Os modelos tradicionais não estavam surtindo o efeito desejado, e empresas-modelo como Google, Yahoo!, Toyota, Nokia, 3M, etc. se anunciavam ágeis. Naturalmente os olhares começaram a se virar para a agilidade, que passou a interessar não somente aos &#8220;meros&#8221; desenvolvedores, mas também aos gerentes e dirigentes das empresas. Só que em geral gerente não entende de engenharia. As práticas técnicas do XP funcionavam como vetor de opacidade para essa turma. Naturalmente procuraram algo mais palatável, e também mais ligados a eles, algo que tratasse apenas de gestão. Bingo: Scrum. Vou contar um caso que aconteceu comigo (e olhe que tenho embasamento técnico). Certa vez, há alguns anos, um colega daqui me falou sobre testes unitários, me explicou superficialmente o conceito, e pediu minha opinião. Eu disse que achava que isso não funcionava, pois teria de se programar dois sistemas, ao invés de apenas um. Olha a bobagem&#8230; Não lembro exatamente o que me atraiu para o XP, mas suspeito que tenha sido algum texto do <a href="http://improveit.com.br/empresa/vinicius" target="_blank">Vinícius</a>.</p>
<p>Além disso, gestão é o ponto de partida canônico para melhoria em organizações de desenvolvimento de <em>software</em>. O primeiro nível do <a href="http://www.sei.cmu.edu/cmmi/" target="_blank">CMMI</a>, por exemplo, é quase todo voltado para gestão. A lógica é mais ou menos a seguinte: &#8220;Vamos primeiro organizar um pouco essa bagunça. Depois a gente melhora a engenharia.&#8221; E essa abordagem me agrada. Pois bem, se se vai começar por gestão, nada melhor que Scrum. Apesar de XP contê-lo quase todo, mais adequado começar por algo específico.</p>
<p>Falei em &#8220;organizar a bagunça&#8221;. Mas há empresas que já estão &#8220;organizadas&#8221;, com processos bem definidos, mas que estão buscando a agilidade. Essas são aquelas que normalmente costumamos chamar de tradicionais (guidas por documentação, papéis, processos e fases rígidas, iterações longas). Intuitivamente entendo que é mais complicado implantar Scrum nessas empresas. Iterações de um mês nesse cenário é muito complicado. Dá tempo rodar todas as fases numa iteração? Nas idas e vindas entre cada fase, dá tempo de atualizar toda a documentação dentro de uma iteração? Aí vêm os diversos sabores de <a href="http://blogs.msdn.com/ericgu/archive/2006/10/13/scrumbut.aspx" target="_blank">Scrumbut</a>. Desde iterações individuais para especificação, <em>design</em>, programação e testes (ouço o Yosha gritar &#8220;RUPbut&#8221;) até <em>pipelines</em> para cada uma dessas fases. Curiosamente neste caso, dos <em>pipelines</em>, se potencializado à forma extrema, esse cenário se aproximaria muito do Kanban Development, ainda que sejam necessárias brutais adaptações e que seja fundado em valores diferentes. Um aparte: fazendo uma analogia, são essas brutais adaptações que me fazem crer que o RUP não é verdadeiramente ágil.</p>
<p>Além disso tudo, há todo o aspecto de <em>marketing</em> envolvendo o Scrum. Isso já foi perfeitamente explicado pelo Vinícius e pela <a href="http://improveit.com.br/" target="_blank">Improve It</a> em seu antológico <em>post</em> sobre seus <a href="http://blog.improveit.com.br/articles/2007/12/19/novos-rumos-em-2008" target="_blank">novos rumos</a>. Quem não quiser ler o enorme texto do Vinícius, um brevíssimo resumo: há uma organização por trás do Scrum (<a href="http://www.scrumalliance.org/" target="_blank">Scrum Alliance</a>), seu vocabulário é mais &#8220;adequado&#8221; (&#8220;Scrum&#8221;, &#8220;Product Owner&#8221;, &#8220;Scrum Master&#8221;, &#8220;Product Backlog&#8221;, &#8220;Daily Scrum&#8221;, etc.) que o do XP (&#8220;Extreme&#8221;?! &#8220;Programming&#8221;?!) e há as tão &#8220;necessárias&#8221; certificações.</p>
<p>Mas é preciso entender que quase todas as empresas que realmente implantarem Scrum vão acabar no futuro avançando para XP, ou pelo menos para práticas como <em>design</em> incremental, refatoração, testes automatizados e integração contínua. E espero que isso realmente aconteça, para o bem de nossa indústria, sob o risco de vermos equipes pregando cartões na parede, fazendo rabiscos, negligenciando documentação, brincando de <em>planning poker</em>, e toda a sorte do <a href="http://blog.aspercom.com.br/2008/08/20/besteirol-agile/" target="_blank">besteirol ágil</a>, mas continuando entregando porcaria e se dizendo praticantes de Scrum.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/claviustales.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/claviustales.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/claviustales.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/claviustales.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/claviustales.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/claviustales.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/claviustales.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/claviustales.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/claviustales.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/claviustales.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/claviustales.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/claviustales.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/claviustales.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/claviustales.wordpress.com/149/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=149&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogue.claviustales.com.br/2009/08/15/xp-no-underground-scrum-no-mainstream/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tales</media:title>
		</media:content>
	</item>
		<item>
		<title>auto-organização</title>
		<link>http://blogue.claviustales.com.br/2009/08/03/auto-organizacao/</link>
		<comments>http://blogue.claviustales.com.br/2009/08/03/auto-organizacao/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 02:59:48 +0000</pubDate>
		<dc:creator>Clavius Tales</dc:creator>
				<category><![CDATA[principal]]></category>

		<guid isPermaLink="false">http://blogue.claviustales.com.br/?p=133</guid>
		<description><![CDATA[Está lá nos princípios do Manifesto Ágil: “The best architectures, requirements, and designs emerge from self-organizing teams.” Muitas implementações de modelos como o CMMI definem um processo-padrão, em que são estabelecidos papéis, atividades, etapas, documentos, etc. Apesar de indicar a necessidade de adaptação do processo-padrão para cada projeto, na prática esses modelos, através desse padrão, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=133&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Está lá nos princípios do Manifesto Ágil:</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">“The best architectures, requirements, and designs emerge from self-organizing teams.”</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Muitas implementações de modelos como o CMMI definem um processo-padrão, em que são estabelecidos papéis, atividades, etapas, documentos, etc. Apesar de indicar a necessidade de adaptação do processo-padrão para cada projeto, na prática esses modelos, através desse padrão, exercem uma forte influência no processo que é instanciado. Portanto, podemos dizer que há nesse caso um modelo organizacional que impõe às equipes uma forma de organização.</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Os agilistas entendem que isso é ruim, que o melhor é que as equipes se auto-organizem, que definam seus próprios processos, seus próprios papéis, suas próprias atividades, etc. E isso é realmente fácil de aceitar. Desenvolvimento de software é uma atividade intelectual. Como qualquer outra atividade intelectual, não faz muito sentido impor um processo de trabalho. Imagine a imposição de um modelo de trabalho a uma equipe de escritores, de compositores, de arquitetos, de publicitários&#8230; Estabeleça metas e deixe que sua equipe se organize da forma que melhor julgar.</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Há quem enxergue nisso uma anarquia completa, uma desvalorização peremptória de processos. Isso é um erro crasso. Agilistas valorizam sim processos. Isso fica claro no Manifesto:</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">“We have come to value individuals and interactions over processes and tools. While there is value in the item on the right, we value the item on the left more.”</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">A diferença fundamental é o olhar que seessos. As próprias equipes são responsáveis por seus processos. Não há imposição:</div>
<p>Está lá nos princípios do Manifesto Ágil:</p>
<blockquote><p>The best architectures, requirements, and designs emerge from <strong>self-organizing</strong> teams.</p></blockquote>
<p>Muitas implementações de modelos como o CMMI definem um processo-padrão, em que são estabelecidos papéis, atividades, etapas, documentos, etc. Apesar de indicar a necessidade de adaptação do processo-padrão para cada projeto, na prática esses modelos, através desse padrão, exercem uma forte influência no processo que é instanciado. Portanto, podemos dizer que há nesse caso um modelo organizacional que impõe às equipes uma forma de organização.</p>
<p>Os agilistas entendem que isso é ruim, que o melhor é que as equipes se auto-organizem, que definam seus próprios processos, seus próprios papéis, suas próprias atividades, etc. E isso é realmente fácil de aceitar. Desenvolvimento de <em>software</em> é uma atividade intelectual. Como qualquer outra atividade intelectual, não faz muito sentido impor um processo de trabalho. Imagine a imposição de um modelo de trabalho a uma equipe de escritores, de compositores, de arquitetos, de publicitários&#8230; Estabeleça metas e deixe que sua equipe se organize da forma que melhor julgar.</p>
<p>Há quem enxergue nisso uma anarquia completa, uma desvalorização peremptória de processos. Isso é um erro crasso. Agilistas valorizam sim processos. Isso fica claro no Manifesto:</p>
<blockquote><p>We have come to value individuals and interactions over processes and tools. While there is value in the item on the right, we value the item on the left more.</p></blockquote>
<p>A diferença fundamental é o olhar que se dá a processos. As próprias equipes são responsáveis por seus processos. Não há imposição:</p>
<blockquote><p>At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.</p></blockquote>
<p>Um outro erro comum é achar que os agilistas são niilistas quanto a processos, ou que se deve partir do nada e deixar que as equipes construam naturalmente seus próprios processos. Esse mito nasceu da proposta dos agilistas de simplificação drástica dos processos tradicionalmente estabelecidos. Mas isso definitivamente não quer dizer que se deve partir do nada. O ideal é partir de um modelo estabelecido, como o Scrum, e ir adaptando ao longo do tempo. Aqui na Fortes por exemplo indicamos o XP. Mas todas as equipes já realizaram suas adaptações. Hoje somente uma delas trabalha com programação em par de forma sistematizada, por exemplo.</p>
<p><strong>E o autogerenciamento?</strong></p>
<p>Curiosamente, pelos menos nas listas nacionais, mais se fala em autogerenciamento que em auto-organização. Esses conceitos, apesar de parecidos e “intersecionados”, são diferentes. Autogerenciamento implica em auto-organização. Mas o contrário não é verdade. Autogerenciamento é a inexistência de um gerente controlando o processo. Auto-organização é a inexistência de uma força externa à equipe impondo um modelo de trabalho. Autogerenciamento requer equipes e membros maduros. Auto-organização, não necessariamente (apesar de aconselhável).</p>
<p>Apesar de serem conceitos diferentes, e apesar do Manifesto não mencionar explicitamente o autogerenciamento, isso não quer dizer que não se deve buscá-lo. Em desenvolvimento de <em>software</em>, como em qualquer outra atividade do conhecimento, o ideal é construir equipes autogerenciadas. Para mim, um dos objetivos do Scrum Master deve ser se fazer desnecessário. Esse estado representaria o autogerenciamento.</p>
<p>Ainda assim, mesmo que toda a comunidade ágil fale em autogerenciamento, mesmo que a utilização de métodos ágeis levem à construção de equipes autogerenciáveis, não me sinto confortável de dizer que é um conceito diretamente suportado pela filosofia ágil.</p>
<p>·</p>
<p>·</p>
<p><strong>atualização</strong> [07/08/2009]</p>
<p>Sugiro fortemente a leitura do comentário do Fábio Akita.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/claviustales.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/claviustales.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/claviustales.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/claviustales.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/claviustales.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/claviustales.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/claviustales.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/claviustales.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/claviustales.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/claviustales.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/claviustales.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/claviustales.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/claviustales.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/claviustales.wordpress.com/133/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=133&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogue.claviustales.com.br/2009/08/03/auto-organizacao/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tales</media:title>
		</media:content>
	</item>
		<item>
		<title>planejamento ágil de projeto</title>
		<link>http://blogue.claviustales.com.br/2009/07/04/planejamento-agil-de-projeto/</link>
		<comments>http://blogue.claviustales.com.br/2009/07/04/planejamento-agil-de-projeto/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 19:51:23 +0000</pubDate>
		<dc:creator>Clavius Tales</dc:creator>
				<category><![CDATA[principal]]></category>

		<guid isPermaLink="false">http://blogue.claviustales.com.br/?p=127</guid>
		<description><![CDATA[Uma das perguntas recorrentes nas listas de discussão é como se planeja um projeto sob a ótica da filosofia ágil. Não há uma diferença gritante do ponto de vista de técnicas em relação ao que tradicionalmente se faz. Mas há uma diferença substancial na forma como se encara esse planejamento e na forma de estimar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=127&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Uma das perguntas recorrentes nas listas de discussão é como se planeja um projeto sob a ótica da filosofia ágil. Não há uma diferença gritante do ponto de vista de técnicas em relação ao que tradicionalmente se faz. Mas há uma diferença substancial na forma como se encara esse planejamento e na forma de estimar seu prazo. Além disso, há outra grande diferença na forma em que o planejamento é acompanhado. Mas isso é vinho de outra pipa.</p>
<p>É preciso deixar claro que o que vou falar daqui pra frente é um entendimento bastante generalista. Há várias nuances válidas e detalhes não explorados no texto. Mas acho que o <em>post</em> responde à dúvida habitual a respeito de planejamento ágil de projetos. Além do mais, planejamento tem relação com uma série de questões, como gestão da comunicação, de recursos humanos, de aquisições, etc. O texto se limita apenas a estimativas de prazo &#8211; e custo, por tabela – e a elaboração de cronograma, que acho que é a dúvida corriqueira.</p>
<p>Como se faz tradicionalmente? De forma geral: levantam-se primeiramente as funcionalidades esperadas. Depois classifica-se cada uma em pequeno, médio ou grande (<a href="http://www.bfpug.com.br/Artigos/UCP/Banerjee-UCP_An_Estimation_Approach.pdf" target="_blank">APCU</a> e <a href="http://pt.wikipedia.org/wiki/Análise_de_pontos_de_função" target="_blank">APF</a>, habitualmente). Cada classificação dessas representa uma quantidade de pontos. Soma-se então os pontos de cada funcionalidade chegando-se a um subtotal. Ajusta-se esse subtotal de acordo com algumas complexidades do projeto e chega-se ao total de pontos do projeto. Depois calcula-se o tempo total do projeto de acordo com a velocidade histórica da equipe. Ex.: se o sistema tem 180 pontos e se e equipe produz em média 10 pontos por mês, isso quer dizer que o projeto deve durar 18 meses. Se vai durar 18 meses, e se a equipe custa $50.000 por mês, isso quer dizer que o projeto vai custar $900.000.</p>
<p>Em geral, em projetos ágeis a coisa funciona mais ou menos do mesmo jeito, com pequenas diferenças. Não há por exemplo essa classificação em pequeno, médio e grande para cada funcionalidade. Também não há esse ajuste em relação às complexidades do projeto. Elas são consideradas, mas de outra forma.</p>
<p>O planejamento começa apresentando-se as tais complexidades (normalmente requisitos não-funcionais, como nível de usabilidade, portabilidade, tolerância a falhas, escalabilidade, etc.) do projeto, para que a equipe tenha noção do buraco em que está se metendo e para que elas influam nas estimativas. Depois levantam-se as funcionalidades (em geral, histórias) esperadas. Depois, a equipe estima cada funcionalidade em pontos (<a href="http://blogue.claviustales.com.br/2009/04/04/por-que-nao-gosto-de-estimativas-por-pontos/" target="_blank">aqui na Fortes utilizamos horas-ideais</a>). Somam-se então os pontos das funcionalidades achando o total de pontos do projeto. O resto é igual: divide-se o total de pontos pela velocidade achando o tempo total do projeto, derivando igualmente seu custo.</p>
<p>É na elaboração do cronograma que o bicho pega, que denota a enorme diferença entre o que se faz tradicionalmente e o que se faz no mundo ágil.</p>
<p>Um cronograma tradicional estabelece uma série de fases para cada funcionalidade, realizadas por pessoas diferentes, em que cada fase representa a produção de um documento que é transmitido para a fase seguinte. Um exemplo de cronograma tradicional:</p>
<p><a href="http://claviustales.files.wordpress.com/2009/07/cronogramatradicional.jpg"><img class="aligncenter size-full wp-image-128" title="CronogramaTradicional" src="http://claviustales.files.wordpress.com/2009/07/cronogramatradicional.jpg?w=450&#038;h=300" alt="CronogramaTradicional" width="450" height="300" /></a></p>
<p>De novo: fui simplista. Faltaram por exemplo as correções de cada funcionalidade e os testes de integração e correções de cada <em>release</em>. Mas a ideia é dar uma visão geral.</p>
<p>Esse mesmo projeto sendo ágil:</p>
<p style="padding-left:30px;"><strong>Release #1 [00/00/0000]</strong><br />
Funcionalidade #1<br />
Funcionalidade #2<br />
Funcionalidade #3<br />
Funcionalidade #4</p>
<p style="padding-left:30px;"><strong>Release #2 [00/00/0000]</strong><br />
Funcionalidade #5<br />
Funcionalidade #6<br />
Funcionalidade #7<br />
Funcionalidade #8</p>
<p>Nesse caso, cada funcionalidade é desenvolvida idealmente de forma geral por toda a equipe, uma após a outra. Quando se termina uma funcionalidade, termina mesmo, coberta por testes automatizados, unitários, de integração, de aceitação, exploratórios, de estresse. De fato, quanto a esses dois últimos tipos de teste, há equipes ágeis que os realizam por <em>release</em>. Aqui na Fortes, realizamos os testes exploratórios por funcionalidade. Quanto aos de estresse, ainda não os temos.</p>
<p>O planejamento do projeto, apesar de relevante, não é aquilo que evidencia peremptoriamente as diferenças entre os mundos tradicional e ágil, apesar de dar algumas pistas, como podemos observar nas questões das fases e na existência do papel separado de projetista. E olhe que, no caso do exemplo tradicional, expus um exemplo de projeto de certa forma iterativo-incremental. Imagine se apresentasse um cascata. Agora perceba que, no exemplo tradicional, as funcionalidades são desenvolvidas paralelamente. Imagine uma mudança de requisitos nesse cenário. Como reconstruir o cronograma? Como atualizar todos os documentos? Aqui na Fortes, já fomos por um breve período “tradicionais”. O que acontecia quando de uma mudança de requisitos? Abondonávamos o planejamento e íamos no peito e na raça.</p>
<p>Um dos mitos a respeito de desenvolvimento ágil é ausência de planejamento. Uma pena. E de certa forma, curioso. XP foi a metodologia que “popularizou” o desenvolvimento ágil, e há um <a href="http://www.amazon.com/Planning-Extreme-Programming-Kent-Beck/dp/0201710919" target="_blank">livro</a>, escrito por Kent Beck e Martin Fowler, só sobre planejamento em XP.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/claviustales.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/claviustales.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/claviustales.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/claviustales.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/claviustales.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/claviustales.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/claviustales.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/claviustales.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/claviustales.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/claviustales.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/claviustales.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/claviustales.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/claviustales.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/claviustales.wordpress.com/127/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=127&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogue.claviustales.com.br/2009/07/04/planejamento-agil-de-projeto/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tales</media:title>
		</media:content>

		<media:content url="http://claviustales.files.wordpress.com/2009/07/cronogramatradicional.jpg" medium="image">
			<media:title type="html">CronogramaTradicional</media:title>
		</media:content>
	</item>
		<item>
		<title>[OT] Be on the Net</title>
		<link>http://blogue.claviustales.com.br/2009/06/30/ot-be-on-the-net/</link>
		<comments>http://blogue.claviustales.com.br/2009/06/30/ot-be-on-the-net/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 23:54:00 +0000</pubDate>
		<dc:creator>Clavius Tales</dc:creator>
				<category><![CDATA["off-topic"]]></category>

		<guid isPermaLink="false">http://blogue.claviustales.com.br/?p=120</guid>
		<description><![CDATA[O Be on the Net é um produto destinado a “vitrinizar” na web uma pequena empresa. Pequenas empresas não têm verba para criar um saite sotisficado. Normalmente então ou não criam seus saites ou contratam profissionais autônomos para criá-los. Acontece que, neste caso, o resultado é em geral de baixa qualidade: leiautes, cores, conteúdo, imagens, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=120&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://beonthe.net" target="_blank">Be on the Net</a> é um produto destinado a “vitrinizar” na <em>web</em> uma pequena empresa. Pequenas empresas não têm verba para criar um saite sotisficado. Normalmente então ou não criam seus saites ou contratam profissionais autônomos para criá-los. Acontece que, neste caso, o resultado é em geral de baixa qualidade: leiautes, cores, conteúdo, imagens, fontes, disposições de texto inadequadas.</p>
<p>O <a href="http://beonthe.net" target="_blank">Be on the Net</a> se propõe a resolver esse problema, provendo alguns modelos sofisticados e algumas funcionalidades que normalmente são úteis nesse contexto. Além disso, a turma do <a href="http://beonthe.net" target="_blank">Be on the Net</a> faz um trabalho de bastidores para que seu saite fique bem classificado quando alguém pesquisar no Google. Alguns exemplos de ramos que podem se beneficar do produto: fotografia, cerimonial, viagem, confeitaria.</p>
<p>O primeiro saite criado com o produto foi o da fotógrafa <a href="http://patriciafigueira.com.br" target="_blank">Patrícia Figueira</a>. Vale a pena conferir.</p>
<p>Para saber mais sobre o <a href="http://beonthe.net" target="_blank">Be on the Net</a>, visite seu saite em <a href="http://beonthe.net" target="_blank">beonthe.net</a>.</p>
<p>P.S.: “[OT] (<em>off-topic</em>)” não é uma etiqueta mágica que me permite falar aqui sobre qualquer assunto. Ainda que com esse recurso possa fugir do assunto principal deste blogue, ele não me dá o direito de falar sobre qualquer coisa. Há de haver alguma relação. Divulguei o <a href="http://beonthe.net" target="_blank">Be on the Net</a> pelo fato de ter sido um <a href="http://blog.improveit.com.br/articles/2009/04/08/uma-m%C3%A3ozinha-at%C3%A9-que-n%C3%A3o-ia-mal" target="_blank">pedido</a> do meu eterno mestre <a href="http://www.improveit.com.br/empresa/vinicius" target="_blank">Vinícius</a> e por ser um produto de <em>software</em> desenvolvido com eXtreme Programming (XP) pela <a href="http://www.improveit.com.br" target="_blank">ImproveIt</a>, empresa que outrora foi a maior divulgadora e especialista em XP e metodologias ágeis no nosso país. Portanto, não me peçam para divulgar qualquer produto aqui. Se você é meu amigo, abriu um barzinho maneiro em Fortaleza, e me pedir para divulgá-lo aqui, terá o pedido indeferido.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/claviustales.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/claviustales.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/claviustales.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/claviustales.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/claviustales.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/claviustales.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/claviustales.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/claviustales.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/claviustales.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/claviustales.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/claviustales.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/claviustales.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/claviustales.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/claviustales.wordpress.com/120/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=120&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogue.claviustales.com.br/2009/06/30/ot-be-on-the-net/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tales</media:title>
		</media:content>
	</item>
		<item>
		<title>governança ágil</title>
		<link>http://blogue.claviustales.com.br/2009/05/01/governanca-agil/</link>
		<comments>http://blogue.claviustales.com.br/2009/05/01/governanca-agil/#comments</comments>
		<pubDate>Fri, 01 May 2009 23:56:54 +0000</pubDate>
		<dc:creator>Clavius Tales</dc:creator>
				<category><![CDATA[principal]]></category>

		<guid isPermaLink="false">http://blogue.claviustales.com.br/?p=91</guid>
		<description><![CDATA[Além de outras atividades, dirijo algumas equipes de desenvolvimento. Por conta disso, a governança é um tema que me é caro. Ou seja, como saber se minhas equipes estão melhorando. E já que acreditamos no modelo ágil, como saber se minhas equipes estão se agilizando. Uma crítica habitual – e pertinente, de certa forma – [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=91&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Além de outras atividades, dirijo algumas equipes de desenvolvimento. Por conta disso, a governança é um tema que me é caro. Ou seja, como saber se minhas equipes estão melhorando. E já que acreditamos no modelo ágil, como saber se minhas equipes estão se agilizando.</p>
<p>Uma crítica habitual – e pertinente, de certa forma – que se faz a XP e Scrum é a falta de um sistema de governança. Ou seja, como definir um mecanismo que direcione as equipes a trabalhar com desenvolvimento ágil. Falo apenas de XP e Scrum pois não sei se as demais metodologias ágeis têm mecanismos de governança.</p>
<p>A ideia desse <em>post</em> é mostrar um exemplo de sistema de governança ágil. Esse exemplo se foca apenas nos aspectos práticos, sem entrar diretamente nas searas filosófica, psicológica e sociológica do manifesto e do movimento.</p>
<p>Já utilizamos a maior parte das ideias que vou expor aqui na Fortes. Algumas estão bem no início.</p>
<p> </p>
<p><strong>política de cargos, salários e benefícios</strong></p>
<p><strong><span style="font-weight:normal;">Estabeleça uma política agressiva (acima da média do mercado) de cargos, salários e benefícios. Nessa política, lembre-se de considerar características não-técnicas, como habilidade de trabalhar em equipe. Sei que esse é um tema difícil, que muitas vezes requer um trabalho de longo prazo, mas ter as melhores pessoas invariavelmente esbarra em ter melhores salários.</span></strong></p>
<p><em></p>
<ul>
<li>value individuals</li>
<li>value interactions</li>
</ul>
<p></em></p>
<p><strong>seleção de profissionais</strong></p>
<p><strong><span style="font-weight:normal;">Estabeleça um bom processo de recrutamento e seleção de profissionais. Realize diversas entrevistas, observe os aspectos pessoais, técnicos e interpessoais,  aplique testes e dinâmicas. Selecione os melhores profissionais. Uma dica: se você ainda não tem uma política agressiva de salários, lembre-se dos profissionais inexperientes e estagiários, observando as características pessoais (vontade de aprender, autodidatismo, iniciativa, boas notas nas disciplinas que interessam, etc.) e interpessoais (negociação, comunicação, solidariedade, etc.).</span></strong></p>
<ul>
<li><em>value individuals</em></li>
<li><em>value interactions</em></li>
</ul>
<p><strong>treinamentos</strong></p>
<p><strong><span style="font-weight:normal;">Estabeleça uma política de treinamentos. Isso pode ser feito de várias formas: estimulando grupos de estudo e <em>coding-dojos</em>, treinamentos formais, leitura de livros, etc. Aqui na Fortes temos um evento anual de integração. Esse evento serve também para rememorarmos o que fizemos durante o ano. Um dos tópicos deve ser “treinamentos realizados”. Se não se quiser fazer esse evento, pode-se elaborar um relatório simples contendo o mesmo tópico. Ou até uma prosaica atividade anual na sua agenda: “Que treinamentos fizemos?” Obs.: na política de treinamentos, lembre-se de incluir disciplinas de habilidades interpessoais.</span></strong></p>
<ul>
<li><em>value individuals</em></li>
<li><em>value interactions</em></li>
</ul>
<p><strong>diminuição da documentação</strong></p>
<p><strong><span style="font-weight:normal;"> Estabeleça as seguintes atividades mensais:</span></strong></p>
<ul>
<li>Verificar se há documentação legada que pode ser descartada;</li>
<li>Verificar se há documentação que pode ser descartada do processo;</li>
<li>Verificar se há documentação que pode ser simplificada (desformalizada) no processo.</li>
</ul>
<p><strong><span style="font-weight:normal;">Documentação em excesso desestimula os relacionamentos e supervaloriza os processos.<br />
</span></strong></p>
<ul>
<li><em>value interactions</em></li>
<li><em>over processes</em></li>
<li><em>Simplicity&#8211;the art of maximizing the amount of work not done&#8211;is essential.</em></li>
</ul>
<p><strong>contratos</strong></p>
<p>Estabeleça contratos em que o cliente se obriga a participar pelo menos das reuniões de planejamento e de entrega. Insira ainda as condições de mudança de requisitos. Mantenha esse modelo bem simples, como normalmente as metologias ágeis pregam, de simples reordenação de histórias. Estabeleça ainda a seguinte atividade mensal: perguntar ao cliente em que você deve melhorar.</p>
<ul>
<li><em>value customer collaboration</em></li>
<li><em>value responding to change</em></li>
<li><em>Welcome changing requirements, even late in  development. Agile processes harness change for the customer&#8217;s competitive advantage.</em></li>
</ul>
<p><strong>montando equipes</strong></p>
<p><strong><span style="font-weight:normal;">Monte equipes multifuncionais. No <em>template</em> do plano de projeto, na seção de equipe, coloque o seguinte comentário: “[montar equipe multifuncional, incluindo analistas de negócio]”. Lembre-se ainda de colocar todos os membros juntos, na mesma sala. Essa proximidade favorece a comunicação.</span></strong></p>
<ul>
<li><em>value interactions</em></li>
<li><em>Business people and developers must work together daily throughout the project.</em></li>
<li><em>The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.</em></li>
</ul>
<p><strong>relatório mensal</strong></p>
<p><strong><span style="font-weight:normal;">Peça que cada equipe elabore um relatório mensal com as seguintes informações:</span></strong></p>
<p><strong><span style="font-weight:normal;"><span style="text-decoration:underline;">quantidade de versões disponibilizadas</span></span></strong></p>
<p><strong><span style="font-weight:normal;">Quantidade de versões disponibilizadas para o cliente. Pode-se ainda diferenciar os <em>releases</em> de experimentação dos <em>releases</em> de produção.</span></strong></p>
<ul>
<li><em>Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.</em></li>
<li><em>Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.</em></li>
</ul>
<p><span style="text-decoration:underline;">satisfação dos colaboradores</span></p>
<p>Colete a nota de satisfação de cada colaborador de forma anônima e tira uma média. Se houver uma queda nesse valor, investigue para descobrir o problema e encaminhar uma solução.</p>
<ul>
<li><em>Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.</em></li>
<li><em>Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.</em></li>
</ul>
<p><span style="text-decoration:underline;">satisfação do cliente</span></p>
<p>Da mesma forma que com os colaboradores, monitore a satisfação do cliente.</p>
<ul>
<li><em>Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.</em></li>
</ul>
<p><span style="text-decoration:underline;">progresso do projeto</span></p>
<p>Meça o progresso do projeto. Uma tabela simples com as colunas história, tamanho e o indicador de conclusão é o suficiente. Veja o exemplo abaixo:</p>
<pre><span style="font-family:Consolas;line-height:18px;white-space:pre;">história    tam  concl
----------  ---  -----
história 1   15   sim
história 2    8   sim
história 3   10   não
...
história N   12   são
</span>
<span style="font-family:Consolas;line-height:18px;white-space:pre;">percentual de conclusão do projeto: 23%<em></em></span></pre>
<ul>
<li><em>Working software is the primary measure of progress.</em></li>
</ul>
<p><span style="text-decoration:underline;">relação entre o tempo gasto com desenvolvimento, correções e outras atividades</span></p>
<p>Idealmente as equipes devem trabalhar apenas desenvolvendo novas funcionalidades. Mas há necessidade de trabalharem também em correções de defeitos e em outras atividades como suporte. Portanto, monitore o tempo gasto pelas equipes nessas atividades extras. Veja o exemplo abaixo:</p>
<pre><span style="font-family:Consolas;line-height:18px;white-space:pre;">desenvolvimento<span> ..... </span>65%
correções<span> ........... </span>15%
outras atividades<span> ... </span>20%</span></pre>
<ul>
<li><em>Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.</em></li>
</ul>
<p><span style="text-decoration:underline;">qualidade do código</span></p>
<p>Informações como:</p>
<ul>
<li>Cobertura do código por testes unitários;</li>
<li>Código duplicado;</li>
<li>Classes longas;</li>
<li>Métodos longos e complexos.</li>
</ul>
<p>Nesse caso, não tem jeito: vai ter de recorrer a ferramentas mais sofisticadas. Dê uma olhada nesses <em>links</em> aqui:</p>
<p><a href="http://www.alissonvale.com/englishblog/post/Utilizando-metricas-de-codigo-para-melhoria-no-design-de-software.aspx" target="_blank">http://www.alissonvale.com/englishblog/post/Utilizando-metricas-de-codigo-para-melhoria-no-design-de-software.aspx</a></p>
<p><a href="http://www.alissonvale.com/englishblog/post/Utilizando-metricas-de-codigo-para-melhoria-no-design-de-software.aspx" target="_blank"></a><a href="http://josepaulopapo.blogspot.com/2008/04/qualidade-cdigo-manutenibilidade.html" target="_blank">http://josepaulopapo.blogspot.com/2008/04/qualidade-cdigo-manutenibilidade.html</a></p>
<p><a href="http://www.alissonvale.com/englishblog/post/Utilizando-metricas-de-codigo-para-melhoria-no-design-de-software.aspx" target="_blank"></a></p>
<p><a href="http://josepaulopapo.blogspot.com/2008/04/qualidade-cdigo-manutenibilidade.html" target="_blank"></a>Essas ferramentas devem idealmente ser disparadas pelo servidor de <em>build</em>, gerando relatórios de métricas automaticamente.</p>
<ul>
<li><em>Continuous attention to technical excellence and good design enhances agility.</em></li>
<li><em>Simplicity&#8211;the art of maximizing the amount of work not done&#8211;is essential.</em></li>
</ul>
<p><a href="http://josepaulopapo.blogspot.com/2008/04/qualidade-cdigo-manutenibilidade.html" target="_blank"></a></p>
<p><a href="http://www.alissonvale.com/englishblog/post/Utilizando-metricas-de-codigo-para-melhoria-no-design-de-software.aspx" target="_blank"></a></p>
<p><span style="text-decoration:underline;">ações de melhoria</span></p>
<p>Lista de ações de melhoria. É uma forma de saber se a equipe está melhorando continuamente. Se achar esse modelo excessivamente burocrático, você pode simplesmente pedir para informarem a quantidade de retrospectivas realizadas.</p>
<ul>
<li><em>At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.</em></li>
</ul>
<p><strong>metas</strong></p>
<p>Estabeleça metas claras – e deixe que as equipes escolham seus processos e ferramentas. Você pode estabelecer essas metas para os indicadores numéricos presentes no relatório mensal que citei acima. Dependendo da senioridade da equipe, essa liberdade pode não ser tão benéfica. Nesse caso, estabeleça um padrão de referência (isso é um pleonasmo?) de processos e ferramentas e administre a rigidez com que induz a equipe a utilizá-lo. A falta de metas claras amplifica a necessidade por maior comando-e-controle, supervalorizando ainda os processos.</p>
<p>Além dessas metas numéricas, peça também para cada equipe um relatório por iteração, indentificando as histórias planejadas e as concluídas, monitorando assim o nível de eficiência do planejamento. Essa é uma forma indireta de estabelecer metas.</p>
<ul>
<li><em>The best architectures, requirements, and designs emerge from self-organizing teams.</em></li>
</ul>
<p> </p>
<p>As ideias acima já garantem um bom nível de governança. Mais algumas ações podem reforçar o trabalho:</p>
<p> </p>
<p><strong>reporte para a diretoria</strong></p>
<p>Aqui na Fortes, condensamos todos os dados numéricos presentes no relatório mensal, de todas as equipes, e calculamos indicadores gerais do setor de desenvolvimento. Reportamos esses valores para os demais diretores da empresa.</p>
<p><strong>monitoramento das práticas</strong></p>
<p>No relatório mensal, pode-se estabelecer um <em>checklist</em> para monitorar o andamento das práticas. Ex.:</p>
<p>[  ] ambiente informativo<br />
[  ] <em>build</em> de dez minutos<br />
[  ] TDD<br />
[  ] integração contínua<br />
[  ] programação em par / inspeção / revisão<br />
[  ] código coletivo<br />
[  ] reuniões diárias</p>
<p>Na integração contínua, pode-se ainda solicitar a quantidade de integrações realizadas.</p>
<p><strong>equipe de QA</strong></p>
<p>Estabelecer uma equipe de QA para fazer incursões nas equipes para saber se as informações reportadas condizem com a realidade.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/claviustales.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/claviustales.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/claviustales.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/claviustales.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/claviustales.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/claviustales.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/claviustales.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/claviustales.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/claviustales.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/claviustales.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/claviustales.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/claviustales.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/claviustales.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/claviustales.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=91&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogue.claviustales.com.br/2009/05/01/governanca-agil/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tales</media:title>
		</media:content>
	</item>
		<item>
		<title>quanto testar</title>
		<link>http://blogue.claviustales.com.br/2009/04/18/quanto-testar/</link>
		<comments>http://blogue.claviustales.com.br/2009/04/18/quanto-testar/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 16:52:19 +0000</pubDate>
		<dc:creator>Clavius Tales</dc:creator>
				<category><![CDATA[principal]]></category>

		<guid isPermaLink="false">http://blogue.claviustales.com.br/?p=70</guid>
		<description><![CDATA[Adverência: esse post não responde de forma objetiva ao seu título. É mais subjetivo, para provocar reflexão. Observem o seguinte gráfico:     Ele mostra a relação entre o esforço gasto com desenvolvimento em si (novas funcionalidades), com testes e com correções de bugs. É claro que a separação entre funcionalidades e testes é muito [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=70&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Adverência: esse <em>post</em> não responde de forma objetiva ao seu título. É mais subjetivo, para provocar reflexão.</p>
<p>Observem o seguinte gráfico:</p>
<p> </p>
<p style="text-align:center;"><a href="http://claviustales.files.wordpress.com/2009/04/funcionalidadestestesdefeitos.jpg"><img class="size-full wp-image-76 aligncenter" title="funcionalidades x testes x defeitos" src="http://claviustales.files.wordpress.com/2009/04/funcionalidadestestesdefeitos.jpg?w=450" alt="Funcionalidades x Testes x Defeitos"   /></a></p>
<p> </p>
<p>Ele mostra a relação entre o esforço gasto com desenvolvimento em si (novas funcionalidades), com testes e com correções de <em>bugs</em>. É claro que a separação entre funcionalidades e testes é muito difícil, quiçá impossível, de ser estabelecida. Mas façamos um pequeno esforço mental para entender essa separação.</p>
<p>Os pontos A e C são extrapolações, não existem no mundo real. No A, não há qualquer teste. Seria o caso do desenvolver simplesmente escrever o código, compilar, não realizar o obscuro &#8220;teste do desenvolvedor&#8221; e entregar para o cliente. No C, todo o esforço é gasto com testes (“Testar o quê, se nenhuma funcionalidade foi produzida?”). Existe o lance das provas formais, que não conheço direito, mas até onde sei é algo impraticável em 999.999.999 de cada bilhão de <em>softwares</em>.</p>
<p>Por observação, boa parte das equipes se encontra entre A e B. Uma pena, já que isso se mostra uma tremenda estupidez. Na verdade, estupidez não é nem estar entre A e B; é não querer sair de lá. Por quê? Simples: o ponto B é o de maior produtividade. Ou seja: teste um pouco mais e será mais produtivo. Não é nem uma questão de fazer tão bem feito, com poucos <em>bugs</em>. É uma questão simples de produtividade. O curioso é que qualquer equipe deveria no mínimo se posicionar em B. E por que muitas não se posicionam? Assunto para outro <em>post</em>. Lembrei de uma frase que a mamãe costumava repetir: “O preguiçoso trabalha mais que o trabalhador.”</p>
<p>Sendo assim, os menos atentos diriam: “O ideal então é se posicionar em B, que é o ponto de maior produtividade.” Não é bem assim. Pergunto: seria certo se posicionar em B uma equipe que está produzindo um <em>software</em> embarcado que guia um míssil ao seu alvo? Claro que não! É preciso observar o nível de <em>bugs</em> no ponto B. Um erro nesse<em> software</em> poderia ser catastrófico. Ou seja, esse <em>software</em> deve ser virtualmente perfeito, sem <em>bugs</em>. Essa equipe deve se posicionar o mais próximo possível de C.</p>
<p>“Resolvido, então. Devemos sempre nos posicionar o mais próximo possível de C, correto?” Também não. Depende da natureza do<em> software</em>. A tolerância a erros de um <em>software</em> de um míssil é totalmente diferente da tolerância de um <em>software</em> gratuito para comunidades virtuais, por exemplo. Um erro neste nunca seria catastrófico. “Mas mesmo não sendo catastrófico, não seria melhor não ter erro nesse <em>software</em>?” Seria. Mas devemos observar outro fator: produtividade (funcionalidades). A partir de B, à medida que nos aproximamos de C a produtividade cai, já que o investimento em testes aumenta. Na prática, a grande maioria dos <em>softwares</em> não comporta um posicionamento próximo de C devido à baixa produtividade.</p>
<p>Um aparte: a curva dos defeitos em relação aos testes é logarítmica. Isso é apenas minha opinião, apesar de achar fortemente que estou certo – minha experiência e intuição me gritam. Se souberem de alguma pesquisa ou estudo científico que mostre essa relação, ficaria muito grato se me indicassem.</p>
<p>“Onde se posicionar, então?” Infelizmente ainda não descobrimos resposta objetiva para isso. O que vale aqui é a experiência e o bom senso da equipe, além do próprio processo empírico. Algumas heurísticas também podem ajudar.</p>
<p>Uma última análise: de modo bem simplista, podemos dizer que o basicão do TDD (100% de cobertura) está no ponto G, em que o esforço de testes é igual ao esforço de funcionalidades. Nessa minha simulação, de B para G, há uma queda de 22% na produtividade e de 63% nos defeitos. Coisas como essa explicam por que os agilistas (especialmente os XPeiros) somos tão vidrados em testes.</p>
<p>P.S.: para efeito deste <em>post</em>, em &#8220;testes&#8221; incluem-se coisas como programação em par e inspeção.</p>
<p>P.P.S.: &#8220;defeitos&#8221; referem-se ao esforço que a equipe fez para corrigir erros depois de realizados os testes, depois do <em>deploy</em>. Ex.: num período de um ano de um projeto, a equipe gastou 10% do esforço para corrigir <em>bugs</em> encontrados em produção.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/claviustales.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/claviustales.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/claviustales.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/claviustales.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/claviustales.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/claviustales.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/claviustales.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/claviustales.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/claviustales.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/claviustales.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/claviustales.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/claviustales.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/claviustales.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/claviustales.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=70&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogue.claviustales.com.br/2009/04/18/quanto-testar/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tales</media:title>
		</media:content>

		<media:content url="http://claviustales.files.wordpress.com/2009/04/funcionalidadestestesdefeitos.jpg" medium="image">
			<media:title type="html">funcionalidades x testes x defeitos</media:title>
		</media:content>
	</item>
		<item>
		<title>boliche, salto em altura, basquete&#8230; e TDD</title>
		<link>http://blogue.claviustales.com.br/2009/04/17/boliche-salto-em-altura-basquete-e-tdd/</link>
		<comments>http://blogue.claviustales.com.br/2009/04/17/boliche-salto-em-altura-basquete-e-tdd/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 03:13:24 +0000</pubDate>
		<dc:creator>Clavius Tales</dc:creator>
				<category><![CDATA[principal]]></category>

		<guid isPermaLink="false">http://blogue.claviustales.com.br/?p=67</guid>
		<description><![CDATA[Há alguns anos, uns amigos me convidaram para jogar boliche. Todos amadores, nunca havíamos jogado. Qual o objetivo do jogo? Derrubar o maior número de pinos. Eu já havia assistido a algumas partidas na tevê. Vi que os jogadores profissionais sempre utilizam a mesma técnica: arremessam a bola com efeito. Resolvi então fazer o mesmo. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=67&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Há alguns anos, uns amigos me convidaram para jogar <a href="http://pt.wikipedia.org/wiki/Boliche" target="_blank">boliche</a>. Todos amadores, nunca havíamos jogado. Qual o objetivo do jogo? Derrubar o maior número de pinos. Eu já havia assistido a algumas partidas na tevê. Vi que os jogadores profissionais sempre utilizam a mesma técnica: arremessam a bola com efeito. Resolvi então fazer o mesmo. Resultado: desastre total. Perdi as primeiras partidas. Resolvi mudar a estratégia. Passei a jogar sem efeito, e passei a ganhar algumas partidas.</p>
<p>Certa vez, na escola técnica (atual <a href="http://www.cefetce.br/" target="_blank">CEFET</a>) ou na universidade, não lembro direito, cheguei a praticar atletismo. Chegamos ao <a href="http://pt.wikipedia.org/wiki/Salto_em_altura" target="_blank">salto em altura</a>. Alguns (os &#8220;seminovatos&#8221;) já haviam praticado uma ou duas vezes. Os demais eram absolutamente &#8220;novatos&#8221;, virgens no esporte, marinheiros de primeira viagem. Qual o objetivo da disputa? Passar o sarrafo o mais alto possível sem derrubá-lo. Todos os novatos queríamos passar o sarrafo com as costas viradas para o chão, como fazem os profissionais, da forma que sempre vimos na tevê. Já os seminovatos utilizavam uma técnica &#8220;especial&#8221;: passavam o sarrafo de frente, com o ventre voltado para o chão. Resultado: os seminovatos venceram-nos de lavada. Fiquei impressionado. Como eles ganharam de todos nós se utilizavam uma técnica menos eficaz? A melhor técnica para mim era a de costas, claro, já que era a que todos os profissionais usavam.</p>
<p>Noutra vez, brincando de jogar <a href="http://pt.wikipedia.org/wiki/Basquetebol" target="_blank">basquete</a> na quadra do colégio, combinamos (todos do mesmo nível, seminovatos) uma disputa: quem acertaria mais lances livres. Qual o objetivo da disputa, então? Acertar no cesto o maior número possível de bolas. Alguns fizemos os primeiros arremessos como fazem os profissionais, impulsionando a bola apenas com uma mão, utilizando a outra como apoio. Outros, &#8220;não sei por quê&#8221;, utilizavam as duas mãos para impulsionar a bola. Foram motivo de chacota, no começo da disputa. Como podiam arremessar de forma tão desengonçada? Nunca haviam visto uma partida de basquete? Só que, à medida que a disputa se desenrolava, a chacota se transformou em perplexidade, pois os desengonçados nos venciam.</p>
<p>O que aprendi com essas historinhas? Que algumas técnicas são mais eficientes, mas só depois de muito treino. Para um novato, as técnicas &#8220;naturais&#8221; são melhores. Mas há técnicas que, depois de treino, são mais eficientes que as naturais.</p>
<p>Minha <strong>sensação</strong> é que o mesmo acontece com <a href="http://en.wikipedia.org/wiki/Test-driven_development" target="_blank">TDD</a>.</p>
<p>Qual o objetivo de um programador? Entregar código com um bom desaine e coberto por testes unitários. A forma natural é escrever todo o código e depois ir refatorando e cobrindo por testes unitários. Se se pedir a um programador acostumado a fazer dessa forma para escrever código utilizando TDD, ele vai ser bem menos produtivo. Isso pode até ser verdade, mas só no princípio. Um programador fluente em TDD é mais rápido que um programador tradicional.</p>
<p>Infelizmente a analogia com as minhas peripécias esportivas não é perfeita – como qualquer analogia. No esporte, é fácil provar que técnica é mais eficiente: no boliche, quantidade de pinos derrubados; no salto, altura atingida; no basquete, quantidade de lances convertidos. Em <em>software</em> dificilmente – de fato, acho que nunca – conseguiremos provar que TDD é mais eficiente, já que não temos como medir produtividade. Ficaremos pela percepção de cada um.</p>
<p>Pois bem&#8230; Certo dessa minha intuição, de que TDD é melhor, pedi para que meus programadores passassem a escrever código utilizando TDD. O resultado inicial foi tão desastroso que abandonaram a ideia à minha revelia.</p>
<p>Quando soube desse abondono, me falaram: &#8220;Tales, é um desastre. Ficamos bem mais lentos.&#8221; Perguntei: &#8220;Mas vocês acreditam que TDD é melhor?&#8221; Alguns acreditavam, outros não; mas todos não-convictos. Propus: &#8220;Vamos experimentar por algum tempo. Se não gostarmos, desistimos.&#8221; Retrucaram: &#8220;Mas, Tales, vamos ficar muito improdutivos.&#8221; Sugeri: &#8220;Façamos assim: comecem programando normalmente, como sempre fizeram, mas se obriguem a fazer TDD uma hora por dia. Depois de duas semanas, aumentem para duas horas. Depois de mais duas, para três horas. E assim sucessivamente, até vocês  se certificarem se TDD é melhor ou não.&#8221; Ou seja, a ideia era não ter uma queda brusca de velocidade no princípio.</p>
<p>Essa sugestão que dei para a equipe é recente e ainda não sabemos se a proposta deu certo. De qualquer forma, fica a ideia para os leitores, que era o que queria com esse <em>post</em>, lançar a ideia.</p>
<p>P.S.: cheguei a contar essas historinhas esportivas para uma nossas equipes. Um dos membros dessa equipe – Sávio, meu irmão – fez outra analogia. Ele contou que no princípio digitava apenas com os dois indicadores. Era até rápido. Mas ele intuía – uma obviedade, de fato – que digitaria mais rápido ainda se utilizasse todos os dedos. Só que sabia também que não seria tão produtivo no início. O que ele fez? Começou se forçando a digitar com todos os dedos meia hora por dia. A cada semana, aumentava meia hora, até chegar ao ponto de perceber que digitava mais rápido com todos os dedos que com os indicadores.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/claviustales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/claviustales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/claviustales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/claviustales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/claviustales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/claviustales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/claviustales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/claviustales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/claviustales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/claviustales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/claviustales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/claviustales.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/claviustales.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/claviustales.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blogue.claviustales.com.br&amp;blog=4284629&amp;post=67&amp;subd=claviustales&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blogue.claviustales.com.br/2009/04/17/boliche-salto-em-altura-basquete-e-tdd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tales</media:title>
		</media:content>
	</item>
	</channel>
</rss>
