Baixe o app para aproveitar ainda mais
Prévia do material em texto
04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 1/43 Técnicas de estimativa de esforço e custo Prof. Bruno Freitas Braga Descrição Definição e aplicação de técnicas de estimativa de esforço e custo para o gerenciamento de projetos de software. Propósito Compreender as técnicas de estimativa de esforço e custo é essencial para os profissionais de Tecnologia de Informação (TI) escolherem a abordagem mais adequada para o gerenciamento de seus projetos de software, em processos de desenvolvimento convencionais ou ágeis. Objetivos Módulo 1 Estimativas de esforço e custo utilizando COCOMO Aplicar cálculos para fazer estimativas de esforço e custo utilizando COCOMO. Módulo 2 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 2/43 Técnicas PERT e CPM Empregar as técnicas PERT e CPM para estimar a duração de projetos de software. Módulo 3 Métricas de estimativas em projetos ágeis Analisar as métricas utilizadas para fazer estimativas em projetos ágeis. Neste conteúdo, aprenderemos as principais técnicas utilizadas para fazer estimativas de esforço, custo, duração e tamanho, as quais são essenciais para se fazer o planejamento e o acompanhamento de projetos de software. Iremos apresentar os modelos matemáticos e aplicar as equações derivadas de estudos e melhores práticas realizados pelos principais Engenheiros de Software do segmento de métricas. Vamos fazer cálculos utilizando fórmulas do modelo COCOMO (COnstructive COst MOdel) como referência, para realizar estimativas de esforço e custo a partir de exemplos do cotidiano. Utilizando os métodos PERT (Program Evaluation and Review Technique) e CPM (Critical Path Method), iaprenderemos a fazer estimativas de duração do projeto que são essenciais para a elaboração de cronogramas. Finalmente, serão apresentadas as métricas utilizadas para o gerenciamento de projetos ágeis e como aplicá-las. Introdução 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 3/43 1 - Estimativas de esforço e custo utilizando COCOMO Ao �nal deste módulo, você será capaz de aplicar cálculos para fazer estimativas de esforço e custo utilizando COCOMO. COCOMO I O Modelo Construtivo de Custos ou COCOMO (COnstructive COst MOdel) foi desenvolvido e apresentado em 1981, por Barry W. Boehm. É um modelo empírico de custos, baseado no estudo de sessenta e três projetos de software, nos quais se examinaram de 2.000 a 100.000 linhas de código em linguagens de programação diversas, variando de Assembly a PL/I. O COCOMO é um modelo matemático de base empírica utilizado para estimativa de esforço, custos e tempo requerido para o desenvolvimento de um projeto. Os parâmetros básicos que definem a qualidade de qualquer produto de software, que também são um resultado do COCOMO, são esforço e duração: 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 4/43 Quantidade de trabalho despendido nas atividades de um projeto de software, medido em unidades de pessoas.mês (lê-se pessoas-mês), isto é, o número de pessoas multiplicado pelo número de meses em que elas estiverem envolvidas. Tempo necessário para o desenvolvimento do trabalho, isto é, o resultado da divisão do esforço pelo número de pessoas, medido em meses. Classi�cação dos sistemas para aplicação do COCOMO A versão original do modelo COCOMO passou a ser designada como COCOMO I ou COCOMO 81 após o advento de sua segunda versão, COCOMO II, em 1994. O COCOMO I define três modos de desenvolvimento, ou tipos de projeto a estimar, segundo o tamanho e a complexidade do sistema, para adaptar as fórmulas (que são sempre as mesmas), mudando somente os fatores e os expoentes. As classes de sistema são: Esforço Duração Orgânico ou simples Sistemas de complexidade relativamente baixa, com menos de 50 KLOC (mil linhas de código), nos quais se possui experiência em projetos similares e que se encontram em ambientes estáveis de desenvolvimento. Semidestacado Sistemas médios em complexidade e tamanho (menores do que 300 KLOC), em que a experiência com esse tipo de projeto é variável e as restrições intermediárias. ( ) 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 5/43 A fórmula para calcular o esforço de um projeto de software depende primeiramente da quantidade de linhas de código expressas em KLOC (mil linhas de código), que define o tamanho físico do projeto que se pretende desenvolver. A partir dela, podemos classificar o tipo do projeto, ou seja, Orgânico, Semidestacado ou Embutido, derivando-se valores de constantes obtidas a partir de uma tabela desenvolvida por Boehm. A equação para realizar esse cálculo é dada por: $$\begin{equation} $$ \frac{\text { d_observado }}{\text { (d_max - d_min) }} $$ \end{equation}$$ pessoa.mês Os valores das constantes a e b são derivados da tabela a seguir: Projeto de Software a b c d Orgânico 3,2 1,05 2,5 0 Semidestacado 3,0 1,12 2,5 0 Embutido 2,8 1,20 2,5 0 Tabela: Constantes para o cálculo de estimativas. Traduzida e adaptada por Bruno Freitas Braga de Boehm, 1981, p. 209. As constantes a e b são utilizadas para calcular o esforço, ou seja, a quantidade do trabalho necessário para concluir o projeto, enquanto as constantes c e d são utilizadas para calcular o tempo de desenvolvimento do projeto em meses. Por exemplo, se o meu projeto for Orgânico, ou seja, com menos do que 50 KLOC, irei aplicar a seguinte fórmula: $$E S F=3,2 * K L O C^{1,05}$$ Já, se o meu projeto for Semidestacado, isto é, entre 50 e 300 KLOC, irei aplicar a fórmula a seguir: $$E S F=3,0 * K L O C^{1,12}$$ Embutido (embedded) Sistema muito complexo, nos quais se tem pouca experiência e que se encontra em um ambiente de grande inovação técnica. Ademais, o projeto trata de requisitos muito restritivos e de grande volatilidade, problema único, difícil de se basear na experiência. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 6/43 E, se o meu projeto for muito complexo e único, como projetos que envolvem algoritmos genéticos, por exemplo, ou um projeto militar de um software com Inteligência Artificial para teleguiar mísseis, podemos aplicar a seguinte fórmula: $$E S F=2,8 * K L O C^{1,20}$$ É importante salientar que nem sempre é possível se obter a quantidade de linhas de código nas fases iniciais do projeto, mesmo utilizando bases de dados históricas de projetos da sua empresa ou obtidas no mercado e, nesse caso, existe uma técnica que faz a previsão de linhas de código a partir do tamanho funcional do projeto utilizando pontos de função, conhecida como Backfiring, que disponibiliza tabelas de conversão entre pontos de função e linhas de código por linguagem de programação ou por área de negócio. Nesse caso, pode-se utilizar essa técnica para estimar o tamanho físico do seu projeto (KLOC) e, a partir dele, fazer as estimativas iniciais de esforço, tempo e custos. Baseado no esforço, que aprendemos a calcular anteriormente, podemos estimar o tempo de desenvolvimento do projeto em meses, utilizando a seguinte equação: $$T D E S=c * E S F^{d}$$ meses Os valores das constantes c e d são obtidos da Tabela 1 já apresentada. Por exemplo, se o meu projeto for classificado como orgânico, irei aplicar a fórmula como está a seguir: $$T D E S=2,5 * E S F^{0,38}$$ Se o projeto for classificado como semidestacado ou embutido, basta substituirmos os valores das constantes c e d pelo seu respectivo valor obtido na Tabela 1. Finalmente, o número médio de pessoas na equipe do projeto, distribuídas ao longo do tempo, pode ser calculado pelaseguinte fórmula: Equipe média $$=\frac{E S F}{T D E S}$$ pessoas Modelos de estimativa do COCOMO Além da classificação dos projetos para fins de utilização do COCOMO (projeto: Orgânico, Semidestacado ou Embutido), existem diferentes modelos de estimativa que podem ser aplicados dependendo do contexto e da complexidade do projeto: Modelo COCOMO básico Trata de estimar, de uma maneira rápida, a maioria dos projetos pequenos e médios. Modelo COCOMO intermediário Introduz 15 atributos de custo para levar em consideração o ambiente de trabalho. Esses 15 atributos são como perguntas sobre a viabilidade de desenvolvimento. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 7/43 Modelo COCOMO detalhado Incorpora todas as características da versão intermediária e aqui se aplica toda a Engenharia de Software, como o seu ciclo de vida e os modelos. Aplicando o modelo COCOMO básico Para entendermos melhor como fazer a estimativa de custos baseada nos modelos apresentados, faremos um exemplo prático a seguir utilizando o modelo de estimativa básico. 1º passo: Estimativa da qualidade da instrução $$L O C=120 * F D E / S$$ Em que: LOC = Quantidade de linhas de código que o sistema terá. FD E/S = Fluxo de entrada + fluxo de saída do sistema (pode-se usar diagrama de casos de uso). O primeiro valor (120) é fixo e foi determinado por Boehm. Supondo que o nosso sistema possua 15 casos de uso, para calcular LOC, substituiremos a variável FD E/S por esse valor, como demonstramos a seguir: $$L O C=120 * 15=1800$$ linhas de código Agora, iremos converter o LOC para a unidade de medida KLOC (mil linhas de código) aplicando a equação abaixo: $$K L O C=\frac{L O C}{1000}$$ Logo, dividindo 1.800 linhas de código, que foi o resultado que obtivemos, por 1.000, chegaremos ao valor de 1,8 KLOC, ou seja, o nosso sistema terá 1,8 mil linhas de código-fonte. 2º passo: Estimativa do esforço ou equação de esforço Como estimamos que o tamanho do nosso projeto será de 1,8 KLOC; então, classificamos o nosso projeto como Orgânico, pois tem menos do que 50 KLOC. A partir dessa informação, podemos utilizar a Tabela 1 para calcular o esforço do projeto em pessoas.mês. Logo: $$E S F=a * K L O C^{b} \rightarrow E S F=3,2 *(1,8)^{1,05} \rightarrow E S F=5,93$$ pessoas.mês 3º passo: Estimativa de tempo de desenvolvimento Como estimamos que o esforço do nosso projeto será de 5,93; então, podemos aplicar a equação a seguir para calcular o tempo de desenvolvimento do projeto em meses substituindo as constantes c e d pelos 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 8/43 valores contidos na tabela Constantes para o cálculo de estimativas, lembrando que o nosso projeto foi classificado como Orgânico. $$T D E S=c * E S F^{d} \rightarrow T D E S=2,5 *(5,93)^{0,38} \rightarrow T D E S=4,92$$ meses 4º passo: Estimativa do pessoal necessário Tendo estimado o esforço e o tempo de desenvolvimento, para calcularmos a quantidade média de pessoas necessárias ao longo do projeto, basta dividir o esforço em pessoas.mês pelo tempo em meses. Equipe média $$=\frac{E S F}{T D E S} \rightarrow$$ Equipe média $$=\frac{5,93}{4,92} \rightarrow$$ Equipe média $$=1,21$$ pessoas Esse número médio de pessoas significa que, ao longo do tempo de desenvolvimento (aproximadamente 5 meses), a equipe necessária será formada por 1 a 2 pessoas, de modo que, na média, a equipe será de 1,21 pessoas. 5º passo: Estimativa de produtividade Antes de estimar o custo do meu projeto, é importante calcularmos com que produtividade devo trabalhar e a que velocidade estou trabalhando. Podemos calcular a produtividade, ou seja, a quantidade de linhas de código que cada programador irá produzir em cada mês, utilizando a equação a seguir: $$P=\frac{L O C}{E S F}$$ Como já estimamos que o nosso software terá 1.800 LOC (linhas de código) e que o esforço para o desenvolver será de 5,93 pessoas.mês, aplicando a equação de produtividade, chegaremos ao resultado de 303,54, o que dá aproximadamente 304 linhas de código. Devemos nos basear nesse indicador para controlar o que está acontecendo no projeto, ou seja, se a produtividade estiver mais baixa do que esse valor, não iremos alcançar os objetivos do projeto e, se estiver muito superior a essa média, pode indicar que há algum problema no projeto. Devemos procurar manter a produtividade do projeto próximo dessa média. 6º passo: Estimativa de custo Para calcularmos o custo da equipe (em reais), iremos utilizar a fórmula a seguir: Custo da equipe $$=E S F * C P$$ Sendo ESF igual ao esforço que já calculamos no valor de 5,93 pessoas.mês e a constante CP correspondente ao custo da pessoa por mês, isto é, o salário mensal dos trabalhadores do projeto. Se considerarmos um salário médio de desenvolvedor de software no Brasil, para efeito de cálculo, podemos atribuir o valor de R$3.500,00 ao CP. O valor do CP pode variar e depende muito do nível e da especialidade do profissional que irá ser contratado. A seguir, iremos aplicar a equação para obter o custo da equipe no projeto: Custo da equipe $$=5,93 * 3.500,00=R \$ 20.755,00$$ 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 9/43 Atenção É importante salientar que estamos aqui calculando somente o custo do desenvolvimento do software, desconsiderando outros custos envolvidos, como o do investimento em marketing, o da compra de computadores, dentre outros. Veja, a seguir, um demonstrativo de como fazer uma estimativa de custo considerando os outros custos envolvidos, em que se destaca o custo da mão de obra, até porque custos de equipamentos podem ser diluídos em vários projetos. Investimento do projeto Custo da equipe R$20.755,00 1 computador i7 de 8ª geração R$5.000,00 Outros equipamentos R$3.000,00 Cartuchos de impressora R$300,00 Custo da implantação R$1.800,00 Total R$30.855,00 Estimativa de custos totais do projeto. Elaborada por Bruno Freitas Braga COCOMO intermediário O modelo do COCOMO básico assume que o esforço é somente uma função baseada no número de linhas de código e algumas constantes avaliadas de acordo com os diferentes tipos de software. Entretanto, na realidade, o esforço e a duração do projeto não devem ser calculados baseando-se somente na quantidade de linhas de código. Existem vários outros fatores que influenciam, como: confiabilidade, experiência, capacidade, dentre outros. Esses fatores são conhecidos como cost drivers (ou fatores de custo) e o COCOMO intermediário utiliza 15 fatores para realizar as estimativas de custos, que são classificados conforme podemos observar na tabela a seguir: Fatores de custo Muito baixo Baixo Nominal A 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 10/43 Fatores de custo Muito baixo Baixo Nominal A Atributos do produto Confiabilidade de software exigida 0,75 0,88 1,00 1 Tamanho do banco de dados 0,94 1,00 1 Complexidade do produto 0,70 0,85 1,00 1 Atributos de hardware Restrições de desempenho de tempo de execução 1,00 1 Restrições de memória 1,00 1 Volatilidade do ambiente da máquina virtual 0,87 1,00 1 Tempo de retorno necessário 0,87 1,00 1 Atributos pessoais Capacidade como analista 1,46 1,19 1,00 0 Experiência com aplicações 1,29 1,13 1,00 0 Capacidade como engenheiro de software 1,42 1,17 1,00 0 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 11/43 Fatores de custo Muito baixo Baixo Nominal A Experiência com máquina virtual 1,21 1,10 1,00 0 Experiência em Linguagem de Programação 1,14 1,07 1,00 0 Atributos de projeto Aplicação de métodos de Engenharia de Software 1,241,10 1,00 0 Uso de ferramentas de software 1,24 1,10 1,00 0 Cronograma de desenvolvimento necessário 1,23 1,08 1,00 1 Tabela: Fatores de custo do COCOMO Intermediário. Traduzida e adaptada por Bruno de Freitas Braga, de Boehm, 1981, p. 210. O gerente de projetos deve classificar esses 15 atributos para um projeto específico, na escala de valores “muito baixo” a “muito alto”. Desse modo, o valor de cada fator de custo é obtido da tabela acima. Esses 15 valores são, então, multiplicados para calcular o EAF (fator de ajuste do esforço). Note que o fator de custo de valor nominal será sempre igual a 1, significando que não influirá no valor final de EAF. $$E A F=\prod_{i=1}^{i=15}(\text { Fator de custo })_{i}$$ A fórmula do COCOMO intermediário assume a seguinte forma: $$E S F=\left(a * K L O C^{b}\right) * E A F$$ Os valores das constantes a e b no COCOMO intermediário são os mesmos valores utilizados no modelo COCOMO básico. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 12/43 COCOMO II O modelo COCOMO II é um modelo paramétrico, criado pela USC - University of Southern California, no mesmo departamento do professor Barry Boehm, em meados de 1994. Esse modelo permite calcular o esforço, o custo e o prazo de um projeto através de equações matemáticas complexas, que levam em consideração particularidades de cada projeto, como: características do produto, processo, experiência da equipe e plataforma de desenvolvimento. Esses fatores são também denominados cost drivers (ou fatores de custo), como extensão ao modelo intermediário do COCOMO I, sendo alguns fatores de efeito linear e outros de efeito exponencial. Para implantar esse novo modelo, as organizações precisam de uma base histórica de projetos, suficiente para estudos estatísticos. Normalmente, as empresas iniciam o uso do COCOMO II quando as técnicas de estimativas de projetos, como APF (Análise de Pontos de Função) e Nesma (Netherlands Software Metrics Association– Associação de Métricas de Software da Holanda), já estão consolidadas. O modelo COCOMO II foi desenvolvido a partir do modelo COCOMO I, em virtude do surgimento de novas linguagens de programação e de abordagens mais modernas para o desenvolvimento de software, tais como os ambientes de desenvolvimento rápido (RAD – Rapid Application Development), processos ágeis, componentização e novas tecnologias de banco de dados. O COCOMO II é composto por quatro submodelos que são: Modela o esforço necessário para desenvolver sistemas criados a partir de componentes reusáveis, scripts ou programação de banco de dados. Suas estimativas de tamanho baseiam-se em pontos de aplicação. Esses pontos são calculados de acordo com: o número de telas separadas que são exibidas; o número de relatórios que são produzidos; o número de módulos em linguagens de programação imperativas (como o Java); e o número de linhas de linguagem de script ou código de programação de banco de dados (SOMMERVILLE, 2011). Modelo de composição da aplicação 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 13/43 Esse modelo é usado durante as fases iniciais de projeto do sistema, após os requisitos serem estabelecidos. Suas estimativas são baseadas nos pontos de função, os quais são convertidos em linhas de código, com uso de tabelas de correspondência dependendo da linguagem de programação. É usado para calcular o esforço necessário para integrar os componentes reusáveis e/ou códigos de programa gerados automaticamente. Esse modelo inclui um conjunto de 17 multiplicadores, refletindo a capacidade pessoal, o produto e as características do projeto. Na imagem a seguir, podemos visualizar os modelos de estimativa que acabamos de descrever: Modelos de estimativa Estimativa de esforço e custo de software usando o Modelo de projeto preliminar Modelo de reuso Modelo de pós-arquitetura 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 14/43 modelo COCOMO No vídeo a seguir, descrevemos a aplicação de cálculos para estimativa de esforço e custo de desenvolvimento de software usando o modelo COCOMO I (básico e intermediário) e abordamos as extensões do COCOMO II. Vem que eu te explico! Os vídeos a seguir abordam os assuntos mais relevantes do conteúdo que você acabou de estudar. COCOMO I básico 01:57 min. COCOMO II 02:02 min. MÓDULO 1 Vem que eu te explico! COCOMO I básico 01:57 min. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 15/43 COCOMO II Falta pouco para atingir seus objetivos. Vamos praticar alguns conceitos? Questão 1 Sobre o modelo COCOMO (COnstructive COst MOdel) analise as seguintes alternativas e marque a opção correta: A O modelo COCOMO é um modelo empírico baseado em pontos de função. B O modelo COCOMO classifica os projetos em três classes que variam conforme o tamanho do projeto, em linhas de código, e a sua complexidade. C Os projetos classificados como “Orgânicos” são aqueles que possuem complexidade média e tamanho acima de 200 KLOC. D O modelo básico do COCOMO leva em consideração um fator de ajuste para realizar o cálculo do esforço do projeto. E O modelo avançado do COCOMO é recomendado para projetos estáticos que possuam até 50 KLOC. Parabéns! A alternativa B está correta. O modelo COCOMO classifica os projetos em três classes: Orgânico, Semidestacado e Embutido. O tipo Orgânico é recomendado para projetos pequenos com até 50 KLOC (mil linhas de código), enquanto o tipo Semidestacado é recomendado para projetos intermediários, com até 200 KLOC 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 16/43 e, por fim, o tipo Embutido é recomendado para projetos muito complexos, que demandem grande inovação tecnológica. Questão 2 O Modelo COCOMO II surgiu devido à evolução da área de Ciência da Computação. Sobre esse modelo, analise as alternativas abaixo e marque a opção correta: A O modelo COCOMO II não é um modelo empírico e sim um modelo baseado em algoritmos matemáticos. B O modelo COCOMO II incorpora quatro submodelos que produzem estimativas cada vez mais detalhadas. C O submodelo de composição da aplicação se baseia no número de pontos de função da aplicação. D O submodelo de reuso é usado por sistemas de protótipo desenvolvidos usando scripts e programação de banco de dados. E O submodelo de pós-arquitetura utiliza número de pontos de aplicação para estimar o seu tamanho. Parabéns! A alternativa B está correta. O modelo COCOMO II incorpora quatro submodelos: modelo de composição da aplicação, modelo de projeto preliminar, modelo de reuso e modelo de pós-arquitetura. Cada um desses submodelos é empregado de acordo com o perfil do projeto que se pretende desenvolver, como protótipo, ou integração de componentes reusáveis ao sistema, dentre outros. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 17/43 2 - Técnicas PERT e CPM Ao �nal deste módulo, você será capaz de empregar as técnicas PERT e CPM para estimar a duração de projetos de software. Contextualização A fase de estimativa da duração de um projeto é um dos principais desafios dos gerentes de projetos e, por se tratar de uma atividade complexa, é um dos pontos que merecem atenção, pois falhas cometidas nessa fase podem comprometer o sucesso do projeto. O PMI (Project Management Institute ou Instituto de Gerenciamento de Projetos), desde as primeiras publicações do seu guia PMBOK (Project Management Body of Knowledge ou Conjunto de Conhecimentos em Gerenciamento de Projetos), atualmente na 7ªedição, vem dedicando uma área de conhecimento exclusivamente ao gerenciamento do cronograma do projeto, que fornece as diretrizes e as técnicas mais eficazes utilizadas pelas indústrias de Engenharia, TI, dentre outras. Atenção Antes de identificar e listar todas as atividades do projeto a partir das quais são criados o cronograma e o orçamento do projeto, é importante conhecermos de onde são derivadas essas atividades, segundo o guia PMBOK. Uma área de conhecimento denominada gerenciamento do escopo do projeto descreve uma ferramenta 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 18/43 importante que nos fornece uma visão do projeto como um todo, conhecida como WBS (Work Breakdown Structure ou Estrutura Analítica do Projeto). Essa ferramenta utiliza uma técnica de decomposição que divide o projeto em partes menores e mais fáceis de gerenciar. São dessas partes menores, conhecidas como entregáveis (deliverables), que derivamos as atividades do projeto. Para simplificarmos o entendimento, cada entregável do projeto possui um conjunto de atividades, e a soma dos valores das atividades de cada entregável nos fornecem as estimativas de duração e de custos do entregável em questão. Por fim, a soma das estimativas de todos os entregáveis nos fornecem as estimativas do projeto. Segue um exemplo de uma WBS de um projeto de software organizado em fases de desenvolvimento: WBS de um Projeto de Software. Essa abordagem mais tradicional proposta pelo PMI é recomendada para o gerenciamento de projetos grandes e complexos como a construção de uma aeronave, a construção de foguetes espaciais ou a criação de um software estratégico de satélite para monitoramento da floresta amazônica, por exemplo. Gerenciar projetos desse porte envolve uma série de fatores complexos que precisam ser identificados, planejados e monitorados. Com o intuito de elaborar estimativas mais assertivas e gerenciá-los melhor, foram propostos os métodos PERT (Program Evaluation and Review Technique ou Técnica de Revisão e Avaliação de Programa), associado ao CPM (Critical Path Method ou Método do Caminho Crítico), os quais realizam suas análises e 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 19/43 avaliações partindo do nível das atividades do projeto. Ambos os métodos são essenciais nas fases de planejamento e de controle do projeto. Apesar das técnicas PERT e CPM terem sido desenvolvidas independentemente em torno de 1958, o forte relacionamento entre elas fez com que o termo fosse utilizado corriqueiramente como apenas uma técnica, denominada PERT/CPM. Saiba mais É importante salientar que existem outras técnicas para estimar as durações das atividades do projeto, como a estimativa analógica, que obtém os parâmetros de projetos já realizados para realizar as estimativas dos projetos futuros, a estimativa paramétrica, a análise de reservas, dentre outras. Nesse estudo, daremos enfoque aos métodos PERT e CPM. A técnica de Avaliação e Revisão de Programa (PERT) A técnica PERT, conhecida também como estimativa de três pontos, foi criada em 1958 nos Estados Unidos pela NASA e consiste em descobrir a duração de uma atividade, baseando-se em três estimativas possíveis para a atividade que são: Otimista, Pessimista e Mais Provável. Essa técnica visa reduzir as chances de falhas na implementação dos novos projetos, levando-se em consideração os riscos envolvidos em cada etapa do projeto, para se chegar a uma estimativa mais precisa, e é preciso contar com a experiência de especialistas para empregá-la. A combinação das três estimativas possíveis é o grande diferencial do método PERT, porque pondera os riscos e as incertezas pertinentes à atividade em questão do projeto. Primeiramente, devemos obter com os especialistas as estimativas Otimista, Pessimista e Mais Provável para uma atividade. O PMBOK define esses três pontos da seguinte forma: Mais Provável ($$t_{M}$$) 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 20/43 A duração da atividade, dados os prováveis recursos a serem designados, sua produtividade, expectativas realistas de disponibilidade para executar a atividade, dependências de outros participantes e interrupções. A duração da atividade é baseada na análise do melhor cenário para a atividade. A duração da atividade é baseada na análise do pior cenário para a atividade. Usando a média ponderada dessas três estimativas, a análise PERT calcula a duração esperada da atividade ($$t_E$$), utilizando a equação a seguir: $$t_{E}=\frac{t_{O}+4 t_{M}+t_{P}}{6}$$ Como podemos observar, a fórmula PERT aplica um peso maior, igual a 4, para a estimativa Mais Provável ($$t_{M}$$), mas não deixa de considerar as estimativas Otimista($$t_{O}$$) e Pessimista($$t_{P}$$), ambas com peso 1. É possível, inclusive, alterar os pesos nos seus projetos de acordo com a sua realidade, porém os pesos não podem ultrapassar a soma total de 6. Segundo o PMBOK, estimativas de duração baseadas nessa equação (ou até mesmo usando uma média simples dos três pontos) podem fornecer mais precisão e os três pontos esclarecem a faixa de variabilidade das estimativas de duração. Exemplo de aplicação de PERT Para entendermos a aplicação da técnica PERT, vamos a um exemplo muito simples. Suponhamos que um profissional de TI seja designado para realizar a atividade de implantar o software da empresa em um novo cliente. Essa atividade envolve tarefas, como: criar uma instância do Oracle no servidor de banco de dados do cliente; criar um esquema de banco de dados; fazer a importação do arquivo (dump) nesse esquema; e, por fim, instalar o software correspondente ao servidor de aplicação em um outro servidor reservado para esse fim. Os especialistas de TI se reuniram e fizeram as seguintes estimativas: Otimista ($$t_{O}$$) Pessimista ($$t_{P}$$) 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 21/43 Estimativa Mais Provável ($$t_{M}$$) = 3 dias Considera que o cliente não irá disponibilizar um profissional de TI para apoiar e acompanhar o procedimento e que o Oracle já estará instalado no servidor de banco de dados, assim como um servidor já estará disponível para instalar o software correspondente ao servidor de aplicação. Estimativa Otimista ($$t_{O}$$) = 1 dia Considera que o cliente irá disponibilizar um profissional de TI para apoiar e acompanhar o procedimento e que o Oracle já estará instalado no servidor de banco de dados, assim como um servidor já estará disponível para instalar o software correspondente ao servidor de aplicação. Estimativa Pessimista ($$t_{P}$$) = 8 dias Considera que o cliente não irá disponibilizar um profissional de TI para apoiar e acompanhar o procedimento e que o Oracle não estará instalado no servidor de banco de dados, muito menos o cliente terá disponibilizado um servidor de banco de dados e um servidor de aplicação para instalar o software. Nesse caso, haverá a necessidade de tarefas adicionais para implantar o software, como instalar e configurar o Oracle, dentre outras. A seguir, vamos aplicar a fórmula PERT para estimarmos a duração dessa atividade: $$t_{E}=\frac{1+(4 * 3)+8}{6}=3,5$$ dias O tempo esperado para a atividade ser concluída é de 3,5 dias. Considerando que um dia de trabalho dura 8 horas, podemos converter o tempo esperado para a realização dessa atividade para 28 horas, ou seja, 3 dias e 4 horas. Calculando o desvio padrão da atividade O método PERT leva em consideração também o quanto a duração estimada poderá variar para mais ou para menos. Essa variação é conhecida como desvio padrão e podemos aplicar a fórmula a seguir para efetuar o seu cálculo: Desvio Padrão $$=\frac{t_{P}-t_{0}}{6}$$Aplicando o desvio padrão na atividade que utilizamos anteriormente como exemplo, onde $$t_{P}$$ = 8 dias e $$t_{O} = 1$$ dia, teremos como resultado um desvio padrão de 1,17 dia. Assim, essa atividade será executada em 3,5 dias com um desvio padrão de +/- 1,17 dia, ou seja, tem duração estimada em um intervalo entre 2,33 dias e 4,67 dias. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 22/43 Dica Quanto maior for o desvio padrão, mais incerta é a sua estimativa para a atividade, pois a variação entre os cenários otimista e pessimista é muito significativa. Calculando a variância e o desvio padrão do projeto A variância é uma medida de dispersão, que mostra o quão distante cada valor de um conjunto de dados está do valor central (médio). No caso das estimativas de duração no PERT, calcula-se a variância aplicando a fórmula abaixo: Variância $$= (Desvio Padrão)_{2}$$ Para a atividade que estamos utilizando como exemplo, o valor da variância será, portanto, igual a $$(1,17)_{2} = 1,37$$. Para descobrir qual é o desvio padrão do projeto, não se deve somar os desvios padrões de todas as atividades. Deve-se calcular a variância de cada atividade, somá-las e, por fim, tirar a raiz quadrada do resultado para encontrar o Desvio Padrão do projeto, isto é: $$$ \text { Desvio padrão do projeto }=\sqrt[2]{\sum_{i=1}^{n} \text { Variância }_{i}} $$$ Em que n é o número de atividades do projeto. Dica A técnica PERT pode ser utilizada para todas as atividades do projeto, ou somente para aquelas que envolvam maior risco, quando não se tem muita certeza da estimativa e a variação entre o melhor e o pior cenário é grande. Após você encontrar a estimativa PERT das atividades, estabelecer a sequência e a dependência entre elas, você conseguirá chegar à duração do Projeto. O método do caminho crítico (CPM) Em um projeto, a maior parte das atividades possui relação de dependência umas com as outras e, para entendermos esse conceito, vamos fazer uma analogia com uma situação real na área da construção civil. Suponhamos que um engenheiro esteja construindo uma casa: quando a “atividade de fundação” for concluída, a “atividade de levantar as paredes” se inicia, e posteriormente a “atividade de colocar o telhado”, e assim por diante. Ou seja, há uma relação de dependência entre essas três atividades e uma não pode ser iniciada sem a conclusão da outra. No mundo do software, essas relações funcionam da mesma maneira. Não podemos implementar as linhas de código sem conhecermos o requisito em questão, por exemplo. Essas atividades que possuem esse tipo de relação de dependência são fortes candidatas a estarem no 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 23/43 caminho crítico do projeto, pois, se ocorrer um atraso em uma delas, o cronograma do projeto será prejudicado. O CPM (Critical Path Method ou Método do Caminho Crítico) foi criado pela empresa norte-americana Dupont, por volta do ano de 1958, com o objetivo de realizar as paradas de manutenção no menor prazo possível e com o nível constante de utilização dos recursos. Esse método é considerado uma extensão da técnica PERT, pois é utilizado no gerenciamento de projetos mais complexos e extensos, porém pode ser também aplicado em projetos simples. Segundo o PMBOK, 6ª edição: o caminho crítico é a sequência de atividades que representa o caminho mais longo de um projeto, que determina a menor duração possível dele. (PMBOK 2017, p. 210) Ou seja, em um projeto, há vários caminhos possíveis (sequência de atividades), até que o projeto seja executado em sua totalidade, e o caminho crítico corresponda ao percurso que impacta diretamente no sucesso do projeto, aquele que ofereça maior risco. Partindo do princípio de que um projeto é um conjunto de subprojetos, com inúmeras tarefas relacionadas a eles, é preciso compreender qual a relação entre as atividades e como melhorar a interação entre elas. Isso porque as atividades devem ser sequenciadas da melhor maneira para que o projeto flua e seja concluído com o melhor prazo possível, e é justamente para isso que serve o caminho crítico do projeto. O método basicamente consiste em criar um diagrama de rede, interligando as atividades em sequência com as suas respectivas dependências. São analisados os caminhos de ida e de volta através da rede. Por fim, o caminho crítico é o caminho percorrido através da sequência das atividades que não tem folga, ou seja, caso uma delas atrase, todo o projeto estará atrasado. Contudo, caso uma atividade de um caminho não crítico atrase, não há problema, pois entre elas há uma folga capaz de absorver esse atraso. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 24/43 O caminho crítico aponta quais atividades o gerente de projetos e responsáveis devem ter a atenção redobrada. Aplicando o Método do Caminho Crítico Como pré-requisitos para analisarmos os caminhos possíveis das atividades, devemos primeiramente estimar a duração de cada atividade, e a técnica PERT, como já vimos, possibilita que façamos essa estimativa. Depois, iremos identificar as atividades predecessoras de cada atividade, conforme veremos no exemplo a seguir: Atividade Predecessora Duração Início - 0 A Início 5 B A 5 C A 10 D B,C 15 Fim 15 0 Exemplo de lista de atividades. Elaborada por Bruno Freitas Braga Depois, devemos montar o diagrama de rede mostrando a sequência em que as atividades ocorrem e os seus relacionamentos, para analisarmos os caminhos possíveis e encontrarmos o caminho crítico do projeto, conforme podemos ver a seguir no diagrama de rede derivado do quadro anterior: Exemplo de uso do Método do Caminho Crítico. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 25/43 Conforme observamos nesse exemplo, há dois caminhos que podem ser percorridos do início ao fim que são os caminhos A-B-D e A-C-D. Vimos que as atividades A e B tem duração de 5 dias, enquanto a atividade C tem duração de 10 dias, e a atividade D tem duração de 15 dias. Logo, o caminho A-B-D tem duração de 25 dias e o caminho A-C-D tem duração de 30 dias. Portanto, o caminho crítico para esse exemplo é o caminho A-C-D, pois o caminho crítico corresponde ao caminho mais longo que deve ser seguido para que todas as atividades sejam concluídas. Outro dado importante que podemos extrair do exemplo anterior é a quantidade total de folga livre ou de flexibilidade do cronograma, ou seja, a quantidade de tempo que uma atividade do cronograma pode atrasar sem adiar a data de início da atividade sucessora. Vimos que a atividade B possui uma folga de 5 dias, isto é, se a atividade B atrasar em até 5 dias não comprometerá o início da atividade D e, por fim, não afetará a conclusão do projeto. Observando também as atividades que fazem parte do caminho crítico, ou seja, as atividades A, C e D, notamos que todas elas possuem folga igual a zero, ou seja, um mínimo de atraso que ocorra em uma delas impactará todo o cronograma. Comentário Agora, vamos aprender a calcular as datas dos caminhos de ida (início mais cedo, término mais cedo) e de volta (início mais tarde, término mais tarde), utilizando o diagrama de rede do exemplo anterior. Lembrando que essas datas não correspondem a uma data do calendário, e sim uma indicação dos períodos de tempo dentro dos quais a atividade poderia ser executada. Percorrendo o caminho de ida (início mais cedo, término mais cedo) Obtemos o caminho de ida fazendo a leitura das atividades da esquerda para a direita no diagrama de rede, do início ao fim. Durante essa travessia, preenchemos os quadrados superiores, correspondentes ao início mais cedo e término mais cedo, em cada atividade. Porconvenção, o início do projeto começa no dia 1, então, continuando com o exemplo anterior, colocamos na atividade A o início mais cedo com o valor = 1. Para calcularmos o término mais cedo, iremos usar a seguinte equação: Término mais cedo = Início mais cedo + Duração -1 Subtraímos o resultado por 1, porque incluímos o próprio dia da data de início mais cedo nessa conta, ou seja, consideramos o intervalo total entre as datas. Para a atividade A, como o início mais cedo possui valor = 1 e a sua duração = 5, então, aplicando a equação, teremos: término mais cedo = 1 + 5 – 1 = 5. Para o início mais cedo das atividades sucessoras, nós adicionamos 1 dia após o término mais cedo da atividade predecessora, pois assumimos que a atividade predecessora foi concluída até o final do dia (de término mais cedo), logo: 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 26/43 Início mais cedo sucessora = Término mais cedo predecessora +1 Assim, as atividades B e C serão iniciadas com o valor = 6. Para descobrirmos o término mais cedo dessas duas atividades, aplicamos a equação anterior e chegamos aos resultados de término mais cedo para as atividades B = 10 e C = 15. Para calcularmos o início mais cedo da atividade D, observamos que temos duas atividades predecessoras a esta que são as atividades B e C. Nesse caso, há uma regra que define: quando uma atividade tiver mais de uma predecessora, escolha sempre a predecessora que possua a maior data de término mais cedo como a sua data de início mais cedo. Como a maior data de término está na atividade C, cujo valor = 15, então a atividade D será iniciada um dia após este término, ou seja, valor = 16. Por fim, aplicando-se a equação para encontrarmos o término mais cedo da atividade D, chegamos ao valor = 30. Dessa forma, descobrimos que a duração do projeto é de 30 dias. Percorrendo o caminho de volta (término mais tarde, início mais tarde) O caminho de volta nós obtemos fazendo a leitura das atividades da direita para a esquerda no diagrama de rede, do fim para o início. Durante essa travessia, nós preenchemos os quadrados inferiores, correspondentes ao término mais tarde e início mais tarde, em cada atividade. Por convenção, assumimos que o término mais tarde das atividades predecessoras ao fim corresponde ao maior valor do término mais cedo das atividades ligadas ao fim, logo a atividade D terá o valor = 30 para o término mais tarde. Para calcularmos o início mais tarde, iremos usar a seguinte equação: Início mais tarde = Término mais tarde - Duração +1 Para o término mais tarde das atividades predecessoras, nós subtraímos 1 dia do início mais tarde da atividade sucessora, logo: Término mais tarde predecessora = Início mais tarde sucessora -1 Assim, as atividades B e C terão o valor = 15 no seu término mais tarde, considerando que o início mais tarde da atividade D tem valor = 16. Aplicando a equação anterior para descobrirmos o início mais tarde das atividades B e C, chegamos aos resultados de início mais tarde para as atividades B = 11 e C = 6. Para calcularmos o término mais tarde da atividade A, observamos que temos duas atividades sucessoras a esta que são as atividades B e C. Nesse caso, há uma regra que define que: quando uma atividade tiver mais de uma sucessora, escolha sempre a menor data de início mais tarde entre as sucessoras como data de término mais tarde da predecessora. Como a menor data de início mais tarde entre as atividades sucessoras B e C está na atividade C cujo valor = 6, então o término mais tarde da atividade A terá o valor = 5. Por fim, aplicando-se a equação para encontrarmos o início mais tarde da atividade A, chegamos ao valor = 1. Calculando as folgas 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 27/43 Para calcularmos as folgas, basta subtrairmos os números de baixo pelos números de cima para cada atividade, logo: Folga $$=$$ Início mais tarde $$-$$ Início mais cedo Ou Folga $$=$$ Término mais tarde $$-$$ Término mais cedo As atividades que possuírem a folga igual a zero são as atividades que fazem parte do caminho crítico. Assim, a folga da atividade A será 5 - 5 = 0, então essa atividade faz parte do caminho crítico. Já a folga da atividade B será 15 – 10 = 5, portanto essa atividade não faz parte do caminho crítico. Dica Para visualizarmos rapidamente o caminho crítico devemos, ainda, observar os números de cima e de baixo em cada atividade do diagrama de rede, e as atividades que possuírem esses números iguais serão as atividades que fazem parte do caminho crítico, ou seja, para o exemplo que vimos é o caminho A-C-D. É importante destacar que existem softwares que fazem esses cálculos de forma automatizada, associando a técnica PERT ao método CPM, como o MS-Project, o ProjectLibre, o Primavera, dentre outros. Aplicar o método PERT/com No vídeo a seguir, abordamos a aplicação do método PERT/CPM no gerenciamento de projetos de software. Vem que eu te explico! Os vídeos a seguir abordam os assuntos mais relevantes do conteúdo que você acabou de estudar. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 28/43 Técnica PERT 05:12 min. Método CPM 05:12 min. MÓDULO 2 Vem que eu te explico! Técnica PERT 05:12 min. Método CPM Falta pouco para atingir seus objetivos. Vamos praticar alguns conceitos? Questão 1 Sobre a técnica PERT, podemos afirmar que: A baseia-se somente na opinião de especialistas para fazer a estimativa de duração das atividades. B baseia-se somente na aplicação de equações matemáticas para se obter a estimativa de duração das atividades. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 29/43 C baseia-se na análise de três cenários, que são: Otimista, Mais Provável e Pessimista para cada atividade do projeto. D o resultado obtido durante a aplicação desta técnica não leva em consideração a variância da duração da atividade que se está estimando. E para se obter o desvio padrão total do projeto, basta somarmos os desvios padrões de cada atividade. Parabéns! A alternativa C está correta. A técnica PERT tem por objetivo estimar a duração de cada uma das atividades do projeto baseando-se na avaliação dos especialistas, os quais analisam os cenários Otimista, Mais Provável e Pessimista, e atribuem uma duração para cada um dos três, e aplicando uma equação obtém o resultado da estimativa de duração da atividade. Esta técnica também utiliza um desvio padrão para indicar o intervalo de tempo em que a atividade poderá ser realizada, para mais ou para menos do que foi estimado. Questão 2 Sobre o método do caminho crítico, podemos afirmar que: A busca identificar as tarefas de menor prioridade nas sequências de atividades a fim de calcular a duração total do projeto. B a partir de uma lista de atividades este método identifica as atividades que são independentes e calcula a duração total do projeto. C o caminho crítico corresponde à sequência das atividades que possuem folga superior a zero. D utiliza um diagrama de rede para verificar as relações de dependência entre as atividades e identificar o caminho crítico. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 30/43 3 - Métricas de estimativas em projetos ágeis Ao �nal deste módulo, você será capaz de analisar as métricas utilizadas para fazer estimativas em projetos ágeis. Contextualização Os métodos ágeis surgiram em 2001, quando Kent Beck e outros 16 renomados profissionais da área de E analisando apenas o caminho de ida, é possível calcular as folgas que têm por objetivo identificar qual é o caminho crítico. Parabéns!A alternativa D está correta. O método do caminho crítico utiliza um diagrama de rede interligando as atividades em sequência com as suas respectivas dependências. Utilizando PERT, estima-se a duração de cada uma das atividades e, percorrendo os caminhos de ida e de volta no diagrama de rede, identificamos as atividades que fazem parte do caminho crítico, ou seja, aquelas atividades que possuem folga igual a zero. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 31/43 Engenharia de Software se reuniram nas montanhas nevadas do estado norte-americano de Utah para escreverem um documento, conhecido como Manifesto Ágil, o qual descrevia os valores e os doze princípios da “filosofia” ágil. Com o Manifesto Ágil, criou-se uma organização permanente que o representava e, assim, no final do ano de 2001, nasceu a Agile Alliance (Aliança Ágil). Dessa forma, cada método ágil existente hoje, como o Scrum, o Kanban e o XP (eXtreme Programming ou Programação Extrema), carrega consigo os valores e os princípios arraigados no Manifesto Ágil. De acordo com Pressman (2016, p. 67), “em essência, os métodos ágeis se desenvolveram em um esforço para sanar fraquezas reais e perceptíveis da engenharia de software convencional”. Vamos analisar a imagem a seguir para entendermos essa declaração do Pressman. Comparação Modelo Cascata x Modelo Iterativo. Na comparação entre o Modelo de Desenvolvimento de Software Convencional (Cascata) e o Modelo Ágil (Iterativo), podemos observar que: Modelo Convencional (Cascata) Organiza o projeto inteiro em fases, ou seja, para a fase seguinte começar, a fase anterior deve terminar, e assim sucessivamente. O término de cada uma dessas fases pode durar meses. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 32/43 Modelo Ágil (Iterativo) Organiza o projeto em iterações, sendo que cada iteração ocorre como se fossem miniprojetos, ou seja, realiza todas as fases contidas no modelo convencional em cada uma das iterações, que, normalmente, ocorrem entre 15 e 30 dias. Concluímos que, utilizando o método ágil, o custo de mudanças é menor, pois uma mudança nos requisitos, por exemplo, pode ser implementada mais cedo, sem a necessidade de aguardar o término de uma fase, que poderia durar meses, como ocorria nos métodos convencionais. Dessa forma, os métodos ágeis priorizam as tarefas que agregam mais valor ao negócio para serem realizadas primeiro, isto é, desde as primeiras iterações, a fim de reduzir os riscos que podem afetar o cronograma e o orçamento do projeto, que, se detectados tardiamente, podem levar o projeto ao fracasso. Como os métodos ágeis incentivam o desenvolvimento do software sem a necessidade de conhecer detalhadamente todos os requisitos do projeto, como fazer, então, estimativas mediante esse cenário de incertezas? Esse é o objetivo das técnicas que apresentaremos neste estudo. Planning Poker O Planning Poker (ou Planejamento de Pôquer) é uma técnica de obtenção de consenso, similar ao método de Delphi, muito utilizada para se fazer estimativas em projetos ágeis. Consiste na combinação de três técnicas: opinião de especialista, analogia e desagregação, destaca COHN (2005), o que a torna um método bastante interativo e prático. As estimativas são obtidas através de um jogo de cartas, que são distribuídas entre os membros da equipe de desenvolvimento (programadores, testadores, analistas, dentre outros), e cada um dos membros utiliza as cartas para avaliar a complexidade de uma história do usuário (user story), levando-se em consideração o fator tempo e esforço. Cada carta possui uma pontuação e as cartas que possuírem pontuação maior correspondem àquelas de maior complexidade. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 33/43 É importante salientar que uma equipe ágil não deverá exceder a dez pessoas. Para efeito de entendimento, a história do usuário corresponde a uma descrição curta e simples da necessidade do usuário, ou seja, ela nada mais é do que a descrição de um requisito sob o ponto de vista do usuário. No Planning Poker, cada integrante tem à sua disposição um baralho com 12 cartas, numeradas numa sequência similar à sequência de Fibonacci (que considera o número seguinte sempre a soma dos dois números anteriores), conforme podemos ver na imagem a seguir: Cartas de Planning Poker Valores acima de 20 são considerados altos e, portanto, trata-se de uma história grande, que pode não ser completamente finalizada numa única iteração (denominada Sprint na maioria dos métodos ágeis, como o Scrum). Dica Uma alternativa é detalhar mais a história, quebrando-a em pedaços menores, com redução em suas complexidades. O recomendável é que, ao final do Planning Poker, consiga-se fazer com que as histórias da iteração possuam algum valor do intervalo de 1⁄2 a 13. No entanto, é necessário evitar outro problema que é deixar que as histórias se tornem muito pequenas, pois isso provavelmente tornará a equipe vítima do microgerenciamento, destaca Kniberg (2009). Depois que os membros recebem as cartas, cada um mostra ao mesmo tempo a carta que corresponde à sua avaliação sobre a complexidade da história em questão. Se elas são todas iguais, a história recebe a estimativa; se não, os membros que propõem a estimativa mais alta e a mais baixa explicam seus pontos de vista e novas rodadas são jogadas até a equipe chegar a um consenso. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 34/43 Se um participante atribuir a uma história o valor ‘0’ (zero), significa que a história está finalizada, ou que ela é tão pequena que pode ser resolvida em questão de minutos. No entanto, se um participante levantar a carta com ‘?’ (interrogação) indica que ele não tem o conhecimento necessário para estimar o esforço daquela história. Essas cartas não são frequentemente utilizadas, porém devemos levá-las em consideração durante o jogo e avaliar as opções para a resolução da história em questão, de modo que a equipe chegue ao consenso. Saiba mais A grande vantagem de se utilizar essa técnica é que ela incentiva os membros da equipe a pensarem por si próprio na hora de tomar uma decisão de estimativa, pois todos levantam uma carta ao mesmo tempo durante uma rodada do jogo. Após a equipe chegar ao consenso durante a avaliação de uma história, começa uma nova rodada do jogo com a leitura da próxima história, e o processo se repete até que se conclua a estimativa de todas as histórias do usuário dos itens do Product Backlog – lista com todos os requisitos que se tem conhecimento e que precisam estar no produto. Ao final do jogo, é possível priorizar quais histórias deverão ser realizadas primeiro, ou seja, aquelas que possuem maior pontuação, e ordená-las no Product Backlog. Essas histórias correspondem àquelas que oferecem maior risco ao projeto e que agregam maior valor ao negócio. Durante a realização das primeiras iterações, é possível obter o indicador de produtividade da equipe, conhecido no meio ágil como velocity (velocidade), que indica a quantidade de pontos que a equipe consegue entregar ao final de cada iteração. A partir desse indicador, conseguimos prever quantos pontos poderão ser entregues nas próximas iterações. Dessa forma, pode-se estabelecer o comprimento da iteração. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 35/43 Para calcularmos o número de iterações necessárias para se concluir o projeto, nós dividimos o número total de pontos pela velocidade. Assim, para estimarmos a duração do projeto, somamos a quantidade de iterações pelo tempo estimadode realização de cada iteração, que normalmente ocorre entre 15 e 30 dias nos projetos ágeis. Atenção Essa técnica não é a mais adequada para estimativas de prazo e de alocação de recursos, pois é uma medida de complexidade subjetiva e particular de cada time. No entanto, ela reforça o comprometimento da equipe com as entregas e aumenta a colaboração entre os membros do time, de modo que todos se sentirão responsáveis pelo projeto. Ideal Days Cohn (2005) defende que um Ideal Day (Dia Ideal) corresponde à quantidade de trabalho que um profissional de nível sênior, com fluência nas tecnologias e nas ferramentas envolvidas, consegue realizar em um dia de trabalho sem interrupções. Trata-se de uma estimativa empírica, executada por especialistas para desenvolvimento com base em exploração adaptativa (ALVES; FONSECA, 2008). A produtividade da equipe (velocidade) é calculada a partir do número de horas que a equipe gasta para implementar um trabalho equivalente a um Dia Ideal. Caso não seja possível implementar o item em questão em um dia de trabalho, é sugerido decompor esse item em itens menores para que se consiga implementar em apenas um dia. Segundo Martins (2007), para efetuar o cálculo dos dias estimados, utiliza- se a seguinte fórmula: $$D E=\frac{I E D}{1-I E D_{-} R E A L \%}$$ Em que: DE: Quantidade de dias estimados para concluir a tarefa. IED: Prazo necessário para implementar o item, definido pela equipe. IED_REAL%: Percentual que indica a estimativa de quanto tempo do dia o desenvolvedor ficará dedicado à implantação do item. Caso prático de aplicação da técnica Alves e Fonseca (2008) exemplificam um caso prático de aplicação da técnica Ideal Day: Considerando que uma jornada de trabalho de uma equipe tem 4 horas diárias, estipula-se um valor de referência, ou seja, 1 Ideal Day = 4 horas. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 36/43 Veja a lista a seguir com o planejamento dos requisitos que serão implementados nessa iteração (Sprint): RF01 – Implementar carrinho de compras – 0,5 ID. RF02 – Cadastrar Livros – 0,3 ID. RF03 – Consultar livros por autor – 0,1 ID. RF04 – Implementar recomendação automática de livros – 0,4 ID. Observando a lista dos requisitos funcionais (RF), cada membro da equipe irá retirar uma tarefa e implementá-la, apropriando as horas gastas para realizar esse desenvolvimento no final do dia, pois, ao final da iteração, será possível determinar quantos Ideal Days foram concluídos, bem como o seu tempo de execução. Uma vez definido o valor do requisito em Ideal Days, este não poderá mais ser alterado durante a iteração, somente o esforço para realizá-lo. Por exemplo, suponhamos que o recurso 1 (algum membro do time) irá implementar o RF01, que tem 0,5 ID. Como estamos ainda na primeira iteração e não existem dados históricos para determinar o esforço do recurso, iremos utilizar empiricamente o valor de 10 horas como a velocidade do time, conforme determinamos anteriormente. Aplicando a equação a seguir, faremos uma estimativa de duração da tarefa: Esforço $$=$$ Tamanho * Velocidade Isto é, como o tamanho = 0,5 ID e a velocidade = 10 horas, então chegaremos ao resultado de uma duração prevista de 5 horas (meio Ideal Day) para fazermos o desenvolvimento desse requisito – RF01. Depois, determina-se a velocidade média inicial dessa equipe, por exemplo, velocidade = 10 horas, sendo que este último dado é resgatado de um histórico ou inicialmente definido por um especialista de maneira empírica. Então, avalia-se a lista com os itens do Backlog fazendo as suas estimativas em Ideal Day, as quais são atribuídas via Planning Poker. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 37/43 Recomendação Caso a tarefa não seja concluída em 1 dia, será necessário decompor o requisito em partes menores, e considerar a parte concluída até o final do dia como finalizada para, dessa forma, evidenciarmos o trabalho que foi realizado. Após a implementação, poderemos analisar a eficácia das nossas estimativas, comparando o que foi planejado com o que foi realizado, ou seja, medido. Vide o quadro a seguir com os dados apurados após a implementação: Requisito Tamanho previsto Recurso Hora real RF01 0,5 ID Recurso 1 4,5 horas RF02 0,3 ID Recurso 2 2,5 horas RF03 0,1 ID Recurso 1 1,5 horas RF04 0,4 ID Recurso 2 3 horas TOTAL 1,3 ID 11,5 horas Quadro: Dados apurados. Extraída de Alves e Fonseca, 2008, p. 12. Analisando esses dados, verificamos que o recurso 1 implementou dois requisitos – RF01 e RF03 – totalizando 0,6 ID, enquanto o recurso 2 implementou outros dois requisitos – RF02 e RF04 – totalizando 0,7 ID. Para calcularmos a nova velocidade, iremos utilizar os dados da tabela a seguir: Velocidade inicial ID previsto ID realizado H Recurso 1 10 0,6 0,6 6 Recurso 2 10 0,7 0,7 5 Tabela: Dados por recurso. Extraída de Alves e Fonseca, 2008, p. 12. Aplicando a equação a seguir, que considera as horas de retrabalho, ou seja, o tempo gasto com correções, 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 38/43 iremos calcular a velocidade da próxima iteração: (Horas realizadas + (horas retrabalho * 1,3)) /ID_realizados Assim, considerando 1 hora de retrabalho para cada recurso, teremos: para o Recurso 1 => (6 + 1 * 1,3) / 0,6 = 12,2 horas para o Recurso 2 => (5,5 + 1 * 1,3) / 0,7 = 9,8 horas Portanto, a média da equipe foi de 11 horas, e essa média será considerada para planejar a próxima iteração, ao invés do valor empírico de 10 horas que estávamos utilizando nessa primeira iteração. Já a produtividade da equipe corresponde ao número de Ideal Days entregues ao final da iteração, que para essa primeira foi de 1,3 ID. Para calcularmos a produtividade da Release, isto é, a produtividade da entrega de uma versão do produto, poderemos aplicar a seguinte equação: $$ \text { Produtividade da Release }=\frac{\text { ID }_{-} \text {Realizados }}{\text { Número de Sprints }} $$ Por exemplo, se planejarmos que o nosso primeiro Release terá 3 iterações, então, como já temos a produtividade do primeiro Sprint que foi de 1,3 ID, e a equipe entregar nos outros dois Sprints 0,9 ID e 1,1 ID respectivamente, a produtividade média da equipe será de 1,1 ID, aplicando-se a equação anterior, ou seja: $$ \text { Produtividade da Release }=\frac{1,3+0,9+1,1}{3}=1,1 \text { ID } $$ Resumindo Assim como no Planning Poker, a utilização da técnica de Ideal Day para medir o tamanho de uma atividade utilizando uma unidade de tempo (no caso, dias ideais) nem sempre é uma boa estratégia, pois utiliza critérios subjetivos que podem variar de um time para o outro. Porém, combinando-se as técnicas ágeis com as técnicas tradicionais, pode-se chegar a um denominador comum e obter-se estimativas mais assertivas. Processos ágeis no desenvolvimento de software Está na hora de abordarmos uma visão geral dos métodos ágeis no contexto da Engenharia de Software. Vamos lá! 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 39/43 Vem que eu te explico! Os vídeos a seguir abordam os assuntos mais relevantes do conteúdo que você acabou de estudar. Planning poker 02:44 min. Ideal days 02:04 min. MÓDULO 3 Vem que eu te explico! Planning poker 02:44 min. Ideal days Falta pouco para atingir seus objetivos. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 40/43 Vamos praticar alguns conceitos? Questão 1 Sobre a técnica de estimativa para projetos ágeis conhecida como Planning Poker, analise as alternativas abaixo e marque a opção correta. A As estimativas baseiam-se nas opiniõesdos membros da equipe mais sêniores, a fim de se obter resultados mais precisos e eficazes. B As estimativas são obtidas através de um jogo de cartas, as quais possuem uma pontuação de acordo com a complexidade da história que está sendo avaliada. C Esta técnica foi desenvolvida para ser realizada por grandes equipes, maior do que 50 pessoas, e busca avaliar as histórias do usuário mais complexas, a fim de se economizar tempo com planejamento que poderia ser despendido na execução do projeto. D As pontuações atribuídas às cartas do jogo de baralho não têm relação com a complexidade da história que se está avaliando, e sim com o tempo que será utilizado para desenvolvê-la. E Durante uma rodada do jogo, primeiramente, os membros mais sêniores da equipe levantam as suas cartas e, depois, os outros membros mostram as suas, para assim, os outros membros serem influenciados pela opinião dos especialistas e, consequentemente, aprenderem a fazer melhores estimativas. Parabéns! A alternativa B está correta. O Planning Poker é uma técnica que consiste em avaliar as histórias dos usuários, ou seja, os requisitos sob o ponto de vista deles, através de um jogo de baralho, em que cada rodada os membros da equipe avaliam uma história e atribuem uma pontuação a ela, de acordo com a sua avaliação individual sobre a complexidade da história que está sendo analisada. O consenso do grupo será a pontuação final da história. Questão 2 Sobre a técnica de estimativa ágil conhecida como Ideal Days (Dias Ideais), é correto afirmar que: 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 41/43 A define que um dia ideal corresponde à quantidade de trabalho que todos os membros da equipe conseguem entregar considerando o cenário ideal aquele em que a equipe trabalha continuamente sem interrupções. B considera que a produtividade da equipe corresponde à média dos dias ideais entregues ao final da Iteração. C a métrica utilizada nesta técnica para avaliar o tamanho de um requisito é pontos de função. D se um item equivalente a um dia de trabalho não for entregue ao final do dia, este não será considerado finalizado, e continuará sendo desenvolvido no dia seguinte, não havendo a necessidade de decompô-lo em partes menores. E um Ideal Day é uma unidade de medida empírica, equivalente ao trabalho produzido por um profissional sênior, expert nas tecnologias e ferramentas usadas no projeto, ao longo de um dia normal de trabalho. Parabéns! A alternativa E está correta. Na técnica Ideal Days (Dia Ideal), um dia ideal é considerado a quantidade de trabalho que um profissional sênior entrega em um dia de trabalho. O valor de 1 ID (Dia Ideal) servirá de referência para calcular o esforço necessário (em horas) para entregar cada um dos itens do Backlog do produto, que correspondem aos requisitos do projeto. Durante a realização dos Sprints, este valor é reestimado conforme os resultados que vão sendo obtidos ao final do Sprint e sendo utilizado nas próximas iterações, a fim de se realizar estimativas mais precisas. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 42/43 Considerações �nais Como vimos, as técnicas apresentadas para fazer estimativas de esforço, custos, produtividade, tempo e pessoas ajudam os gerentes de projetos a fazer estimativas mais precisas e a obter um entendimento mais claro sobre o andamento do seu projeto. Apresentamos o modelo COCOMO (COnstructive COst Model ou modelo Construtivo de Custo), que calcula as estimativas a partir do número de linhas de código e da complexidade do projeto, e utilizamos um exemplo prático para facilitar o entendimento sobre como aplicar as equações matemáticas propostas por esta técnica, adotando como referência o modelo básico. Vimos como fazer estimativas de duração de um projeto com os métodos PERT/CPM, utilizando um diagrama de rede para identificar o caminho crítico do projeto, e assim priorizar a realização dessas atividades. Para finalizar, analisamos as principais técnicas utilizadas para fazer estimativas em projetos ágeis, como Planning Poker e Ideal Days, e como elas são utilizadas para fazermos o planejamento dos nossos projetos e medirmos o seu progresso. Podcast Ouça o podcast. Nele, falamos sobre modelos, técnicas e métodos de estimativas de esforço e custo de projetos de software. Referências ALVES, F.; FONSECA, M. Ideal day e priorização: Métodos Ágeis no planejamento. Revista Engenharia de Software, n. 7, p. 8-13, 2008. 04/03/2022 23:30 Técnicas de estimativa de esforço e custo https://stecine.azureedge.net/repositorio/00212ti/02814/index.html#imprimir 43/43 BOEHM, B. W. Software Engineering Economics. New Jersey: Prentice Hall, 1981. COHN, M. Agile Estimating and Planning. New Jersey: Prentice Hall, 2005. KNIBERG, H.; SKARIN, M., Kanban and Scrum – Making the most of both. InfoQ, 2009. MARTINS, J. C. C. Técnicas para Gerenciamento de Projetos de Software. 1. ed. Florianópolis: Brasport Editora, 2007. 465 p. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de Software: Uma Abordagem Profissional. 8. ed. Porto Alegre: AMGH, 2016. PROJECT MANAGEMENT INSTITUTE. PMI. Guia PMBOK: Um Guia para o Conjunto de Conhecimentos em Gerenciamento de Projetos. 6. ed. Pennsylvania: PMI, 2017. SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Education, 2011 Explore + Para saber mais sobre os assuntos explorados neste conteúdo: Pesquise no guia PMBOK 6ª edição (Project Management Body of Knowledge ou Conjunto de Conhecimentos em Gerenciamento de Projetos), publicado pelo PMI (Project Management Institute), as áreas de conhecimento Gerenciamento do Cronograma e Gerenciamento dos Custos do Projeto a fim de conhecer outras técnicas utilizadas para fazer estimativas. Veja como o modelo COCOMO é usado atualmente, pesquisando no site do Geeksforgeks sobre Software Engineering - COCOMO Model. Leia o Manifesto Ágil para entender a filosofia dos métodos ágeis. Baixar conteúdo javascript:CriaPDF()
Compartilhar