<?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>Ricardo Serradas</title>
	<atom:link href="http://blog.ricardoserradas.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ricardoserradas.net</link>
	<description>Visual Studio ALM in a nutshell</description>
	<lastBuildDate>Fri, 12 Nov 2010 13:25:20 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.ricardoserradas.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Ricardo Serradas</title>
		<link>http://blog.ricardoserradas.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.ricardoserradas.net/osd.xml" title="Ricardo Serradas" />
	<atom:link rel='hub' href='http://blog.ricardoserradas.net/?pushpress=hub'/>
		<item>
		<title>Curso de forma&#231;&#227;o em .Net&#8211;Stefanini</title>
		<link>http://blog.ricardoserradas.net/2010/11/12/curso-de-formao-em-netstefanini/</link>
		<comments>http://blog.ricardoserradas.net/2010/11/12/curso-de-formao-em-netstefanini/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 13:25:20 +0000</pubDate>
		<dc:creator>Ricardo Serradas</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Curso]]></category>

		<guid isPermaLink="false">https://ricardoserradas.wordpress.com/2010/11/12/curso-de-formao-em-netstefanini/</guid>
		<description><![CDATA[Olá a todos, Ontem teve fim uma experiência muito bacana que tive aqui na Stefanini: assumi, com apoio do time de arquitetura (Raphael Nascimento – @raPHaelrn, Felipe Castro – @felipec_castro e Victor Cavalcante – @vcavalcante), uma turma de formação de profissionais de análise e desenvolvimento na plataforma .Net. A idéia era captar talentos do mercado [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=263&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá a todos,</p>
<p>Ontem teve fim uma experiência muito bacana que tive aqui na Stefanini: assumi, com apoio do time de arquitetura (Raphael Nascimento – @raPHaelrn, Felipe Castro – @felipec_castro e Victor Cavalcante – @vcavalcante), uma turma de formação de profissionais de análise e desenvolvimento na plataforma .Net.</p>
<p>A idéia era captar talentos do mercado e disseminar os conhecimentos e cultura do SDC (Software Delivery Center da Stefanini). Estudantes do 1º ao 3º semestre (se não me engano, estou certo moçada?).</p>
<p>Durante o curso, falamos de orientação à objeto, orientação à eventos, banco de dados, entre outras coisas&#8230; Desenvolvemos uma calculadora, um cadastro simples e por fim um “Bank line”. Foi tudo bem legal, eu curti muito a experiência e espero que, os que ainda posso chamar de “meus alunos”, também tenham gostado e que tenham suas expectativas atingidas.</p>
<p>Algo bem legal que posso contar é que eu costumava dizer que eu estava ensinando a eles “como não fazer” algumas coisas. Claro, com o objetivo de que eles buscassem estudar sobre qual seria a forma correta de chegar ao mesmo objetivo, que fossem atrás. O @vcavalcante fazia até algumas participações especiais nas aulas, chegando de surpresa e dizendo “É isso aí que ele está ensinando pra vocês? Está tudo errado!” – É claro que nestas aulas eu falava de HTML, JavaScript, ASP.Net WebForms <img style="border-style:none;" class="wlEmoticon wlEmoticon-smilewithtongueout" alt="Smile with tongue out" src="http://ricardoserradas.files.wordpress.com/2010/11/wlemoticon-smilewithtongueout.png?w=700" /></p>
<p>Abaixo, algumas fotos do último dia de aula. (Clique para ampliar)</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/11/dsc01615.jpg"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0 5px;" title="DSC01615" border="0" alt="DSC01615" src="http://ricardoserradas.files.wordpress.com/2010/11/dsc01615_thumb.jpg?w=244&#038;h=139" width="244" height="139" /></a><a href="http://ricardoserradas.files.wordpress.com/2010/11/dsc01620.jpg"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0 5px;" title="DSC01620" border="0" alt="DSC01620" src="http://ricardoserradas.files.wordpress.com/2010/11/dsc01620_thumb.jpg?w=244&#038;h=139" width="244" height="139" /></a></p>
<p>Espero vê-los novamente num futuro próximo! Sucesso à todos e “ganbatte” *.</p>
<p><font size="1">*Do japonês: Do your best, go for it (esforce-se, dê seu melhor)</font></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardoserradas.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardoserradas.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardoserradas.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardoserradas.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardoserradas.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardoserradas.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardoserradas.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardoserradas.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardoserradas.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardoserradas.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardoserradas.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardoserradas.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardoserradas.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardoserradas.wordpress.com/263/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=263&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.ricardoserradas.net/2010/11/12/curso-de-formao-em-netstefanini/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06b58a0e94f42dbfd9f30ef9046f1807?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Serradas</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/11/wlemoticon-smilewithtongueout.png" medium="image">
			<media:title type="html">Smile with tongue out</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/11/dsc01615_thumb.jpg" medium="image">
			<media:title type="html">DSC01615</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/11/dsc01620_thumb.jpg" medium="image">
			<media:title type="html">DSC01620</media:title>
		</media:content>
	</item>
		<item>
		<title>Quest: Customizar Work Items, integração com MS Project e relatórios – Parte 2</title>
		<link>http://blog.ricardoserradas.net/2010/08/24/quest-customizar-work-items-integracao-com-ms-project-e-relatorios-%e2%80%93-parte-2/</link>
		<comments>http://blog.ricardoserradas.net/2010/08/24/quest-customizar-work-items-integracao-com-ms-project-e-relatorios-%e2%80%93-parte-2/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 20:36:46 +0000</pubDate>
		<dc:creator>Ricardo Serradas</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Problema e Solução]]></category>
		<category><![CDATA[ALM]]></category>
		<category><![CDATA[Customização]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Work Items]]></category>

		<guid isPermaLink="false">http://blog.ricardoserradas.net/?p=244</guid>
		<description><![CDATA[Fala galera, No post anterior, falamos de uma customização de work items usando os recursos do próprio Visual Studio somados aos do Team Foundation Server Power Tools. O que faremos seguindo esse guia é ir além, codificando nosso próprio controle para um formulário de work item. Vamos relembrar o problema que vamos resolver: precisamos de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=244&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Fala galera,</p>
<p>No post anterior, falamos de uma customização de work items usando os recursos do próprio Visual Studio somados aos do <em>Team Foundation Server Power Tools</em>. O que faremos seguindo esse guia é ir além, codificando nosso próprio controle para um formulário de work item.</p>
<p>Vamos relembrar o problema que vamos resolver: precisamos de um campo que vai exibir o andamento geral da atividade, baseado no andamento das 3 etapas, consolidando-as. Para mais detalhes, você pode ler mais sobre o problema proposto na <a href="http://blog.ricardoserradas.net/2010/08/19/quest-customizar-work-items-integracao-com-ms-project-e-relatorios-%e2%80%93-parte-1/">Parte 1</a>.</p>
<p>Para acompanhar, todo o código conte e XML de definição do Work Item &#8220;<em>Task</em>&#8221; está disponível para download <a href="http://ricardoserradas.net/SamplesRepository/TfsWorkItemCustomControlSample.zip" target="_blank">neste link</a>.</p>
<h3>Como funciona o deploy de novos controles para Work Items?</h3>
<p>Diferentemente do que muitos me supõe, os assemblies de controles customizados para work items não ficam dispostos no servidor do TFS, mas sim em uma pasta específica em cada máquina cliente. Essa pasta é:</p>
<p>[Drive]:\programdata\Microsoft\Team Foundation\Work Item Tracking\Custom Controls\10.0</p>
<p>Por conta disso, precisamos escolher uma forma para distribuir nosso assembly do controle. Isso fica a seu critério. Você pode disponibilizá-la para cópia num compartilhamento na rede, distribuir via pendrive, SkyDrive, etc&#8230; Eu escolhi criar um setup que já faz a cópia da DLL para o diretório correto, e aí sim compartilhei este na rede, porém, não vamos entrar nesse mérito.</p>
<p>Vale lembrar que depois do deploy da DLL feito nessa pasta, é necessário reiniciar o Visual Studio para que ele faça sua leitura.</p>
<h3>Vamos ao que interessa</h3>
<p>Para criarmos nosso controle, criamos um Class Library simples dentro do nosso Visual Studio. Vamos chamá-lo de <em>CustomWorkItemFields</em>. Chamei assim porque, dentro desse mesmo assembly, podemos criar outros novos controles.</p>
<p>Dentro dele, adicionamos um User Control, que vou chamar de “<em>PercentComplete</em>”. Adicionamos então um TextBox simples, o qual vamos chamar de “txtValue”. O último passo dessa parte visual é ajustar o form para que ele fique do mesmo tamanho que nosso TextBox, assim:</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/08/customcontrollayout.jpg"><img class="aligncenter size-full wp-image-245" title="CustomControlLayout" src="http://ricardoserradas.files.wordpress.com/2010/08/customcontrollayout.jpg?w=700" alt=""   /></a></p>
<p>Agora, precisamos implementar a inteligência desse controle. Para isso, vamos ao código.</p>
<p>Antes de tudo, precisamos adicionar duas referências ao nosso projeto, que são:</p>
<ul>
<li><em>Microsoft.TeamFoundation.WorkItemTracking.Client</em>, parte do<em> Team Foundation Server SDK</em></li>
<li><em>Microsoft.TeamFoundation.WorkItemTracking.Controls</em>, localizado no diretório:</li>
</ul>
<p>[Drive]:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies</p>
<p>Feito isso:</p>
<p>-          Faça as referências a esses namespaces no codebehind do controle;</p>
<p>-          Implemente a interface <em>IWorkItemControl</em>;</p>
<p>-          (Opcional, como implementei) crie um struct para organizar os nomes dos campos de work items com os quais vamos trabalhar os cálculos;</p>
<p>-          Crie o método <em>SetPercenteCompleteField()</em> para concentrar a inteligência de cálculo.</p>
<p>O segredo todo desta customização está no evento <em>FieldChanged</em> do WorkItem, porque a cada vez que um campo for modificado e este for um dos 3 novos campos que adicionamos ao formulário, temos que realizar o cálculo e exibir o resultado no nosso controle customizado. Veja como ficou o núcleo da nossa customização, o método “<em>SetPercentCompleteField</em>”:</p>
<pre>private void SetPercentCompleteField()
{</pre>
<pre style="padding-left:30px;">try</pre>
<pre style="padding-left:30px;">{</pre>
<pre style="padding-left:60px;"><span style="color:#339966;">// Obtém todos os valores que estão informados nos nossos campos de acompanhamento</span></pre>
<pre style="padding-left:60px;">var analysis = int.Parse(_workItemDataSource.Fields[WorkItemFields.Analysis].Value.ToString().Replace("%", string.Empty));</pre>
<pre style="padding-left:60px;">var development = int.Parse(_workItemDataSource.Fields[WorkItemFields.Development].Value.ToString().Replace("%", string.Empty));</pre>
<pre style="padding-left:60px;">var tests = int.Parse(_workItemDataSource.Fields[WorkItemFields.Tests].Value.ToString().Replace("%", string.Empty));</pre>
<pre style="padding-left:60px;"><span style="color:#339966;">// Aplica os pesos a cada um dos valores e depois obtém porcentagem</span></pre>
<pre style="padding-left:60px;">var result = analysis*40;</pre>
<pre style="padding-left:60px;">result += development*30;</pre>
<pre style="padding-left:60px;">result += tests*30;</pre>
<pre style="padding-left:60px;">result = result/100;</pre>
<pre style="padding-left:60px;"><span style="color:#339966;">// Atribui o resultado ao nosso campo de work item para armazenamento na base de dados</span></pre>
<pre style="padding-left:60px;">_workItemDataSource.Fields[WorkItemFields.PercentComplete].Value = result;</pre>
<pre style="padding-left:60px;"><span style="color:#339966;">// Atribui esse resultado, formatado com o caractér '%', no campo do controle</span></pre>
<pre style="padding-left:60px;">txtValue.Text = result + "%";</pre>
<pre style="padding-left:30px;">}</pre>
<pre style="padding-left:30px;">catch (Exception)</pre>
<pre style="padding-left:30px;">{</pre>
<pre style="padding-left:60px;">if (_workItemDataSource == null) return;</pre>
<pre style="padding-left:60px;">_workItemDataSource.Fields[WorkItemFields.PercentComplete].Value = 0;</pre>
<pre style="padding-left:60px;">txtValue.Text = "0%";</pre>
<pre style="padding-left:30px;">}
}</pre>
<p>Depois do controle codificado, precisamos agora criar um arquivo de definição do controle de work item, que será colocado na mesma pasta de deploy que informei acima. Veja o seu formato:</p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;CustomControl xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
&lt;Assembly&gt;<strong>ALMTeam.BlogSampleCMMi.CustomWorkItemFields.dll</strong>&lt;/Assembly&gt;
&lt;FullClassName&gt;<strong>ALMTeam.BlogSampleCMMi.CustomWorkItemFields.PercentComplete</strong>&lt;/FullClassName&gt;
&lt;/CustomControl&gt;</pre>
<p>Formato simples, não? Dentro da tag “Assembly”, informamos qual o nome da DLL onde está localizado nosso controle e, em “FullClassName” o nome completo, incluindo namespace, da classe que o define.</p>
<p>Por último, abrimos o Work Item Type &#8220;<em>Task</em>&#8221; e criamos o campo <em>BlogSampleCMMi.Tracking.PercentComplete (Integer)</em> para armazenar os dados que nosso controle vai exibir.</p>
<p>Feito isso, fazemos o deploy dos dois arquivos na nossa referida pasta e depois reiniciamos o Visual Studio. A partir de então, um novo tipo de controle ficará disponível para inserirmos no layout do work item. É com ele que vamos criar o campo percent complete no formulário, assim como criamos os outros 3 campos, com a seguinte diferença:</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/08/work-item-type-custom-control-creation.jpg"><img class="aligncenter size-full wp-image-248" title="Work Item Type - Custom Control Creation" src="http://ricardoserradas.files.wordpress.com/2010/08/work-item-type-custom-control-creation.jpg?w=700" alt=""   /></a></p>
<p>Veja que em “<em>Type</em>”, temos nosso tipo de controle customizado disponível. Não podemos nos esquecer, porém, que devemos também referenciar nosso campo de work item (criado na aba “<em>Fields</em>”) na propriedade “Field Name”.</p>
<p>Depois de criado o controle, salve o seu work item type e veja o resultado criando um novo work item do tipo “<em>Task</em>”:</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/08/work-item-task-with-fields.jpg"><img class="aligncenter size-full wp-image-249" title="Work Item Task - With Fields" src="http://ricardoserradas.files.wordpress.com/2010/08/work-item-task-with-fields.jpg?w=700" alt=""   /></a></p>
<p>Perceba que cada vez que um desses 3 campos tem seu valor alterado, o cálculo no campo “Andamento Geral” acontece automaticamente.</p>
<p><strong>Importante</strong>: a implementação de um controle customizado para formulários de work items na web (Team Foundation Web Access) é diferente. Logo, verá que esse controle não é visível nos formulários web. Este assunto será abordado num outro post. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>É isso galera! No próximo episódio dessa “saga”, veremos como integrar tudo isso à um cronograma do Project.</p>
<p>[]’s</p>
<p>Ricardo Serradas</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardoserradas.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardoserradas.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardoserradas.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardoserradas.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardoserradas.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardoserradas.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardoserradas.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardoserradas.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardoserradas.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardoserradas.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardoserradas.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardoserradas.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardoserradas.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardoserradas.wordpress.com/244/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=244&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.ricardoserradas.net/2010/08/24/quest-customizar-work-items-integracao-com-ms-project-e-relatorios-%e2%80%93-parte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06b58a0e94f42dbfd9f30ef9046f1807?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Serradas</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/08/customcontrollayout.jpg" medium="image">
			<media:title type="html">CustomControlLayout</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/08/work-item-type-custom-control-creation.jpg" medium="image">
			<media:title type="html">Work Item Type - Custom Control Creation</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/08/work-item-task-with-fields.jpg" medium="image">
			<media:title type="html">Work Item Task - With Fields</media:title>
		</media:content>
	</item>
		<item>
		<title>Quest: Customizar Work Items, integração com MS Project e relatórios – Parte 1</title>
		<link>http://blog.ricardoserradas.net/2010/08/19/quest-customizar-work-items-integracao-com-ms-project-e-relatorios-%e2%80%93-parte-1/</link>
		<comments>http://blog.ricardoserradas.net/2010/08/19/quest-customizar-work-items-integracao-com-ms-project-e-relatorios-%e2%80%93-parte-1/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 20:36:31 +0000</pubDate>
		<dc:creator>Ricardo Serradas</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Problema e Solução]]></category>
		<category><![CDATA[ALM]]></category>
		<category><![CDATA[Customização]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Work Items]]></category>

		<guid isPermaLink="false">http://blog.ricardoserradas.net/?p=230</guid>
		<description><![CDATA[Olá, Há alguns dias atrás passei por uma série de situações curiosas, com algumas diferentes customizações de um template de processo MSF for CMMi 5.0 do TFS para um time de desenvolvimento, situações essas que são relativamente simples, mas achei que caberiam bem em alguns posts sobre como realizar cada etapa. Minha proposta então é [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=230&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Há alguns dias atrás passei por uma série de situações curiosas, com algumas diferentes customizações de um template de processo MSF for CMMi 5.0 do TFS para um time de desenvolvimento, situações essas que são relativamente simples, mas achei que caberiam bem em alguns posts sobre como realizar cada etapa. Minha proposta então é expor o problema e depois, numa série de posts, mostrar como é possível implementar tudo isso. Vamos lá.</p>
<p>- Há a necessidade de customizar o template do work item do tipo <em>Task</em>, com 3 campos que compunham o andamento de cada etapa da atividade. Algo parecido com o seguinte:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="320" valign="top">Tarefa  1</td>
<td width="262" valign="top"> </td>
</tr>
<tr>
<td width="320" valign="top">Análise e documentação (peso: 40%):</td>
<td width="262" valign="top">[Dropdown com os valores possíveis]</td>
</tr>
<tr>
<td width="320" valign="top">Desenvolvimento (peso: 30%):</td>
<td width="262" valign="top">[Dropdown com os valores possíveis]</td>
</tr>
<tr>
<td width="320" valign="top">Testes (peso: 30%):</td>
<td width="262" valign="top">[Dropdown com os valores possíveis]</td>
</tr>
</tbody>
</table>
<p> Então, os campos “<em>Original estimate</em>”, “<em>Remaining work</em>” e “<em>Completed work</em>” seriam inutilizados a pedido da própria gestão.</p>
<p>- O próximo passo é criar um campo abaixo que mostrasse o andamento geral da atividade, uma porcentagem consolidada, levando em consideração os pesos de cada etapa. Exemplo, se:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="291" valign="top">Análise e documentação:</td>
<td width="291" valign="top">
<p style="text-align:center;">100%</p>
</td>
</tr>
<tr>
<td width="291" valign="top">Desenvolvimento:</td>
<td width="291" valign="top">
<p style="text-align:center;">50%</p>
</td>
</tr>
<tr>
<td width="291" valign="top">Testes:</td>
<td width="291" valign="top">
<p style="text-align:center;">0%</p>
</td>
</tr>
</tbody>
</table>
<p> Logo, o andamento geral da atividade é 55%, porque ((100*40)+(50*30)+(0*30))/100 = 55, certo?</p>
<p>Porém, como fazer isso apenas com as regras de campos de work items do TFS? Bingo! Não é possível. Para conseguirmos isso, precisamos criar um controle customizado para nossos work items com essa inteligência embutida.</p>
<p>- Depois disso, sabemos que esses work items serão mapeados para um cronograma no MS Project. A necessidade do gestor é que esse campo com o andamento geral da atividade fosse refletido no campo “<em>% Complete</em>” do cronograma.</p>
<p>- Por fim, é interessante conseguirmos elaborar relatórios a partir desses novos dados. Vamos então criar um novo tipo de Report e publicá-lo na área de relatórios do Team Project.</p>
<p>Vamos resolver esses “puzzles”?</p>
<h3>Parte 1: Criar campos customizados para o formulário de work item</h3>
<p>Antes de tudo, precisamos ter um um Team Project configurado com MSF for CMMi 5.0 para podermos trabalhar. Recomendo fortemente que crie um Team Project exclusivo para exercícios como esse.</p>
<p>Existem duas formas para customizar um tipo de work item: editando suas definições via XML ou usando o <em>Process Editor</em> integrado no Visual Studio, módulo contido no Team Foundation Power Tools, que pode ser obtido <a href="http://visualstudiogallery.msdn.microsoft.com/en-us/3e8c9b68-6e39-4577-b9b7-78489b5cb1da">neste link</a>. Mesmo que queira mexer direto no XML, é muito importante baixar e instalar essa ferramenta para que possa ter fácil acesso ao XML definition do work item.</p>
<p>Depois de instalado, vamos primeiro dar uma olhada no XML definition do Work Item do tipo <em>Task</em>. Para isso, dentro do Visual Studio, siga os passos:</p>
<p><em>Menu Tools -&gt; Process Editor -&gt; Work Item Types -&gt; Export WIT.</em></p>
<p>Uma janela como essa sera aberta:</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/08/select-work-item-type.jpg"><img class="size-full wp-image-232 alignnone" title="Select Work Item Type" src="http://ricardoserradas.files.wordpress.com/2010/08/select-work-item-type.jpg?w=700" alt=""   /></a></p>
<p>Selecione o tipo “<em>Task</em>” do seu <em>Team Project</em> e clique em OK. Agora, você verá uma caixa de diálogo de “Salvar como”, pedindo para escolher o local para salvar o arquivo XML.</p>
<p>Depois de salvo, abra este arquivo com seu editor de textos preferido. Verás um arquivo de cerca de 550 linhas. Vamos falar rapidamente sobre algumas tags importantes desse arquivo:</p>
<p>WORKITEMTYPE – Raiz do tipo do work item. É onde, por exemplo, o nome do tipo do work item é definido.</p>
<p>FIELDS – Aqui são definidos os campos usados no formulário do work item. Aqui algumas propriedades são definidas, como nome do campo, tipo de dado e formato no relatório.</p>
<p>WORKFLOW – Neste trecho é definido o ciclo de vida do tipo de work item. Transições entre estados, campos a serem preenchidos nelas, entre outras coisas são definidos aqui.</p>
<p>FORM – Aqui é definida a aparência do formulário do work item. Posições de campos, tamanho, label, agrupamento, etc.</p>
<p>Mas, há uma frase que acho muito valiosa que Ramon Durães costuma usar, que é “Não tem que ser difícil”. Seguindo essa linha, nós vamos basear nosso trabalho em cima do Process Editor do TF Power Tools.</p>
<p>Vamos então abrir o mesmo arquivo XML numa interface amigável dentro do Visual Studio. Para isso, siga esse caminho: <em>Menu Tools -&gt; Process Editor -&gt; Work Item Types -&gt; Open Work Items From File</em>. Uma janela de abertura de arquivo vai aparecer, selecione o arquivo XML que visualizávamos no editor de texto. Verás então uma janela como essa:</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/08/work-item-type.jpg"><img class="aligncenter size-full wp-image-233" title="Work Item Type" src="http://ricardoserradas.files.wordpress.com/2010/08/work-item-type.jpg?w=700&#038;h=459" alt="" width="700" height="459" /></a></p>
<p>As abas representam os nós daquele XML que falamos acima. Para executarmos a nossa primeira tarefa, precisamos seguir o seguinte roteiro nessa janela:</p>
<p>- Etapa 1: Criar a definição dos campos na aba “<em>Fields</em>” (seus nomes, tipos e descrição).</p>
<p>                Usando o botão “<em>New</em>”, a seguinte janela aparecerá:</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/08/field-definition.jpg"><img class="aligncenter size-full wp-image-234" title="Field Definition" src="http://ricardoserradas.files.wordpress.com/2010/08/field-definition.jpg?w=700" alt=""   /></a></p>
<p>Entendendo esse formulário:</p>
<p>Aba “<em>Field Definition</em>”</p>
<p><em>Name</em> – Simplesmente o nome do campo, não interfere no funcionamento.</p>
<p><em>Type</em> – Como o nome já diz, o tipo de dado que o campo vai suportar.</p>
<p><em>Reference Name</em> – É através desse nome que ele será usado tanto no formulário quanto nos relatórios. Tem como padrão ter um nome semelhante ao namespace+nome de uma classe. No nosso exemplo usamos “<em>BlogSamplesCMMi.Tracking.Analisys</em>”.</p>
<p><em>Help Text</em> – Texto que serve para tooltips, descriptions, etc.</p>
<p><em>Reportable</em> – Se você pretende usar a informação desse campo em relatórios, é importante escolher um dos valores para esse campo. Os valores podem ser:</p>
<p>                <em><span style="text-decoration:underline;">None</span></em>: Não será inserido no banco de dados relacional (não poderá ser usado em relatórios);</p>
<p>                <em><span style="text-decoration:underline;">Dimension</span></em>: Use este tipo apenas para <em>Integer</em>, <em>Double</em>, <em>String</em> ou <em>DateTime</em>. Os dados nesse campo entram no banco de dados relacional e no cubo como um atributo de dimensão do Work Item para que os dados sejam usados para filtrar relatórios. Use-o para campos que têm uma lista de valores válidos. <em>Work Item Type</em> e <em>State</em> são bons exemplos de uso desta opção.</p>
<p>                <em><span style="text-decoration:underline;">Detail</span></em>: Use esse tipo somente para <em>Integer</em>, <em>Double</em>, <em>String</em> ou <em>DateTime</em>. Os dados nesse campo entram no banco de dados relacional nas tabelas “<em>Work Item History</em>” e “<em>Current Work Item</em>”, mas não no cubo. Esta é uma boa escolha para campos de texto sem restrição, no entanto, você terá que usar a base relacional em vez do cubo. “<em>Summary</em>”, um campo <em>String</em> que contém uma breve descrição de um work item, é um bom exemplo de campo que deve ser do tipo Detail quando usado em relatórios.</p>
<p>                <em><span style="text-decoration:underline;">Measure</span></em>: Use este tipo somente para campos <em>Integer</em> ou <em>Double</em>. São usados para propósitos estatísticos ou para medir certos aspectos do projeto. Cada campo desse tipo aparecer tanto no grupo de medidas “Current Work Item” quanto “Work Item History”. “<em>Estimated Work</em>” é um bom exemplo de campo do tipo <em>Measure</em>.</p>
<p>                Apesar do campo “<em>Formula</em>” existir nesse form com diversas opções, os campos desse tipo são sempre agregadas como Soma (<em>Sum</em>).</p>
<p>Vamos repetir o uso desse formulário para nossos 3 campos, que nomearei assim:</p>
<ul>
<li>BlogSampleCMMi.Tracking.Analysis</li>
<li>BlogSampleCMMi.Tracking.Development</li>
<li>BlogSampleCMMi.Tracking.Tests</li>
</ul>
<p>Aba “<em>Rules</em>”</p>
<p>Nessa aba são definidas algumas propriedades do seu campo, como valor padrão, valores permitidos, validações. O que vamos configurar em todos esses campos são as seguintes regras:</p>
<p>REQUIRED – O campo não poderá ficar em branco;</p>
<p>ALLOWEDVALUES – Deixaremos esses campos serem preenchidos somente com os valores “0%”, “50%” e “100%”.</p>
<p>DEFAULT – Em um novo Work Item, é o valor inicial do campo. Vamos configurá-lo da seguinte forma:</p>
<p>                <em>From</em>: value</p>
<p>                <em>Value</em>: 0%</p>
<p>- Etapa 2: Inserí-los no formulário do work item, através da aba “<em>Layout</em>”.</p>
<p>Essa etapa, apesar de ter uma interface amigável, não é tão intuitiva quanto arrastar controles para um Windows Form, mas claro, é muito melhor do que fazer isso direto no XML. J</p>
<p>Para usarmos nosso campo, primeiro precisamos escolher onde vamos colocá-lo no nosso formulário. Eu escolhi criar uma nova aba, chamando-a de “Etapas” e lá eu coloco somente os meus campos, para não poluir outras áreas do formulário. Veja a tela de layout do Work Item Type:</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/08/work-item-type-layout.jpg"><img class="aligncenter size-full wp-image-235" title="Work Item Type - Layout" src="http://ricardoserradas.files.wordpress.com/2010/08/work-item-type-layout.jpg?w=700&#038;h=459" alt="" width="700" height="459" /></a></p>
<p>Na árvore à esquerda, os elementos do formulário são organizados numa estrutura de árvore e, à direita, as propriedades do elemento selecionado.</p>
<p>Nessa árvore, existem alguns tipos de elemento. Vamos entendê-los já praticando.</p>
<p>Dentro do <em>TabGroup</em>, criaremos um novo elemento do tipo “TabPage”. Para isso, botão direito em cima do item <em>TabGroup -&gt; New Tab Page</em>. Um novo item na árvore aparecerá. Do lado direito, uma das propriedades chama-se “<em>Name</em>”. Altere-a para “Etapas”.</p>
<p>Para que os controles não fiquem espalhados dentro da aba, criamos um elemento do tipo “<em>Group</em>” para inserir os controles dentro. Insira então um “<em>Group</em>” ao <em>TabPage</em> usando o menu de contexto já usado acima. Quando um <em>Group</em> é criado, um item do tipo <em>Column </em>é criado dentro dele automaticamente.</p>
<p>Agora já podemos inserir nossos controles dentro da aba. Para isso, use o “<em>New Control</em>” dentro do menu de contexto em cima do item “<em>Column</em>”. Um novo item aparecerá como filho da <em>Column</em>. Ao lado direito, algumas propriedades chave do controle precisam ser modificadas. Vamos à elas:</p>
<p><em><span style="text-decoration:underline;">FieldName</span></em>: É aqui que você deve encontrar a <em>Reference Name</em> do campo que quer inserir. Neste primeiro caso, procuramos por “BlogSampleCMMi.Tracking.Analysis”.</p>
<p><em><span style="text-decoration:underline;">Label</span></em>: O label para o campo no formulário. Vamos usar “Análise e documentação (peso: 40%):”</p>
<p>Fazemos isso para os nossos 3 campos. Você pode visualizar préviamente como está ficando seu formulário, através do botão “<em>Preview Form</em>”, mas já adianto que não funciona muito bem. Por algum motivo, o que ele mostra não é exatamente como vai ficar seu formulário. L</p>
<p>Depois de pronto, salvamos o arquivo. Precisamos agora importá-lo devolta para o TFS. Para isso, vá ao menu <em>Tools -&gt; Process Editor &#8211; &gt; Work Item Types -&gt; Import WIT</em>. Em “<em>File”</em>, localize o arquivo que você editou e em “<em>Project to Import to</em>” selecione o <em>Team Project</em> para o qual a customização se aplicará. Clique então em OK. Aguarde até que a importação seja concluída.</p>
<p>É importante agora dar um refresh no seu <em>Team Explorer</em> para que os templates sejam recarregados. Após isso, abra o formulário de criação de nova task e já verá a nova aba e os campos dentro dela, assim:</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/08/new-task.jpg"><img class="aligncenter size-full wp-image-236" title="New Task" src="http://ricardoserradas.files.wordpress.com/2010/08/new-task.jpg?w=700&#038;h=426" alt="" width="700" height="426" /></a></p>
<p>Primeira etapa completa! Logo mais, o segundo post falando sobre a criação de controle customizado.</p>
<p>[]’s</p>
<p>Ricardo Serradas</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardoserradas.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardoserradas.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardoserradas.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardoserradas.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardoserradas.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardoserradas.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardoserradas.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardoserradas.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardoserradas.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardoserradas.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardoserradas.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardoserradas.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardoserradas.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardoserradas.wordpress.com/230/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=230&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.ricardoserradas.net/2010/08/19/quest-customizar-work-items-integracao-com-ms-project-e-relatorios-%e2%80%93-parte-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06b58a0e94f42dbfd9f30ef9046f1807?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Serradas</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/08/select-work-item-type.jpg" medium="image">
			<media:title type="html">Select Work Item Type</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/08/work-item-type.jpg" medium="image">
			<media:title type="html">Work Item Type</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/08/field-definition.jpg" medium="image">
			<media:title type="html">Field Definition</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/08/work-item-type-layout.jpg" medium="image">
			<media:title type="html">Work Item Type - Layout</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/08/new-task.jpg" medium="image">
			<media:title type="html">New Task</media:title>
		</media:content>
	</item>
		<item>
		<title>Uma humilde resposta ao posicionamento do PMI sobre Agile</title>
		<link>http://blog.ricardoserradas.net/2010/08/18/uma-humilde-resposta-ao-posicionamento-do-pmi-sobre-agile/</link>
		<comments>http://blog.ricardoserradas.net/2010/08/18/uma-humilde-resposta-ao-posicionamento-do-pmi-sobre-agile/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 19:54:55 +0000</pubDate>
		<dc:creator>Ricardo Serradas</dc:creator>
				<category><![CDATA[Agilidade]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[PMI]]></category>

		<guid isPermaLink="false">http://blog.ricardoserradas.net/?p=220</guid>
		<description><![CDATA[Uma humilde resposta ao posicionamento do PMI sobre Agile, com os textos traduzidos e comentados.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=220&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal,</p>
<p>Esse post é fruto de um susto muito grande que tomei depois de abrir o link que o <a href="http://blog.anascimento.net/" target="_blank">André Nascimento</a> postou em seu <a href="http://twitter.com/alnascimento" target="_blank">twitter</a>, uma subpágina do site do PMI onde ficou exposto o posicionamento do Instituto à respeito dos métodos Ágeis. A página em questão pode ser acessada <a href="http://www.pmi.org/Resources/Pages/Agile.aspx">neste endereço</a>.</p>
<p>Acho que a falta de argumentos e conhecimento em relação à cultura ágil os levou a escrever essa série de textos sem fundamento. Fiz a tradução de cada um deles para que pudéssemos discutí-los melhor:</p>
<p><strong><em>Agile é uma cura milagrosa?</em></strong></p>
<p><em>Apesar da badalação, Agile não é uma cura para tudo. Contudo, não que ela seja uma metodologia que não seja adequada para tocar um projeto, mas é a cultura corporativa que pode não ser propícia para os riscos e problemas que podem surgir com Agile.</em></p>
<p><span style="text-decoration:underline;">Observação</span>: Concordo quando dizem que Agile não é a cura para tudo, o próprio movimento Ágil é ciente disso. Porém, até aqui fiquei esperando quais riscos e problemas que o Agile poderia (veja, sendo Agile o causador) trazer para dentro de uma corporação&#8230;</p>
<p><strong><em>Tudo junto agora</em></strong></p>
<p><em>Gerenciamento de projetos Agile funciona melhor quando os times estão localizados no mesmo escritório.</em></p>
<p><em>Não importa que metodologia você usa, é sempre muito melhor ter as equipes num mesmo espaço físico em ocasiões como reuniões de kickoff e reviews periódicos.</em></p>
<p><span style="text-decoration:underline;">Observação</span>: Qualquer metodologia, framework ou modo de trabalho, que seja, funciona melhor se os membros do time estão num mesmo espaço físico. Mas denovo, fiquei esperando argumentos provando que Agile não funciona com membros do time dispostos em escritórios diferentes.</p>
<p><strong><em>Uma questão de confiança</em></strong></p>
<p><em>Para a Agilidade funcionar, os gerentes de projeto precisam sentir-se confortáveis em delegar muita responsabilidade para os membros do time, os quais também devem confiar uns nos outros.</em></p>
<p><em>Então você poderá esperar um pouco para aplicar metodologias ágeis, até que a confiança tenha sido estabelecida em toda a equipe.</em></p>
<p><span style="text-decoration:underline;">Observação</span>: penso algumas coisas à respeito dessa colocação:</p>
<p>                &#8211; Não há um Gerente de Projeto delegando confiança, atividades, ou qualquer que seja a coisa dentro de um time ágil. O que há, de uma forma geral, é um “dono do projeto”, o qual expõe suas necessidades para o time, para que os membros deste definam a melhor forma de atendê-las.</p>
<p>                &#8211; Supondo que o GP exista e que estivéssemos num cenário que trabalha sob o modelo comando-controle: delegar uma tarefa à alguém não é, de fato, delegar responsabilidade? Quanto tempo o GP vai esperar para delegar uma tarefa à alguém que ele acabou de contratar? Existe um período para “aquisição de confiança” para um membro recém-contratado, onde ele fica no escritório só de papo com o GP até que a confiança &#8220;nasça&#8221;? Se executar determinada tarefa não exige responsabilidade, que valor ela tem para o negócio/produto?</p>
<p><strong><em>Está disposto a adaptar-se?</em></strong></p>
<p><em>Metodologias ágeis sozinhas não vão levar uma organização ao sucesso, mas vão identificar diversas questões e problemas que precisam ser abordadas para que os projetos sejam melhores entregues.</em></p>
<p><span style="text-decoration:underline;">Observação</span>: Sim, de fato. E que mal há nisso? Na verdade, pergunto-me: isso não é MUITO bom? Acho que toda e qualquer organização deve estar disposta e ser capaz de adaptar-se, pois o mercado é mutante e, se não houver adaptação, a corporação vai ficar para trás, assim como se um time não se adaptar às necessidades do produto, ele não terá sucesso.</p>
<p>Quem fez CSM, viu o exemplo da Sogra? Nesse exemplo, o trainer diz que o Scrum é a sogra que entra na casa do casal, que é chata e vai apontando todos os problemas, os móveis empoeirados, as louças empilhadas, etc. Mas quem tem que arrumar isso? O casal (time)!</p>
<p><strong><em>Disponibilidade para experiências</em></strong></p>
<p><em>Sua organização valoriza experimentações? Agile conta com um baixo custo de experimentação, permitindo uma exploração iterativa e adaptável. Simulações, prototipações e testes ajudam a recolher informações valiosas sobre o projeto.</em></p>
<p><span style="text-decoration:underline;">Observação</span>: acho que esse ponto está paralelo com o abordado anteriormente. Para adaptar-se, é necessário experimentar, inspecionar novos resultados. Se não houver experimentos, como vamos saber se há algo que pode nos ajudar mais do que o que já temos hoje? Parafraseando o exemplo da sogra: como vamos saber se comprar uma máquina de lavar louças vai ser mais produtivo do que ficar lavando louça a louça se não a experimentarmos?</p>
<p><strong><em>Equipe de “Jogadores”</em></strong></p>
<p><em>Se os membros do seu time focam principalmente em objetivos individuais, as tecnicas ágeis baseadas em grupo provavelmente não serão uma boa opção.</em></p>
<p><span style="text-decoration:underline;">Observação</span>: Esse é um dos pontos os quais mais me decepcionaram. Esqueça metodologia, se você tem um time cheio de membros individualistas, você não tem um time! E digo mais: seu projeto será um fracasso. Um time se caracteriza por todos os seus membros terem um objetivo comum e estarem comprometidos com isso.</p>
<p><strong><em>Uma mente aberta</em></strong></p>
<p><em>As técnicas Ágeis não são convencionais e costumam ser difíceis de aprender.</em></p>
<p><em>Organizações ou times sem desejo em investir no aprendizado das técnicas necessárias provavelmente vão achar que o Agile é inadequado.</em></p>
<p><span style="text-decoration:underline;">Observação</span>: Definitivamente, não entendi esse ponto. Gostaria que exemplificassem uma técnica ágil de difícil aprendizado. Um dos princípios de Agilidade é simplicidade! E digo mais: acho um ponto muito negativo em companias que não têm interesse em investir na evolução dos seus colaboradores.</p>
<p><strong><em>Invasão de privacidade</em></strong></p>
<p><em>Técnicas ágeis são baseadas nos princípios de confiança e sinceridade, logo os membros do time devem aderir à transparência e estarem dispostos à abrir mão da sua privacidade.</em></p>
<p><span style="text-decoration:underline;">Observação</span>: Essa, definitivamente, não entendi. Se você, que está lendo esse artigo, é membro de um time ágil e perdeu sua privacidade por conta disso, comente esse post e conte-nos sua experiência. Por exemplo: se você se sente incomodado porque enquanto você está pareando com um colega de time você não pode parar para navegar no orkut, facebook ou twitter, sinto muito, mas lhe falta senso profissional.</p>
<p><strong><em>“By the book”</em></strong></p>
<p><em>Defensores do Agile alegam que uma dependência excessiva de metodologias pode sufocar a dinâmica e a evolução do projeto.</em></p>
<p><em>Se sua organização exige a adesão estrita à alguma metodologia de gestão de projeto fortemente estabelecida, então Agile não trará muitos benefícios.</em></p>
<p><span style="text-decoration:underline;">Observação</span>: Devo concordar com essa colocação e ao mesmo tempo concluír com ela que o projeto terá sua evolução e dinâmica sufocados. Contudo, técnicas de design iterativo e incremental não fariam mal algum à esse tipo de gestão, certo? J</p>
<p><strong><em>Quais são suas prioridades?</em></strong></p>
<p><em>As curtas iterações que o Agile proporciona ajudam a trazer resultados mais rapidamente – especialmente em termos de “Time to Market” e ROI. No entanto, isso requer refinamento constante do escopo do projeto.</em></p>
<p><em>Se os requerimentos do sistema fazem parte do contrato, então técnicas ágeis podem não ajudar muito.</em></p>
<p><span style="text-decoration:underline;">Observação</span>: Bom, algo tem grandes chances de variar. Se o “escopo” é fechado, é muito provável que custo ou tempo de projeto não serão fixos. Logo, não há problema nenhum em aderir à práticas ágeis quando seus requerimentos já estão estabelecidos, basta ter em mente essa variação de algum desses outros índices.</p>
<p><strong><em>Vale o risco?</em></strong></p>
<p><em>Agile oferece técnicas de gerenciamento de risco. Mas se a sua empresa ou cliente pedem um ambiente de projeto consistente e estável, então os métodos ágeis não devem ser seguidos.</em></p>
<p><span style="text-decoration:underline;">Observação</span>: Gostaria de entender porque, ao se aderir práticas Ágeis, o ambiente de desenvolvimento deixa de ser consistente e estável.</p>
<p>Concluindo tudo isso, eu vejo que minhas observações são questionamentos, pedidos de justificativas para cada uma dessas afirmações absurdas. Acho que se procurassem um pouco mais por fundamentos para cada um desses trechos, não teriam publicado tal página.</p>
<p>Bom, essa é minha humilde e rápida opinião. Sintam-se à vontade para comentar, criticar e questionar!</p>
<p>[]’s</p>
<p>Ricardo Serradas</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardoserradas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardoserradas.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardoserradas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardoserradas.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardoserradas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardoserradas.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardoserradas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardoserradas.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardoserradas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardoserradas.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardoserradas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardoserradas.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardoserradas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardoserradas.wordpress.com/220/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=220&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.ricardoserradas.net/2010/08/18/uma-humilde-resposta-ao-posicionamento-do-pmi-sobre-agile/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06b58a0e94f42dbfd9f30ef9046f1807?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Serradas</media:title>
		</media:content>
	</item>
		<item>
		<title>Agile Brazil 2010&#8211;Palestras</title>
		<link>http://blog.ricardoserradas.net/2010/06/29/agile-brazil-2010palestras/</link>
		<comments>http://blog.ricardoserradas.net/2010/06/29/agile-brazil-2010palestras/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 19:23:17 +0000</pubDate>
		<dc:creator>Ricardo Serradas</dc:creator>
				<category><![CDATA[Agilidade]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">https://ricardoserradas.wordpress.com/2010/06/29/agile-brazil-2010palestras/</guid>
		<description><![CDATA[Olá a todos! O foco neste post é falar sobre a segunda parte do Agile Brazil 2010, onde os palestrantes apresentaram seus trabalhos e onde pude conhecer muita gente boa da comunidade ágil do Brasil. O keynote de abertura foi de ninguém menos que Martin Fowler, um dos idealizadores do manifesto ágil. Sinceramente, ele não [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=194&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá a todos!</p>
<p>O foco neste post é falar sobre a segunda parte do Agile Brazil 2010, onde os palestrantes apresentaram seus trabalhos e onde pude conhecer muita gente boa da comunidade ágil do Brasil.</p>
<p>O keynote de abertura foi de ninguém menos que Martin Fowler, um dos idealizadores do manifesto ágil. Sinceramente, ele não trouxe nenhuma novidade à nossa comunidade mas claro, falou com muita propriedade de assuntos de seu domínio, focando principalmente em práticas de engenharia de software voltadas ao desenvolvimento ágil. Muito bacana!</p>
<p>A grade de palestras ficou um pouco corrida, com muito paralelismo. Muitas vezes palestras que tinham tudo para ser de ótima qualidade rolavam ao mesmo tempo. Isso me desapontou um pouco. Mas o que vi foi muito bom! Dou um destaque especial para a palestra do <a href="http://alexandregomes.multiply.com/">Alexandre Gomes</a> (@alegomes) e do <a href="http://blog.seatecnologia.com.br/">Renato Willi</a> (@rwilli), onde falaram sobre Desenvolvimento Ágil no Governo, onde demonstraram domínio do assunto e souberam reter a atenção do público com maestria.</p>
<p>E claro, com uma diversidade grande de palestras como essa, algumas deixaram sim à desejar, ou pelo conteúdo que era pouco atrativo, ou pela capacidade do palestrante de chamar a atenção do público. </p>
<p>Durante o evento, tive a oportunidade de conhecer pessoalmente uma galera de presença na comunidade ágil e de desenvolvimento de software, como:</p>
<p>André Nascimento – @alnascimento    <br />Daniel Oliveira – @dfaoliveira     <br />Igor Abade – @igorabade     <br />Rafael Noronha – @rafanoronha     <br />Rodrigo Vidal – @rodrigovidal</p>
<p>Entre outros. É super interessante a experiência de trocar idéias com esses caras através de grupos (como o DotNetArchitects), redes sociais (como Twitter) e depois conhecê-los pessoalmente e poder trocar idéias já como amigos de longa data! Foi um prazer conhecer vocês, pessoal!</p>
<p>Infelizmente, devido ao horário do meu vôo na sexta, não pude participar do keynote de encerramento que, acompanhando a hashtag do evento (#AgileBrazil), deve ter fechado com chave de ouro!</p>
<p>Abaixo, algumas fotos que tirei durante o evento:</p>
<p align="center">&#160;</p>
<table border="0" cellspacing="0" cellpadding="2" width="600">
<tbody>
<tr>
<td valign="top" width="300">
<p align="center"><a href="http://ricardoserradas.files.wordpress.com/2010/06/dsc00472.jpg"><font size="1"><img style="display:inline;border-width:0;margin:0 5px;" class="wlDisabledImage" title="DSC00472" border="0" alt="DSC00472" src="http://ricardoserradas.files.wordpress.com/2010/06/dsc00472_thumb.jpg?w=244&#038;h=139" width="244" height="139" /></font></a></p>
<p align="center"><font size="1">Michel Goldenberg ministrando o curso de CSM</font></p>
</td>
<td valign="top" width="300">
<p align="center"><a href="http://ricardoserradas.files.wordpress.com/2010/06/dsc00479.jpg"><font size="1"><img style="display:inline;border-width:0;margin:0 5px;" class="wlDisabledImage" title="DSC00479" border="0" alt="DSC00479" src="http://ricardoserradas.files.wordpress.com/2010/06/dsc00479_thumb.jpg?w=244&#038;h=139" width="244" height="139" /></font></a></p>
<p align="center"><font size="1">Rodrigo Yoshima falando sobre Engenharia de software no curso de CSM</font></p>
</td>
</tr>
<tr>
<td valign="top" width="300">
<p align="center"><a href="http://ricardoserradas.files.wordpress.com/2010/06/dsc00487.jpg"><font size="1"><img style="display:inline;border-width:0;margin:0 5px;" class="wlDisabledImage" title="DSC00487" border="0" alt="DSC00487" src="http://ricardoserradas.files.wordpress.com/2010/06/dsc00487_thumb.jpg?w=244&#038;h=139" width="244" height="139" /></font></a></p>
<p align="center"><font size="1">Turma de CSM no Agile Brazil 2010</font></p>
</td>
<td valign="top" width="300">
<p align="center"><a href="http://ricardoserradas.files.wordpress.com/2010/06/dsc00538.jpg"><font size="1"><img style="display:inline;border-width:0;margin:0 5px;" class="wlDisabledImage" title="DSC00538" border="0" alt="DSC00538" src="http://ricardoserradas.files.wordpress.com/2010/06/dsc00538_thumb.jpg?w=244&#038;h=139" width="244" height="139" /></font></a></p>
<p align="center"><font size="1">O evento estava começando. Hall principal. Olha nós no telão!</font></p>
</td>
</tr>
<tr>
<td valign="top" width="300">
<p align="center"><a href="http://ricardoserradas.files.wordpress.com/2010/06/dsc00541.jpg"><font size="1"><img style="display:inline;border-width:0;margin:0 5px;" class="wlDisabledImage" title="DSC00541" border="0" alt="DSC00541" src="http://ricardoserradas.files.wordpress.com/2010/06/dsc00541_thumb.jpg?w=248&#038;h=143" width="248" height="143" /></font></a></p>
<p align="center"><font size="1">Galera da Stefanini em peso no evento!</font></p>
</td>
<td valign="top" width="300">
<p align="center"><a href="http://ricardoserradas.files.wordpress.com/2010/06/dsc00567.jpg"><font size="1"><img style="display:inline;border-width:0;margin:0 5px;" class="wlDisabledImage" title="DSC00567" border="0" alt="DSC00567" src="http://ricardoserradas.files.wordpress.com/2010/06/dsc00567_thumb.jpg?w=244&#038;h=139" width="244" height="139" /></font></a></p>
<p align="center"><font size="1">Martin Fowler no seu keynote</font></p>
</td>
</tr>
<tr>
<td valign="top" width="300">
<p align="center"><a href="http://ricardoserradas.files.wordpress.com/2010/06/dsc00581.jpg"><font size="1"><img style="display:inline;border-width:0;margin:0 5px;" class="wlDisabledImage" title="DSC00581" border="0" alt="DSC00581" src="http://ricardoserradas.files.wordpress.com/2010/06/dsc00581_thumb.jpg?w=244&#038;h=139" width="244" height="139" /></font></a></p>
<p align="center"><font size="1">Alexandre Gomes e Renato Willi ministrando sua palestra</font></p>
</td>
<td valign="top" width="300">
<p align="center"><a href="http://ricardoserradas.files.wordpress.com/2010/06/dsc00594.jpg"><font size="1"><img style="display:inline;border-width:0;margin:0 5px;" class="wlDisabledImage" title="DSC00594" border="0" alt="DSC00594" src="http://ricardoserradas.files.wordpress.com/2010/06/dsc00594_thumb.jpg?w=244&#038;h=139" width="244" height="139" /></font></a></p>
<p align="center"><font size="1">Galera de peso no stand da Microsoft pareando para completar um desafio em .Net</font></p>
</td>
</tr>
<tr>
<td valign="top" width="300">
<p align="center"><a href="http://ricardoserradas.files.wordpress.com/2010/06/dsc00604.jpg"><font size="1"><img style="display:inline;border-width:0;margin:0 5px;" class="wlDisabledImage" title="DSC00604" border="0" alt="DSC00604" src="http://ricardoserradas.files.wordpress.com/2010/06/dsc00604_thumb.jpg?w=244&#038;h=139" width="244" height="139" /></font></a></p>
<p align="center"><font size="1">Igor Abade em sua palestra sobre Desenvolvimento Ágil com Visual Studio</font></p>
</td>
<td valign="top" width="300">
<p align="center"><a href="http://ricardoserradas.files.wordpress.com/2010/06/dsc00634.jpg"><font size="1"><img style="display:inline;border-width:0;margin:0 5px;" class="wlDisabledImage" title="DSC00634" border="0" alt="DSC00634" src="http://ricardoserradas.files.wordpress.com/2010/06/dsc00634_thumb.jpg?w=244&#038;h=139" width="244" height="139" /></font></a></p>
<p align="center"><font size="1">Daniel Wildt e Aleckssandro Tavares: PMBOK num time ágil, como fica?</font></p>
</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p>Enfim, o Agile Brazil 2010 foi nota 10! Em 2011 estarei presente novamente!</p>
<p>[]’s</p>
<p>Ricardo Serradas</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardoserradas.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardoserradas.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardoserradas.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardoserradas.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardoserradas.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardoserradas.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardoserradas.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardoserradas.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardoserradas.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardoserradas.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardoserradas.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardoserradas.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardoserradas.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardoserradas.wordpress.com/194/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=194&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.ricardoserradas.net/2010/06/29/agile-brazil-2010palestras/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06b58a0e94f42dbfd9f30ef9046f1807?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Serradas</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/dsc00472_thumb.jpg" medium="image">
			<media:title type="html">DSC00472</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/dsc00479_thumb.jpg" medium="image">
			<media:title type="html">DSC00479</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/dsc00487_thumb.jpg" medium="image">
			<media:title type="html">DSC00487</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/dsc00538_thumb.jpg" medium="image">
			<media:title type="html">DSC00538</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/dsc00541_thumb.jpg" medium="image">
			<media:title type="html">DSC00541</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/dsc00567_thumb.jpg" medium="image">
			<media:title type="html">DSC00567</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/dsc00581_thumb.jpg" medium="image">
			<media:title type="html">DSC00581</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/dsc00594_thumb.jpg" medium="image">
			<media:title type="html">DSC00594</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/dsc00604_thumb.jpg" medium="image">
			<media:title type="html">DSC00604</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/dsc00634_thumb.jpg" medium="image">
			<media:title type="html">DSC00634</media:title>
		</media:content>
	</item>
		<item>
		<title>CSM no Agile Brazil 2010</title>
		<link>http://blog.ricardoserradas.net/2010/06/24/csm-no-agile-brazil-2010/</link>
		<comments>http://blog.ricardoserradas.net/2010/06/24/csm-no-agile-brazil-2010/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 03:03:45 +0000</pubDate>
		<dc:creator>Ricardo Serradas</dc:creator>
				<category><![CDATA[Agilidade]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">https://ricardoserradas.wordpress.com/?p=171</guid>
		<description><![CDATA[Olá a todos! Post épico este! Tanto por ser o primeiro fora de São Paulo quanto por ser o primeiro que faço através de um dispositivo móvel. Estou em Porto Alegre, Rio Grande do Sul para participar do Agile Brazil 2010. Aqui tenho tido contato com feras do mundo do Desenvolvimento de Software e de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=171&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá a todos!</p>
<p>Post épico este! Tanto por ser o primeiro fora de São Paulo quanto por ser o primeiro que faço através de um dispositivo móvel.</p>
<p>Estou em Porto Alegre, Rio Grande do Sul para participar do Agile Brazil 2010. Aqui tenho tido contato com feras do mundo do Desenvolvimento de Software e de Agilidade. O evento é dividido em dois dias de cursos (terça e quarta) e dois dias de palestras (quinta e sexta) e conta com grandes nomes como Giovanni Bassi, Alexandre Magno, Michel Goldenberg, Rodrigo Yoshima, o próprio Martin Fowler, entre outros.</p>
<p>Os dois primeiros dias foram muito legais. Cheguei aqui na segunda e, ao sair pra jantar com alguns amigos, descobrimos no dia seguinte que na mesa ao nosso lado jantava Martin Fowler. Olha a oprtunidade de conseguir um autógrafo desperdiçada.</p>
<p>No dia seguinte começaram os cursos de CSM, CSPO E XP. eu participei do CSM, que acabou hoje. O curso foi bem legal e foi diferente dos cursos de CSM que já aconteceram pois, além da aula tradicional sobre o Scrum Master ministrada pelo Michel Goldenberg, algumas boas práticas de Engenharia de Software com foco no mundo ágil foram mostradas pelo Rodrigo Yoshima.</p>
<p>Ao final do dia, no jantar, fomos comer num lugar muito interessante: o &#8220;D&#8217;Gato&#8221; Churrasquinhos. É mole?</p>
<p>Abaixo, algumas fotos:</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/06/l_2048_1536_cde29d81-f58e-4f74-b548-cadf68beaed3.jpeg"><img src="http://ricardoserradas.files.wordpress.com/2010/06/l_2048_1536_cde29d81-f58e-4f74-b548-cadf68beaed3.jpeg?w=700" alt="" class="alignnone size-full" /></a></p>
<p>Victor Cavalcante, Giovanni Bassi e Alexandre Magno À esquerda e Rodrigo yoshima à direita, no coffee-break</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/06/l_2048_1536_5bc305ff-0aa0-440f-8b91-5d7efb1ccce2.jpeg"><img src="http://ricardoserradas.files.wordpress.com/2010/06/l_2048_1536_5bc305ff-0aa0-440f-8b91-5d7efb1ccce2.jpeg?w=700" alt="" class="alignnone size-full" /></a></p>
<p>Michel Goldenberg ministrando o curso de CSM</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/06/l_2048_1536_25a6a536-cbb9-417d-ad75-b8a2c06497f7.jpeg"><img src="http://ricardoserradas.files.wordpress.com/2010/06/l_2048_1536_25a6a536-cbb9-417d-ad75-b8a2c06497f7.jpeg?w=700" alt="" class="alignnone size-full" /></a><br />Michel novamente no curso</p>
<p>Bom, como estou sem computador, estou impossibilitado de fazer um post mais detalhado e de postar fotos da minha câmera também. Então, assim que estiver de posse do meu computador denovo, faço um post mais completo.</p>
<p>[]&#8216;s<br />
Ricardo Serradas </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardoserradas.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardoserradas.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardoserradas.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardoserradas.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardoserradas.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardoserradas.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardoserradas.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardoserradas.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardoserradas.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardoserradas.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardoserradas.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardoserradas.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardoserradas.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardoserradas.wordpress.com/171/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=171&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.ricardoserradas.net/2010/06/24/csm-no-agile-brazil-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>-30.032446 -51.223478</georss:point>
		<geo:lat>-30.032446</geo:lat>
		<geo:long>-51.223478</geo:long>
		<media:content url="http://0.gravatar.com/avatar/06b58a0e94f42dbfd9f30ef9046f1807?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Serradas</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/l_2048_1536_cde29d81-f58e-4f74-b548-cadf68beaed3.jpeg" medium="image" />

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/l_2048_1536_5bc305ff-0aa0-440f-8b91-5d7efb1ccce2.jpeg" medium="image" />

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/l_2048_1536_25a6a536-cbb9-417d-ad75-b8a2c06497f7.jpeg" medium="image" />
	</item>
		<item>
		<title>Customizando E-Mails de Project Alerts</title>
		<link>http://blog.ricardoserradas.net/2010/06/08/customizando-e-mails-de-project-alerts/</link>
		<comments>http://blog.ricardoserradas.net/2010/06/08/customizando-e-mails-de-project-alerts/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 22:58:15 +0000</pubDate>
		<dc:creator>Ricardo Serradas</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Alert]]></category>
		<category><![CDATA[Project Alert]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://blog.ricardoserradas.net/?p=155</guid>
		<description><![CDATA[Como customizar a aparência dos emails enviados através dos Project Alerts<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=155&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">
<p>O envio de alertas por e-mail quando um evento acontece no projeto do time pode ser muito importante quando falamos de integração.</p>
<p>Com os <strong>Project Alerts</strong> é possível, por exemplo, enviar e-mails para o responsável pela tarefa quando ela for atribuída a ele ou quando sofre modificações; pode-se enviar uma cópia para o responsável pelo projeto quando a tarefa é finalizada, entre outros fins. Porém, o template de e-mail nativo do TFS pode não ser satisfatório para o time.</p>
<p>Vamos falar um pouco mais sobre os <em>Project Alerts</em> abaixo.</p>
<p><strong>Como funciona?</strong></p>
<p>No servidor de aplicação, há um agente (<em>TFSJobAgent</em>) que fica aguardando algum evento para disparar os alertas. Os eventos podem ser:</p>
<p>- Modificação em um work item;</p>
<p>- Um check-in é realizado;</p>
<p>- A qualidade de um build é modificado;</p>
<p>- Um build termina;</p>
<p>Entre outros que podem ser criados. Os templates de email (tanto texto plano quanto HTML) ficam armazenados na seguinte pasta, no servidor de aplicação do TFS:</p>
<p>[Drive]:\ Program Files\Microsoft Team Foundation Server 2010\Application Tier\TFSJobAgent\Transforms</p>
<p>Dentro dessa pasta, você encontrará dois arquivos para cada tipo de evento. O arquivo de extensão “plaintextxsl” define o template de e-mail em texto plano, enquanto o de extensão “xsl” define o formato do email HTML, além do arquivo TeamFoundation.xsl, que é como um template, uma casca (como uma Master Page) para os demais arquivos. A partir daí, cada arquivo de cada evento importa este arquivo e define as outras informações a serem exibidas.</p>
<p>Quando o agente identifica o evento, ele recebe uma coleção de informações contendo os campos do work item e/ou do evento para gerar uma saída com base nos arquivos mencionados acima. São elas:</p>
<p>- <em>CoreFields</em>: contém os campos e seus conteúdos, cujo namespace é System.*.</p>
<p>- <em>ChangedFields</em>: contém os campos que foram modificados neste evento.</p>
<p><span style="text-decoration:underline;">Um fator muito importante é</span>: campos que estão fora do namespace <em>System.*</em> (ou campos <em>non-core</em>) não são enviados nesta coleção por questões de desempenho. Portanto, se quiser, por exemplo, mostrar o campo “<em>Start Date</em>” (<em>Microsoft.VSTS.Scheduling.StartDate</em>) e ele não tiver sido modificado, não será possível recuperar essa informação no alerta.</p>
<p><strong>Como customizar?</strong></p>
<p>No nosso exemplo, vamos customizar o alerta de Work Item modificado no formato HTML. A modificação que faremos é simples: a linha que contém o “Assigned to:” deve ficar em negrito e removeremos a linha que contém o “Changed date:”. O que temos hoje é:</p>
</div>
<div class="mceTemp mceIEcenter" style="text-align:center;"><a href="http://ricardoserradas.files.wordpress.com/2010/06/emailbefore1.png"><img class="alignnone size-full wp-image-158" src="http://ricardoserradas.files.wordpress.com/2010/06/emailbefore1.png?w=700" alt=""   /></a></div>
<p> </p>
<p>E para fazer essa modificação, vamos seguir os passos abaixo (faça back-up dos arquivos antes de começar a customização):</p>
<p>- Abrir o arquivo WorkItemChangedEvent.xsl em algum editor de XML ou no próprio Visual Studio;</p>
<p>- Dentro do arquivo, procure pelo trecho “<em>ReferenceName[.='System.AssignedTo</em>”. Verá que existe uma definição de uma linha de tabela (TR). Assim:</p>
<p style="text-align:center;"><a href="http://ricardoserradas.files.wordpress.com/2010/06/codebefore.png"><img class="size-full wp-image-161 aligncenter" src="http://ricardoserradas.files.wordpress.com/2010/06/codebefore.png?w=700" alt=""   /></a></p>
<p>Interpretando esse trecho de código: na primeira célula da linha (PropName), ele coloca o título do campo, que é “Assigned to:”. Na segunda (PropValue), é inserido o valor.</p>
<p>Dentro dessa segunda TD você pode enxergar uma estrutura de repetição (<em>foreach</em>) e uma de validação (<em>IF</em>) onde ele varre os campos da coleção <em>CoreFields</em> em busca de um campo do tipo “System.AssignedTo”; se encontrar, exibe seu valor, através da propriedade “<em>NewValue</em>”.</p>
<p>Vamos fazer uma simples modificação de HTML. Colocaremos a tag de bold (“&lt;b&gt;”) nas duas tds. Fica assim:</p>
<p style="text-align:center;"><a href="http://ricardoserradas.files.wordpress.com/2010/06/codeafter.png"><img class="size-full wp-image-160 aligncenter" src="http://ricardoserradas.files.wordpress.com/2010/06/codeafter.png?w=700" alt=""   /></a></p>
<p>Sobre o <em>Changed Date</em>, basta procurar pelo texto “<em>System.ChangedDate</em>” no código e remover a TR que á contém.</p>
<p>Depois dessas edições, salve o arquivo e faça alguma modificação em algum work item para disparar o evento. No meu caso, o resultado foi o segunte:</p>
<div class="mceTemp mceIEcenter" style="text-align:center;"><a href="http://ricardoserradas.files.wordpress.com/2010/06/emailafter1.png"><img class="alignnone size-full wp-image-159" src="http://ricardoserradas.files.wordpress.com/2010/06/emailafter1.png?w=700" alt=""   /></a></div>
<p> </p>
<p>Daí pra frente é só ir brincando com os campos e com o template dos alertas.</p>
<p>[]’s</p>
<p>Ricardo Serradas</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardoserradas.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardoserradas.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardoserradas.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardoserradas.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardoserradas.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardoserradas.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardoserradas.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardoserradas.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardoserradas.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardoserradas.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardoserradas.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardoserradas.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardoserradas.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardoserradas.wordpress.com/155/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=155&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.ricardoserradas.net/2010/06/08/customizando-e-mails-de-project-alerts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06b58a0e94f42dbfd9f30ef9046f1807?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Serradas</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/emailbefore1.png" medium="image" />

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/codebefore.png" medium="image" />

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/codeafter.png" medium="image" />

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/06/emailafter1.png" medium="image" />
	</item>
		<item>
		<title>Gated Check-in no TFS 2010</title>
		<link>http://blog.ricardoserradas.net/2010/03/24/gated-check-in-no-tfs-2010/</link>
		<comments>http://blog.ricardoserradas.net/2010/03/24/gated-check-in-no-tfs-2010/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 22:09:26 +0000</pubDate>
		<dc:creator>Ricardo Serradas</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Team Build]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://blog.ricardoserradas.net/?p=140</guid>
		<description><![CDATA[Olá, Muito falou-se sobre uma das features mais esperadas da versão 2010 do Visual Studio Team Foundation Server: o Gated Check-in. Neste post, vamos fazer um raio-x deste mais novo aliado na luta por uma integração contínua mais forte e código fonte de nossas aplicações de melhor qualidade. De uma forma geral, como ele funciona? [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=140&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">Olá,</p>
<p style="text-align:left;">Muito falou-se sobre uma das features mais esperadas da versão 2010 do <strong>Visual Studio Team Foundation Server</strong>: o <em><strong>Gated Check-in</strong></em>. Neste post, vamos fazer um raio-x deste mais novo aliado na luta por uma integração contínua mais forte e código fonte de nossas aplicações de melhor qualidade.</p>
<p>De uma forma geral, como ele funciona?</p>
<p>Quando um desenvolvedor efetua um check-in, ele recebe uma notificação dizendo que suas alterações devem ser compiladas antes de serem persistidas no controle de versão. O TFS então desvia essas alterações para um <em>shelveset</em>. No servidor de build é feito um <em>unshelve</em> dessas alterações e em seguida todo o código é compilado. Se o build tiver sucesso, um novo <em>changeset</em> é criado a partir do shelve e o check-in é feito em nome do desenvolvedor.</p>
<p>Como configurá-lo?</p>
<p>Para que o Gated Check-in seja usado no seu time, precisamos criar uma <em>Build Definition</em> com essa característica. Vamos ver como funciona:</p>
<p>Vamos assumir que já temos configurado nosso servidor de build e que ele está definido como <em>Build Agent</em> e <em>Controller</em> no TFS.</p>
<p>Não vamos entrar em detalhes sobre a configuração completa de um build definition por não ser o foco principal deste post. Sendo assim, durante a configuração de uma build definition, vemos várias abas. Uma das abas que nos interessa neste momento é a de nome “<em>Trigger</em>”. É nela onde definimos que essa build configura o Gated Check-in:</p>
<p><a href="http://ricardoserradas.files.wordpress.com/2010/03/0021.png"><img class="alignnone size-full wp-image-142" title="002" src="http://ricardoserradas.files.wordpress.com/2010/03/0021.png?w=700" alt=""   /></a></p>
<p>Um passo muito importante (e que chega até ser uma “pegadinha”) no processo de configuração está na próxima aba, que é a “<em>Workspace</em>”. É lá que definimos para qual estrutura de pastas esta build funcionará. Veja:</p>
<p style="text-align:center;"><a href="http://ricardoserradas.files.wordpress.com/2010/03/003.png"><img class="size-full wp-image-143 aligncenter" title="003" src="http://ricardoserradas.files.wordpress.com/2010/03/003.png?w=700&#038;h=144" alt="" width="700" height="144" /></a></p>
<p>Isto significa que esta política de gated check-in somada ao build automatizado só vai ser disparado se uma tentativa de check-in for realizada na estrutura de diretórios abaixo de <em>$/TFS10Demo/dotnet/GatedCheckinDemo</em>.</p>
<p>Se esta configuração não for feita da forma correta e, por exemplo, se deixarmos este campo com “<em>$/</em>”, esta política se aplicará para todos os projetos desta coleção. Sendo assim, um check-in em qualquer outro <em>Team Project</em> será barrado por este Gated Check-in e o código do projeto GatedCheckinDemo será compilado sem real necessidade.</p>
<p>Salvas essas e outras configurações, vamos testar se nosso Gated Check-in está funcionando. Para isso, vamos modificar algum fonte que está versionado debaixo da estrutura definida no workspace. Depois disso, vamos efetuar um check-in. Após isso, recebemos a seguinte mensagem:</p>
<p style="text-align:center;"><a href="http://ricardoserradas.files.wordpress.com/2010/03/006.png"><img class="size-full wp-image-144 aligncenter" title="006" src="http://ricardoserradas.files.wordpress.com/2010/03/006.png?w=700" alt=""   /></a></p>
<p>*Ao clicar em <em>Build Changes</em>, uma nova build é disparada e as pendências de check-in na máquina do desenvolvedor são desfeitas, ficando apenas no shelveset que será usado pelo servidor de build.</p>
<p>Se tudo der certo, se tudo foi bem codificado e o processo de check-in foi bem feito (<em>Get Latest Version</em> antes, tentativa de compilação e etc), será mostrada essa mensagem na tela do desenvolvedor que efetuou o check-in:</p>
<p style="text-align:center;"><a href="http://ricardoserradas.files.wordpress.com/2010/03/007.png"><img class="size-full wp-image-145 aligncenter" title="007" src="http://ricardoserradas.files.wordpress.com/2010/03/007.png?w=700" alt=""   /></a></p>
<p>Ela informa que o build teve sucesso e que as suas alterações foram persistidas no controle de versão. Se a opção para preservar os check-outs ficou marcada na hora de submeter o build, use o botão “<em>Reconcilie</em>&#8230;” para acertar seu workspace. Se não, basta apenas ignorar a mensagem e rodar um <em>Get Latest Version</em> para obter suas próprias alterações.</p>
<p>Já se o build falhar, uma janela semelhante será mostrada, sugerindo dar o unshelve das alterações que foram enviadas para que a correção possa ser feita.</p>
<p>* A opção “<em>Bypass validation build and check-in my changes automatically on your behalf</em>” é, por padrão, desabilitada para membros do grupo “<em>Contributors</em>”, que é o grupo onde costuma-se incluir desenvolvedores.</p>
<p>Você já conhecia este novo conceito? Gostou desta nova funcionalidade? Tem críticas? Comente!</p>
<p>[]’s</p>
<p>Ricardo Serradas</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardoserradas.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardoserradas.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardoserradas.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardoserradas.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardoserradas.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardoserradas.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardoserradas.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardoserradas.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardoserradas.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardoserradas.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardoserradas.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardoserradas.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardoserradas.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardoserradas.wordpress.com/140/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=140&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.ricardoserradas.net/2010/03/24/gated-check-in-no-tfs-2010/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06b58a0e94f42dbfd9f30ef9046f1807?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Serradas</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/03/0021.png" medium="image">
			<media:title type="html">002</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/03/003.png" medium="image">
			<media:title type="html">003</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/03/006.png" medium="image">
			<media:title type="html">006</media:title>
		</media:content>

		<media:content url="http://ricardoserradas.files.wordpress.com/2010/03/007.png" medium="image">
			<media:title type="html">007</media:title>
		</media:content>
	</item>
		<item>
		<title>Problemas com WebTest Recorder e Internet Explorer</title>
		<link>http://blog.ricardoserradas.net/2010/02/25/problemas-com-webtest-recorder-e-internet-explorer/</link>
		<comments>http://blog.ricardoserradas.net/2010/02/25/problemas-com-webtest-recorder-e-internet-explorer/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 01:32:07 +0000</pubDate>
		<dc:creator>Ricardo Serradas</dc:creator>
				<category><![CDATA[Problema e Solução]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Testes]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[VSTS]]></category>
		<category><![CDATA[Web Test]]></category>

		<guid isPermaLink="false">http://blog.ricardoserradas.net/?p=131</guid>
		<description><![CDATA[Olá, Desde meus primeiros contatos com o WebTest Recorder do Visual Studio Team System, identifiquei que problemas aconteciam com ele com frequência e, por conta disso, perdia tempo correndo atrás de uma solução a cada vez que isso acontecia. E ontem aconteceu denovo. Eu, com uma instalação completa e atualizada do VS 2008 Team Suite, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=131&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Desde meus primeiros contatos com o WebTest Recorder do Visual Studio Team System, identifiquei que problemas aconteciam com ele com frequência e, por conta disso, perdia tempo correndo atrás de uma solução a cada vez que isso acontecia.</p>
<p>E ontem aconteceu denovo. Eu, com uma instalação completa e atualizada do VS 2008 Team Suite, não conseguia ver a barra do WebTest Recorder no Internet Explorer 8. Fazendo uma pesquisa rápida, encontrei um post do Michael Taute que compila soluções para diversos tipos de problemas referentes ao plugin. Você pode ler o post na íntegra em:</p>
<p><a href="http://blogs.msdn.com/mtaute/archive/2007/11/09/diagnosing-and-fixing-web-test-recorder-bar-issues.aspx">http://blogs.msdn.com/mtaute/archive/2007/11/09/diagnosing-and-fixing-web-test-recorder-bar-issues.aspx</a></p>
<p>Porém, um dos problemas me chamou a atenção ontem, depois de ter passado por ele. O cenário é o seguinte:</p>
<ul>
<li>Windows 7 64 Bits</li>
<li>Visual Studio 2008 Service Pack 1 Up-To-Date</li>
<li>Internet Explorer 8</li>
</ul>
<p>O add-on do webtest recorder estava habilitado no navegador e, mesmo assim, a barra não aparecia. Veja a solução apontada pelo Michael:</p>
<p>O Windows Vista faz cache da lista de barras disponíveis para o Internet explorer e a barra do gravador não estava disponível na sua lista. A correção consiste em forçar o Windows a reconstruir este cache. Para fazer isso, primeiro certifique-se que você está sem nenhuma janela do Internet Explorer aberta e então abra o editor de registros do Windows (Regedit) e exclua as seguintes chaves:</p>
<p>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\Component Categories\{00021493-0000-0000-C000-000000000046}</p>
<p>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\Component Categories\{00021494-0000-0000-C000-000000000046}</p>
<p>Nota: Por padrão, o editor de registro 32 bits está localizado em %WINDIR%\SysWow64\RegEdt32.exe</p>
<p>Vamos aguardar e torcer para que a ferramenta de testes web do Visual Studio 2010 seja mais estável <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>[]&#8216;s</p>
<p>Ricardo Serradas</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardoserradas.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardoserradas.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardoserradas.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardoserradas.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardoserradas.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardoserradas.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardoserradas.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardoserradas.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardoserradas.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardoserradas.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardoserradas.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardoserradas.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardoserradas.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardoserradas.wordpress.com/131/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=131&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.ricardoserradas.net/2010/02/25/problemas-com-webtest-recorder-e-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06b58a0e94f42dbfd9f30ef9046f1807?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Serradas</media:title>
		</media:content>
	</item>
		<item>
		<title>Máquinas virtuais de Visual Studio 2010 Ultimate e TFS 2010</title>
		<link>http://blog.ricardoserradas.net/2010/01/08/maquinas-virtuais-de-visual-studio-2010-ultimate-e-tfs-2010/</link>
		<comments>http://blog.ricardoserradas.net/2010/01/08/maquinas-virtuais-de-visual-studio-2010-ultimate-e-tfs-2010/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 04:15:11 +0000</pubDate>
		<dc:creator>Ricardo Serradas</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Downloads]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[VSTS]]></category>

		<guid isPermaLink="false">http://blog.ricardoserradas.net/?p=126</guid>
		<description><![CDATA[Microsoft disponibiliza máquinas virtuais prontas com Visual Studio 2010 e Team Foundation Server 2010.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=126&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Olá,</p>
<p>Para quem é daqueles que está sempre querendo estar um passo à frente, é uma informação muito importante. A Microsoft já disponibiliza para download um kit de aprendizado sobre o Visual Studio 2010 e o Team Foundation Server 2010. As máquinas virtuais existem nas versões para Windows Virtual PC, Microsoft Virtual PC e Hyper V.</p>
<p>Este material contém tudo que é preciso para estudar e entender as capacidades desta poderosa ferramenta de ALM (Application Lifecycle Management). Inclusive, a base de dados do TFS já vem populada com dados de exemplo. Há apenas uma exceção: as funcionalidades de Lab Management não estão inclusas. Ainda espera-se uma novidade vinda do time de produto relacionada a isso.</p>
<p>Abaixo, o link para download de cada uma das versões:</p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=27d91e63-e33b-4cef-a331-f20d343da9de&amp;displaylang=en" target="_blank">Windows 7 Virtual PC</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=540777b0-cbd7-485e-bde5-23a1d4f442e0&amp;displaylang=en" target="_blank">Microsoft Virtual PC SP1</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=426cdffc-53b5-46a5-89d3-e2ecd23570c6&amp;displaylang=en" target="_blank">Hyper V</a></li>
</ul>
<p>As máquinas tem validade até 9 de abril de 2010, data de expiração do trial do SQL Server. Notificações de ativação serão exibidas durante o uso, comportamento normal de uma versão trial do Windows. Não há com o que se preocupar.</p>
<p>Boa diversão! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>[]&#8216;s<br />
Ricardo Serradas</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ricardoserradas.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ricardoserradas.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ricardoserradas.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ricardoserradas.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ricardoserradas.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ricardoserradas.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ricardoserradas.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ricardoserradas.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ricardoserradas.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ricardoserradas.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ricardoserradas.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ricardoserradas.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ricardoserradas.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ricardoserradas.wordpress.com/126/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.ricardoserradas.net&amp;blog=9548763&amp;post=126&amp;subd=ricardoserradas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.ricardoserradas.net/2010/01/08/maquinas-virtuais-de-visual-studio-2010-ultimate-e-tfs-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/06b58a0e94f42dbfd9f30ef9046f1807?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Serradas</media:title>
		</media:content>
	</item>
	</channel>
</rss>
