Seleccionar página

Calidad Software – Los 7 ejes de la calidad del código fuente

Insights -> Tendencias y Actualidad

Analizar sistemáticamente la salud de nuestros desarrollos software y sintetizarla en los 7 ejes de la Calidad del código Software es el leitmotiv del producto SonarQube™, proyecto de código abierto distribuido bajo licencia LGPL v3. La silueta de su cuadro de mandos («dashboard») es ya imborrrable en las retinas de muchos equipos de desarrollo.

¿Cuáles son los 7 ejes sonar de la Calidad del código Software?

el Código duplicado,

la adherencia a Estándares de codificación,

las Pruebas Unitarias,

la Complejidad del código,

las Evidencias de Fallos Potenciales,

el nivel de Comentarios,

y la valoración sobre Diseño y Arquitectura.

Calidad del código

7 axes Software Quality Sonar

Unas líneas de trabajo (de análisis) que arrancan desde la versión 2.0 de sonar, allá por los albores del año 2010. Con el tiempo este enfoque ha ganado en cuerpo, aromas y matices – como los buenos vinos – hasta consolidar un excelente maridaje con el método SQALE («Software Quality Assessment based on Lifecycle Expectations»), reconocido archienemigo de la deuda técnica.

En este artículo no vamos a desarrollar los detalles del conocido método SQALE, pero al menos queremos reseñar que está pensado para ser automatizado,  construido alrededor del control de la deuda técnica (lo que supuso un valioso cambio de paradigma) e impulsado por Jean-Louis Letouzey, al hilo de una investigación interna realizada en la empresa inspearit. Volveremos, es una valiosa píldora cultural.

Siguiendo con los cuadros de mando («dashboards») para gestionar la calidad del software conforme a los siete ejes técnicos citados, el punto fuerte de SonarQube™ es su capacidad para integrar la gestión de diversas herramientas de análisis de código fuente. Si cambiamos de perspectiva, a la gente de SonarSource les gusta llamarlos «los siete pecados del desarrollador»:

  1.  Tener líneas de código duplicado («Duplicated code»).
  2.  No respetar los estándares de codificación y las mejores prácticas establecidas («Coding standards»).
  3.  Tener una cobertura baja (o nula) de pruebas unitarias, especialmente en partes complejas del programa («Unit tests»).
  4.  Tener componentes complejos y/o una mala distribución de la complejidad entre los componentes («Complex code»).
  5.  Dejar fallos potenciales sin analizar («Potential bugs»).
  6.  Falta de comentarios en el código fuente, especialmente en las APIs públicas («Comments»).
  7.  Tener el temido diseño spaghetti, con multitud de dependencias cíclicas («Design and architecture»).
¡Cuidado! No emocionarse, por favor mantengan en todo momento los brazos dentro del vagón… ni utilizen «selfie-sticks».
No-selfie-sticks

No-selfie-sticks

Antes de lanzarnos a una irracional caza de brujas es preciso estudiar qué ejes son más relevantes para nosotros y en qué medida. Por ejemplo, deberemos evitar hipocresías como lipotimias por una baja adherencia a estándares de codificación que nadie ha definido.

Todo tiene un coste, tanto hacer algo como no hacerlo, así que lo más sensato (y rentable) es estudiar la situación, establecer un objetivo y un plan de trabajo paulatino. Como explicamos durante el evento organizado por @PanelSistemas sobre fabricación ecoLÓGICA de software, integrando acciones de mejora continua en los ciclos de desarrollo se obtienen unos elevados Retornos de Inversión (ROI).

El resultado merece el esfuerzo. Para que lo podáis valorar vosotros mismos os incluimos la refencia a un par de instancias SonarQube™ (enjoyadas a tope):

Dashboard Sonar EXOplatform

Dashboard Sonar EXOplatform

Sonar: Un producto exhaustivo y gratuito.
¿No será otro unicornio más?

Efectivamenrte, además de la valiosa aportación funcional del producto SonarQube™ consideramos relevante que el modelo de negocio de su fabricante (SonarSource) debe ser compatible con vuestros umbrales de rentabilidad. La descripción del producto que realizan nos parece de por sí reveladora de su estrategia «™»:

SonarQube™ software (previously known as “Sonar”) is an open source project hosted at Codehaus. Download and install your own copy. Version: 5.1.1 (Jun 5, 2015) distributed under license LGPL v3.

El modelo de negocio se basa en recortar funcionalidades de la versión gratuita («Community») e incorporarlas en forma de extensiones («plug-in») en las diversas ediciones comerciales. Es bastante fácil plantarse en los 50.000 EUR anuales, perfectamente razonables en un proyecto de 50 personas que quieran disponer de estos cuadros de mando «para currar».

Por último, como bien señalaba Allard Buijze: Sin perder de vista que las métricas son una excelente ayuda, sigue siendo necesario que los equipos de trabajo analicen, entiendan y ponderen los resultados. Por desgracia, ni siquiera unas métricas excelentes garantizan un proyecto software exitoso. Siempre será necesario combinar un buen proceso de  trabajo, una adecuada gestión del proyecto, arquitectos centrados y un equipo de interesados implicado para asegurar la debida entrega de valor a nuestros clientes.

En todo caso, nada que no pueda arreglar un experto como bien se explican en este divertido vídeo (7 minutos, en inglés con subtítulos): The expert. (Gracias Cosme)

(Si no puedes visualizar el vídeo, pulsa aquí)

Panel Testing - Centro de Excelencia

Panel Testing - Centro de Excelencia

Nuestro Centro de Excelencia en SQA & Testing (CEST) es responsable de asegurar la Calidad del Software en los proyectos que desarrollamos, así como de evolucionar nuestro Know How en esta actividad. Si quieres conocernos mejor, visítanos en esta página, o contacta con nosotros vía e-mail en esta dirección.

Comentarios

0 comentarios

Trackbacks/Pingbacks

  1. #SQA: Navegar y disfrutar en equipo - […] atención y en equipo, pero son muy reconfortantes. En la construcción de software las denominamos “Quality Gates” y una…
Share This