<?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#"
	>

<channel>
	<title>Agile « Plataformatec Blog</title>
	<atom:link href="/tag/agile/feed/" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>Plataformatec&#039;s place to talk about Ruby, Ruby on Rails, Elixir, and software engineering</description>
	<lastBuildDate>Thu, 19 Dec 2019 19:25:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.2</generator>
	<item>
		<title>OKR: lições aprendidas para você começar a aplicá-lo de forma efetiva</title>
		<link>/2019/12/okr-licoes-aprendidas-para-voce-comecar-a-aplica-lo-de-forma-efetiva/</link>
		
		<dc:creator><![CDATA[Raphael Albino]]></dc:creator>
		<pubDate>Wed, 18 Dec 2019 16:46:00 +0000</pubDate>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[OKR]]></category>
		<guid isPermaLink="false">/?p=9570</guid>

					<description><![CDATA[<p>Depois do sucesso do livro&#160;Measure What Matters: How Google, Bono, and the Gates Foundation Rock the World with OKRs&#160;de John Doerr, praticamente toda organização vem buscando utilizar OKR como forma de desdobrar seus objetivos e medir os avanços dos resultados. Assim como qualquer modelo,&#160;framework&#160;ou ferramenta, existe uma tendência natural das pessoas acreditarem que o artefato ... <a class="read-more-link" href="/2019/12/okr-licoes-aprendidas-para-voce-comecar-a-aplica-lo-de-forma-efetiva/">»</a></p>
<p>The post <a href="/2019/12/okr-licoes-aprendidas-para-voce-comecar-a-aplica-lo-de-forma-efetiva/">OKR: lições aprendidas para você começar a aplicá-lo de forma efetiva</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Depois do sucesso do livro&nbsp;<a href="https://www.amazon.com/Measure-What-Matters-Google-Foundation/dp/0525536221">Measure What Matters: How Google, Bono, and the Gates Foundation Rock the World with OKRs</a>&nbsp;de John Doerr, praticamente toda organização vem buscando utilizar OKR como forma de desdobrar seus objetivos e medir os avanços dos resultados.</p>



<p>Assim como qualquer modelo,&nbsp;<em>framework</em>&nbsp;ou ferramenta, existe uma tendência natural das pessoas acreditarem que o artefato resolverá os problemas organizacionais simplesmente por estar sendo aplicado. A partir das minhas andanças como consultor, me deparei com diversas situações onde as pessoas disseram que tentaram aplicar os OKRs e não obtiveram sucesso.</p>



<p>No texto a seguir, compartilharei um compilado de aprendizados e dicas para quem já lida com o&nbsp;<em>framework</em>&nbsp;ou para quem está considerando levá-lo para o seu dia a dia.</p>



<p></p>



<h2 class="wp-block-heading">1) Qual a relação entre OKR e pensamento estratégico?</h2>



<p>Um grande desafio nas organizações diz respeito a como decompor sua estratégia. Tudo começa com a construção de um pensamento estratégico que, em linhas gerais, passa por três grandes etapas: (1) coleta de informações; (2) formulação de ideias; (3) planejamento das ações (essas diretrizes e mais dicas podem ser vistas em&nbsp;<a href="https://www.amazon.com/Strategic-Thinking-Step-step-Leadership-ebook/dp/B00AXDJJ38">Strategic Thinking: A Step-by-step Approach to Strategy and Leadership</a>).</p>



<p>É fundamental que a organização entenda o que está mudando no mercado em que ela atua, como a concorrência tem se posicionado diante de tais mudanças e como a organização está operando hoje.</p>



<p>Passada a etapa de entendimento do contexto, o próximo passo de um pensamento estratégico é o levantamento de desejos, hipóteses e necessidades. É importante que a organização crie uma visão futura inspiradora e que garanta a sustentabilidade do negócio diante dos desafios que ela enfrentará.</p>



<p>O último passo é o planejamento daquilo que será feito. A organização precisa compreender quais são as opções de ações e, com muita clareza, deverá escolher o que será feito e o que não será. Neste momento, é essencial que haja uma clareza do que é prioridade dentro de uma perspectiva de curto, médio e longo prazo. Costumo dizer que prioridade é uma palavra que não deveria ser colocada no plural porque quando tudo é prioridade, nada é prioridade.<br></p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="652" height="444" src="/wp-content/uploads/2019/12/imagem_pensamento_estrategico.png" alt="" class="wp-image-9566" srcset="/wp-content/uploads/2019/12/imagem_pensamento_estrategico.png 652w, /wp-content/uploads/2019/12/imagem_pensamento_estrategico-300x204.png 300w" sizes="(max-width: 652px) 100vw, 652px" /></figure>



<p><strong>Pois bem, então o que OKR tem a ver com o pensamento estratégico exposto acima?</strong><br></p>



<p>Quando falamos que o OKR é a composição do que desejo alcançar (objetivo) e como vou medir o progresso (conjunto de resultados-chave), precisamos partir de uma referência, que no caso do pensamento estratégico se dá através da coleta de informações. Se eu não conheço meu contexto atual, como eu posso definir onde eu quero chegar?</p>



<p>Além do mais, uma visão clara é necessária para orientar o processo de criação dos OKRs. Quando a organização não consegue estabelecer seu norte, qualquer caminho (ou no caso OKR) servirá. O problema dessa condição é que ela gera desperdício de dinheiro, esforço e energia.</p>



<p>Por fim, os OKRs nos forçam a fazer escolhas quando precisamos pensar no que será o foco de um trimestre, por exemplo. Ao definir poucos objetivos, estamos garantindo que a organização estará voltada naquilo que é o mais importante para o horizonte de tempo determinado.</p>



<p><strong>Portanto, lembre-se:</strong>&nbsp;sem estratégia, não faz sentido a aplicação de OKR.</p>



<h2 class="wp-block-heading">2) Quais problemas você pode resolver com OKRs?</h2>



<p>Se você deseja comunicar a estratégia da organização, melhorar a transparência, trazer senso de propósito para as equipes e conectar o trabalho das pessoas com os resultados do negócio, OKR pode ser uma boa forma de você chegar lá.</p>



<p><strong>2.1 &#8211; Comunicação da estratégia</strong></p>



<p>A partir do momento em que a organização tem a sua estratégia estabelecida, os OKRs que serão desenhados pelas equipes deverão se comunicar com a mesma. Em outras palavras, caso existam OKRs que não estão conectados com as diretrizes estratégicas do negócio, eles deveriam ser descartados.</p>



<p><strong>2.2 Transparência</strong></p>



<p>Ao acompanhar semanalmente o progresso dos resultados-chave, validar e comunicar mensalmente os resultados dos OKRs e refinar trimestralmente os avanços em um momento de inspeção e adaptação, a organização reduzirá uma natural assimetria de informação que existe nas hierarquias e nos silos departamentais. Ficou na dúvida de como aumentar a transparência? Siga o fluxo abaixo.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img decoding="async" width="960" height="720" src="/wp-content/uploads/2019/12/imagem_fluxo_cadencia_okr.png" alt="" data-id="9568" data-full-url="/wp-content/uploads/2019/12/imagem_fluxo_cadencia_okr.png" data-link="/imagem_fluxo_cadencia_okr/" class="wp-image-9568" srcset="/wp-content/uploads/2019/12/imagem_fluxo_cadencia_okr.png 960w, /wp-content/uploads/2019/12/imagem_fluxo_cadencia_okr-300x225.png 300w, /wp-content/uploads/2019/12/imagem_fluxo_cadencia_okr-768x576.png 768w" sizes="(max-width: 960px) 100vw, 960px" /></figure></li></ul></figure>



<p>Ao atingirmos as cadências mencionadas na imagem acima, aumentamos a visibilidade do que está acontecendo no negócio e deixamos os problemas palpáveis para serem tratados.</p>



<p><strong>2.3 Conexão do trabalho com os resultados</strong></p>



<p>Ao atrelar as iniciativas (ex: projetos, evoluções de um produto) com os resultados do negócio, trazemos um senso de propósito que pode motivar e engajar as pessoas no trabalho que está sendo feito.</p>



<p>Como exercício, tenho proposto uma amarração onde toda iniciativa trabalhada por uma equipe (ex: projeto, história de usuário etc.) deve ter um objetivo e uma clareza do impacto no negócio, além da sua descrição e critério de término.</p>



<p>O exemplo abaixo é uma situação de uma equipe que, a priori, tinha recebido a “demanda” de contratar uma solução de força de vendas. Ao conectar tal demanda com o objetivo do negócio e com os resultados-chave, a equipe conseguiu ter maior entendimento da importância do trabalho que seria feito.</p>



<figure class="wp-block-gallery columns-1 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img decoding="async" width="774" height="474" src="/wp-content/uploads/2019/12/imagem_exemplo_aplicacao_okr_iniciativa.png" alt="" data-id="9569" data-full-url="/wp-content/uploads/2019/12/imagem_exemplo_aplicacao_okr_iniciativa.png" data-link="/imagem_exemplo_aplicacao_okr_iniciativa/" class="wp-image-9569" srcset="/wp-content/uploads/2019/12/imagem_exemplo_aplicacao_okr_iniciativa.png 774w, /wp-content/uploads/2019/12/imagem_exemplo_aplicacao_okr_iniciativa-300x184.png 300w, /wp-content/uploads/2019/12/imagem_exemplo_aplicacao_okr_iniciativa-768x470.png 768w" sizes="(max-width: 774px) 100vw, 774px" /></figure></li></ul></figure>



<p>Ao unir a entrega com o resultado, você garantirá a necessidade das pessoas olharem os números e os dados da organização. Além disso, você evitará que a equipe invista tempo e esforço para atender uma demanda que não gera impacto nos objetivos do negócio. E em último caso, mas nem por isso menos importante, você forçará a equipe se questionar o porquê de estarem fazendo algo que não impacta diretamente nos objetivos do negócio.</p>



<h2 class="wp-block-heading">3) Qual a importância das métricas na definição dos OKRs?</h2>



<p>Indicadores de negócio são as melhores medidas para avaliar o progresso em direção aos objetivos. Se você está em busca de sair de um modelo onde há uma cobrança por entregas (<em>output</em>) e deseja ser cobrado por resultado (<em>outcome</em>), defina resultados-chave (<em>key results</em>) que se acoplem com os&nbsp;<a href="https://www.klipfolio.com/resources/articles/what-is-a-key-performance-indicator">indicadores de performance (KPI)</a>&nbsp;da organização.</p>



<p>Lembrando que a sigla OKR é composta de duas partes (objetivos e resultados-chave), um KPI que precisa ser melhorado será um excelente ponto de partida para criar um OKR e se tornará um resultado-chave para um objetivo.</p>



<p><strong>Lembre-se:</strong>&nbsp;OKR e KPI funcionarão perfeitamente juntos dado que os KPIs ajudam a monitorar o desempenho e a identificar problemas e áreas de melhoria no modo atual de operar da organização. Já os OKRs, contribuem na resolução de problemas, na melhoria de processos e no impulsionamento de inovações.</p>



<p>Para exemplificar, gostaria de compartilhar um caso real de uma organização que tinha como objetivo “Expandir os talentos da área de produto” e possuía como indicadores de performance o tempo médio de contratação, o número de vagas ocupadas e a pesquisa de satisfação. Depois de uma sessão de definição, saímos com o seguinte OKR:</p>



<p><strong>Objetivo:</strong>&nbsp;Expandir os talentos da área de produto.</p>



<p><strong>Resultados-chave:</strong></p>



<ul><li>Contratar 4 novas pessoas de desenvolvimento para aumentar a senioridade da equipe.</li><li>Aumentar o resultado da pesquisa de satisfação de 75% (resultado no último trimestre) para 85%.</li><li>Reduzir o tempo médio de contratação de 45 dias para 30 dias.</li></ul>



<h2 class="wp-block-heading">4) Dicas práticas</h2>



<p>Antes de finalizar o texto gostaria, de compartilhar 6 dicas práticas para você revisar sua estratégia de adoção de OKR:</p>



<ol><li><strong>Tenha o apoio executivo:</strong>&nbsp;OKR, assim como qualquer outra mudança organizacional precisa do suporte executivo para acontecer. Acreditar que apenas movimentos locais (debaixo para cima) farão com que a transformação aconteça é começar o jogo perdendo. Portanto, é fundamental que os OKRs da empresa se desdobrem para os times.</li><li><strong>Não defina muitos objetivos:</strong>&nbsp;independente do contexto (empresa, equipe, tribo etc.), tenha de 2 até 3 objetivos para garantir que as pessoas estejam focadas naquilo que importa durante o trimestre.</li><li><strong>Tenha resultados-chave mensuráveis:</strong>&nbsp;se você não consegue medir, você não saberá se está alcançado o seu objetivo. Não criei resultados-chave para métricas que não existem. Se você quer ter bons OKRs, coloque um esforço para ter as métricas disponíveis.</li><li><strong>Não tenha mais do que 3 resultados-chave por objetivo:</strong>&nbsp;se é muito difícil de medir um objetivo talvez ela possa ser repensando, reescrito ou reestruturado.</li><li><strong>Deixe os resultados visíveis para todas as pessoas da organização:</strong>&nbsp;visibilidade é alma para um melhor alinhamento e para que os problemas que surgirem de fato sejam resolvidos.</li><li><strong>Evite resultados-chave orientados por tarefas (ex: entrega de projetos):</strong>&nbsp;foque em resultados orientados ao negócio porque isso ajudará a organização a traduzir os benefícios de uma nova abordagem de trabalho e suportará a ideia de equipes multidisciplinares.</li></ol>



<h2 class="wp-block-heading">Conclusão<br><a href="https://github.com/plataformatec/blog-posts/blob/master/2019-12-OKR-licoes-aprendidas.md#conclus%C3%A3o"></a></h2>



<p>OKR é uma ótima forma de pensar de forma estratégica e fazer com que as pessoas colaborem na execução daquilo que a organização busca conquistar. O&nbsp;<em>framework</em>&nbsp;em si é bem simples, porém sua adoção, nem tanto.</p>



<p>Pensando em sistematizar a mensagem deste <em>post</em>, resolvi criar um Canvas que te ajudará no momento de desenvolver os OKRs na sua organização.</p>



<p>Basta seguir os passos sinalizados pelas setas e responder às perguntas necessárias em cada um dos quadrantes. Comece pela estratégia, defina os objetivos, crie os resultados-chave, priorize as iniciativas e defina as áreas que precisarão colaborar com aquele OKR. Cada linha do quadro representará um OKR.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="662" height="422" src="/wp-content/uploads/2019/12/imagem_okr_canvas.png" alt="" class="wp-image-9567" srcset="/wp-content/uploads/2019/12/imagem_okr_canvas.png 662w, /wp-content/uploads/2019/12/imagem_okr_canvas-300x191.png 300w" sizes="(max-width: 662px) 100vw, 662px" /></figure>



<p>E você, quais têm sido os desafios e os principais aprendizados com OKRs? O que achou do OKR Canvas?</p>



<p>Compartilhe comigo sua opinião nos comentários abaixo!</p>



<p>Referências:</p>



<ul><li><a href="/2017/09/dilemas-de-po-como-definir-okrs-em-equipes-ageis/">Como definir OKRs em equipes ágeis?</a></li><li><a href="http://eleganthack.com/the-art-of-the-okr/">The Art of the OKR</a></li><li><a href="https://felipecastro.com/en/blog/">Blog do Felipe Castro</a></li></ul><p>The post <a href="/2019/12/okr-licoes-aprendidas-para-voce-comecar-a-aplica-lo-de-forma-efetiva/">OKR: lições aprendidas para você começar a aplicá-lo de forma efetiva</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Dívida técnica: Por que fazer, quando fazer e como priorizar</title>
		<link>/2019/11/divida-tecnica-por-que-fazer-quando-fazer-e-como-priorizar/</link>
		
		<dc:creator><![CDATA[Bruno Zanutto]]></dc:creator>
		<pubDate>Wed, 27 Nov 2019 16:35:20 +0000</pubDate>
				<category><![CDATA[Português]]></category>
		<category><![CDATA[Agile]]></category>
		<guid isPermaLink="false">/?p=9558</guid>

					<description><![CDATA[<p>O primeiro passo é admitir: existe dívida técnica no seu sistema. Seja por decisões estratégicas para acelerar um lançamento e ganhar mercado, seja por mudanças tecnológicas ou novas práticas que pedem que código antigo seja revisitado.</p>
<p>The post <a href="/2019/11/divida-tecnica-por-que-fazer-quando-fazer-e-como-priorizar/">Dívida técnica: Por que fazer, quando fazer e como priorizar</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>O primeiro passo é admitir: existe dívida técnica no seu sistema. Seja por decisões estratégicas para acelerar um lançamento e ganhar mercado, seja por mudanças tecnológicas ou novas práticas que pedem que código antigo seja revisitado.</p>



<p>Em praticamente todas as empresas que já trabalhei, existia (e imagino que ainda exista) algum tipo de dívida técnica. Em algumas, para não falar todas, presenciei o cabo-de-guerra entre a equipe técnica, desejando tratar esses itens e defendendo o porque são importantes, e os responsáveis pelo produto, promovendo a criação de novas features.</p>



<p>Neste post eu vou te dar pelo menos um bom motivo para pagar dívidas técnicas, deixar uma dica de quando fazê-las e uma sugestão de como priorizá-las.</p>



<h2 class="wp-block-heading" id="porque-fazer">Porque fazer</h2>



<p>Facilidade de manutenção, ganho de performance, compatibilidade com novas tecnologias, diminuir o tempo que o time gasta lidando com os sintomas dessa dívida técnica (e claro, o tempo que seu time passa lidando com esses sintomas, ele está perdendo de fazer novas features, que melhorariam seu time-to-market)… Existem vários ótimos motivos pra investir esforço e resolver a causa raíz, mas eu vou falar só de um.</p>



<p>Quando todos argumentos se esgotarem e ainda assim ficar a impressão de que “isso é capricho de desenvolvedor”, ainda vale a pena. Por quê? Pela satisfação dos seus funcionários.</p>



<p>Qualquer empregador vai falar que achar mão de obra especializada é difícil. Será que não vale incluir um item no seu backlog pra manter um bom empregado?<br>Você ralou para achar um especialista, e agora que o encontrou, negligenciar a opinião dele pode gerar insatisfação.</p>



<p>Recentemente conversei com um gerente de produto de uma startup, e ele disse que uma das perguntas da entrevista que passou era: “se um desenvolvedor ameaçar sair caso um item X não seja desenvolvido, o que você faz?”<br>Segundo ele, várias respostas estariam certas na linha de entender esse item X, mas existe uma resposta errada:&nbsp;<strong>“é só um desenvolvedor, eu deixo sair”</strong>.</p>



<p>Talvez você não seja surpreendido com um funcionário falando isso explicitamente, mas ligue seu radar se a equipe reclamar muito de dívida técnica. Às vezes isso já é um indicativo da infelicidade desses profissionais e currículos podem já estar sendo disparados para outras empresas.</p>



<h2 class="wp-block-heading" id="quando-fazer">Quando fazer</h2>



<p>Se você leu a seção acima e ficou convencido, ou já começou o texto com a intenção de lidar com dívida técnica, a partir daqui eu posso te ajudar.</p>



<p>Aceitar que vamos trabalhar com dívida técnica não significa que vamos parar tudo e ficar semanas focados nesses itens.</p>



<blockquote class="wp-block-quote"><p>Importante: estou considerando aqui que os “juros” dessa dívida técnica estejam sob controle. Se não estamos fazendo nada da dívida e seria apenas uma melhoria para o processo, essa sugestão se aplica. Agora, se você tem um incêndio, talvez você precise de um plano de ação mais agressivo, incluindo talvez parar e trabalhar apenas na dívida técnica.</p></blockquote>



<p>No universo do Scrum, o termo “hardening sprint” é usado para designar uma sprint inteira dedicada a consertar bugs e resolver dívidas técnicas. Deixo claro que por mais que o termo seja usado, o Scrum desaconselha totalmente essa prática, sugerindo por exemplo, considerar uma parte do esforço da sprint para tratar esses itens.</p>



<p>Recentemente estive com um time que tinha uma quantidade considerável de dívida técnica e, por alguns meses, até se dedicaram a trabalhar apenas nelas. Foi um período de insatisfação tanto das pessoas desenvolvedoras, quanto das pessoas de produto. Com o tempo, eles voltaram ao desenvolvimento de features, e o backlog de dívida técnica ficou parado, onerando capacity do time com pequenas demandas originadas das mesmas. Eles não trabalhavam com Scrum, nem nenhuma outra metodologia/framework. Existia, porém, um quadro&nbsp;<strong>tipo</strong>&nbsp;kanban (k minúsculo aqui).</p>



<p>A solução então para garantir que dívida técnica seria endereçada sem paralisar totalmente a entrega de features foi usar limites de WIP (Work in Progress).</p>



<p>O time não utilizava Kanban, nem limites de WIP (e nem era algo para se implantar no momento), mas chegamos num combinado:<br>Em qualquer dado momento, existirá um item de dívida técnica no quadro do time, sendo trabalhado.</p>



<figure class="wp-block-image"><img decoding="async" src="https://i.imgur.com/HHM1Imd.png" alt=""/></figure>



<p>Essa estrutura garantiu que existia um espaço para trabalhar em resolver dívida técnica, e tranquilizou stakeholders no sentido de mostrar que não iríamos “parar tudo” para trabalhar nesses itens.</p>



<p>Dependendo do tamanho do seu time e da sua necessidade, esse limite de WIP pode ser diferente de 1.</p>



<p>Essa ideia pode ser adaptada para um time com Kanban propriamente dito, com a criação de uma raia dedicada e limite de WIP considerando o&nbsp;<a href="/2019/01/tipos-de-demanda-e-classes-de-servico-afinal-e-tudo-a-mesma-coisa/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">tipo de demanda</a>&nbsp;da “dívida técnica”.</p>



<h2 class="wp-block-heading" id="como-priorizar">Como priorizar</h2>



<p>Não é só porque garantimos um espaço pra resolver itens de dívida técnica que não precisamos priorizá-las.</p>



<p>Se foi trazida a necessidade de fazer, é porque vamos ganhar alguma coisa, e se estamos falando de&nbsp;<strong>valor</strong>, podemos priorizar de alguma forma.</p>



<p>Dívida técnica, por natureza, não é algo que vai gerar valor para seu cliente ou usuário, pelo menos não diretamente &#8211; se gera valor, deveria estar com o resto do backlog para priorização. Como priorizar, então?</p>



<p>Dado esse dilema, achei na literatura referências à matriz GUT. Em resumo, avalia-se o backlog em Gravidade, Urgência e Tendência. Cada item recebe uma nota nessas três categorias, e o problema com somatória mais alta seria o mais prioritário. Porém isso não me atendia.</p>



<p>A maioria dos problemas não tinham gravidade mensuráveis, e urgência era só quando a bomba estourava. A tendência era uma incógnita.</p>



<p>Usei então a estrutura de BVP: <em>Business Value Points</em>. Seria a definição de critérios que faziam sentido para o time, com pesos ponderados.</p>



<figure class="wp-block-image"><img decoding="async" src="https://i.imgur.com/0aseY9m.png" alt=""/></figure>



<p>Note que esses critérios só fazem sentido para a equipe que estava trabalhando comigo. Você pode usá-los como referência, mas pergunte-se se refletem totalmente a necessidade do seu time.</p>



<p>Existe um critério nessa lista ligado à valor monetário, mas seu peso é o menor, dado que os itens aqui não tem a natureza de impactar financeiramente a empresa, mas ainda assim pode ser relevante (até como desempate).</p>



<p>Daí, foi só jogar os itens e ver o resultado dado a média, considerando os pesos (dados fictícios):</p>



<figure class="wp-block-image"><img decoding="async" src="https://i.imgur.com/YhE46Kf.png" alt=""/></figure>



<p>O time então pegou o primeiro item da lista e começou a desenvolvê-lo.<br>Durante as cerimônias de planejamento, a matriz é revista e atualizada, para que assim que o item em WIP for finalizado, puxarmos o próximo.</p>



<p>Achou que este artigo te ajudou? Tem problemas com dívida técnica e não cobrimos aqui? Deixe nos comentários!</p><p>The post <a href="/2019/11/divida-tecnica-por-que-fazer-quando-fazer-e-como-priorizar/">Dívida técnica: Por que fazer, quando fazer e como priorizar</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Relation between Story Points and Development Time (Lead Time)</title>
		<link>/2019/11/relation-between-story-points-and-development-time-lead-time/</link>
		
		<dc:creator><![CDATA[Otávio Silvério]]></dc:creator>
		<pubDate>Fri, 08 Nov 2019 16:01:56 +0000</pubDate>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Agile]]></category>
		<guid isPermaLink="false">/?p=9534</guid>

					<description><![CDATA[<p>Frequently I hear speculations about&#160;story points&#160;and their relation with the development time. Questions like: “Why a 3 points card took so much time to be developed” “How long it takes to deliver an 8 points card?”, “Why the team took so long to deliver only this amount of points?” and others are frequent. However, when ... <a class="read-more-link" href="/2019/11/relation-between-story-points-and-development-time-lead-time/">»</a></p>
<p>The post <a href="/2019/11/relation-between-story-points-and-development-time-lead-time/">Relation between Story Points and Development Time (Lead Time)</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Frequently I hear speculations about&nbsp;<a href="https://www.mountaingoatsoftware.com/blog/what-are-story-points" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">story points</a>&nbsp;and their relation with the development time. Questions like: “Why a 3 points card took so much time to be developed” “How long it takes to deliver an 8 points card?”, “Why the team took so long to deliver only this amount of points?” and others are frequent. However, when searching about story points and development time, there is a series of comments about this relationship where: some people will tell you story points measure only the effort to implement a card, others consider a relation between days (or even hours) and the points, while others only compare sizes between the cards and so on.</p>



<p>Trying to get a better understanding of this subject to talk to clients and stakeholders in general, I decided to collect real project data and analyze the relation between amount of story points of the cards and the time it took for each to be developed, counting since the time they started to be developed until the moment they are delivered to production, the famous&nbsp;<a href="/2017/08/metricas-ageis-o-que-lead-time-fala-sobre-seu-projeto/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Lead Time</a>.</p>



<h2 class="wp-block-heading" id="disclaimers">Disclaimers</h2>



<p>Before we start, some disclaimers about the context of the project:</p>



<ul><li>Right in the first few weeks of the project we already had the first big problem with story points: subjectivity in estimate the cards. Why this card is worth 3? How do I know this card is twice or thrice the size of the X card? What do I consider in this estimative?</li><li>Thus, it was suggested to the team to utilize some criteria to estimate, intending to reduce this subjectivity.</li><li>My friend and colleague&nbsp;<a href="https://www.linkedin.com/in/henriqueadeoliveira/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Henrique Oliveira</a>&nbsp;suggested a Fibonacci-like matrix, taking into account T-Shirt Size estimates, to estimate the cards, that helped the team a lot. Check it below:</li></ul>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="875" src="/wp-content/uploads/2019/11/image-1-1024x875.png" alt="" class="wp-image-9538" srcset="/wp-content/uploads/2019/11/image-1-1024x875.png 1024w, /wp-content/uploads/2019/11/image-1-300x256.png 300w, /wp-content/uploads/2019/11/image-1-768x656.png 768w, /wp-content/uploads/2019/11/image-1.png 1098w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul><li>Cards estimated as 13 points or higher were broken into smaller cards, as the only time we worked with a card with 13 points, it exceeded the timebox of the sprint, which was 10 business days. So we decide to do not let any card with 13 or more story points to be added to the sprint backlog.</li><li>Cards were broken down into smaller cards in a way that they delivered something functional in production, so that the backend and frontend stayed together on the same card.</li></ul>



<h2 class="wp-block-heading" id="a-look-into-the-data">A look into the data</h2>



<p>I began by collecting the data of the project as a whole and analyzing the lead time graph with all cards that had already been finished or that were in production.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="446" src="/wp-content/uploads/2019/09/grafico-lt-all-1024x446.png" alt="" class="wp-image-9381" srcset="/wp-content/uploads/2019/09/grafico-lt-all-1024x446.png 1024w, /wp-content/uploads/2019/09/grafico-lt-all-300x131.png 300w, /wp-content/uploads/2019/09/grafico-lt-all-768x335.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>After acquiring this data, I segmented them by the amount of story points and analyzed them individually, having the following graphs:</p>



<h4 class="wp-block-heading" id="cards-with-1-story-point">Cards with 1 story point</h4>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="405" src="/wp-content/uploads/2019/09/grafico-lt-1-sp-1024x405.png" alt="" class="wp-image-9382" srcset="/wp-content/uploads/2019/09/grafico-lt-1-sp-1024x405.png 1024w, /wp-content/uploads/2019/09/grafico-lt-1-sp-300x119.png 300w, /wp-content/uploads/2019/09/grafico-lt-1-sp-768x304.png 768w, /wp-content/uploads/2019/09/grafico-lt-1-sp.png 1242w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading" id="cards-with-2-story-points">Cards with 2 story points</h4>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="405" src="/wp-content/uploads/2019/09/grafico-lt-2-sp-1024x405.png" alt="" class="wp-image-9383" srcset="/wp-content/uploads/2019/09/grafico-lt-2-sp-1024x405.png 1024w, /wp-content/uploads/2019/09/grafico-lt-2-sp-300x119.png 300w, /wp-content/uploads/2019/09/grafico-lt-2-sp-768x304.png 768w, /wp-content/uploads/2019/09/grafico-lt-2-sp.png 1242w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading" id="cards-with-3-story-points">Cards with 3 story points</h4>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="405" src="/wp-content/uploads/2019/09/grafico-lt-3-sp-1024x405.png" alt="" class="wp-image-9384" srcset="/wp-content/uploads/2019/09/grafico-lt-3-sp-1024x405.png 1024w, /wp-content/uploads/2019/09/grafico-lt-3-sp-300x119.png 300w, /wp-content/uploads/2019/09/grafico-lt-3-sp-768x304.png 768w, /wp-content/uploads/2019/09/grafico-lt-3-sp.png 1242w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading" id="cards-with-5-story-points">Cards with 5 story points</h4>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="405" src="/wp-content/uploads/2019/09/grafico-lt-5-sp-1024x405.png" alt="" class="wp-image-9385" srcset="/wp-content/uploads/2019/09/grafico-lt-5-sp-1024x405.png 1024w, /wp-content/uploads/2019/09/grafico-lt-5-sp-300x119.png 300w, /wp-content/uploads/2019/09/grafico-lt-5-sp-768x304.png 768w, /wp-content/uploads/2019/09/grafico-lt-5-sp.png 1242w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading" id="cards-with-8-story-points">Cards with 8 story points</h4>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="405" src="/wp-content/uploads/2019/09/grafico-lt-8-sp-1024x405.png" alt="" class="wp-image-9386" srcset="/wp-content/uploads/2019/09/grafico-lt-8-sp-1024x405.png 1024w, /wp-content/uploads/2019/09/grafico-lt-8-sp-300x119.png 300w, /wp-content/uploads/2019/09/grafico-lt-8-sp-768x304.png 768w, /wp-content/uploads/2019/09/grafico-lt-8-sp.png 1242w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading" id="cards-with-13-story-points">Cards with 13 story points</h4>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="405" src="/wp-content/uploads/2019/09/grafico-lt-13-sp-1024x405.png" alt="" class="wp-image-9387" srcset="/wp-content/uploads/2019/09/grafico-lt-13-sp-1024x405.png 1024w, /wp-content/uploads/2019/09/grafico-lt-13-sp-300x119.png 300w, /wp-content/uploads/2019/09/grafico-lt-13-sp-768x304.png 768w, /wp-content/uploads/2019/09/grafico-lt-13-sp.png 1242w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="data-analysis">Data Analysis</h2>



<p>After analyzing the data, I reached some conclusions:</p>



<ul><li>It’s possible to verify that cards worthing 3, 5 or 8 points have a development time (lead time) similar, not being possible to find a correlation between time and the number of story points (it is not scalar).</li><li>If we take a category with plenty of samples, like the cards with 5 points, it’s evident they differ a lot, not being possible to make some affirmations such as “a card worth 5 points takes between X and Y days to finish” when X and Y a small interval of days (1 to 3 days). The same happens with cards with 3 and 8 points.</li></ul>



<p><strong>Observation:</strong>&nbsp;Data referring to cards worth 1, 2 or 13 story points were excluded from the individual analysis, because there was little data to be analyzed individually.</p>



<h2 class="wp-block-heading" id="other-analysis-beyond-story-points-x-lead-time">Other Analysis beyond story points x lead time</h2>



<p>I reached more conclusions about the use of story points that I would like to share with you all:</p>



<ul><li>At the beginning of the project, when we started to use story points, the subjectivity was very high. By establishing some criteria for estimation, we were able to stabilize it, making the time of development vary a lot less, increasing predictability. If you want to develop this with your team, consider checking out this article from&nbsp;<a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://www.mountaingoatsoftware.com/blog/what-are-story-points" target="_blank">Mike Cohn</a>.</li><li>With the addition of more scoring criteria, like test complexity, dependency on people that are not in the team (internal or external to the company), risks related to the cards and more, we lowered the lead time variability and increased the card delivery rate by breaking the card into smaller ones.</li><li>Many times people relate story points with only the development effort, and this makes the team consider only the time of the Execution of a task. Another point is that the testers/QAs and UXs/designers, have little to no involvement in the estimatives. Making the team think not only about development, but also about the duration of the process as a whole (considering the steps of code review, tests, deploy, etc) and inviting more people to share their concerns about the estimatives helps to improve the predictability of the team.</li><li>With help from metrics like&nbsp;<a href="/2017/10/metricas-ageis-cumulative-flow-diagrams-e-lead-time-breakdown/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">lead time breakdown and CFD</a>, the process of stabilizing the scoring was much easier, as it made the team think about the whole process and showed in which step of the process the team was spending the most time with.</li></ul>



<h2 class="wp-block-heading" id="conclusions">Conclusions</h2>



<p>The major conclusions I had were:</p>



<ul><li>It wasn’t possible to relate time of development (lead time) with Story Points directly, as the goal of the study was.</li><li>It is important to say Story Points should be used inside the team level. If you want to know more about this subject, I recommend the&nbsp;<a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://observablehq.com/@troymagennis/story-point-velocity-or-throughput-forecasting-does-it-mat" target="_blank">reading of this text from Troy Magennis.</a></li><li>It was possible to increase the predictability of team delivery and stabilize the process of development using story points with other tools at the same time.</li><li>There are indications that, when you add more criteria to the estimation to breakdown the cards into smaller cards, the smaller the risk/effort/complexity will be and, consequently, the predictability you also increase.</li><li>An important point here is that story points and other estimative methods consider only the moments in which a demand is being worked on, and not consider/can&#8217;t predict the time that a demand will be staying in waiting to be worked on. Basically, the team considers how long it will take for a demand to be developed and tested, but don’t consider in this estimatives (as it is not possible to predict some points in the middle of the development) how long the demand will be staying in waiting to be tested, to be deployed or how long it will take to resolve a hypothetical impediment. In other words, the&nbsp;<a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://observablehq.com/@troymagennis/how-does-utilization-impact-lead-time-of-work?collection=@troymagennis/agile-software-development" target="_blank">process efficiency</a>&nbsp;will impact your lead time, and consequently, the relation between story points with the time of development. This way, it’s plausible that a user story of 1 story point takes the same amount of days that a 13 points user story to be delivered, because of the flow efficiency. If you would like to know more about process efficiency,&nbsp;<a href="https://observablehq.com/@troymagennis/story-point-velocity-or-throughput-forecasting-does-it-mat" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">check this article</a>.</li></ul>



<h2 class="wp-block-heading" id="and-if-you-were-asked-if-you-would-use-story-points-to-estimate-a-deadline-for-a-delivery-of-a-project-or-card-what-would-you-respond">And if you were asked if you would use story points to estimate a deadline for a delivery of a project or card, what would you respond?</h2>



<p>I would say that story points, like the&nbsp;<a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="/2017/01/requisitos-em-equipes-ageis-falando-sobre-complexidade-e-incerteza/" target="_blank">matrix for complexity and uncertainty (T-shirt Size)</a>, are excellent tools to instigate your team in better breaking user stories down and help with improvements in the processes, however, to estimate deadlines, I prefer to utilize process metrics and other tools, like a&nbsp;<a href="/2019/10/monte-carlo-in-practice-finding-the-ideal-iteration-value/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Monte Carlo simulation</a>&nbsp;to help predict when a set of cards will be delivered.</p>



<p>What about you? Do you have any experience with Story Points and time estimates? Have you passed through any similar scenario? What’s your opinion about what I shared in this text? Share with us commenting below or in this email&nbsp;<a href="/wp-admin/contagil@plataformatec.com.br">contagil@plataformatec.com.br</a></p><p>The post <a href="/2019/11/relation-between-story-points-and-development-time-lead-time/">Relation between Story Points and Development Time (Lead Time)</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>O Papel do Líder de Produto</title>
		<link>/2019/10/o-papel-do-lider-de-produto/</link>
		
		<dc:creator><![CDATA[Marta Teixeira]]></dc:creator>
		<pubDate>Wed, 30 Oct 2019 18:50:30 +0000</pubDate>
				<category><![CDATA[Português]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[liderança]]></category>
		<guid isPermaLink="false">/?p=9487</guid>

					<description><![CDATA[<p>Qual a sua teoria favorita sobre o papel de um líder? Para mim um resumo perfeito é esta fala do Jack Welch em&#160;What is the role of a leader. Em resumo, sem a pretensão de captar a emoção de ouvi-lo: Ser o “Chief Meaning Officer”! Deixar claro para todas as pessoas à sua volta: para ... <a class="read-more-link" href="/2019/10/o-papel-do-lider-de-produto/">»</a></p>
<p>The post <a href="/2019/10/o-papel-do-lider-de-produto/">O Papel do Líder de Produto</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p></p>



<p>Qual a sua teoria favorita sobre o papel de um líder? Para mim um resumo perfeito é esta fala do Jack Welch em&nbsp;<a href="https://www.youtube.com/watch?v=ojkOs8Gatsg" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">What is the role of a leader</a>. Em resumo, sem a pretensão de captar a emoção de ouvi-lo:</p>



<ol><li>Ser o “Chief Meaning Officer”! Deixar claro para todas as pessoas à sua volta: para onde você está indo, por que você está indo e, mais importante, o que haverá para elas quando elas chegarem lá com você.</li><li>Remover os impedimentos do caminho para que as pessoas possam agir e fazer as coisas acontecerem. Quebre os silos, se livre das burocracias.</li><li>Ser generoso. Vibrar com o sucesso das pessoas.</li><li>Ser o “Chief Fun Officer”. Dê seus pulos para tornar o trabalho divertido!</li></ol>



<p>E qual o papel de um líder em uma empresa de produtos digitais? Não deve ser nada diferente disso, certo? Mas afinal, como traduzir estes conceitos para a realidade de uma empresa de produtos?</p>



<p>Trazendo para este contexto, quem melhor traduz o papel de um líder é o Marty Cagan em&nbsp;<a href="https://svpg.com/empowered-product-teams/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Empowered Product Teams</a>. Na minha opinião, este conteúdo é o mais relevante que ele publicou direcionado para líderes que estão à frente de empresas de produtos digitais. E por que é tão relevante? Porque coloca de uma forma mais tangível estratégia e cultura, temas muito falados mas pouco colocados em prática.</p>



<h3 class="wp-block-heading">Motivos de resistência da liderança</h3>



<p>Um tópico bem interessante deste artigo é a explicação do por que líderes resistem tanto para empoderar seus times e continuam mantendo o estilo comando-controle.</p>



<p>Segundo ele, existem duas formas de gerenciar uma empresa de produto:</p>



<ul><li>O jeito errado: “Na maioria das empresas, os times de tecnologia existem para atender o negócio”. De alguma forma, líderes de outras áreas de negócios (vendas, marketing, CEO) acabam direcionando o produto, que é apenas construído pelo time de tecnologia.</li><li>O jeito certo: “Em empresa com forte cultura de produto, times de produto existem para um propósito muito diferente. Eles existem para atender os clientes, de formas que também atendam às necessidades do negócio”. Ou seja, o foco é o cliente e não <em>stakeholders</em> internos. Mas obviamente o produto também tem que ser sustentável para o negócio.&nbsp;<a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://medium.com/@gibsonbiddle/intro-to-product-strategy-60bdf72b17e3" target="_blank">Gibson Biddle</a>&nbsp;diz algo semelhante de uma forma mais poética “encantar clientes, de maneiras que sejam lucrativas e difíceis de copiar”.</li></ul>



<p>Marty Cagan conta que conversou com CEOs de várias empresas para entender porque eles continuam trabalhando do jeito errado com desenvolvimento de produtos, mesmo conhecendo o jeito certo. A resposta foi “falta de confiança” no time. A crença é que este modelo de trabalho (o jeito certo) só funciona em empresas que podem contratar profissionais extraordinários, como os do Google, Netflix, etc.</p>



<p>O curioso é que já existem muitos estudos que comprovam que times de alto desempenho não são formados por estrelas, mas sim por pessoas comuns. Aliás, estrelas muitas vezes atrapalham!</p>



<p>“They would be surprised at how ordinary the vast majority of the members of these company’s product teams actually are, and that maybe the important difference lies elsewhere.”</p>



<p>Outra justificativa comum para não empoderar os times é “pessoas de tecnologia não entendem de negócios”! Quem de tecnologia já não precisou respirar bem fundo quando ouviu esta frase? Times de produto precisam do contexto de negócio, para que possam descobrir a melhor forma de resolver problemas dos clientes.</p>



<p>A falta de confiança certamente não é um problema fácil de resolver, já que em muitas situações os times são de fato muito inexperientes. Mas é importante caminhar nesta direção, desenvolvendo as pessoas para que elas possam atuar do jeito certo. Definitivamente, entrar em um ciclo vicioso de falta de estratégia, time inexperiente e comando-controle, não é um bom caminho!</p>



<h3 class="wp-block-heading">Papel do líder no “jeito certo” de trabalhar</h3>



<p>Trazendo para o contexto de empresas de produto, como ser o “Chief Meaning Officer”? Ou seja, como deixar claro para as pessoas para onde você está indo e por que. A Visão e Estratégia de produto são essenciais para trazer este significado e dar um direcionamento ao time, para ele possa trabalhar de forma autônoma.</p>



<h4 class="wp-block-heading">Visão de Produto</h4>



<p>A visão de produto descreve o futuro que queremos criar, em 2 a 5 anos. A importância desta visão é setar um norte inspirador e delimitar um contexto de atuação. Em <em>startups</em>, é muito comum o foco do produto principal ir se perdendo ou o escopo de atuação ficar muito amplo. Isto acontece principalmente quando empresas recebem investimentos e começam a diversificar o portfólio. Sem uma visão para guiar e delimitar as fronteiras, os times de produto podem ficar sem foco, não atingirem resultados e a liderança voltar a assumir o estilo comando-controle.</p>



<h4 class="wp-block-heading">Estratégia de Produto</h4>



<p>A estratégia define qual caminho precisa ser seguido para se alcançar a visão. Um erro comum na definição da estratégia é não fazer uma reflexão do momento atual e traçar uma estratégia pouco realista. Em&nbsp;<a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://www.youtube.com/watch?v=DmJXpI7OJuY" target="_blank">Escaping the Building Trap</a>, Melissa Peri apresenta um <em>framework</em> bem interessante para definição de estratégia.</p>



<p>Outro artefato, o&nbsp;<a href="https://svpg.com/the-product-manifesto/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Product Principles</a>, também ajuda a delimitar o contexto e facilita decisões em priorização. Os princípios descrevem a natureza dos produtos que pretendemos desenvolver e reflexões sobre nossas crenças sobre o que é importante.</p>



<p>Exemplo de coisas que podem ser interessantes explicitar no <em>Product Principles</em>:</p>



<ul><li>Vamos aceitar desenvolver customizações (features específicas para alguns clientes)?</li><li>Se o produto tem mais de um cliente (vendedores e compradores, por ex), quem vamos priorizar?</li><li>O que é mais importante, velocidade ou qualidade?</li><li>Queremos desenvolver tudo sozinhos ou vamos fazer parcerias?</li></ul>



<p>Uma vez que a Visão e Estratégia estejam definidas, como garantir que elas sejam seguidas? Em empresas com muitos times, como desdobrar a estratégia para os diversos times e manter o alinhamento? No artigo&nbsp;<a href="https://medium.com/@gibsonbiddle/how-to-run-a-quarterly-product-strategy-meeting-a-board-meeting-for-product-3a14c4d53d1b" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">How to Run a Quarterly Product Strategy Meeting</a>, Gibson Biddle, apresenta um processo bem interessante para definição de estratégia de times e também um passo a passo de como estruturar uma reunião de “review” de produto.</p>



<h3 class="wp-block-heading">Mais sobre o jeito certo de trabalhar</h3>



<p>Outras fontes interessantes para entender este jeito certo de trabalhar:</p>



<ul><li><a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://www.youtube.com/watch?v=DmJXpI7OJuY" target="_blank">Escaping the Building Trap</a>, Melissa Perri. Apresenta uma boa explicação da relação entre Customer, Business e o papel do Product Manager em Product-led e Sales-led organizations. As dicas para desenhar estratégia também são valiosas.</li><li><a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://svpg.com/product-vs-feature-teams/" target="_blank">Product team vs Feature Team</a>, Marty Cagan. Reforça de forma bem didática e enfática os conceitos já apresentados em&nbsp;<a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://svpg.com/empowered-product-teams/" target="_blank">Empowered Product Teams</a>. Feature team é o jeito errado de se trabalhar, no qual os times de produto existem somente para entregar features já priorizadas em um roadmap.</li><li><a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://svpg.com/coaching-customer-centricity/" target="_blank">Coach &#8211; Customer Centricity</a>, Marty Cagan. Explica quem são os verdadeiros clientes de um Product Manager: as pessoas que usam o produto! Stakeholders internos (vendas, CEO, etc) não podem ser considerados clientes. Afinal, o time de produto não existe para servir ao negócio!</li><li><a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://www.linkedin.com/pulse/digital-traditional-joaquim-torres-joca-/" target="_blank">Digital or Traditional</a>, Joca Torres. Reflete sobre a diferença do escopo de atuação do Product Manager em empresas Digitais (que tem como core do negócio um software), empresas Tradicionais (que tem como core outros tipos de produto) e empresas que não vendem software, mas tem o software como parte vital do negócio, denominadas <em>born-digital traditional company</em>.</li></ul>



<h3 class="wp-block-heading">Resumindo</h3>



<p>Uma das responsabilidade principais de um líder de produto é definir um norte para o produto e garantir que toda empresa esteja alinhada à ele. Para isso:</p>



<ul><li>Defina a visão e estratégia de produtos.</li><li>Divulgue para toda a empresa, não apenas para os times de Produto e Engenharia.</li><li>Desdobre a estratégia para todos times.</li><li>Crie cerimônias para garantir o alinhamento entre todos os times.</li></ul>



<p>Caso isso já esteja sendo feito, mas mesmo assim os times não estejam trabalhando com autonomia e alcançando resultados, vale refletir:</p>



<ul><li>Existe resistência da liderança para empoderar os times?</li><li>Existe um entendimento sobre o papel de um time de produto?</li><li>Se não existe confiança no time, qual é o plano para desenvolver e empoderar este time?</li></ul>



<p>Como tem sido a liderança de produto na sua empresa? Deixe sua impressão nos comentários abaixo.</p>



 [<a href="/2019/10/o-papel-do-lider-de-produto/">See image gallery at blog.plataformatec.com.br</a>]<p>The post <a href="/2019/10/o-papel-do-lider-de-produto/">O Papel do Líder de Produto</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Extraindo previsibilidade à partir do Story Mapping</title>
		<link>/2019/10/extraindo-previsibilidade-a-partir-do-story-mapping/</link>
		
		<dc:creator><![CDATA[Bruno Watanabe]]></dc:creator>
		<pubDate>Wed, 30 Oct 2019 15:21:48 +0000</pubDate>
				<category><![CDATA[Português]]></category>
		<category><![CDATA[Agile]]></category>
		<guid isPermaLink="false">/?p=9476</guid>

					<description><![CDATA[<p>Anteriormente, vimos neste&#160;blogpost do Felipe Gimenes, o passo a passo de como criar um Story Mapping desde o levantamento ou criação do seu fluxo de valor até o fatiamento dos itens de trabalho identificados em entregas objetivas, as chamadas Releases. Parece que o trabalho acabou não é? Será mesmo? E se ainda assim te perguntassem: ... <a class="read-more-link" href="/2019/10/extraindo-previsibilidade-a-partir-do-story-mapping/">»</a></p>
<p>The post <a href="/2019/10/extraindo-previsibilidade-a-partir-do-story-mapping/">Extraindo previsibilidade à partir do Story Mapping</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Anteriormente, vimos neste&nbsp;<a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="/2018/08/vamos-falar-sobre-story-mapping/" target="_blank">blogpost do Felipe Gimenes</a>, o passo a passo de como criar um <em>Story Mapping</em> desde o levantamento ou criação do seu fluxo de valor até o fatiamento dos itens de trabalho identificados em entregas objetivas, as chamadas Releases. Parece que o trabalho acabou não é? Será mesmo? E se ainda assim te perguntassem: “Bonito, mas afinal, quando vocês entregam?”</p>



<p>Neste blogpost vou mostrar a vocês como gerar previsibilidade para o <em>Story Mapping</em> a partir das métricas. Bora lá?</p>



<h2 class="wp-block-heading" id="recapitulando-o-burnup">Recapitulando o Burnup</h2>



<p>Primeiro, vamos falar brevemente sobre o gráfico de <em>Burnup</em>, a métrica que iremos utilizar como ferramenta.<br>O <em>Burnup</em> permite acompanhar o progresso e o montante de trabalho concluído versus o tamanho total de um escopo de trabalho, fazendo uma projeção linear baseada no histórico de produtividade do time. Através dele, podemos ter uma noção do quão próximo ou distante estamos de atingir um objetivo, ou seja, o popular “quanto falta para terminar o projeto”.</p>



<p>A leitura deste gráfico é feita da seguinte forma:</p>



<ul><li>No eixo vertical temos duas representações gráficas, sendo a primeira a quantidade de novos itens inseridos no <em>backlog</em> do projeto/produto, representado pela área colorida (neste caso, em amarelo), e a segunda a quantidade de itens deste <em>backlog</em> que foram finalizadas pelo time, representado pelas barras verticais sequenciais;</li><li>E no eixo horizontal temos uma escala de tempo para visualizar o crescimento dos valores descritos no eixo vertical (neste caso medido em semanas).</li></ul>



<figure class="wp-block-image"><img decoding="async" src="https://i.imgur.com/dRTxVxP.png" alt="Burnup-plataformatec"/></figure>



<p>Ou seja, conseguimos aqui acompanhar tanto o crescimento do <em>backlog</em> semana a semana quanto o valor de&nbsp;<em>throughputs</em>&nbsp;acumulados que o time vem entregando.</p>



<p>Dados estes valores, podemos projetar três diferentes cenários:</p>



<ul><li><strong>O Pessimista</strong>: projetar a performance futura da equipe com base no menor <em>Throughput</em> histórico;</li><li><strong>O Mais provável</strong>: considerar que a equipe terá no futuro um comportamento semelhante ao <em>Throughput</em> “médio” performado;</li><li><strong>O Otimista</strong>: considerar que a equipe performará nas próximas semanas igual ao valor de maior <em>Throughput</em> histórico ja registrado pelo time.</li></ul>



<p>Caso queira se aprofundar um pouco mais sobre Throughput e Burnup, recomendo a leitura&nbsp;<a href="/2017/08/metricas-ageis-throughput-e-graficos-burnup/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">deste blogpost do Raphael Albino</a>. Agora vamos unir os assuntos!</p>



<h2 class="wp-block-heading" id="e-o-que-o-story-mapping-tem-a-ver-com-isso">E o que o story mapping tem a ver com isso?</h2>



<p>Uma das etapas finais do <em>story mapping</em>, é fatiar o <em>backlog</em> levantado em objetivos menores e que em um curto prazo já podem entregar valor ao usuário final ou persona cujo problema estamos tentando resolver. Segue um exemplo onde foram definidos os três primeiros objetivos e abaixo o <em>backlog</em> não priorizado (imagem desfocada para preservar a confidencialidade dos dados).</p>



<figure class="wp-block-image"><img decoding="async" src="https://i.imgur.com/l1AzuaG.jpg" alt=""/></figure>



<p>Dado que nós já temos as fatias de entregas mapeadas, e se ao invés de incluirmos o <em>backlog</em> levantado como uma única <em>stack</em> dentro do nosso <em>Burnup</em>, utilizarmos do mesmo artifício de fatiamento e criarmos as visões de entrega de cada release?<br>Basicamente nós temos a seguinte visão:</p>



<figure class="wp-block-image"><img decoding="async" src="https://i.imgur.com/MwctlVF.png" alt=""/></figure>



<p>Cada fatia entra individualmente como uma porção de <em>backlog</em> isolada. Como a leitura deste gráfico é feita de baixo para cima, logo, a primeira fatia do <em>Story Mapping</em> (a que está no topo e representa o primeiro objetivo de entrega), virá acima do objetivo atual do time (representado pela porção azul do <em>Burnup</em>), e assim sucessivamente, conforme a indicação das setas.<br>Podemos observar que é possível obter hipóteses de data de entrega, pessimista, provável e otimista, para cada uma das fatias do nosso <em>Burnup</em>, esteja o time já trabalhando nelas ou não. Com isso, torna-se possível setar ou controlar expectativas com pessoas que têm interesse no projeto ou em uma entrega, tanto de forma interna (para o próprio time) como externa (ex: Um patrocinador do projeto).</p>



<p>Munindo o time com estas informações, a equipe será capaz de assumir estratégias melhor direcionadas de acordo com a necessidade. Ex: Negociar escopo caso seja necessário cumprir uma data de entrega específica ou alinhar estratégias de lançamento de um produto dadas as perspectivas de finalização do trabalho que está em vista.<br>Porém, existem alguns pontos que devemos ter atenção quando utilizamos o <em>burnup</em> como ferramenta de previsibilidade, vamos ver a seguir.</p>



<h2 class="wp-block-heading" id="premissas-que-impactam-diretamente-as-estimativasprevisibilidade">Premissas que impactam diretamente as estimativas/previsibilidade</h2>



<ul><li>As datas de projeção consideram o tamanho atual do <em>backlog</em> e a vazão do time dentro de uma linearidade. À medida que estes valores avançam, estas datas também sofrerão alteração (Ex: um crescimento no <em>backlog</em> ou uma mudança drástica no padrão de entregas do time);</li><li>Mantenha os valores de <em>throughput</em> utilizados para a projeção sempre atualizados. É sempre importante considerar a realidade do time em relação à cadência de entregas para se ter previsibilidade. Afinal, não faz muito sentido eu projetar estimativas de entrega considerando um padrão de comportamento que não condiz mais com a realidade do time, certo?</li><li>Se o time ainda não possuir um histórico de <em>throughput</em> relacionado ao projeto, o ideal seria coletar esta métrica durante algumas semanas para utilizar estes dados como insumo antes de criar-se a expectativa com datas e prazos. Caso seja de fato necessário ter esta ideia de prazo para pelo menos se ter uma perspectiva do quando a entrega seria feita, pode-se utilizar do histórico de outros projetos que o time ja trabalhou. Porém, é preciso levar em consideração diversas variáveis que impactam diretamente na assertividade em utilizar estes valores passados (tais como tamanho da equipe, se a composição do time é a mesma, tecnologias utilizadas, experiências que o time tem neste tipo de projeto, etc.</li><li>Sinalize corretamente a qual releases cada tarefa pertence. É muito importante que cada uma das tarefas do <em>backlog</em> esteja enquadrada dentro do objetivo ao qual ela pertence, não só para as tarefas que foram originadas no <em>story mapping</em> mas também para todas as demais que podem surgir ao longo do caminho devido a processos como o <em>Refining</em> ou <em>task splitting</em>;</li></ul>



<p>Como as datas de projeção/previsibilidade de entrega são extremamente sensíveis, conforme vimos nas premissas acima, minha dica final é&nbsp;<strong>fuja de utilizar estas datas como prazos determinantes</strong>&nbsp;e utilize como probabilidades de cenários (Ex: Se tudo der certo e nada diferente do habitual acontecer, temos boas chances de entregar por volta do dia DD/MM, mas é esperado que seja perto de DD/MM (de acordo com as linhas de projeção).<br>Desta forma, caso algo inesperado ou emergencial aconteça, o time consegue responder de forma adequada sem comprometer fortemente as expectativas geradas sobre as entregas.</p>



<h2 class="wp-block-heading" id="resumindo">Resumindo</h2>



<p>Utilizando estas duas ferramentas em conjunto, conseguimos ter de forma mais concreta um cenário de previsibilidade que pode ajudar o time a setar expectativas com quaisquer <em>stakeholders</em> que estejam dependentes destas entregas ou possuem algum tipo de interesse sobre elas. Além disso, as próprias pessoas do time terão uma maior sensação de progresso em relação aos objetivos que elas mesmas mapearam e isso os ajudará a tomar melhores decisões ao longo do tempo.<br>Esta é apenas uma das formas de obtermos melhor previsibilidade das entregas do time. Existem diversas outras ferramentas que podem ajudar também, como o&nbsp;<em><a href="/2019/09/how-to-manage-deadlines-in-agile-environments-get-to-know-the-reality-check-tool/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Reality Check</a></em>&nbsp;<img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>O que achou desta abordagem? Deixe aqui seu comentário sobre como você trata previsibilidade de entregas dentro do seu time ou nos escreva enviando para&nbsp;<a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="mailto:contagil@plataformatec.com.br" target="_blank">contagil@plataformatec.com.br</a>. Caso queira começar a utilizar o <em>Burnup</em>, nós disponibilizamos uma versão gratuitamente através da&nbsp;<a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="http://pages.plataformatec.com.br/planilha-metricas-com-treinamento" target="_blank">Planilha de métricas da Plataformatec.</a>&nbsp;<img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Abraços e até a próxima!</p><p>The post <a href="/2019/10/extraindo-previsibilidade-a-partir-do-story-mapping/">Extraindo previsibilidade à partir do Story Mapping</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Monte Carlo in Practice: Finding the ideal iteration value</title>
		<link>/2019/10/monte-carlo-in-practice-finding-the-ideal-iteration-value/</link>
		
		<dc:creator><![CDATA[Gabriel Lopes]]></dc:creator>
		<pubDate>Fri, 25 Oct 2019 19:14:59 +0000</pubDate>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Agile]]></category>
		<guid isPermaLink="false">/?p=9410</guid>

					<description><![CDATA[<p>One of the reasons to use any kind of project management methodology is to reduce costs. A delay in a single week of a project creates two different cost types: The first is the cost of the team, since they will need to work another week. The second is the Cost of Delay, which is ... <a class="read-more-link" href="/2019/10/monte-carlo-in-practice-finding-the-ideal-iteration-value/">»</a></p>
<p>The post <a href="/2019/10/monte-carlo-in-practice-finding-the-ideal-iteration-value/">Monte Carlo in Practice: Finding the ideal iteration value</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>One of the reasons to use any kind of project management methodology is to reduce costs.</p>



<p>A delay in a single week of a project creates two different cost types:</p>



<ul><li>The first is the cost of the team, since they will need to work another week.</li><li>The second is the Cost of Delay, which is the income not collected due to the delay. For instance, suppose the new feature this team is working on would generate a daily income of&nbsp;<strong>$100</strong>, the Cost of Delay would be&nbsp;<strong>$700</strong>&nbsp;($100 * 7 days).</li></ul>



<p>Since these costs can be high, using tools that provide more visibility on delivery dates is necessary. One tool that can help solve this problem is the Gantt Chart. With the Gantt Chart it’s possible to identify the most frail points of the project (the critical path) where more effort should be made to prevent delays, since a delay in any step of those points will impact the project as a whole.</p>



<p>Even though this tool is great for some types of projects (normally when there is a low uncertainty level), it’s not ideal for projects where the predictability is low due to the&nbsp;<a href="https://en.wikipedia.org/wiki/Variance" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">variance</a>&nbsp;of the deliverables, as in projects that happen in the field of knowledge (writing a book or software development, for example).</p>



<p>Here at Plataformatec, we have always done our best to make our delivery predictions based on data and ensure they follow proven scientific methodology. The two methods we use the most are:</p>



<ul><li>Linear Progression</li><li>Monte Carlo Simulation</li></ul>



<h2 class="wp-block-heading" id="linear--progression">LINEAR PROGRESSION</h2>



<p>In linear progression, we do data analysis on the delivered work items during some time period (in software development we normally work with weeks) and through the study of this information we come up with the best values for the progression. For example: suppose we have the following historic values of work items by week, as shown below:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="445" src="/wp-content/uploads/2019/11/tp_table-1024x445.png" alt="" class="wp-image-9549" srcset="/wp-content/uploads/2019/11/tp_table-1024x445.png 1024w, /wp-content/uploads/2019/11/tp_table-300x130.png 300w, /wp-content/uploads/2019/11/tp_table-768x334.png 768w, /wp-content/uploads/2019/11/tp_table-1536x668.png 1536w, /wp-content/uploads/2019/11/tp_table.png 1804w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>A value that could be used as a&nbsp;<strong>pessimistic</strong>&nbsp;projection would be to assume a delivery of&nbsp;<strong>1</strong>&nbsp;work item per week, seeing as we’ve had 5 cases where the throughput was&nbsp;<strong>1</strong>&nbsp;or&nbsp;<strong>0</strong>. For the&nbsp;<strong>optimist</strong>&nbsp;projection we could use either the value of&nbsp;<strong>3</strong>&nbsp;or&nbsp;<strong>4</strong>, or even&nbsp;<strong>3.5</strong>, as we’ve had 4 instances where the throughput was&nbsp;<strong>3 or higher</strong>. Lastly, for the&nbsp;<strong>likely</strong>&nbsp;projection, a good value would be&nbsp;<strong>2</strong>, as it’s the&nbsp;<strong>median</strong>&nbsp;and the&nbsp;<strong>mode</strong>&nbsp;of this dataset.</p>



<p>The biggest problem with the linear progression is that we are inputting the values for each scenario, something that can be dangerous if the person operating the linear progression doesn’t have a good grasp of data analytics. Furthermore, linear progression ignores variance. Thus, in work systems with high variance of deliveries, the linear progression tool might not be the best approach.</p>



<h2 class="wp-block-heading" id="monte--carlo">MONTE CARLO</h2>



<p>Another technique we can use is called&nbsp;<strong><a href="https://en.wikipedia.org/wiki/Monte_Carlo_method" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Monte Carlo</a></strong>, which runs random picks from our historic throughput data to try and find the likelihood of delivery.</p>



<p>I’m having success using this method, however a question that keeps coming to my mind is: “How many interactions are necessary to make the method statistically valuable and the results reliable?”. Looking for an answer to this question, I’ve researched some statistics books, and also the internet, but wasn’t able to find any information that would help.</p>



<p>So I decided to run a study on this subject. Monte Carlo’s objective is to infer the probability of an event, “forcing” it to happen so many times, in order to use the&nbsp;<a href="https://en.wikipedia.org/wiki/Law_of_large_numbers">law of large numbers</a>&nbsp;in our favor. For example, if you flip a coin a thousand times, count how many times it falls as “heads”, and divide by a thousand, you will get an inference of the probability of getting “heads”.</p>



<p>To check the quality of the method, I first ran tests over probabilities for which I already knew the expected results. After that, I started increasing the complexity of the problem, in order to see if there was any correlation between the difficulty of a problem and the number of interactions necessary for the inferred value from Monte Carlo to be as close as possible to the calculated one.</p>



<p>The objective of the tests is to see how many interactions are necessary for the inferred value to be close enough to the calculated value that the gain of running more interactions would be too low to compensate the computer power necessary to run it (for a project probability standpoint an error in the first or second decimal values would be acceptable). I’d like to highlight that this blog post is not a scientific study of the subject, and the objective is to understand through inference a good value for project predictions.</p>



<h2 class="wp-block-heading" id="the--tests">THE TESTS</h2>



<p>The tests were performed using the programing language&nbsp;<strong>R</strong>, which can be downloaded in this&nbsp;<a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://www.r-project.org/" target="_blank">link</a>. If you would rather use an IDE, I recommend using&nbsp;<a href="https://www.rstudio.com/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">RStudio</a>.</p>



<p>In each test, I’ve run the algorithm&nbsp;<strong>100</strong>&nbsp;times using the following interaction values:&nbsp;<strong>100</strong>&nbsp;(one hundred),&nbsp;<strong>1000</strong>&nbsp;(one thousand),&nbsp;<strong>10000</strong>&nbsp;(ten thousand),&nbsp;<strong>100000</strong>&nbsp;(one hundred thousand),&nbsp;<strong>1000000</strong>&nbsp;(one million),&nbsp;<strong>10000000</strong>&nbsp;(ten million),&nbsp;<strong>100000000</strong>&nbsp;(one hundred million) e&nbsp;<strong>200000000</strong>&nbsp;(two hundred million). The results of these 100 &#8220;rounds&#8221; are then consolidated.</p>



<h3 class="wp-block-heading" id="the--coin">THE COIN</h3>



<p>The first test that I’ve run was the flipping of a single coin. In a coin flip, there is a&nbsp;<strong>50%</strong>&nbsp;chance of it landing on any side, and this is the value we want the Monte Carlo to infer. For that I’ve used the following R code:</p>


<pre class="wp-block-code" aria-describedby="shcb-language-3" data-shcb-language-name="PHP" data-shcb-language-slug="php"><div><code class="hljs language-php">
FLipCoin  &lt;-  <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(iterations)</span>
</span>{
  <span class="hljs-comment"># Creates  a  vector  with  the  possible  values  for  a  coin  1  =  Heads  and  0  =  Tails</span>
  coin  =  c(<span class="hljs-number">0</span>,<span class="hljs-number">1</span>)
  result  =  <span class="hljs-number">0</span>

  <span class="hljs-comment"># Flips  a  number  of  coins  equal  to  the  interaction  value  and  sum  up  all  the  times  where  the  coin  landed  in  "Heads"</span>
  result  =  sum(sample(coin,  iterations,  replace=T))

  <span class="hljs-comment"># Turns  the  value  in  a  percentage  of  the  coin  flips</span>
  result  =  (result/iterations)  *  <span class="hljs-number">100</span>

  <span class="hljs-keyword">return</span>(result)
}

<span class="hljs-comment"># Initiates  variables</span>
result_vector  =  <span class="hljs-number">0</span>
time_vector  =  <span class="hljs-number">0</span>
control  =  <span class="hljs-number">0</span>

<span class="hljs-comment"># Controls  the  interaction  quantity</span>
iterations  =  <span class="hljs-number">100</span>

<span class="hljs-comment"># Alocates  the  percentual  of  "Heads"  results  in  a  100  size  vector  and  the  execution  time  in  another</span>
<span class="hljs-keyword">while</span>(control  !=  <span class="hljs-number">100</span>)
{
  start_time  =  Sys.time()
  result_vector  =  append(result_vector,  FLipCoin(iterations))  
  finish_time  =  Sys.time()

  time  =  finish_time  -  start_time
  time_vector  =  append(time_vector,  time)  

  control  =  control  +  <span class="hljs-number">1</span>
}

<span class="hljs-comment"># Shows  the  percentual  of  "Heads"</span>
result_vector

<span class="hljs-comment"># Shows  the  execution  times</span>
time_vector

</code></div><small class="shcb-language" id="shcb-language-3"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">PHP</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">php</span><span class="shcb-language__paren">)</span></small></pre>


<p>Changing the values of the iterations and compiling the results, I’ve got the following table:</p>



<ul><li> 
<table id="tablepress-12" class="tablepress tablepress-id-12">
<thead>
<tr class="row-1">
	<th class="column-1">Iterations</th><th class="column-2">Min result</th><th class="column-3">Max result</th><th class="column-4">Expected result</th><th class="column-5">Average result</th><th class="column-6">Average result - Expected result</th><th class="column-7">Result's median</th><th class="column-8">Result's median - Expected</th><th class="column-9">result | Result's   Standard deviation</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2">
	<td class="column-1"> 100</td><td class="column-2">33.00000</td><td class="column-3">67.00000</td><td class="column-4">50.00000 </td><td class="column-5">50.02000 </td><td class="column-6">0.02000 </td><td class="column-7">50.00000 </td><td class="column-8">0.00000 </td><td class="column-9">5.09368 </td>
</tr>
<tr class="row-3">
	<td class="column-1">1000</td><td class="column-2">43.60000</td><td class="column-3">56.20000 </td><td class="column-4">50.00000 </td><td class="column-5">49.99440 </td><td class="column-6">0.00560 </td><td class="column-7">50.00000 </td><td class="column-8">0.00000 </td><td class="column-9">1.59105 </td>
</tr>
<tr class="row-4">
	<td class="column-1">10000</td><td class="column-2">48.35000</td><td class="column-3">51.78000 </td><td class="column-4">50.00000 </td><td class="column-5">50.01263 </td><td class="column-6">0.01263 </td><td class="column-7">50.02000 </td><td class="column-8">0.02000 </td><td class="column-9">0.51001 </td>
</tr>
<tr class="row-5">
	<td class="column-1">100000</td><td class="column-2">49.58000</td><td class="column-3">51.78000 </td><td class="column-4">50.00000 </td><td class="column-5">49.99110 </td><td class="column-6">0.00890 </td><td class="column-7">49.99350 </td><td class="column-8">0.00650 </td><td class="column-9">0.15805 </td>
</tr>
<tr class="row-6">
	<td class="column-1">1000000 </td><td class="column-2">49.85170</td><td class="column-3">50.15090 </td><td class="column-4">50.00000 </td><td class="column-5">49.99883 </td><td class="column-6">0.00117 </td><td class="column-7">49.99785 </td><td class="column-8">0.00215 </td><td class="column-9">0.04811 </td>
</tr>
<tr class="row-7">
	<td class="column-1">10000000</td><td class="column-2">49.95433 </td><td class="column-3">50.05807 </td><td class="column-4">50.00000 </td><td class="column-5">50.00013 </td><td class="column-6">0.00013 </td><td class="column-7">50.00010 </td><td class="column-8">0.00010 </td><td class="column-9">0.01564 </td>
</tr>
<tr class="row-8">
	<td class="column-1">100000000</td><td class="column-2">49.98435 </td><td class="column-3">50.01637 </td><td class="column-4">50.00000 </td><td class="column-5">50.00004 </td><td class="column-6">0.00004 </td><td class="column-7">49.99989 </td><td class="column-8">0.00011 </td><td class="column-9">0.00516 </td>
</tr>
<tr class="row-9">
	<td class="column-1">200000000</td><td class="column-2">49.98890</td><td class="column-3">50.01195 </td><td class="column-4">50.00000 </td><td class="column-5">49.99981 </td><td class="column-6">0.00019 </td><td class="column-7">49.99987 </td><td class="column-8">0.00013 </td><td class="column-9">0.00345 </td>
</tr>
</tbody>
</table>
<!-- #tablepress-12 from cache --> </li></ul>



<p>In the instance of a simple problem, like the flipping of a single coin, we can see that a good iteration value could be:</p>



<ul><li>between&nbsp;<strong>10M</strong>&nbsp;and&nbsp;<strong>100M</strong>&nbsp;if you are ok with having an error in the&nbsp;<strong>third decimal</strong>,</li><li>between&nbsp;<strong>100k</strong>&nbsp;and&nbsp;<strong>1M</strong>&nbsp;in the&nbsp;<strong>second decimal</strong></li><li>between&nbsp;<strong>1k</strong>&nbsp;and&nbsp;<strong>10k</strong>&nbsp;in the&nbsp;<strong>first decimal</strong>.</li></ul>



<h3 class="wp-block-heading" id="one--die">ONE DICE</h3>



<p>With the coin test it was possible to infer the number of necessary interactions, based on the desired degree of reliability. However a question remains regarding if this behavior changes for more complex problems. Because of that, I’ve run a similar test with a single six-sided die that has a&nbsp;<strong>16,67%</strong>&nbsp;chance of landing on any side.</p>


<pre class="wp-block-code" aria-describedby="shcb-language-4" data-shcb-language-name="PHP" data-shcb-language-slug="php"><div><code class="hljs language-php">
RollDie  &lt;-  <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(iterations)</span>
</span>{
  <span class="hljs-comment"># Creates  a  vector  with  the  possible  values  of  the  die</span>
  <span class="hljs-keyword">die</span>  =  <span class="hljs-number">1</span>:<span class="hljs-number">6</span>
  result  =  <span class="hljs-number">0</span>

  <span class="hljs-comment"># Alocates  the  die  roll  results</span>
  result  =  sample(<span class="hljs-keyword">die</span>,iterations,replace=T)

  <span class="hljs-comment"># Sum  up  every  instace  where  the  die  landed  on  6</span>
  result  =  sum(result  ==  <span class="hljs-number">6</span>)

​
  <span class="hljs-comment"># Turns  the  value  in  a  percentage  of  the  die  rolls</span>
  result  =  (result/iterations)  *  <span class="hljs-number">100</span>

  <span class="hljs-keyword">return</span>(result)
}

<span class="hljs-comment"># Initiates  variables</span>
result_vector  =  <span class="hljs-number">0</span>
time_vector  =  <span class="hljs-number">0</span>
control  =  <span class="hljs-number">0</span>

<span class="hljs-comment"># Controls  the  interaction  quantity</span>
iterations  =  <span class="hljs-number">100</span>

<span class="hljs-comment"># Alocates  the  percentual  of  "6"  results  in  a  100  size  vector  and  the  execution  time  in  another</span>
<span class="hljs-keyword">while</span>(control  !=  <span class="hljs-number">100</span>)
{
  start_time  =  Sys.time()
  result_vector  =  append(result_vector,  RollDie(iterations))  
  finish_time  =  Sys.time()

​
  time  =  finish_time  -  start_time
  time_vector  =  append(time_vector,  time)  

  control  =  control  +  <span class="hljs-number">1</span>
}

<span class="hljs-comment"># Shows  the  percentual  of  "6"</span>
result_vector

<span class="hljs-comment"># Shows  the  execution  times</span>
time_vector

</code></div><small class="shcb-language" id="shcb-language-4"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">PHP</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">php</span><span class="shcb-language__paren">)</span></small></pre>


<p>Changing the values of the iterations and compiling the results , I’ve got the following table:</p>




<table id="tablepress-12-no-2" class="tablepress tablepress-id-12">
<thead>
<tr class="row-1">
	<th class="column-1">Iterations</th><th class="column-2">Min result</th><th class="column-3">Max result</th><th class="column-4">Expected result</th><th class="column-5">Average result</th><th class="column-6">Average result - Expected result</th><th class="column-7">Result's median</th><th class="column-8">Result's median - Expected</th><th class="column-9">result | Result's   Standard deviation</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2">
	<td class="column-1"> 100</td><td class="column-2">33.00000</td><td class="column-3">67.00000</td><td class="column-4">50.00000 </td><td class="column-5">50.02000 </td><td class="column-6">0.02000 </td><td class="column-7">50.00000 </td><td class="column-8">0.00000 </td><td class="column-9">5.09368 </td>
</tr>
<tr class="row-3">
	<td class="column-1">1000</td><td class="column-2">43.60000</td><td class="column-3">56.20000 </td><td class="column-4">50.00000 </td><td class="column-5">49.99440 </td><td class="column-6">0.00560 </td><td class="column-7">50.00000 </td><td class="column-8">0.00000 </td><td class="column-9">1.59105 </td>
</tr>
<tr class="row-4">
	<td class="column-1">10000</td><td class="column-2">48.35000</td><td class="column-3">51.78000 </td><td class="column-4">50.00000 </td><td class="column-5">50.01263 </td><td class="column-6">0.01263 </td><td class="column-7">50.02000 </td><td class="column-8">0.02000 </td><td class="column-9">0.51001 </td>
</tr>
<tr class="row-5">
	<td class="column-1">100000</td><td class="column-2">49.58000</td><td class="column-3">51.78000 </td><td class="column-4">50.00000 </td><td class="column-5">49.99110 </td><td class="column-6">0.00890 </td><td class="column-7">49.99350 </td><td class="column-8">0.00650 </td><td class="column-9">0.15805 </td>
</tr>
<tr class="row-6">
	<td class="column-1">1000000 </td><td class="column-2">49.85170</td><td class="column-3">50.15090 </td><td class="column-4">50.00000 </td><td class="column-5">49.99883 </td><td class="column-6">0.00117 </td><td class="column-7">49.99785 </td><td class="column-8">0.00215 </td><td class="column-9">0.04811 </td>
</tr>
<tr class="row-7">
	<td class="column-1">10000000</td><td class="column-2">49.95433 </td><td class="column-3">50.05807 </td><td class="column-4">50.00000 </td><td class="column-5">50.00013 </td><td class="column-6">0.00013 </td><td class="column-7">50.00010 </td><td class="column-8">0.00010 </td><td class="column-9">0.01564 </td>
</tr>
<tr class="row-8">
	<td class="column-1">100000000</td><td class="column-2">49.98435 </td><td class="column-3">50.01637 </td><td class="column-4">50.00000 </td><td class="column-5">50.00004 </td><td class="column-6">0.00004 </td><td class="column-7">49.99989 </td><td class="column-8">0.00011 </td><td class="column-9">0.00516 </td>
</tr>
<tr class="row-9">
	<td class="column-1">200000000</td><td class="column-2">49.98890</td><td class="column-3">50.01195 </td><td class="column-4">50.00000 </td><td class="column-5">49.99981 </td><td class="column-6">0.00019 </td><td class="column-7">49.99987 </td><td class="column-8">0.00013 </td><td class="column-9">0.00345 </td>
</tr>
</tbody>
</table>
<!-- #tablepress-12-no-2 from cache -->



<p>We can see that in this case, the iteration values are the same as for the instance of the coin toss, where a good value could be something between&nbsp;<strong>10M</strong>&nbsp;and&nbsp;100M&nbsp;if you need to have an error in the&nbsp;third decimal, between&nbsp;100k&nbsp;and&nbsp;1M&nbsp;for an error in the&nbsp;second decimal&nbsp;and between&nbsp;1k&nbsp;and&nbsp;10k&nbsp;for an error in the&nbsp;<strong>first decimal</strong>.</p>



<p>This test result shows that, either the complexity of the problem has no influence on the number of interactions or that both problems (coin toss and single die roll) have similar complexity levels.</p>



<p>Analyzing the execution times for both problems, it’s possible to see that they took about the same time. This also corroborates with the hypothesis that they have similar complexity levels.</p>



<h3 class="wp-block-heading" id="two-dice">TWO DICE</h3>



<p>To test the hypothesis that the complexity of the above problems were too close, and this was the reason for the interaction values to be close, I’ve decided to double the complexity of the die roll problem by rolling&nbsp;<strong>two</strong>&nbsp;dice instead of only&nbsp;<strong>one</strong>&nbsp;(it’s important to note that doubling the quantity of functions doesn’t always mean that the complexity order will double as well, as it depends on the&nbsp;Big-O Notation). The highest probability value for two dice is&nbsp;7, with&nbsp;a <strong>16,67%</strong>&nbsp;chance of occurrence.</p>


<pre class="wp-block-code" aria-describedby="shcb-language-5" data-shcb-language-name="PHP" data-shcb-language-slug="php"><div><code class="hljs language-php">RollsTwoDice &lt;- <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(iterations)</span>
</span>{
  <span class="hljs-comment"># Creates a vector with the possible values of the die</span>
  <span class="hljs-keyword">die</span> = <span class="hljs-number">1</span>:<span class="hljs-number">6</span>
  result = <span class="hljs-number">0</span>
	
  <span class="hljs-comment"># Alocates the die roll results</span>
  first_roll = sample(<span class="hljs-keyword">die</span>,iterations,replace=T)
  second_roll = sample(<span class="hljs-keyword">die</span>,iterations,replace=T)

  <span class="hljs-comment"># Sum the vector values position-wise</span>
  result = first_roll + second_roll

  <span class="hljs-comment"># Sum up every instace where the dice landed on 7</span>
  result = sum(result == <span class="hljs-number">7</span>)

  <span class="hljs-comment"># Turns the value in a percentage of the dice rolls</span>
  result = (result/iterations) * <span class="hljs-number">100</span>

  <span class="hljs-keyword">return</span>(result)
}

<span class="hljs-comment"># Initiates variables</span>
result_vector = <span class="hljs-number">0</span>
time_vector = <span class="hljs-number">0</span>
control = <span class="hljs-number">0</span>

<span class="hljs-comment"># Controls the interaction quantity</span>
iterations = <span class="hljs-number">100</span>

<span class="hljs-comment"># Alocates the percentual of "7" results in a 100 size vector and the execution time in another</span>
<span class="hljs-keyword">while</span>(control != <span class="hljs-number">100</span>)
{
  start_time = Sys.time()
  result_vector = append(result_vector, RollsTwoDice(iterations)) 
  finish_time = Sys.time()

  time = finish_time - start_time
  time_vector = append(time_vector, time) 

  control = control + <span class="hljs-number">1</span>
}

<span class="hljs-comment"># Shows the percentual of "7"</span>
result_vector

<span class="hljs-comment"># Shows the execution times</span>
time_vector
</code></div><small class="shcb-language" id="shcb-language-5"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">PHP</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">php</span><span class="shcb-language__paren">)</span></small></pre>


<p>Changing the values of the iterations and compiling the results, I’ve got the following table:</p>



<table id="tablepress-13" class="tablepress tablepress-id-13">
<thead>
<tr class="row-1">
	<th class="column-1">Iterations</th><th class="column-2">Min result</th><th class="column-3">Max result</th><th class="column-4">Expected result</th><th class="column-5">Average result</th><th class="column-6">Average result - Expected result</th><th class="column-7">Result's median</th><th class="column-8">Result's median - Expected</th><th class="column-9">result | Result's   Standard deviation</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2">
	<td class="column-1"> 100</td><td class="column-2">6.00000</td><td class="column-3">28.00000</td><td class="column-4">16.66667</td><td class="column-5">16.58100</td><td class="column-6">-0.08567</td><td class="column-7">16.00000</td><td class="column-8">-0.66667</td><td class="column-9">3.64372</td>
</tr>
<tr class="row-3">
	<td class="column-1">1000</td><td class="column-2">13.20000</td><td class="column-3">20.40000</td><td class="column-4">16.66667</td><td class="column-5">16.68500</td><td class="column-6">0.01833</td><td class="column-7">16.60000</td><td class="column-8">-0.06667</td><td class="column-9">1.16949</td>
</tr>
<tr class="row-4">
	<td class="column-1">10000</td><td class="column-2">15.60000</td><td class="column-3">17.94000</td><td class="column-4">16.66667</td><td class="column-5">16.65962</td><td class="column-6">-0.00705</td><td class="column-7">16.67000</td><td class="column-8">0.00333</td><td class="column-9">0.38072</td>
</tr>
<tr class="row-5">
	<td class="column-1">100000</td><td class="column-2">16.22200</td><td class="column-3">17.06200</td><td class="column-4">16.66667</td><td class="column-5">16.66109</td><td class="column-6">-0.00557</td><td class="column-7">16.66500</td><td class="column-8">-0.00167</td><td class="column-9">0.11356</td>
</tr>
<tr class="row-6">
	<td class="column-1">1000000 </td><td class="column-2">16.54960</td><td class="column-3">16.54960</td><td class="column-4">16.66667</td><td class="column-5">16.66616</td><td class="column-6">-0.00050</td><td class="column-7">16.66790</td><td class="column-8">0.00123</td><td class="column-9">0.03650</td>
</tr>
<tr class="row-7">
	<td class="column-1">10000000</td><td class="column-2">16.63294</td><td class="column-3">16.70266</td><td class="column-4">16.66667</td><td class="column-5">16.66607</td><td class="column-6">-0.00060</td><td class="column-7">16.66577</td><td class="column-8">-0.00090</td><td class="column-9">0.01220</td>
</tr>
<tr class="row-8">
	<td class="column-1">100000000</td><td class="column-2">16.65592</td><td class="column-3">16.67948</td><td class="column-4">16.66667</td><td class="column-5">16.66670</td><td class="column-6">0.00004</td><td class="column-7">16.66679</td><td class="column-8">0.00012</td><td class="column-9">0.00372</td>
</tr>
<tr class="row-9">
	<td class="column-1">200000000</td><td class="column-2">16.65787</td><td class="column-3">16.67476</td><td class="column-4">16.66667</td><td class="column-5">16.66671</td><td class="column-6">0.00004</td><td class="column-7">16.66671</td><td class="column-8">0.00004</td><td class="column-9">0.00267</td>
</tr>
</tbody>
</table>
<!-- #tablepress-13 from cache -->



<p>Again we find the same interaction quantity for each error level. In the case of this problem it’s possible to identify that it was more complex since the execution for 200M took on average&nbsp;<strong>7.47 seconds longer</strong>&nbsp;when compared to the single die roll.</p>



<h3 class="wp-block-heading" id="five-dice">FIVE DICE</h3>



<p>The inference that I’ve built until this point is that the complexity of the problem influences very little in the iteration quantities, but to be sure of that, I ran one last test with 5 dice. The highest probability when rolling five dice is the values of&nbsp;<strong>17</strong>&nbsp;and&nbsp;<strong>18</strong>, with&nbsp;<strong>10.03%</strong>&nbsp;probability each.</p>



<p>Since this problem is a lot more complex than the others I’ve decided to run only 10 times each instead of 100.</p>


<pre class="wp-block-code" aria-describedby="shcb-language-6" data-shcb-language-name="PHP" data-shcb-language-slug="php"><div><code class="hljs language-php">RollsFiveDice &lt;- <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(iterations)</span>
</span>{
  <span class="hljs-comment"># Creates a vector with the possible values of the die</span>
  dado = <span class="hljs-number">1</span>:<span class="hljs-number">6</span>
  result = <span class="hljs-number">0</span>
	
  <span class="hljs-comment"># Alocates the die roll results</span>
  first_roll = sample(dado,iterations,replace=T)
  second_roll = sample(dado,iterations,replace=T)
  terceira_rolagem = sample(dado,iterations,replace=T)
  quarta_rolagem = sample(dado,iterations,replace=T)
  quinta_rolagem = sample(dado,iterations,replace=T)

  <span class="hljs-comment"># Sum the vector values position-wise</span>
  result = first_roll + second_roll + terceira_rolagem + quarta_rolagem + quinta_rolagem

  <span class="hljs-comment"># Sum up every instace where the dice landed on 18</span>
  result = sum(result == <span class="hljs-number">18</span>)

  <span class="hljs-comment"># Turns the value in a percentage of the dice rolls</span>
  result = (result/iterations) * <span class="hljs-number">100</span>
	
  <span class="hljs-keyword">return</span>(result)
}

<span class="hljs-comment"># Initiates variables</span>
result_vector = <span class="hljs-number">0</span>
time_vector = <span class="hljs-number">0</span>
control = <span class="hljs-number">0</span>

<span class="hljs-comment"># Controls the interaction quantity</span>
iterations = <span class="hljs-number">10</span>

<span class="hljs-comment"># Alocates the percentual of "18" results in a 100 size vector and the execution time in another</span>
<span class="hljs-keyword">while</span>(control != <span class="hljs-number">100</span>)
{
  start_time = Sys.time()
  result_vector = append(result_vector, RollsFiveDice(iterations)) 
  finish_time = Sys.time()

  time = finish_time - start_time
  time_vector = append(time_vector, time) 

  control = control + <span class="hljs-number">1</span>
}

<span class="hljs-comment"># Shows the percentual of "18"</span>
result_vector

<span class="hljs-comment"># Shows the execution times</span>
time_vector
</code></div><small class="shcb-language" id="shcb-language-6"><span class="shcb-language__label">Code language:</span> <span class="shcb-language__name">PHP</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">php</span><span class="shcb-language__paren">)</span></small></pre>


<p>Changing the values of the iterations and compiling the results, I’ve got the following table:</p>



<table id="tablepress-14" class="tablepress tablepress-id-14">
<thead>
<tr class="row-1">
	<th class="column-1">Iterations</th><th class="column-2">Min result</th><th class="column-3">Max result</th><th class="column-4">Expected result</th><th class="column-5">Average result</th><th class="column-6">Average result - Expected result</th><th class="column-7">Result's median</th><th class="column-8">Result's median - Expected result</th><th class="column-9">Result's  Standard deviation</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2">
	<td class="column-1"> 100</td><td class="column-2">5.00000</td><td class="column-3">31.00000</td><td class="column-4">16.66667</td><td class="column-5">16.37100</td><td class="column-6">-0.29567</td><td class="column-7">16.00000</td><td class="column-8">-0.66667</td><td class="column-9">3.77487</td>
</tr>
<tr class="row-3">
	<td class="column-1">1000</td><td class="column-2">13.40000</td><td class="column-3">21.80000</td><td class="column-4">16.66667</td><td class="column-5">16.64710</td><td class="column-6">-0.01957</td><td class="column-7">16.60000</td><td class="column-8">-0.06667</td><td class="column-9">1.18550</td>
</tr>
<tr class="row-4">
	<td class="column-1">10000</td><td class="column-2">15.33000</td><td class="column-3">17.77000</td><td class="column-4">16.66667</td><td class="column-5">16.68307</td><td class="column-6">0.01640</td><td class="column-7">16.68500</td><td class="column-8">0.01833</td><td class="column-9">0.38059</td>
</tr>
<tr class="row-5">
	<td class="column-1">100000</td><td class="column-2">16.23100</td><td class="column-3">17.06600</td><td class="column-4">16.66667</td><td class="column-5">16.66546</td><td class="column-6">-0.00120</td><td class="column-7">16.66800</td><td class="column-8">0.00133</td><td class="column-9">0.11597</td>
</tr>
<tr class="row-6">
	<td class="column-1">1000000 </td><td class="column-2">16.54450</td><td class="column-3">16.81170</td><td class="column-4">16.66667</td><td class="column-5">16.66657</td><td class="column-6">-0.00010</td><td class="column-7">16.66860</td><td class="column-8">0.00193</td><td class="column-9">0.03798</td>
</tr>
<tr class="row-7">
	<td class="column-1">10000000</td><td class="column-2">16.62888</td><td class="column-3">16.70282</td><td class="column-4">16.66667</td><td class="column-5">16.66683</td><td class="column-6"> 0.00016</td><td class="column-7">16.66705</td><td class="column-8">0.00038</td><td class="column-9">0.01155</td>
</tr>
<tr class="row-8">
	<td class="column-1">100000000</td><td class="column-2">16.65408</td><td class="column-3">16.67899</td><td class="column-4">16.66667</td><td class="column-5">16.66669</td><td class="column-6">0.00002</td><td class="column-7">16.66673</td><td class="column-8">0.00007</td><td class="column-9">0.00382</td>
</tr>
<tr class="row-9">
	<td class="column-1">200000000</td><td class="column-2">16.65881</td><td class="column-3">16.67455</td><td class="column-4">16.66667</td><td class="column-5">16.66675</td><td class="column-6">0.00009</td><td class="column-7">16.66682</td><td class="column-8">0.00015</td><td class="column-9">0.00258</td>
</tr>
</tbody>
</table>
<!-- #tablepress-14 from cache -->



<p>Once again we can see that the values for the iterations are the same as above. It’s possible to notice that this problem is clearly more complex, as it took&nbsp;<strong>35 seconds longer</strong>&nbsp;when compared to the roll of a single die.</p>



<h2 class="wp-block-heading" id="conclusion">CONCLUSION</h2>



<p>After running those tests, it’s possible to conclude that for the use on project management, a good iteration value would be somewhere between&nbsp;<strong>1k</strong>&nbsp;and&nbsp;<strong>100M</strong>, depending on the error level as shown below:</p>



<ul><li>Error in the first decimal: 1k to 10k</li><li>Error in the second decimal: 100k to 1M</li><li>Error in the third decimal: 10M to 100M</li></ul>



<p>The value that I’ve been using is 3M, for stakeholder reports. However, when I’m running the method for my own analysis, I use a lower value, somewhere between 250k and 750k.</p>



<p>How about you? Have you tried to run Monte Carlo Simulations? How many iterations are you using? Tell us in the comment section below or on Twitter @plataformatec.</p><p>The post <a href="/2019/10/monte-carlo-in-practice-finding-the-ideal-iteration-value/">Monte Carlo in Practice: Finding the ideal iteration value</a> first appeared on <a href="/">Plataformatec Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
