La calidad del software

Como desarrolladores de software, deberíamos dar una importancia mayúscula a la calidad del código que escribimos y la del software que producimos.

Sin embargo, en muchas ocasiones, preferimos echar balones fuera, diciendo que “no nos han dado tiempo” para hacer las cosas bien o que “el cliente no ha sabido especificar lo que quería”. Estas actitudes, no son solo excusas baratas sino que ayudan a fomentar las malas prácticas en el desarrollo de software, haciendo que las empresas valoren más la rapidez que la calidad.

Abramos los ojos, nosotros somos los principales interesados en trabajar de acuerdo a unos estrictos niveles de calidad, pero no es puro egoismo, la calidad del código redunda directamente en la calidad del software que recibe el cliente y los usuarios (e.g. un código poco mantenible complica la corrección de defectos).

Características internas y externas de la calidad del software

Los dos puntos comentados se definen más formalmente como características internas y externas de la calidad del software. Ambas son de interés para los desarrolladores, mientras que los usuarios sólo son conscientes de las segundas.

Ejemplos de características internas son:

Las características externas se refieren a los requisitos funcionales y no funcionales, explícitos o no, pero existentes en el modelo mental que el usuario tiene del sistema.

Formas de mejorar la calidad del software

Los planes de aseguramiento de la calidad del software utilizan diversas técnicas para mejorar la calidad del software. Entre otras:

  • Explicitar que la calidad del software (tanto interna como externa) es mucho más recomendable que ser rápido e ir corrigiendo problemas sobre la marcha.
  • Tener una estrategia de testing, en función de las necesidades del producto, la arquitectura,…
  • Guías de ingeniería del software, que permiten a todos los implicados saber a qué atenerse a la hora de diseñar, hacer pruebas de unidad o integración, o codificar.
  • Revisiones formales o informales de código, diseños, arquitectura,… cuanto antes se detecten los problemas, más “barato” será solucionarlos.
  • Procedimientos para controlar el cambio, evitando inconsistencias e incertidumbres.
  • Medición de los resultados.

Referencias