6 Métricas de processo x Métricas de produto - franAnder/Engenharia-de-software-FACIMP GitHub Wiki
Métricas de software são parâmetros para medição do desempenho de software. Uma métrica é um padrão de medida do grau, em que o sistema ou processo de software é dotado de uma dada propriedade.
Ainda que uma métrica não seja uma medida (as métricas são funções, enquanto as medidas são números obtidos pela aplicação da métrica), muitas vezes os dois termos são usados como sinônimos. Dado que as medições quantitativas são essenciais em todas as ciências, há um esforço contínuo dos profissionais e teóricos da ciência da computação para adotar abordagens similares no desenvolvimento de software. A meta é obter medições objetivas, reprodutíveis e quantificáveis, que podem ter inúmeras aplicações valiosas no planejamento de cronograma e orçamento, na estimativa de custos, em quality assurance, testes, depuração de software, otimização do desempenho do software e do pessoal envolvido nas tarefas. Algumas métricas no processo de engenharia de software são diretas e indiretas. As diretas são o custo e o esforço aplicado ao desenvolvimento e manutenção do software e do produto, a quantidade de linhas de códigos produzidas e o total de defeitos registrados durante o determinado período de tempo. Porém, a qualidade e a funcionalidade do software, ou a sua capacidade de manutenção, são mais difíceis de serem avaliadas e só podem ser medidas de forma indireta.
Ao gerencias projetos de desenvolvimento de software, muitas atividades levam á necessidade de quantificar o que será desenvolvido. O tamanho do software é a base para outras medidas e valores importantes, como custos, prazo, desempenho e qualidade. Utilizar métricas é uma prática essencial para uma boa gestão. Uma bia métrica é aquela que permite a construção de indicadores que facilitam a tomada de decisão sem que sua confiabilidade seja questionada.
Métricas de processos
As saídas incluem – medidas de erros descobertos antes da entrega do software, defeitos entregues aos usuários finais e por ele relatados, produtividade dos produtos de trabalho entregues, esforço humano despendido, tempo gasto, cumprimento de cronograma e outras medidas.
Algumas dessas medidas, tais como defeitos entregues aos usuários finais, só podem ser utilizadas para avaliar o processo, enquanto que outras, tais como erros descobertos antes da entrega do software, podem ser utilizados para avaliar tanto o processo quanto um projeto em específico.
As métricas de processo de software podem fornecer benefícios significativos, à medida que a organização trabalha para aperfeiçoar seu nível gerencial de maturidade de processo.
Todavia, essas métricas podem ser mal utilizadas, criando mais problemas do que conseguem resolver.
Grady (1992) sugere uma etiqueta de métricas de software, que é apropriada tanto para os gerentes quanto para os profissionais, quando eles instituem um programa de métricas de processo:
Use bom senso e sensibilidade empresarial quando interpretar dados de métricas.
Forneça regularmente realimentação aos indivíduos e equipes que coletam medidas e métricas.
Não use métricas para avaliar indivíduos. Trabalhe com profissionais e equipes para estabelecer metas claras e métricas que devem ser usadas para alcançá-las. Nunca use métricas para ameaçar indivíduos ou equipes. Dados de métricas que indicam uma área problemática não devem ser considerados “negativos”. Esses dados são meramente um indicador para melhoria do processo. Não fique obcecado com uma única métrica em detrimento de outras métricas importantes. À medida que uma organização sente-se mais confortável, coletando e usando métricas de processo, a derivação de indicadores simples dá lugar a uma abordagem mais rigorosa, chamada melhoria estatística de processo de software – statistical software process improvement (SSPI).
A SSPI usa a análise de falhas de software para coletar informação sobre todos os erros e defeitos encontrados à medida em que uma aplicação, sistema ou produto é desenvolvido e usado.