Africa Studio - stock.adobe.com

23 métricas de desenvolvimento de software que devem ser monitoradas

Aplicativos de alto desempenho, atraentes e seguros não acontecem por acaso. Meça esses KPIs para melhorar o processo de desenvolvimento de software e a qualidade do software.

As organizações de TI dependem de uma variedade destes KPIs (Indicadores-Chave de Desempenho) para compreender plenamente o progresso dos engenheiros de software, bem como a qualidade do software, o desempenho e a satisfação do usuário. A gama de medidas possíveis abrange quatro categorias-chave:

  1. Produtividade do desenvolvedor
  2. Desempenho do software
  3. Defeitos e segurança
  4. Experiência do usuário (User Experience – UX)

Embora uma organização de TI não precise tabular todas as métricas de software, deve dar prioridade e rastrear as que mais importam para os seus requisitos e objetivos. Quantifique estas 23 métricas de desenvolvimento de software e crie um conjunto de KPIs para a qualidade do software.

Métricas de produtividade do desenvolvedor

Há muitas maneiras de debater ou avaliar a eficiência da equipe e o resultado do trabalho. As métricas de produtividade permitem aos gerentes de desenvolvimento executarem melhor os projetos. Tabule uma combinação destas métricas de software para medir o quão avançado está um projeto, os níveis de produtividade do desenvolvedor, o tempo de desenvolvimento adicional necessário, e muito mais.

  1. Tempo de entrega (lead time). O tempo de entrega é o tempo que algo leva do princípio ao fim. No desenvolvimento de software, por exemplo, o tempo de execução de um projeto começa com a proposta e termina com a entrega.
  2. Quantidade de código. As equipes de desenvolvimento podem usar esta métrica de software, também conhecida como KLOC (Milhares de linhas de código), para determinar o tamanho de um aplicativo. Se este KPI for elevado, poderia indicar que os desenvolvedores foram eficientes em seus esforços de programação. Contudo, essa métrica não é útil quando uma equipe de desenvolvimento tenta comparar dois projetos elaborados com diferentes linguagens de programação. Além disso, vale considerar que mais quantidade de código nem sempre torna o código eficiente ou eficaz, o que pode significar mais trabalho de refatoração depois.
  3. Trabalho em progresso (WIP). Em um contexto de engenharia de software, o WIP é um trabalho de desenvolvimento em que a equipe começou a trabalhar e já não se encontra em backlog. Um computador pode expressar o WIP num gráfico de burndown. Uma ferramenta comum para sprints ágeis e Scrum, esses gráficos mostram o quanto de trabalho a equipe já realizou e quanto ainda resta por fazer.
  4. Velocidade ágil. Para calcular a velocidade, uma equipe de desenvolvimento ágil de software analisa os sprints anteriores e conta o número de histórias de usuários ou pontos de histórias completados ao longo do tempo. A velocidade ágil é uma estimativa de quão produtiva a equipe será num único sprint.
  5. Taxa de sucesso da meta Sprint. Essa métrica de software calcula a porcentagem de itens que a equipe de desenvolvimento completou no sprint backlog. Pode ocorrer que uma equipe não complete 100% do trabalho durante um determinado sprint. No entanto, o progresso da equipe poderia ainda cumprir a sua Definição de pronto (DoD): o limiar que um projeto deve cumprir para que uma organização o considere concluído. Se a iteração de desenvolvimento cumprir com definição de pronto, já é um sucesso.
  6. Número de versões de software. As equipes de desenvolvimento ágil e os DevOps priorizam os lançamentos de software contínuos e frequentes. Com esse KPI, as equipes podem monitorar com que frequência lançam software, seja mensal, semanal, diária, por hora, ou qualquer outro período de tempo, e se esse ritmo proporciona valor comercial suficiente.

Métricas de desempenho de software

O desempenho do software refere-se a medidas quantitativas do comportamento de um sistema de software. As métricas de desempenho medem atributos não funcionais, ou seja, qual é a eficiência de um aplicativo, não o que ele faz.

  1. Aspectos do desempenho de software. Os testes de desempenho podem avaliar as seguintes características de um aplicativo:
  • Escalabilidade
  • Estabilidade
  • Capacidade de resposta
  • Velocidade
  • Disponibilidade

 

Outras expressões importantes de métricas de desempenho de software incluem o seguinte:

  1.   Desempenho (throughput). O desempenho é a quantidade de unidades de dados que um sistema processa num determinado período de tempo.
  2.  Tempo de resposta. O tempo de resposta mede o tempo que um sistema leva para responder uma consulta ou demanda.
  3.   Confiabilidade, disponibilidade e capacidade de assistência (RAS). RAS refere-se à capacidade do software de cumprir consistentemente com suas especificações; quanto tempo funciona em relação à quantidade esperada; e o grau de facilidade com que pode ser reparado ou mantido.

Métricas baseadas em defeitos

As equipes de desenvolvimento devem entender as falhas dos aplicativos para poder aperfeiçoá-los. Estas métricas de desenvolvimento de software avaliam defeitos e vulnerabilidades.

  1. Densidade de defeitos. Em termos de código, os desenvolvedores podem tabular o número de defeitos por KLOC para avaliar a frequência dos defeitos.
  2. Cobertura de código. Esta é a proporção de código fonte coberta por testes automatizados. A métrica do software permite aos testadores identificar quais as áreas do código que ainda devem ser testadas corretamente.
  3. Taxa de detecção de defeitos. Essa métrica é uma relação entre o número de defeitos encontrados antes do lançamento do software, em comparação com o número encontrado após o lançamento. Para calcular a porcentagem, deve-se anotar o número de defeitos encontrados antes do lançamento (x) e o número encontrado pelos usuários após o lançamento (y), e depois calcular x/(x + y). Um alto percentual é preferível, pois significa que uma maior proporção de defeitos foi encontrada antes que os clientes utilizassem o software.
  4. Dívida técnica. A dívida técnica é uma metáfora que reflete o esforço a longo prazo, bem como os custos temporais e financeiros, dos desenvolvedores que não abordam um problema de desenvolvimento quando este surge pela primeira vez.

15. Moral como métrica

Trate a felicidade do empregado ou da equipe como outro indicador útil da produtividade e sucesso da equipe. Isso pode ser tão importante como qualquer métrica técnica ou KPI de qualidade do software.

Membros da equipe estressados ou insatisfeitos podem minar a produtividade do trabalho e, em última análise, o desempenho do software. Mantenha um inventário de números como a rotatividade dos membros da equipe, também chamada rotatividade de funcionários; um número mais baixo significa, provavelmente, que os funcionários estão satisfeitos dentro da organização.

  1. Vulnerabilidades de segurança. As análises de vulnerabilidade identificam as falhas de segurança em um aplicativo. Quanto menor for o número de vulnerabilidades encontradas, mais seguro é o software.
  2. Incidentes de segurança reais. Esse KPI conta o número de vezes que um hacker explora uma vulnerabilidade no software. Acompanha a frequência com que essas infrações ocorrem, a gravidade do ataque (por exemplo, que dados foram roubados), e o tempo de duração do incidente.

As organizações de TI utilizam várias médias para calcular a ocorrência de falhas ou defeitos de software:

  1. Tempo médio de detecção. O tempo médio de detecção é uma média que indica quanto tempo leva uma equipe para detectar um problema ou erro.
  2. Tempo médio entre falhas. Essa métrica se remete ao cálculo do tempo transcorrido entre uma falha e a próxima que irá ocorrer.
  3. Tempo médio para reparo. O tempo médio para reparo é a média que representa a rapidez com que uma equipe soluciona as falhas.

Métricas de usabilidade e UX

Os usuários experimentam e interagem com o software de diferentes maneiras. Assim como é difícil classificar as emoções das pessoas, também é um desafio avaliar como elas reagem ao software. Embora nenhuma métrica de software possa informar a totalidade da experiência do usuário, há algumas que são úteis:

  1. Métricas de UX. As métricas de UX costumam ser qualitativas e podem incluir respostas emocionais ou corporais dos usuários, tais como o quanto confiam no software e como os seus olhos se movem através de uma interface de usuário.
  2. Métricas de usabilidade. A usabilidade mede quão bem o software permite aos clientes alcançarem seus objetivos. A usabilidade inclui os seguintes componentes:
  • Facilidade de descoberta
  • Eficiência
  • Memorabilidade
  • Facilidade de aprendizagem
  • Satisfação
  • Acessibilidade, particularmente a acessibilidade digital
  1. Net Promoter Score (NPS). Essa métrica de software reflete a vontade dos clientes de recomendar um aplicativo a outros. O NPS é apresentado em uma escala de 0 a 10. Os clientes com uma pontuação de 0 a 6 são chamados Detratores; com pontuações de 7 e 8 são Neutros; e de 9 e 10 são Promotores.

Saiba mais sobre Desenvolvimento de software e aplicativos