Usted no
La calidad del software es realmente difícil de medir objetivamente. Lo suficientemente difícil como para que no haya una solución. Me estoy refrenando en esta respuesta para analizar la cuestión de si puede haber una solución, pero simplemente señalar por qué definirla sería realmente difícil.
Razonamiento por status quo
Como señaló Kilian Foth, si hubiera una medida simple para el "buen" software, todos lo estaríamos usando y todos lo exigirían.
Hay proyectos en los que los gerentes decidieron aplicar ciertas métricas. A veces funcionaba, a veces no. No tengo conocimiento de ninguna correlación significativa. El software de sistemas especialmente críticos (piense en aviones, automóviles, etc.) tiene muchos requisitos de métrica para "garantizar" la calidad del software. No conozco ningún estudio que demuestre que estos requisitos realmente den como resultado una mayor calidad, y tengo experiencias personales con el contrario.
Razonamiento por contrainteligencia
También lo insinuó Kilian, y en general se expresó como "todas las métricas pueden y serán jugadas".
¿Qué significa jugar una métrica? Es un juego divertido para desarrolladores: te aseguras de que los valores de las métricas se vean realmente bien, mientras haces cosas realmente malas.
Supongamos que mide defectos por LOC. ¿Cómo voy a jugar eso? Fácil: ¡solo agregue más código! Cree un código estúpido que resulte en una no operación en más de 100 líneas y de repente tenga menos defectos por LOC. Lo mejor de todo: en realidad disminuyó la calidad del software de esa manera.
Se abusa de las deficiencias de las herramientas, las definiciones se extienden al máximo, se inventan formas completamente nuevas ... básicamente, los desarrolladores son personas realmente inteligentes y si solo tienes un desarrollador en tu equipo que se divierta jugando métricas, entonces tus métricas serán cuestionables.
Esto no quiere decir que las métricas siempre sean malas, pero la actitud del equipo hacia estas métricas es crucial. En particular, esto implica que no va a funcionar bien para ninguna relación de subcontratista / proveedor de terceros.
Razonamiento por orientación incorrecta
Lo que quiere medir es la calidad del software. Lo que sí mide es una o más métricas.
Hay una brecha entre lo que mides y lo que crees que te dirá. Esta brecha es bastante grande incluso.
Sucede todo el tiempo en todo tipo de negocios a nuestro alrededor. ¿Alguna vez ha visto decisiones basadas en KPI (indicadores clave de rendimiento)? Es exactamente el mismo problema: desea que una empresa funcione bien, pero mide otra cosa.
Razonamiento por cuantificabilidad
Las métricas se pueden medir. Cuál es la única razón por la que tratamos con ellos. Sin embargo, la calidad del software se extiende mucho más allá de estas entidades medibles y tiene mucho que es muy difícil de cuantificar: ¿cuán legible es el código fuente? ¿Cuán extensible es tu diseño? ¿Qué tan difícil es para los nuevos miembros del equipo subir a bordo? etcétera etcétera.
Juzgar la calidad del software solo por métricas y hacer la vista gorda a las partes de la calidad que no puede cuantificar ciertamente no funcionará bien.
editar:
Resumen
Permítanme señalar que lo anterior se trata de juzgar objetivamente si el software es bueno o malo en función de las métricas. Esto significa que no dice nada sobre si debe aplicar métricas y cuándo.
De hecho, esta es una implicación unidireccional: las métricas incorrectas implican código incorrecto. Unidireccional significa que un código incorrecto no garantiza métricas incorrectas, ni las buenas métricas garantizan un código correcto. Por otro lado, esto en sí mismo significa que puede aplicar métricas para juzgar una pieza de software, cuando tenga en cuenta esta implicación.
Mide el software A, y las métricas resultan realmente malas. Entonces puede estar seguro de que la calidad del código es mala. Mide el software B y las métricas están bien, entonces no tiene idea de la calidad del código. No se deje engañar pensando "métricas buenas = código bueno" cuando en realidad es solo "código buenas => métricas buenas".
En esencia, puede usar métricas para encontrar problemas de calidad, pero no la calidad en sí misma.