As métricas são essenciais para a gestão e controle de qualidade e entregas no desenvolvimento de qualquer software.
Trabalhar sob as sombras do “achismo” trazem grandes problemas a curto, médio e longo prazo. A criação, acompanhamento, e análise de métricas para a gestão dos projetos é um trabalho árduo porém necessário.
Claro que não podemos trabalhar com embasamento no ideal e, sim, no real, onde nem todas as empresas, principalmente as micro e pequenas, podem arcar com as despesas de executar uma gestão completa com todas as métricas, em alguns casos não vale o investimento pelo retorno.
Dessa forma, serão apresentadas várias métricas possíveis, e dependendo da situação da empresa, podem ser utilizadas de acordo com a estratégia adotada.
Conteúdo
Métricas de produtividade do desenvolvedor
- Tempo de entrega(lead time) – É o tempo que algo leva do início ao fim do desenvolvimento de software, por exemplo, o lead time de um projeto de software inícia desde o planejamento até a entrega.
Essa métrica pode ser utilizada dentro de grupos de atividades, como as sprints. - Quantidade de código – Também conhecida como KLOC (Kilo Lines of Code), ela é utilizada pelas equipes de desenvolvedores para determinar a dimensão de um aplicativo.
Porém, não se pode considerar que mais quantidade de código torna o código eficiente ou eficaz, o que pode significar exatamente o oposto. - Trabalho em progresso (WIP) – O WIP(Work in Progress) é um trabalho em desenvolvimento e as atividades já não se encontram em backlog.
É possível expressar o WIP num gráfico de burndown. Uma ferramenta comum para sprints ágeis e Scrum. Esses gráficos mostram a quantidade de trabalho que a equipe já realizou versus o quanto ainda falta finalizar. - Velocidade ágil – Uma equipe de desenvolvimento ágil de software analisa as 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 squad está. - Sucesso de metas da Sprint – Essa métrica analisa a porcentagem de entregas que a equipe de completou durante e no final da sprint. Em alguns casos, a equipe não finaliza todas as atividades durante a sprint.
Entretanto, 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. - Quantidade 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 do software
- 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
- Desempenho – O desempenho é a quantidade de dados que um sistema processa num determinado período de tempo. Dessa forma é possível metrificar a quantidade ótima de processo de um software, sem prejudicar o bom desempenho do mesmo.
- Tempo de resposta – O tempo de resposta mede o tempo que um sistema leva para responder uma consulta ou demanda.
Você pode criar limites máximos de resposta de acordo com a satisfação dos seus clientes e usuários, caso o tempo de resposta esteja muito lento, é valido analisar formas de otimizar o software. - Confiabilidade, Disponibilidade e Escalabilidade (RAS) – RAS(Reliability, Availability e Scalability) refere-se à capacidade do software cumprir de forma consistente as suas especificações, se todas as funcionalidades e o software como um todo está disponível e o grau de facilidade com que pode ser reparado, mantido e melhorado.
Métricas baseadas em erros e bugs
- Densidade de erros e bugs – Em termos de código, os desenvolvedores podem tabular o número de erros e bugs por KLOC(Kilo Lines of Code) 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 erros e bugs – É uma relação entre o número de erros e bugs encontrados antes do lançamento do software, em comparação com o número encontrado após o lançamento.
Um alto percentual pode ser um bom sinal, pois significa que uma maior proporção de defeitos foi encontrada antes que os clientes utilizassem o software. - Débito técnico – 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.
Erros, funcionalidades mal desenvolvidas ou que não ficaram de acordo com os requisitos levantados e outros itens que foram “empurrados” para serem corrigidos ao longo do projeto e que interferiram diretamente na qualidade do software.
Métricas de Usabilidade e UX
Os usuários interagem com o software de diversas maneiras o que geram experiências diferentes. Para conseguir analisar melhor a experiência desses usuários, é valido analisar os seguintes pontos.
- Métricas de UX – As métricas de UX podem ser qualitativas e quantitativas, você pode analisar as reações corporais dos usuários ao utilizar o software, pedir feedbacks e sugestões e adicionar um rating(avaliação).
- Métricas de usabilidade – Ela mede o quão bem o software permite os usuários 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
Segurança como métrica
- 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 cibersegurança 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.
Ambiente de trabalho como métrica
TUm dos pontos mais importantes de métricas, é o nível de satisfação do colaborador ou da equipe. Ele pode funcionar como um 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, e irão, prejudicar a produtividade do trabalho e, em última análise, o desempenho do software.
Fazer reuniões one-on-one com a equipe são muito eficazes para coletar feedbacks sobre o nível de satisfação dos colaboradores.