Conceito: Métricas
As métricas são números utilizados como uma medida do padrão de qualidade para comparar diferentes itens ou períodos de tempo.
Relacionamentos
Elementos Relacionados
Descrição Principal

Por que Medir?

As medidas são efetuadas principalmente para ter o controle de um projeto e, portanto, ser capaz de gerenciá-lo. Elas também são utilizadas para avaliar o grau de proximidade dos objetivos estabelecidos no plano em termos de conclusão, qualidade, conformidade com os requisitos, etc.

Com as medidas, também é possível estimar melhor o esforço, custo e qualidade de novos projetos, com base em experiência anterior. Por último, utiliza-se a medida para avaliar o aprimoramento em alguns aspectos-chave de desempenho do processo ao longo do tempo, para observa os efeitos das alterações.

A medição de alguns aspectos-chave de um projeto envolve um custo significativo. Por essa razão, não medimos qualquer coisa simplesmente porque podemos fazer isso. É necessário estabelecer com bastante exatidão as metas desse esforço e coletar apenas as métricas que permitirão cumprir essas metas.

Há dois tipos de metas:

  1. Metas de conhecimento: são expressas pelo uso de verbos, como avaliar, prever, monitorar. Você deseja compreender melhor o processo de desenvolvimento. Por exemplo, talvez você deseja avaliar a qualidade do produto, obter dados para prever o esforço de teste, monitorar a cobertura de teste ou rastrear alterações de requisitos.
  2. Metas de alteração ou realização: são expressas pelo uso de verbos, como aumentar, reduzir, aprimorar ou realizar. Geralmente você tem interesse em ver como as coisas são alteradas ou aprimoradas ao longo do tempo, de uma iteração para outra, de um projeto para outro.

Exemplos:

  • Monitorar o progresso relativo ao plano
  • Aprimorar a satisfação do cliente
  • Aprimorar a produtividade
  • Aprimorar a previsibilidade
  • Aumentar a reutilização

Essas metas gerais de gerenciamento não são facilmente convertidas em métricas. Elas precisam ser convertidas em submetas menores (ou metas de ação) que identificam ações que os membros do projeto precisam executar para alcançar a meta. É necessário certificar-se de que as pessoas envolvidas compreendam os benefícios.

Exemplos

A meta para "aprimorar a satisfação do cliente" seria decomposta em:

  • Definir a satisfação do cliente
  • Medir a satisfação do cliente, em vários releases
  • Verificar se há aprimoramento da satisfação

A meta para "aprimorar a produtividade" seria decomposta em:

  • Medir esforço
  • Medir progresso
  • Calcular a produtividade em várias iterações ou projetos
  • Comparar os resultados

Por conseguinte, seria necessária a coleta de algumas métricas para algumas submetas (mas não todas).

Exemplo

"Medir a satisfação do cliente" pode ser derivada de

  • Relatório sintético do cliente (em que o cliente atribuiria notas para os diferentes aspectos).
  • Número e gravidade de chamadas para a hotline de suporte ao cliente.

Para obter informações adicionais, consulte AMI95].

Uma maneira útil de categorizar essas metas é por organização, projeto e necessidade técnica. Isso oferece uma estrutura para o refinamento descrito anteriormente.

Necessidades Organizacionais para Métricas

Uma organização precisa saber, e talvez aprimorar, seus custos por 'item', reduzir seus tempos de construção (prazo de lançamento no mercado) e, ao mesmo tempo, fornecer um produto de qualidade conhecida (objetiva e subjetiva) e com demandas de manutenção apropriadas. Uma organização pode precisar ocasionalmente (ou mesmo continuamente) aprimorar seu desempenho para manter-se competitiva. Para reduzir seus riscos, uma organização precisa conhecer os níveis de habilidade e de experiência de sua equipe e assegurar que ela possua os outros recursos e a capacidade para competir na esfera escolhida. Uma organização deve ser capaz de introduzir uma nova tecnologia e determinar seu custo-benefício. A tabela a seguir lista alguns exemplos dos tipos de métricas relevantes a essas necessidades para uma organização de desenvolvimento de software.

Preocupação

Métrica

Custo do Item Custo por linha de código, custo por ponto de função, custo por caso de uso. Esforço normalizado (através de parte definida de ciclo de vida, linguagem de programação, qualidade de equipe, etc.) por linha de código, ponto de função ou caso de uso. Observe que essas métricas não são geralmente números simples - elas dependem do tamanho do sistema a ser entregue e se o planejamento está compactado.
Tempo de Construção Tempo decorrido por linha de código ou ponto de função. Observe que isso também depende do tamanho do sistema. É possível, também, reduzir o planejamento por inclusão de equipe - mas apenas até um determinado ponto. A capacidade de gerenciamento de uma organização determinará o limite exato.
Densidade de Defeitos no Produto Entregue Defeitos (descobertos após a entrega) por linha de código ou ponto de função.
Qualidade Subjetiva Facilidade de uso, facilidade de operação e aceitação do cliente. Embora sejam difusas, as maneiras de tentar a quantificação foram planejadas.
Facilidade de Manutenção Custo por linha de código ou ponto de função por ano.
Perfil de Habilidades, Perfil de Experiência O grupo de Recursos Humanos provavelmente manteria algum tipo de banco de dados de habilidades e experiências.
Recurso de Tecnologia
  • Ferramentas - uma organização deve conhecer aquelas de uso geral e a extensão de conhecimento daquelas não utilizadas regularmente.
  • Maturidade do Processo - em que lugar a organização está classificada na escala SEI CMM, por exemplo?
  • Recurso de Domínio - em quais domínios de aplicativo a organização é capaz de desempenhar?
Medidas de Aprimoramento do Processo
  • Tempo e esforço de execução do processo.
  • Taxas de defeitos, estatísticas de análise causal, taxas de correção, scrap e retrabalho.

Necessidades do Projeto para Métricas

Um projeto deve atender aos seguintes critérios antes da entrega:

  • recursos funcionais e não funcionais requeridos
  • várias restrições técnicas
  • restrições de orçamento e de planejamento
  • determinadas características de transição, operação e manutenção

O Coordenador de Projeto deve ser capaz de perceber se as metas estão sendo acompanhadas, expandidas na tabela a seguir para dar uma idéia das considerações a serem feitas sobre as medidas do projeto:

Preocupação

Esforço e Orçamento do Projeto
  • Como está o acompanhamento do projeto sobre o esforço e custo em relação ao plano?
Planejamento do Projeto
  • O projeto está correspondendo a seus marcos?
Transição/Instalação
  • Os requisitos de esforço, custo e habilidades previstos são aceitáveis?
Operação
  • Os requisitos de esforço e habilidades previstos são suportáveis pelo cliente?
Manutenção/Suportabilidade
  • Os requisitos de esforço e habilidades previstos são aceitáveis para o cliente?
Requisitos Funcionais
  • Os requisitos são válidos e completos?
  • Os requisitos estão alocados para uma iteração?
  • Os requisitos estão sendo realizados de acordo com o plano?
Requisitos Não Funcionais
  • Desempenho
    • O sistema está atendendo aos requisitos de pronto atendimento, rendimento do processamento, tempo de recuperação?
  • Capacidade
    • O sistema pode manipular o número necessário de usuários simultâneos? O Web site pode manipular o número necessário de ocorrências por segundo? Existe armazenamento suficiente para o número necessário de registros do cliente?
  • Fatores de Qualidade
    • Confiabilidade: com que freqüência são permitidos defeitos do sistema e o que constitui um defeito do sistema?
    • Utilidade: o uso do sistema é fácil e satisfatório? Quanto tempo leva para aprender a utilizá-lo e quais habilidades são necessárias?
    • Tolerância a falhas/resistência/recuperação/subsistência: o sistema poderá continuar em funcionamento se ocorrerem defeitos? O sistema pode lidar com entrada inválida? O sistema é capaz de recuperação automática após um defeito?
  • Requisitos de Engenharia de Especialidade
    • Segurança: o sistema pode ser desempenhado sem risco à vida ou propriedade (tangível e intangível)?
    • Segurança/privacidade: o sistema protege os dados sigilosos contra acesso não autorizado? O sistema está seguro contra acesso mal-intencionado?
    • Impacto ambiental: o sistema atende aos requisitos ambientais?
  • Outros Requisitos Reguladores ou Jurídicos
  • Restrições
    • Ambiente externo: o sistema tem capacidade para operação no ambiente prescrito?
    • Recursos, host, destino: o sistema atende a suas restrições de CPU, memória, idioma, ambiente de hardware/software?
    • Uso do COTS (Commercial-Off-The-Shelf) ou outro software existente: o sistema atende às restrições de reutilização?
    • Disponibilidade e habilidades da equipe: o sistema pode ser construído com o número e tipo de equipe disponível?
    • Suporte/compatibilidade de interface: o sistema pode suportar o acesso requerido para/de outros sistemas?
    • Reutilidade: quais provisões foram feitas para a reutilização do sistema?
    • Padrões estabelecidos: o sistema e o método de desenvolvimento estão em conformidade?
    • Outras restrições de design (arquiteturais, algorítmicas, por exemplo):  o sistema está utilizando o estilo arquitetural requerido? Os algoritmos prescritos estão sendo utilizados?

Esta é uma extensa, porém não completa, lista de preocupações para o Coordenador de Projeto. Muitas delas necessitarão da coleta e análise de métricas, outras também necessitarão do desenvolvimento de testes específicos (para derivar medidas) para que seja possível responder às perguntas apresentadas.

Necessidades Técnicas para Métricas

Muitas das necessidades do projeto não terão medidas diretas e, mesmo para aquelas que tiverem, pode não ficar claro o que deve ser feito ou alterado para aprimorá-las. Os atributos de qualidade de nível inferior podem ser utilizados para construir a qualidade de vários atributos de qualidade de nível superior, como aqueles identificados no Padrão ISO 9126 (Características e Métricas de Qualidade de Software) e aqueles mencionados anteriormente em Necessidades do Projeto. Estas medidas técnicas são de características e efeitos (estruturais e comportamentais) de engenharia (abrangendo o processo e o produto), que contribuem para as necessidades de métricas no nível do projeto. Os atributos na tabela a seguir foram utilizados para derivar um conjunto de métricas de amostra para os produtos de trabalho e o processo do Rational Unified Process. Isso pode ser encontrado em Diretriz do Produto de Trabalho: Métricas.

Qualidade

Atributos

Boa Qualidade de Requisitos
  • Volatilidade: freqüência de alteração, taxa de introdução de novos requisitos
  • Validade: estes são os requisitos corretos?
  • Integralidade: estão faltando requisitos?
  • Correção de expressão: os requisitos foram determinados corretamente?
  • Clareza: as descrições são compreensíveis e sem ambigüidade?
Boa Qualidade de Design
  • Acoplamento:  qual a extensão das conexões entre os elementos do sistema?
  • Coesão: cada componente possui um único propósito bem definido?
  • Estado primitivo: os métodos ou operações de uma classe podem ser construídos a partir de outros métodos ou operações da classe? Neste caso, eles não são primitivos (uma característica desejável).
  • Integralidade: o design realiza totalmente os requisitos?
  • Volatilidade: freqüência de alteração arquitetural.
Boa Qualidade de Implementação
  • Tamanho: qual a proximidade da implementação em relação ao tamanho mínimo (para resolver o problema)? A implementação atenderá às restrições?
  • Complexidade: o código é algoritmicamente difícil ou complexo? É difícil compreender e modificá-lo?
  • Integralidade: a implementação realiza fielmente todo o design?
Boa Qualidade de Teste
  • Cobertura: o quanto é satisfatória a aplicação do teste do software? Todas as instruções são executadas por um conjunto de testes? O teste aplica vários caminhos através do código?
  • Validade: os testes, propriamente ditos, são um reflexo correto dos requisitos?
Boa Qualidade de Processo (nível mais baixo)
  • Taxa de defeitos, causa do defeito: qual é a incidência de defeitos em uma tarefa e quais são as causas?
  • Esforço e duração: qual duração e quanto esforço humano são requeridos por uma atividade?
  • Produtividade: por unidade de esforço humano, o que uma atividade produz?
  • Boa qualidade de produtos de trabalho: qual é o nível de defeitos nas saídas de uma tarefa?
Eficácia de Alteração de Processo/Ferramenta (o mesmo que Boa Qualidade de Processo, mas a porcentagem é alterada no lugar de valores totais):
  • Taxa de defeitos, causa do defeito
  • Esforço e duração
  • Produtividade
  • Boa qualidade de produtos de trabalho

Para um tratamento detalhado dos conceitos de métricas, consulte [WHIT97].

O que é uma Métrica?

Há dois tipos distintos de métricas:

  • Uma métrica é um atributo mensurável de uma entidade. Por exemplo, esforço do projeto é uma medida (ou seja, métrica) de tamanho do projeto. Para calcular essa métrica, você precisaria somar todos os registros da planilha de tempo durante o projeto.
  • Uma métrica primitiva é um item de dados brutos utilizado para calcular uma métrica. No exemplo anterior, os registros da planilha de tempo são as métricas primitivas. Uma métrica primitiva é geralmente uma métrica que existe em um banco de dados, mas que não é interpretada isoladamente.

Cada métrica é formada por uma ou mais métricas coletadas. Conseqüentemente, cada métrica primitiva precisa ser claramente identificada e seu procedimento de coleta definido.

As métricas para suporte às metas de alteração ou realização são, muitas vezes, as "primeiras derivativas" no decorrer do tempo (ou iterações ou projeto). Estamos interessados em uma tendência, não no valor absoluto. Para "aprimorar a qualidade", é necessário verificar se o nível residual de defeitos conhecidos diminui ao longo do tempo.

Modelos

Modelo para uma Métrica

Nome Nome da métrica e quaisquer sinônimos conhecidos.
Definição Os atributos das entidades medidas utilizando esta métrica, como a métrica é calculada e a partir de quais métricas primitivas ela é calculada.
Metas Lista de metas e perguntas relacionadas a esta métrica. Também algumas explicações do motivo da coleta da métrica.
Procedimento de Análise Como a métrica deve ser utilizada. Condições prévias para a interpretação da métrica (por exemplo, intervalo válido de outras métricas). Valores ou tendências de destino. Modelos de técnicas de análise e ferramentas a serem utilizadas. Premissas implícitas (por exemplo, do ambiente ou dos modelos). Procedimentos de ajuste. Armazenamento.
Responsabilidades Quem coletará e agregará os dados de medida, preparará os relatórios e analisará os dados.

Gabarito para uma Métrica Primitiva

Nome Nome da métrica primitiva.
Definição Descrição sem ambigüidade da métrica em termos do ambiente do projeto.
Procedimento de Coleta Descrição do procedimento de coleta. Ferramenta e forma de coleta de dados a serem utilizadas. Pontos no ciclo de vida quando os dados são coletados. Procedimento de verificação a ser utilizado. O lugar em que os dados serão armazenados, o formato e a precisão.
Responsabilidades Quem é responsável pela coleta dos dados. Quem é responsável por verificar os dados.

Tarefas de Métricas

Existem duas tarefas:

  • Definir plano de medidas
  • Coletar medidas

A definição do plano de medidas é feita uma vez em cada ciclo de desenvolvimento - na fase de iniciação, como parte da atividade de planejamento geral ou, às vezes, como parte da configuração do processo no caso de desenvolvimento. O plano de medidas pode ser inspecionado, como qualquer outra seção do plano de desenvolvimento de software, durante o projeto.

A coleta de medidas é feita de modo repetitivo, pelo menos uma vez por iteração e às vezes com mais freqüência; por exemplo, semanalmente em um iteração que se estende por muitos meses.

As métricas coletadas fazem parte do documento Avaliação de Status, a ser explorado ao avaliar o progresso e o funcionamento do projeto. Elas também podem ser acumuladas para uso posterior em estimativas e tendências do projeto por toda a organização.

Como as Métricas São Utilizadas?

Estimativa

O coordenador de projeto, em particular, se depara com a necessidade de planejar - designar recursos a tarefas com orçamentos e planejamentos. O esforço e o planejamento são estimados a partir de uma avaliação do que deve ser produzido, ou o inverso - existem recursos e um planejamento fixados e é necessária uma estimativa do que pode ser produzido. A estimativa geralmente está relacionada ao cálculo de necessidades do recurso com base em outros fatores - normalmente tamanho e produtividade - para propósitos de planejamento.

Previsão

A previsão é somente um pouco diferente da estimativa e, geralmente, é sobre o cálculo do valor futuro de algum fator baseado no valor atual desse fator e outros fatores que exercem influência. Por exemplo, dada uma amostra de dados de desempenho, é útil saber (prever) a partir dela como será o desempenho sistema sob carregamento total ou em uma configuração restrita ou degradada do recurso. Os modelos de previsão de confiabilidade utilizam os dados de taxa de defeitos para prever quando o sistema alcançará determinados níveis de confiabilidade. Após o planejamento de uma atividade, o coordenador de projeto precisará dos dados para prever as datas de conclusão e o esforço para conclusão.

Avaliação

A avaliação é utilizada para estabelecer a posição atual para comparação com um limite, declaração ou identificação de tendências ou para comparação entre alternativas ou como a base para estimativa ou previsão.

Para obter informações adicionais sobre métricas no gerenciamento de projeto, leia [ROY98].