La calidad del software tiene dos perspectivas: externa e interna

Tener un software de calidad es algo a lo que todos aspiramos. Sin embargo, hay varios puntos de vista sobre lo que es un Software de alta o de baja calidad. Si pensamos en que el Software es un producto destinado a un cliente, podemos decir que tenemos que construir el producto que nuestros clientes requieren.

Así que cuando hablamos de la calidad de software desde el punto de vista de un usuario, hablamos de lo bien que hace su propósito, lo útil que es para el usuario, sus funcionalidades, que funcione sin errores, que sea fácil de entender, agradable y amigable, etc.

Ahora bien, cualquier programador con experiencia puede deducir mirando el código fuente si es un software de calidad o no. Y esto significa que cuando hablamos de la calidad de software desde el punto de vista de un programador, normalmente nos referimos a lo bien estructurado que está su código, lo fácil de leer que sea, que tenga un adecuado control de errores, lo correctamente comentado que esté, o si es necesario documentación para entenderlo o no, etc.

Así podemos empezar a distinguir dos tipos de calidad en el software: la calidad externa y la calidad interna. Para profundizar en estas definiciones y en qué significan imaginemos que ha pasado un tiempo desde que se desarrolló el software y nuestro cliente quiere añadir alguna funcionalidad nueva. En ese momento, es necesario que un programador revise el código y añada lo necesario para esa modificación del software. Para ello deberá conocer tanto la nueva funcionalidad como el código anterior.

Si este proceso es necesario repetirlo en el futuro, es cuando el programador sufrirá en sus propias carnes la calidad interna del software. Si el software tenía una pobre calidad interna, esa modificación será más y más complicada de aplicar según el software vaya evolucionando, porque será necesario tener en cuenta más y más partes de código y sus distintas interacciones a la hora de mantenerlo.

Con ello, podemos llegar a unas definiciones que es conveniente tener claras desde el primer momento que aspiramos a construir un software de calidad, donde definimos la calidad del software en base a los requerimientos actuales y futuros:

  • Calidad Externa: Cuán bien se adapta nuestro software a los requerimientos actuales
  • Calidad Interna: Cuán bien se puede adaptar nuestro software a los requerimientos futuros

Es decir, desde el primer momento que empezamos a construir software, tenemos que tener en cuenta cómo vamos a modificar y evolucionar el software si es necesario. Eso nos permitirá tener un software de calidad desde cualquier punto de vista. Para conseguirlo, existen varios métodos como puede ser la aplicación de patrones de diseño, la limpieza del código y su formateo, el uso de naming guidelines, linting code, etc. Y también es importante transformar estos requisitos abstractos en conceptos medibles y objetivos, como hemos hablado en otras ocasiones.

El hecho de preparar nuestro código para ser extensible de manera sencilla es un proceso básico de la Ingeniería de Software y la Arquitectura de Sistemas que requiere experiencia y buena vista para reconocer partes de código que nos pueden dar problemas en el futuro y sus posibles soluciones para mitigarlo desde la prevención.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.