2.35k likes | 2.62k Views
Métricas e Estimativas de Projetos de Software. Autor: Carla Alessandra Lima Reis (Revisado por Roberto Petry). Objetivos Gerais.
E N D
Métricas e Estimativas de Projetos de Software Autor: Carla Alessandra Lima Reis (Revisado por Roberto Petry)
Objetivos Gerais Abordar o assunto Estimativas de Projeto de software destacando as técnicas, heurísticas e ferramentas necessárias para que o processo de estimativa seja incorporado à gerência de projetos de software. Estimativas de Projetos – Carla A. Lima Reis
Introdução • O que é uma Estimativa? • “avaliação ou cálculo aproximado de algo; parecer sobre uma pessoa ou situação baseado nas evidências existentes.” (Houaiss) • É uma predição sobre quanto tempo um projeto levará ou quanto vai custar (McConnel, 2006) Estimativas de Projetos – Carla A. Lima Reis
Introdução • O que não é uma Estimativa? • Metas e promessas não são estimativas • “Temos que terminar a versão 2 do sistema para a demonstração na feira de tecnologia...” • “Temos que concluir esses módulos em 1 de julho para atender as novas leis do governo.” • “O custo da próxima versão não pode passar de R$20.000, porque esse é o nosso orçamento aprovado...” Estimativas de Projetos – Carla A. Lima Reis
Introdução • Estimar projetos é um dos maiores desafios no desenvolvimento de software. Planejamento e controle adequados não são possíveis sem estimativas confiáveis • Em geral, a indústria de software não estima bem seus projetos Estimativas de Projetos – Carla A. Lima Reis
Introdução • Relação entre Estimativa e Planejamento • Estimativa é um processo imparcial e analítico, enquanto planejamento é parcial e busca atingir uma meta. • Estimativa forma a base para o planejamento. • Se as estimativas são diferentes das metas o planejamento deve tratar essa diferença como um risco alto. • Existem frequentes problemas de comunicação decorrentes do relacionamento entre Estimativa e Planejamento. Quando lhe pedirem uma estimativa, verifique se é para estimar ou descobrir uma forma de atingir a meta. Estimativas de Projetos – Carla A. Lima Reis
Introdução • Toda estimativa é associada a uma probabilidade • Não existe estimativa com 100% de probabilidade Probabilidade De sucesso Tempo estimado 90% 24 semanas 75% 22 semanas 20 semanas 50% 18 semanas 10% 16 semanas 0% 12 semanas 10 semanas 8 semanas 6 semanas 4 semanas 2 semanas Estimativas de Projetos – Carla A. Lima Reis
Introdução 500% • As estimativas tornam-se cada vez mais precisas à medida em que aumenta o nível de maturidade da organização. • Apenas o uso de técnicas de estimativas não garante precisão. Deve haver efetiva gerência de projetos apoiando essa tarefa. 400% 300% 200% 100% 0% 1 2 3 Nível CMM Fonte:”A Correlational study of the CMM and Software Development Performance” (Lawlis, Flowe and Thordahl 1995) Estimativas de Projetos – Carla A. Lima Reis
IntroduçãoEstimativa e Controle de Projetos • Estimativa e Controle de Projetos • Estimar não é uma atividade puramente preditiva • “O ato de observar uma coisa já a modifica”(Princípio da Incerteza de Heisenberg) • Projetos mudam bastante. • Uma vez que produzimos uma estimativa e, com base nisso, fazemos um planejamento para entregar o produto em uma data, então temos que controlar o projeto para que ele atinja a meta. Estimativas de Projetos – Carla A. Lima Reis
Estimativa e Controle de Projetos Requisitos removidos Equipe desviada para apoiar apresentação em feira Funcionalidade instável removida Equipe não estava pronta no prazo O Projeto Estimativa: 20 pessoas/mês Saída: 20 pessoas/mês Novos requisitos adicionados Equipe foi desviada para atender projeto antigo (manutenção urgente) Mais requisitos adicionados Equipe com pouca experiência Estimativas de Projetos – Carla A. Lima Reis
Gestão de Projetos Planejamento Inicial do Projeto Visão (Re) Planejamento do Projeto Requisitos Acompanhamento do Projeto - resultados parciais x estimado- acompanhamento das atividades - ações corretivas - replanejamento Estimativa de: - tamanho;- esforço;- custo;- prazo;- recursos computacionais;- riscos Análise de resultados (histórico do projeto) - resultados finais (estimado x realizado)- lições aprendidas Estimativas de Projetos – Carla A. Lima Reis
O que é uma Boa estimativa? Uma boa estimativa provê uma visão suficientemente clara da realidade do projeto para permitir que seu líder tome boas decisões sobre como controlá-lo para atingir as metas (Steve McConnel, 2006) Estimativas de Projetos – Carla A. Lima Reis
Precisão das Estimativas • “Estimativa é a previsão mais otimista com probabilidade não nula de se tornar realidade”(Tom DeMarco, 1982) • Sabemos que estimativas precisas são raras, então se vamos errar, devemos errar para mais ou para menos?? Estimativas de Projetos – Carla A. Lima Reis
Por que não superestimar? • Se o projeto for superestimado, o trabalho ocupará todo o tempo disponível(Lei de Parkinson) • Se o gerente der 5 dias para o desenvolvedor fazer uma tarefa que pode ser feita em 4, o desenvolvedor vai encontrar alguma coisa pra fazer no dia extra. • Se as pessoas têm muito tempo pra fazer uma tarefa, elas irão adiar o início até chegar ao ponto de ter que correr pra terminar no prazo (e provavelmente não terminarão no prazo) • Para dar um sentimento de urgência no projeto. Estimativas de Projetos – Carla A. Lima Reis
Por que não subestimar? • Prejudica os planos do projeto • Escolha de uma equipe menor que a necessária • Problemas de integração entre grupos quando um grupo não estiver pronto para integrar sua tarefa com outro • Reduz as chances de terminar no prazo • Sabendo que tipicamente* as estimativas são de 20 a 30% inferiores ao realizado, subestimar o prazo reduz muito as chances do projeto terminar no prazo. Estimativas de Projetos – Carla A. Lima Reis *(Van Genuchten, 1991)
Por que não subestimar? • Tendência a negligência de atividades técnicas importantes • Deixando de lado atividades importantes como requisitos e projeto para obter logo o produto, leva a necessidade de refazer tais atividades mais tarde, custando mais caro do que se fizesse bem feito de primeira**. O projeto assim leva muito mais tempo do que se tivesse sido estimado corretamente. Estimativas de Projetos – Carla A. Lima Reis **(Boehm/Turner, 2004/McConnel 2004)
Por que não subestimar? • Um projeto no estado “atrasado” traz mais atraso. • Mais reuniões são realizadas para discutir como concluir o projeto • Reestimativas frequentes são feitas para determinar quando o projeto termina • Pedidos de desculpas ao cliente (incluindo reuniões) • Preparação de releases falsos para demonstração ao cliente e a eventos • Mais discussões sobre quais requisitos devem realmente ser atendidos • Conserto de bugs causados por implementações apressadas devido à pressão do prazo. Estimativas de Projetos – Carla A. Lima Reis
O que fazer então? • As penalidades de subestimar o projeto são piores que as penalidades de superestimar. • Conselho de McConnel: • Trate a superestimativa com planejamento e controle. Estimativas de Projetos – Carla A. Lima Reis
Benefícios das estimativasprecisas • Melhor visão do estado do projeto • é possível rastrear as ocorrências de acordo com o plano • Aumento da qualidade • Aproximadamente 40% dos erros são causados por stress (Glass 1994) • Melhor gerência das outras tarefas do negócio • Campanhas de marketing, treinamentos, projeções financeiras, etc. • Melhor definição de orçamento • Aumento da credibilidade com a equipe de desenvolvimento • Detecção antecipada de riscos • Diferenças entre as metas e as estimativas • Ações corretivas podem ser tomadas mais cedo Estimativas de Projetos – Carla A. Lima Reis
Onde as estimativas erram? • Desenvolvimento de software consiste em tomar muitas decisões • A incerteza da estimativa resulta da incerteza da sobre como as decisões serão tomadas • Estudo do Cone da Incerteza Estimativas de Projetos – Carla A. Lima Reis
Cone da IncertezaGrau de erro nas estimativas de estimadores experientes 4x 2x 1,5x Variabilidade da estimativa do escopo do projeto (esforço, Custo, funcionalidade) 1,25x 1x 0,8x 0,67x 0,5x 0,25x Def. do produto aprovada Def. de requisitos completa Projeto de interface completo Projeto detalhado completo Software completo Concepção Estimativas de Projetos – Carla A. Lima Reis
Cone da IncertezaCom controle de projetos efetivo o cone pode afinar 4x 2x 1,5x Variabilidade da estimativa do escopo do projeto (esforço, Custo, funcionalidade) 1,25x 1x 0,8x 0,67x 0,5x 0,25x Def. do produto aprovada Def. de requisitos completa Projeto de interface completo Projeto detalhado completo Software completo Concepção Estimativas de Projetos – Carla A. Lima Reis
Cone da IncertezaComo o cone não afina sozinho, sem controle de projetos, as estimativas podem nunca convergir 4x 2x 1,5x Variabilidade da estimativa do escopo do projeto (esforço, Custo, funcionalidade) 1,25x 1x 0,8x 0,67x 0,5x 0,25x Def. do produto aprovada Def. de requisitos completa Projeto de interface completo Projeto detalhado completo Software completo Concepção Estimativas de Projetos – Carla A. Lima Reis
Lições do Cone da Incerteza • Devem ser tomadas decisões que diminuam a variabilidade das estimativas, por exemplo: • Definir os requisitos • Definir o que não será feito • Projetar a interface do usuário • Se o produto não estiver bem definido ou se for redefinido depois, o cone ficará mais aberto e a precisão da estimativa será menor. • Promessas somente podem ser feitas quando algumas decisões foram tomadas para o cone afinar Estimativas de Projetos – Carla A. Lima Reis
Lições do Cone da Incerteza • Invista mais em gerência de projetos do que em precisão de estimativa se: • o desenvolvimento for caótico • Falta de def. de requisitos • Falta de envolvimento do usuário • Projeto mal feito • Programação mal feita • Equipe inexperiente • Falta de planejamento • Abandono dos planos sob pressão • ... • os requisitos forem muito instáveis Estimativas de Projetos – Carla A. Lima Reis
Onde mais as estimativas erram? • Alguns requisitos são omitidos/esquecidos das estimativas, por exemplo: • Funcionais: • Programa de instalação • Conversor de dados • Código para interface com outros sistemas • Sistema de ajuda ao usuário • Não funcionais • Interoperabilidade • Portabilidade • Reusabilidade • Segurança • usabilidade Estimativas de Projetos – Carla A. Lima Reis
Onde mais as estimativas erram? • Algumas atividades são omitidas/esquecidas das estimativas, por exemplo: • Tarefas de coordenação e reuniões • Instalação • Criação de dados de teste • Atendimento a pedidos de mudança • Lidar com subcontratados • Ajuste de performance • Revisão de documentação técnica • ... Estimativas de Projetos – Carla A. Lima Reis
Onde mais as estimativas erram? • Algumas atividades não relacionadas ao desenvolvimento são omitidas/esquecidas das estimativas, por exemplo: • Férias • Feriados • Doença • Treinamentos • Resolução de problemas de hardware • Encontros/confraternizações da empresa Essas atividades devem ser mais consideradas para projetos maiores Estimativas de Projetos – Carla A. Lima Reis
Onde mais as estimativas erram? • Subjetividade • Excesso de parâmetros subjetivos solicitados pelos modelos de estimativas • Estimativas informais (chutes) • Melhor não dar nenhuma estimativa informal • E se o chefe insistir em uma estimativa na hora??? Estimativas de Projetos – Carla A. Lima Reis
O que mais influencia na estimativa? • Tamanho do Software • Tipo de Software sendo desenvolvido • Fatores humanos • Linguagem de programação • Outros fatores Estimativas de Projetos – Carla A. Lima Reis
1-Tamanho do software • O custo e esforço de um projeto são proporcionais ao seu tamanho • Não se pode estimar um software sem saber seu tamanho • Toda mudança no projeto deve ser contabilizada no tamanho • Métricas de tamanho: • Linhas de código (LOC) • Pontos por função • Pontos por caso de uso • Quantidade de telas • Quantidade de classes • Quantidade de métodos por classe • Média de Linhas de código por método Estimativas de Projetos – Carla A. Lima Reis
1-Tamanho do software • “Deseconomia” de escala • Se o sistema A é 10 vezes maior que o sistema B, isso não significa que o seu esforço será apenas 10 vezes maior que o de B. • Projetos maiores requerem coordenação de grupos maiores de pessoas, o que requer mais comunicação • O esforço do projeto aumenta exponencialmente com o tamanho do projeto por causa dos caminhos de comunicação Estimativas de Projetos – Carla A. Lima Reis
1-Tamanho do softwareCaminhos de comunicação entre pessoas Estimativas de Projetos – Carla A. Lima Reis
“Deseconomia” de escala para projetos típicos Crescimento típico Crescimento linear Esforço (pessoas;mês) Tamanho do projeto (LOC) Estimativas de Projetos – Carla A. Lima Reis Fonte- Boehm, 2000
Como calcular “Deseconomia” de escala • Use ferramentas de estimativas para conhecer o impacto da deseconomia de escala • Se o projeto estimado for do mesmo tamanho dos anteriores, o novo pode ser estimado em função do primeiro Estimativas de Projetos – Carla A. Lima Reis
2-Tipo de Software • As taxas de produtividade variam muito em função do tipo de software. LOC/Pessoa Mês (mín-máx) Estimativas de Projetos – Carla A. Lima Reis Fonte: McConnell 2006
2-Tipo de Software • Como estimar levando isso em consideração? • Usar modelos de estimativas como o COCOMO II, que já incorpora esses ajustes; • Use dados históricos da sua empresa Proposto por Barry Boehm para estimativas Estimativas de Projetos – Carla A. Lima Reis Fonte: McConnell 2006
3-Fatores Humanos Exemplo: pouca habilidade em análise de requisitos vai demandar até 42% a mais de esforço no projeto • De acordo com o modelo COCOMO II: Melhor caso Pior caso -29% 42% habilidade Análise de requisitos -24% 34% habilidade programação -19% 29% Rotatividade de pessoas -19% 22% Experiência na aplicação (negócio) -16% 20% Experiência na linguagem e ferramentas -15% 19% Experiência na plataforma adotada -14% 11% Coesão da equipe Estimativas de Projetos – Carla A. Lima Reis
3-Fatores Humanos • Implicação: • Não é possível estimar precisamente o projeto sem conhecer quemvai trabalhar nele. Estimativas de Projetos – Carla A. Lima Reis
4-Linguagem de Programação • A experiência da equipe com a linguagem e ferramentas pode impactar em quase 40% • Algumas linguagens geram mais funcionalidade por linha que outras • Funcionalidade da ferramenta de apoio a programação (a escolha da linguagem determina a escolha da ferramenta) • Trabalhar com linguagens interpretadas tende a ser mais produtivo (fator 2). Estimativas de Projetos – Carla A. Lima Reis
Complexidade do produto Capacidade de análise de requisitos Capacidade de programação Restrições de tempo Rotatividade de pessoal Desenvolvimento descentralizado Confiabilidade requerida do software Quantidade de documentação requerida Experiência da equipe no negócio Uso de ferramentas de apoio Volatilidade da plataforma Restrições de armazenamento Maturidade do processo Experiência com as ferramentas Tamanho do banco de dados Resolução de riscos Desenvolvimento para reutilização ... 5- Outros fatores que influenciam(Fatores do COCOMO) Estimativas de Projetos – Carla A. Lima Reis
Por que medir? • “Não se consegue controlar o que não se consegue medir". (Tom DeMarco) • “Medir é fundamental em qualquer disciplina da engenharia, e a engenharia de software não é uma exceção”. (Tom DeMarco) Estimativas de Projetos – Carla A. Lima Reis
Métricas de Software • Uso de métricas de software • No Planejamento • Informações das medições de projetos anteriores poderão ser utilizadas na estimativa do novo projeto. • Durante o desenvolvimento • Medições são coletadas e analisadas em relação às estimativas propostas inicialmente • Ao término do desenvolvimento • Medições são coletadas e analisadas (métricas do produto) • Taxa média de defeitos, custos, etc. Estimativas de Projetos – Carla A. Lima Reis
Métricas x Estimativas Aplicação Entregue Projeto Detalhado Planejamento Requisitos Estimativa Inicial Estimativas Intermediárias Software Implantado Real Estimativas de Projetos – Carla A. Lima Reis
100 PFs 120 PFs 130 PFs 135 PFs • Tela de entrada do código do estado alterada (3 PFs) • Acrescentada interface arquivo N&A (10 PFs) • Consulta N&A e ao código do estado acrescentadas (7 PFs) • Nova tabela legal acrescentada (10 PFs) • Relatório resumo incluído (5 PFs) Impacto Esforço Cronograma Custo + 1 mês + 2 semanas + $5000 + 0.5 meses + 2 semanas + $2500 + 0.25 meses + 2.5 dias + $1250 Métricas x Estimativas Aplicativo Entregue Projeto Funcional Projeto Detalhado Requisitos Estimativas de Projetos – Carla A. Lima Reis
Benefícios de manter métricas (dados históricos) • Principal: aumenta a precisão das estimativas • Ajuste das influências no projeto • Evita subjetividade e otimismo infundado • “produtividade não varia muito de projeto para projeto” (Putnam) • Evita que discussões políticas afetem a estimativa métricas Estimativas de Projetos – Carla A. Lima Reis