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:
- Produtividade do desenvolvedor
- Desempenho do software
- Defeitos e segurança
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
- Desempenho (throughput). O desempenho é a quantidade de unidades de dados que um sistema processa num determinado período de tempo.
- Tempo de resposta. O tempo de resposta mede o tempo que um sistema leva para responder uma consulta ou demanda.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
- 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.
- 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.
- 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:
- 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.
- 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
- 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.