Métricas de Software como Ferramenta de Apoio ao Gerenciamento de Projetos Aluno: Felipe Barbalho [email protected] Professores: Alexandre Vasconcelos e Cristine Gusmão 1 Agenda O que são Métricas de Software Visão Geral de Gerenciamento de Projetos Métricas no Gerenciamento de Projetos de Software Implantação de Programas de Medição 2 Objetivos Entender as abordagens principais de métricas e como elas são utilizadas; Entender as premissas básicas sobre Gerenciamento de Projetos; Entender como as métricas de software podem contribuir para um melhor controle dos projetos; Entender algumas boas práticas na implantação de Programas de Medição nas organizações. 3 Motivação • Aumentar a qualidade, performance e produtividade é o objetivo chave de qualquer organização que desenvolve software, e o uso de métricas está diretamente ligado ao controle desses processos; •Pesquisas realizadas em empresas de software indicam que mais da metade de grandes projetos de software se deparam com algum tipo de atraso, excesso de custo ou prazo ou algum fracasso na execução quando implantado ; •Falta de controle dos projetos de software. •Métricas de diferentes aspectos do desenvolvimento podem ajudar a determinar o progresso do projeto, e podem ser usadas no gerenciamento para prover base para tomada de decisão 4 O que são Métricas de Software 5 Por que medir software? Entender e aperfeiçoar o processo de desenvolvimento Melhorar a gerência de projetos e o relacionamento com clientes Reduzir frustrações e pressões de cronograma Gerenciar contratos de software Indicar a qualidade de um produto de software Avaliar a produtividade do processo Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de engenharia de software Avaliar retorno de investimento 6 Por que medir software? Identificar as melhores práticas de desenvolvimento de software Embasar solicitações de novas ferramentas e treinamento Avaliar o impacto da variação de um ou mais atributos do produto ou do processo na qualidade e/ou produtividade Formar uma baseline para estimativas Melhorar a exatidão das estimativas Oferecer dados qualitativos e quantitativos ao gerenciamento de desenvolvimento de software, de forma a realizar melhorias em todo o processo de desenvolvimento de software 7 O que são métricas de software? Uma métrica é a medição de um atributo (propriedades ou características ) de uma determinada entidade (produto, processo ou recursos). Exemplos: ◦ Tamanho do produto de software (ex: Número de Linhas de código) ◦ Número de pessoas necessárias para implementar um caso de uso ◦ Número de defeitos encontrados por fase de desenvolvimento ◦ Esforço para a realização de uma tarefa ◦ Tempo para a realização de uma tarefa ◦ Custo para a realização de uma tarefa ◦ Grau de satisfação do cliente (ex: adequação do produto ao propósito, conformidade do produto com a especificação) 8 Conceitos Medida: fornece uma indicação quantitativa da extenção, quantidade, dimenção, capacidade ou tamanho de algum atributo de um produto ou processo. Medição: ato de determinação de uma medida. Métrica: medida quantitativa do grau em que um sistema se encontra em relação a um determinado atributo. Indicadores: métrica ou combinação de métricas que fornece uma compreensão de um processo, projeto, ou produto. 9 Categorização de Métricas Métricas Básicas (Primitivas ou Diretas) ◦ são aquelas que podem ser mensuradas a partir de observação direta dos atributos envolvidos. ◦ Ex.: custo, esforço, no. linhas de código, capacidade de memória, no. páginas, no. diagramas, etc. Métricas Derivadas (Indiretas) ◦ Medidas obtidas a partir de outras métricas ◦ Ex.: complexidade, eficiência, confiabilidade, facilidade de manutenção 10 Categorização de Métricas Métricas orientadas a tamanho ◦ consideram o tamanho do software produzido (linhas de código), e referem-se a todas as atividades da engenharia (análise, projeto, código, teste). ◦ Ex.: Produtividade (KLOC/pesoa-mês ); Qualidade (defeitos/KLOC); Custo ($/KLOC) Métricas orientadas por função ◦ Consiste em um método para medição de software do ponto de vista do usuário, determinando de forma consistente o tamanho e a complexidade de um software. 11 Categorização de Métricas Métricas de produtividade ◦ Concentram-se na saída do processo de engenharia de software. ◦ Ex.: no. de casos de uso/iteração. Métricas de qualidade ◦ Oferecem uma indicação de quanto o software se adeqüa às exigências implícitas e explícitas do cliente. ◦ Ex.: erros/fase Métricas técnicas ◦ Concentram-se nas características do software e não no processo por meio do qual o software foi desenvolvido. ◦ Ex.: complexidade lógica e grau de manutenibilidade 12 Categorização de Métricas Métricas privadas ◦ Se refere ao escopo da equipe do projeto de software ◦ Ex,: defeitos para funções importantes do software, erros encontrados durante revisões técnicas formais. Métricas públicas ◦ Geralmente assimilam informações que anteriormente eram privadas de uma equipe. São coletadas e avaliadas tentando descobrir indicadores. ◦ Ex.: proporções de defeitos de projeto, esforço, tempo transcorrido e dados relacionados 13 Os Quatros papéis de Medição Segundo Humphrey, são quatro os principais papéis de Medições de Software: Entender Controlar Processos, Produtos e Serviços de Software Avaliar Prever 14 Os Quatros papéis de Medição Entender ◦ Métricas ajudam a entender o comportamento e funcionamento de processos, produtos e serviços de software Avaliar ◦ Métricas podem ser utilizadas para tomar decisões e determinar o estabelecimento de padrões, metas e critérios de aceitação Controlar ◦ Métricas podem ser utilizadas para controlar processos, produtos e serviços de software Prever ◦ Métricas podem ser utilizadas para prever valores de atributos 15 Métodos para Definição de Medidas O primeiro passo para o estabelecimento de uma política de mensuração é a identificação adequada das medidas a serem coletadas Essa definição deve ser feita com base em critérios bem fundamentados, devido ao grande número de opções possíveis e ao custo envolvido na coleta de cada informação. Com intuito de guiar o processo de definição das medidas, vários métodos foram propostos, como Balanced Scorecard (BSC), Goal-Question-Metric (GQM), Goal-Driven Software Measurement (GDSM) e Practical Software and System Measurement (PSM) 16 O Paradigma Goal Question Metrics (GQM) Usado para definir o conjunto de métricas a ser coletado Proposto por: ◦ Basili and Rombach’s, Goal-Question-Metrics Paradigm, IEEE Transactions on Software Engineering, 1988. Baseia-se no fato de que deve existir uma necessidade clara associada a cada métrica 17 O Paradigma Goal Question Metrics (GQM) O modelo é composto por três níveis: Conceitual (Goal): são definidos os objetivos da organização, ou seja, as metas a serem atingidas pelo programa de medição. Ex: reduzir defeitos, aumentar produtividade, etc. Operacional (Question): um conjunto de perguntas é elaborado com relação a cada objetivo identificado no nível anterior; Ex: Qual a taxa de defeito atual? Qual a taxa de defeito após a implantação do novo processo? Quantitativo (Metrics): um conjunto de métricas (objetivas e subjetivas) é estabelecido, de maneira a atender a cada pergunta elaborada no nível anterior. Ex: Que dados serão necessários? Quais os formatos? Como coletar (fórmula e processo)? Onde armazenar e como utilizar? 18 O Paradigma Goal Question Metrics (GQM) Goal 1 Goal 2 Questão 1 Questão 2 Questão 3 Questão 4 Métrica 1 Métrica 2 Métrica 3 Métrica 4 Métrica 5 19 Exemplo do uso do GQM Objetivo: Assegurar que todos os defeitos são corrigidos antes do software ser liberado para uso. Perguntas: Métricas: ◦ Quantos defeitos temos atualmente? ◦ Qual o status de cada defeito? ◦ Qual a cobertura dos testes? ◦ Número de defeitos ◦ Número de defeitos por status ◦ Número de casos de testes planejados x executados ◦ Número de requisitos testados 20 Visão Geral de Gerenciamento de Projetos 21 DEFINIÇÃO DE PROJETOS • Temporário (início e fim) • Para produzir produtos ou serviços únicos • Com elaboração progressiva • Limitado pelos critérios de tempo, custo, qualidade e recursos. 22 O QUE É GERENCIAMENTO DE PROJETOS É o conjunto de habilidades, ferramentas é técnicas para o planejamento, execução e controle de projetos. 23 GRUPOS DE PROCESSOS Para realizarmos um projeto é necessário executar uma série de processos divididos em áreas de conhecimento específicas. O foco do gerenciamento de projetos é a integração das áreas de conhecimento nos cinco grupos de processos definidos no PMBoK. Os cinco grupos de processo são: Processos de Iniciação Processos de Planejamento Processos de Execução Processos de Controle Processos de Encerramento 24 ÁREAS DE CONHECIMENTO DE GERENCIAMENTO DE PROJETOS Segundo o PMBoK, podemos separar o conhecimento em gerenciamento de projetos em nove áreas distintas: Escopo Tempo Custos Qualidade Integração Recursos Humanos Comunicação Riscos Aquisições 25 TRIPLA RESTRIÇÃO DE UM PROJETO A visão de um projeto bem gerenciado consiste em ter seus objetivos alcançados, distribuindo o produto com alta qualidade, no tempo previsto e com o preço justo Métricas no Gerenciamento de Projetos de Software 27 Definições As métricas são ferramentas essenciais ao gerenciamento de projeto de software. A escolha das métricas está intimamente associada às estratégias e objetivos da organização, e vai depender do estágio de maturidade em que a mesma se encontra; As métricas coletadas devem prover informações que ajudem o gerente de projeto na tomada de decisões de acordo com os objetivos e estratégias da organização. Um gerente de projeto deve acompanhar o progresso do projeto, prover visibilidade do projeto para revisões e tomadas de decisões quando o projeto estiver sofrendo desvios do planejamento, e assegurar o sucesso do projeto e a satisfação do cliente. Dessa forma as métricas tornam-se ferramentas fundamentais para o gerenciamento de projetos de software. 28 Objetivos das Métricas no Gerenciamento de Projetos Melhorar a qualidade do planejamento do projeto; Reduzir os custos de retrabalho no processo; Melhorar a qualidade do processo de desenvolvimento; Melhorar a qualidade do produto resultante; Reduzir os custos de falha; Aumentar a produtividade do desenvolvimento; Aperfeiçoar continuamente os métodos de gestão do projeto. 29 Características para Apoio ao Gerenciamento de Projetos Métricas devem ser bem definidas. Métricas devem ser intuitivas e rastreáveis Métricas devem ser dimensionáveis ou expressas em alguma unidade. Métricas devem ser robustas, ou seja, devem ser precisas e relativamente insensíveis a pequenas mudanças em ferramentas, métodos ou características do produto. 30 Características para Apoio ao Gerenciamento de Projetos Métricas devem ser obtidas o mais cedo possível no ciclo de vida do sistema. Métricas devem ser facilmente calculadas. Métricas devem sugerir uma estratégia de melhoria. Métricas devem ser simples. 31 Atividades Desempenhadas Em se tratando de métricas de software, é necessário definir algumas regras comportamentais para evitar má interpretação e falta de clareza nas métricas coletadas. Muitas das métricas de software coletadas são resultado das atividades desempenhadas pelos desenvolvedores de software e coletadas por eles próprios. Dessa forma, é preciso construir uma atmosfera confiável, que respeite as habilidades de cada pessoa para se medir e identificar as mudanças necessárias ao processo. 32 Atividades Desempenhadas Organização: ◦ Não permitir que métricas sejam utilizadas para medir individualmente as pessoas. ◦ Definir objetivos claros para as métricas e envolver seu staff na definição das métricas. ◦ Não enfatizar uma métrica, excluindo outras. 33 Atividades Desempenhadas Gerente de Projeto: ◦ Alcançar a concordância de toda equipe quanto as métricas a serem acompanhadas, e definir essas métricas em um plano de projeto. ◦ Fornecer feedback regularmente à equipe sobre os dados que eles estão coletando. ◦ Conhecer o foco estratégico da organização e, nos relatórios de métricos, enfatizar as métricas que suportam essa estratégia. 34 Atividades Desempenhadas Equipe Técnica: ◦ Procurar reportar os dados o mais apurado possível e nos períodos acordados. ◦ Ajudar o gerente a focar nos dados do projeto que irão levar a melhoria do processo. ◦ Não utilizar os dados levantados em benefício próprio. 35 Boas práticas na implantação de Programas de Medição nas organizações 36 Boas práticas na implantação de Programas de Medição nas organizações Necessidade de foco desde os estados iniciais Começar com um conjunto pequeno de métricas Utilização de um conjunto de métricas coerentes Utilização de um conjunto de medições rigorosamente definido Não utilizar métricas para motivar comportamentos esperados 37 Boas práticas na implantação de Programas de Medição nas organizações Automatizar a coleta e reportagem dos dados Motivar a Gerência Estabelecer expectativas Envolvimento de todos desde os estágios iniciais Educação e treinamento Ganhar confiança 38 Boas práticas na implantação de Programas de Medição nas organizações Adotar uma abordagem evolutiva Descartar o que não é útil Fornecer informações corretas para pessoas certas Incentivar os desenvolvedores a fazer uso das métricas Compreender que a adoção leva tempo Má interpretação dos dados 39 Fatores críticos para implantação de programas de medição Sobrecarga: envolve a coleta simultânea de muitos dados, o que resulta em esforço desperdiçado e perda da credibilidade do programa de medição. Uso incorreto da medição: é a utilização dos resultados de medições para avaliação dos profissionais, resultando em perda da integridade dos dados, pois os profissionais tendem a mascarar os dados com medo de que estes sejam utilizados contra eles Falhas de medição: são a obtenção de medidas erradas, ambíguas e inconsistentes, resultando em análises não conclusivas. Falhas de processo: são a obtenção de medidas que motivaram as falhas de processo (exemplo: o objetivo de diminuir a taxa de resolução de problemas induz a ação indesejada de que as equipes tratem primeiramente os problemas mais simples). 40 Dúvidas? 41