Não tenho certeza se você o consideraria elegante, mas Watts Humphrey escreveu um livro inteiro chamado Personal Software Process que tratava de medir sua própria produtividade. Ele descreveu métricas para entradas como tempo em sua mesa versus interrupções, tempo gasto trabalhando em vários tipos de atividades do ciclo de vida de software, defeitos por quantidade de código. Há um relatório técnico que fornece a versão curta em:
http://www.sei.cmu.edu/library/abstracts/reports/00tr022.cfm
Se você quiser ver algo como a qualidade de um código de desenvolvedor, a Chidamber & Kemerer propôs várias métricas para o código orientado a objetos.
Métricas para código orientado a objetos
- profundidade da árvore de herança,
- número ponderado de métodos,
- número de funções membro,
- número de filhos e
- acoplamento entre objetos.
Usando uma base de código, eles tentaram correlacionar essas métricas com a densidade de defeitos e o esforço de manutenção usando análise covariante. Estudos posteriores fizeram análises semelhantes em centenas de projetos Java do Source Forge para determinar suas características em relação às CK Metrics e algumas métricas adicionais propostas posteriormente.
Métricas surgidas no contexto das Revisões de Código
Os defeitos podem ser classificados por vários critérios:
- gravidade: (maior, menor, cosmética, investigar / desconhecido),
- tipo (lógica, erro de digitação, ortografia, violação padrão de codificação etc.),
- origem / contenção de fase (requisitos, design, código etc.).
Também existem taxas de preparação e inspeção (tempo por revisor, tempo por linha de código) e densidades de defeitos (por KLOC (mil linhas de código), por minuto de tempo do inspetor / revisor).
A plotagem desses valores nos gráficos de controle pode nos mostrar se estamos dentro dos limites do processo (por exemplo, uma equipe que inspeciona 200 linhas de código que não encontra defeitos em um grupo com média de vinte e cinco defeitos por KLOC pode não funcionar corretamente).
Outras métricas
Outras métricas que podem ajudar a incluir aquelas para
Limitações da análise
Existem enormes limites no valor das métricas. Bugs corrigidos por desenvolvedor podem significar quase tudo, e quando você começar a punir ou recompensar essa medição, aposto que os bugs ficarão mais numerosos e granulares, e a mistura de bugs difíceis de fáceis corrigidos também mudará conforme a cereja do time escolhe. correr para ter o máximo.
Há também uma certa distração e, potencialmente, uma perda de foco e prazer que pode ocorrer com medidas intrusivas. Você não pode ficar muito mais elegante (e emocionalmente sobrecarregado) do que um poeta do lago como Wordsworth, que disse:
Sweet is the lore which Nature brings;
Our meddling intellect
Mis-shapes the beauteous forms of things:--
We murder to dissect.
Embora o software não seja exatamente a natureza, me dê um pouco de latitude, porque pensei que nunca usaria nada da aula de literatura inglesa do ensino médio.
O Agile pode ser considerado uma reação ao grande processo centralizado. Às vezes, esse modo de trabalho pode exigir tanto esforço analítico que a capacidade de atingir o fluxo enquanto cria software desaparece.
Quero acrescentar uma resposta alternativa que afaste a prática padrão de engenharia de software em direção a outro campo, com o objetivo de roubar ferramentas básicas que podemos adaptar conforme necessário. O pessoal da garantia de qualidade se preocupa com a produção, o rendimento e a detecção e prevenção de defeitos, assim como os desenvolvedores de software.
http://en.wikipedia.org/wiki/Seven_Basic_Tools_of_Quality
Eu gosto da tabela de controle.
http://en.wikipedia.org/wiki/Control_chart
Faça uma atividade, plote uma métrica, faça outra, plote sua métrica e assim por diante. Por exemplo, a plotagem é confirmada por dia. O gráfico espalhará dados que variam de um mínimo a outro máximo. Talvez mais tarde você possa caracterizar os resultados para determinar que, quando o valor é baixo, algo está impedindo o progresso e quando é muito alto, o trabalho é iniciado de maneira rápida, mas desleixada. A maneira como você encoraja os trabalhadores a acelerar ou desacelerar é sua.
Métricas pessoais podem ser algo que você pode correlacionar para si mesmo, começando com uma pergunta como "Sinto-me mais produtivo quando ..."
A antiga visão de que medimos é o que é feito pode levar você a atacar o problema com base no que você determina ser o fator limitante
ou vários fatores em ordem de prioridade com base em um diagrama de Pareto.
http://en.wikipedia.org/wiki/Pareto_chart
fonte