Existem muitas situações no meu trabalho em que uso métricas de código:
Ao escrever o código
O maior e talvez o mais importante uso no meu trabalho diário é no Checkstyle , uma ferramenta para desenvolvedores de java que verifica continuamente as métricas (entre outras coisas) do meu código em relação a um conjunto de regras que definimos e sinaliza lugares onde meu código não cumprir essas regras. À medida que desenvolvo o código, ele informa em tempo real se meus métodos se tornam muito longos, complexos ou acoplados, o que me permite retroceder e pensar em refatorá-lo para algo melhor.
Os desenvolvedores são totalmente livres para violar todas as regras, pois nunca se aplicam a todas as situações. As "regras" existem para estimular o pensamento e dizer "Ei, essa é a melhor maneira de fazer isso?"
Durante revisões de controle de qualidade / código
A primeira coisa que geralmente faço quando faço uma revisão de código é verificar a cobertura do código que estou revisando em conjunto com uma ferramenta de cobertura de código que destaca quais linhas de código foram cobertas. Isso me dá uma idéia geral de quão completo é o código de teste. Realmente não me importo se a cobertura é de 20% ou 100%, desde que o código importante seja bem testado. Assim, a porcentagem coberta é um tanto sem sentido, mas 0% com certeza se destaca como um polegar dolorido como algo que eu quero examinar com cuidado.
Também verifico quais métricas acordadas pela equipe foram "quebradas", se houver, para ver se concordo com o desenvolvedor que estava OK ou se posso sugerir maneiras de melhorá-las. O fato de essas métricas de desenvolvimento terem sido acordadas em nossa equipe para a criação de um novo código fez com que grandes incursões na melhoria de nosso código. Escrevemos muito menos métodos monolíticos e somos muito melhores no princípio da responsabilidade única agora.
Tendências de melhorias no código herdado
Temos muitos códigos herdados que gostaríamos de melhorar. As métricas a qualquer momento são bastante inúteis, mas o que é importante para nós é que, com o tempo, a cobertura do código aumenta e coisas como complexidade e acoplamento diminuem. Portanto, nossas métricas são conectadas ao servidor de Integração Contínua, permitindo que analisemos o tempo para garantir que estamos no caminho certo.
Conhecendo uma nova base de código
A única vez em que utilizo linhas de métrica de código-fonte é ao olhar para uma base de código com a qual não estou familiarizado. Isso me permite avaliar rapidamente o tamanho aproximado do projeto em comparação com outros com os quais trabalhei. Usando outras métricas, também posso ter uma idéia mais aproximada da qualidade do projeto.
O principal é usar métricas como pontos de partida para tendências, discussões ou caminhos a seguir e não gerenciá-las religiosamente para números exatos. Mas acredito firmemente que eles podem ajudá-lo a melhorar o código correto quando usado corretamente.