Please enable JavaScript.
Coggle requires JavaScript to display documents.
*Métricas e monitoramento de softw - Coggle Diagram
*
Métricas e monitoramento de softw
O que é?
MÉTRICAS DE SOFTWARE são códigos numéricos que quantificam o desempenho, qualidade e as características de um sistema, um código ou uma equipe ao longo do tempo.
MONITORAMENTO DE SOFTWARE é o processo de coletar, rastrear e analisar esses dados para entender o comportamento da aplicação em tempo real, identificar falhas e garantir a estabilidade do serviço.
As métricas são a matéria-prima, enquanto o monitoramento é a ação realizada sobre essa matéria-prima.
Métricas
Cycle Time)
Mede o tempo total que leva para uma tarefa passar do início do desenvolvimento até estar concluída e entregue em produção.
Exemplo: Um desenvolvedor começa a escrever o código de uma nova funcionalidade na segunda-feira e a coloca no ar na quinta-feira. O tempo de ciclo foi de 4 dias.
MTTR - Mean Time to Repair
Mede o tempo médio que a equipe leva para corrigir um bug crítico ou recuperar o sistema após uma falha em produção.
Exemplo: O sistema caiu duas vezes no mês. A primeira queda demorou 30 minutos para ser resolvida e a segunda demorou 10 minutos. O MTTR é de 20 minutos.
Code Churn)
Mede a quantidade de linhas de código que foram modificadas, deletadas ou adicionadas em um determinado período. Um churn muito alto em arquivos específicos pode indicar instabilidade.
Exemplo: Em uma semana, um arquivo de 100 linhas teve 40 linhas alteradas e 10 deletadas. O churn daquele arquivo foi de 50%.
Deployment Success Rate
Mede a porcentagem de implantações (deployments) no ambiente de produção que ocorrem com sucesso, sem causar falhas ou precisar de rollback.
Exemplo: Se uma equipe realiza 20 atualizações no servidor durante o mês e 2 delas falham (precisando voltar à versão anterior), a taxa de sucesso é de 90%.
Class Coupling
Mede nível de interdependência entre diferentes classes ou módulos do sistema. Menores níveis de acoplamento tornam o código mais fácil de manter.
Exemplo: Se a Classe A precisa chamar métodos e variáveis de outras 15 classes diferentes para funcionar, ela possui um alto acoplamento, o que significa que mudar qualquer uma dessas 15 classes pode quebrar a Classe A.
Lead Time for Changes
Mede o tempo que leva para um commit (alteração de código) ir desde o momento em que é feito pelo desenvolvedor até rodar com sucesso em produção.
Exemplo: Um programador faz o commit de uma correção às 9h da manhã e, após passar por testes e esteiras automatizadas, ela entra no ar às 11h. O lead time foi de 2 horas.
Cyclomatic Complexity)
Mede a quantidade de caminhos linearmente independentes através do código de um programa, indicando quão complexo ou difícil de testar ele é.
Exemplo: Uma função simples sem nenhuma condicional (if/else) tem complexidade 1. Se você adicionar um if, a complexidade sobe para 2, pois agora existem dois caminhos possíveis.
Code Coverage
Mede a porcentagem do código-fonte que é executada durante a realização dos testes automatizados.
Exemplo: Se um sistema possui 1.000 linhas de código e os testes passam por 800 delas, a cobertura de código é de 80%.
Defect Density)
Mede o número de bugs ou defeitos confirmados encontrados em um módulo de software em relação ao tamanho total desse código (geralmente medido por mil linhas de código - KLOC).
Exemplo: Se um módulo de 2.000 linhas de código apresenta 10 bugs validados, a densidade é de 5 defeitos por KLOC (mil linhas).
Velocity
Mede a quantidade de trabalho (geralmente medida em pontos de história ou tarefas) que uma equipe ágil consegue entregar em um único sprint.
Exemplo: Se nas últimas três semanas a equipe entregou respectivamente 30, 32 e 28 pontos de tarefas, a velocidade média do time é de 30 pontos por sprint.
Benefícios
São essenciais para transformar o desenvolvimento e a operação de sistemas de uma abordagem reativa em uma gestão previsível, orientada a dados e focada na qualidade
Estruturas básicas
Histogramas (histograms) - mostra observações e as contas em intervalos configuráveis.. Ele também fornece a soma total de todos os valores observados e a contagem total de eventos.
Medidores (gauges) - representa uma métrica que pode subir e descer livremente. Ele funciona como um termômetro ou velocímetro, capturando uma foto do estado atual do sistema naquele exato instante.
Contadores (counters) - métrica cumulativa que representa um valor numérico que só pode aumentar ou ser reiniciado (resetado) para zero.