O que não é medido não é melhorado. Métricas de qualidade ajudam a entender a saúde do software e guiar decisões. Este guia apresenta as métricas mais importantes e como usá-las.
Por Que Medir Qualidade
Visibilidade
Entender estado atual.
Tendências
Melhorando ou piorando?
Decisões
Baseadas em dados, não intuição.
Comunicação
Demonstrar qualidade para stakeholders.
Métricas de Código
Code Coverage
Percentual de código coberto por testes.
Cyclomatic Complexity
Complexidade de caminhos no código.
Duplicação
Código repetido.
Technical Debt
Estimativa de trabalho de cleanup.
Maintainability Index
Score de facilidade de manutenção.
Métricas de Bugs
Defect Density
Bugs por tamanho de código (KLOC).
Bug Escape Rate
Bugs encontrados em produção vs total.
MTBF
Mean Time Between Failures.
MTTR
Mean Time To Repair.
Severity Distribution
Proporção por severidade.
Métricas de Testes
Test Coverage
Unit, integration, E2E.
Test Pass Rate
Percentual que passa.
Flaky Tests
Testes instáveis.
Test Execution Time
Quanto tempo para rodar suite.
Métricas de Processo
Lead Time
Do commit ao deploy.
Cycle Time
Do início ao fim de uma feature.
Deployment Frequency
Quantos deploys por período.
Change Failure Rate
Percentual de deploys que causam problemas.
DORA Metrics
O Que São
Métricas de DevOps Research and Assessment.
Quatro Métricas
- Deployment Frequency
- Lead Time for Changes
- Change Failure Rate
- Time to Restore Service
Classificação
Elite, High, Medium, Low performers.
Code Review
Time to Review
Quanto tempo para código ser revisado.
Review Thoroughness
Comentários substantivos.
Approval Rate
Taxa de aprovação.
Métricas de Produção
Uptime
Disponibilidade do sistema.
Error Rate
Taxa de erros em produção.
Response Time
Latência de requisições (p50, p95, p99).
Throughput
Requests por segundo.
Satisfação do Usuário
NPS
Net Promoter Score.
App Store Rating
Avaliação nas lojas.
Bug Reports
Volume de reports de usuários.
Support Tickets
Chamados relacionados a bugs.
Security
Vulnerabilities
Número e severidade.
Time to Patch
Quanto tempo para corrigir.
Security Incidents
Ocorrências de segurança.
Ferramentas
SonarQube
Análise estática, métricas de código.
Codecov/Coveralls
Coverage tracking.
DORA/Sleuth
Métricas de deployment.
Datadog/New Relic
Métricas de produção.
Dashboards
Visibilidade
Métricas acessíveis ao time.
Atualização
Em tempo real quando possível.
Trends
Visualizar evolução.
Alertas
Notificações para anomalias.
Usando Métricas
Não Gamificar
Métricas para insight, não punição.
Contexto
Números sem contexto enganam.
Trends > Absolutes
Direção importa mais que valor pontual.
Action
Métrica que não leva a ação é inútil.
Métricas por Fase
Desenvolvimento
Complexity, coverage, review time.
Release
Lead time, deployment frequency.
Produção
Error rate, uptime, response time.
Pós-Release
Defect density, customer satisfaction.
Melhoria Contínua
Baseline
Estabeleça ponto de partida.
Goals
Defina targets realistas.
Retrospectives
Discuta métricas regularmente.
Experiments
Teste intervenções.
Erros Comuns
Métricas como Objetivo
Coverage de 100% não significa qualidade.
Muitas Métricas
Foco em poucas importantes.
Ignorar Contexto
Times e projetos diferentes.
Punição por Métricas
Causa comportamento perverso.
Conclusão
Métricas de qualidade são ferramentas para entender e melhorar software. Escolha as certas para seu contexto, monitore tendências e tome ação baseada em dados. Qualidade é jornada contínua, não destino.
FAQs
1) Qual coverage é suficiente? 70-80% é bom target. Mas depende do que é testado.
2) Quais métricas mais importantes? DORA metrics para DevOps. Defect density e uptime para qualidade.
3) Métricas substituem bom julgamento? Não. Informam decisões, não decidem.
4) Como convencer time a adotar métricas? Mostre valor. Não use para punir.
5) Métricas valem para time pequeno? Sim. Simplifique, mas meça o essencial.