• Diego Leiva

IMPORTANCIA DE LA CALIDAD EN EL SOFTWARE


En el mundo actual en el que vivimos, la tecnología hace parte de nuestro diario vivir, está en muchas de las actividades cotidianas y las cosas con las que interactuamos, la demanda ha ido en aumento y su desarrollo y cobertura siguen evolucionando a gran velocidad.

Y precisamente el Software, este intangible lógico que no vemos, se encuentra en muchas de las cosas, dispositivos, con los que tenemos contacto e interactuamos a diario, termina siendo un factor sumamente crítico e importante en este mundo globalizado, en diferentes ámbitos y sectores, como el Financiero en nuestras transacciones electrónicas, en la bolsa de valores, en el sector salud, como el cálculo de una dosis de algún medicamento por medio de una aplicación de Software, Sector Aéreo y otros sectores que de alguna u otra forma han evolucionado en la automatización y/o optimización de sus actividades y procesos por medio de la utilización de Software; esto los hace, competitivos, globalizados, pero a su vez les obliga a tener un alto nivel de responsabilidad en el uso de estas herramientas, que lo que buscan es generar valor en nuestro quehacer diario como sociedad, pero a su vez contrae altos riesgos que deben ser identificados, contemplados y tratados.

Ahora bien, desde el ámbito corporativo, el Software es un factor importantísimo a la hora de ser competitivo, y debido a que la demanda crece, la necesidad de estar a la vanguardia, obliga a las Empresas a ofrecer cada vez más y rápido, software en sus productos y servicios, que permitan mejorar la calidad y bienestar de las personas que usan el producto, logrando en estos últimos una experiencia única y diferente. Sin embargo, lograr esto, tiene un alto nivel de responsabilidad y seriedad en su implementación, así mismo el impacto es sumamente significativo para las organizaciones y las personas que lo usan, es por ello que las empresas tienen el reto constante de mejorar sus procesos en la construcción del Software, propendiendo por una Cultura de la Calidad.

Por lo anterior vamos entendiendo la relevancia que ha tomado el Software en nuestro contexto actual, y es por ello que la Calidad en el mismo no puede ser una elección, ni la excepción, debe ser la regla, es algo intrínseco en la cadena de valor de construcción del Software, desde su iniciativa hasta su despliegue. Es por eso que muchas organizaciones y Directivos de TI, tienen la responsabilidad de entender que la Calidad es una prioridad, no algo alternativo, y que tiene un impacto y consecuencias elevadas en no tenerlo presente en nuestros productos y servicios, en este caso en el Software, sobre todo en actividades de prevención, el cual nos ayudan a reducir riesgos y a disminuir costos, los directivos no pueden seguir viendo esto como costos innecesarios, cuando el mayor costo se está generando en la mala calidad externa de cara al cliente.

Es por ello que analizaremos el impacto del Software de mala calidad en la sociedad, y veremos algunos estándares que proponen actividades de prevención en el Software y para tener en cuenta en la mejora continua.

DEFINICIÓN DE CALIDAD DEL SOFTWARE

¿Qué es Calidad en el Software?, es una palabra muy amplia, que abarca diferentes espectros dentro de la construcción del Software.

Vamos a ver diferentes definiciones. Según Pressman [1] y [2] la calidad del software es “la concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software desarrollado profesionalmente”,

Se considera como la totalidad de las características de un producto o servicio que le confieren su aptitud para satisfacer unas necesidades expresadas o implícitas por Norma UNE 66-001-92 traducción de ISO 8402.

La calidad del software es el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario. IEEE, Std. 610-1990.

Tantas definiciones, que permiten inferir que es algo muy importante, dado el contexto de uso del software en las organizaciones y actividades de la vida cotidiana del ser humano.

Es preciso decir que para obtener Software de Calidad es necesario el uso de métodos o buenas prácticas, procedimientos, estándares, a lo largo de su construcción, elevando su nivel de productividad en su Desarrollo como para su control de Calidad; y precisamente el uso de esto, se deberá a una organización, incluyendo Directivos, Áreas funcionales, operativas, Áreas técnicas, de Soporte, etc., comprometidos por la Cultura de la Calidad y la mejora continua en sus procesos, es por ello que todos los actores involucrados debemos entender la Importancia de la Calidad en el Software para trabajar por ella.

Las organizaciones de los sectores productores de Software, Financieros, TELCOS, Media, ya reconocen la importancia de la Calidad y reconocen que la ausencia del mismo supone un alto riesgo, y es un reto que les obliga a invertir una alta proporción de su presupuesto en mitigar las consecuencias.

IMPACTO DE LA MALA CALIDAD EN EL SOFTWARE


La construcción del Software es realizada por seres humanos, por lo tanto, supone la existencia de defectos en el Software.

Recordemos hechos como el del cambio de milenio que dio origen al Error del milenio o Y2K, un error en el software, que dio origen a múltiples fallos a nivel mundial en diferentes sistemas con consecuencias altísimas y lamentables; o un ejemplo muy conocido y documentado se produjo con el lanzamiento en 1996 del primer cohete Arianne 5 de la Agencia Espacial Europea. Este proyecto que costó 10 años y 7.000 millones de euros desarrollar, explotó por un defecto en el software de control interno antes de que pasara un minuto de vuelo.

Estos fallos afectan a todos los países y sectores económicos sin distinción, y lo peor del caso es que los costos de la mala calidad, no se registran contablemente, es por ello que cuando el proyecto se está llevando a cabo es fácil disminuir presupuestos o recortarlos para procesos de Calidad, pero eventualmente terminaran en fallos en el software en ambiente productivo, con consecuencias altísimas para la sociedad, y para la organización misma, y el impacto va mucho más allá que el coste de su solución, las consecuencias externas que este trae, el coste de los errores externos es mucho más elevado y con consecuencias más altas y lamentables para la organización, como perdida de mercado, de negocios, de Clientes, pleitos, quejas, devoluciones, garantías, y un sin número de consecuencias.

James E. Olson ex presidente de AT&T decía: "Mucha gente piensa que la calidad me cuesta demasiado, pero en realidad me cuesta menos". La calidad no es el costo de suministrar lo que se produce, es el valor agregado que recibe el cliente de esa producción por su dinero".

Muchos hemos evidenciado los efectos de la mala calidad en el software, en transacciones Bancarias, compra de boletos, etc., en donde se manifiesta lentitud del sistema, tiempos de respuesta muy largos, y esto se traduce en pérdida de tiempo y dinero. Sin embargo, el impacto suele ser mucho más grave si el fallo de un sistema provoca pérdidas económicas, ambientales, sociales, o inclusive pérdidas humanas.

¿QUÉ PUEDE CAUSAR LOS FALLOS EN EL SOFTWARE?

Pueden ser muchos los factores que se lo atribuyen, entre esos vamos a mencionar algunos, como la ausencia de procedimientos, de aplicación de estándares, de metodologías, de actividades preventivas y/o de Calidad temprana, preparación y/o formación de los Directivos y principales actores en el proceso, incluyendo deficiencia en este ámbito en la educación superior. Los más frecuentes, como recortar tiempos en procesos de Calidad por falta de recursos, presión por el aumento del esfuerzo por tiempos muy cortos para procesos de Pruebas por deficiencias acumuladas en etapas previas, inclusive la falta de dominio del negocio, mucho de este desconocimiento se traduce en introducir un buen número de defectos en el sistema por requerimientos, requisitos funcionales malentendidos, calendarios poco realistas como ya se mencionó, el uso de malas prácticas en el desarrollo del software, que no es mantenible y entendible.

¿EXISTEN ESTÁNDARES DE CALIDAD EN EL SOFTWARE?

Existen diferentes organizaciones que se han comprometido por elaborar estándares y buenas prácticas que permitan evaluar el proceso de Construcción y Desarrollo en su cadena de valor, Metodologías y Organizaciones como CMM, CMMI, SPICE 1, ISO, IEEE, u otros.

Como esos, existen un sin número de Estándares, y Métodos para abordar la Calidad en los procesos de Desarrollos, y precisamente esto es lo que hay que entender, que la Calidad se aborda desde su inicio, la Calidad no es una fase en un momento dado del proyecto o de su construcción y que la responsabilidad solo recae sobre cierto equipo de trabajo, su aplicación parte de la cultura de la Calidad, por la organización y sus funcionarios comprometidos por la generación de valor.

A lo largo de la cadena de valor, se debe evaluar la calidad, mediante la aplicación de buenas prácticas en el proceso de Desarrollo, tal como se mencionó en el párrafo anterior, esto permitirá depurar en cada iteración y/o fase, el riesgo de eventos negativos en el Software, y facilitará las actividades de control de la calidad, fase en donde aplicamos entre otras las pruebas de Software, reduciendo el riesgo, y el esfuerzo de actividades de Pruebas.

Aun así, para el Control de la Calidad, es indispensable contemplar buenas prácticas para su aplicación, las Pruebas de Software conllevan la ejecución de actividades estructuradas con objetivos específicos concretos desde la iniciación del proyecto, tan pronto se hayan completado la definición de requerimientos, es algo que no para en una sola actividad o fase, debe ser algo constante e intrínseco desde el inicio de construcción del Software. Es por ello que todos los actores involucrados en el proyecto de Software, son responsables por la Calidad del mismo, no es cuestión de una fase y/o un solo equipo de trabajo como el de pruebas, debe ser transversal y multidisciplinario.


1 Modelos de Evaluación de la Madurez de Procesos de Software.



OBTENER UN PRODUCTO DE SOFTWARE DE CALIDAD


Implica la aplicación temprana de actividades de Calidad, Cultura de la Calidad, Profesionales formados, aplicación de estándares de Evaluación y actividades maduras de Control de Calidad, de manera transversal y continua. Implica la definición de métricas que permitan hacer seguimiento y verificar el cumplimiento de umbrales de Calidad determinados en cada factor de Calidad, factores como los que sugiere la ISO 9126 o el proyecto SQuaRE 2, ISO 25000:2005.

2 ISO/IEC 25000, conocida como SQuaRE (System and Software Quality Requirements and Evaluation), es una familia de normas que tiene por objetivo la creación de un marco de trabajo común para evaluar la calidad del producto software.

CONCLUSIÓN


Desde cualquier punto de vista y de análisis, la Calidad en el Software es una necesidad imperante a lo largo de su desarrollo. Los resultados que puede generar un Software pueden ser tan eficientes, y de alta productividad para cualquier compañía y para la sociedad en general, como tan nefastos, y precisamente allí radica su importancia, entendiendo el valor que pueden generar y las consecuencias enormes que se pueden contraer. Es un tema netamente organizacional, y de principios orientados a la calidad y la generación de valor, tanto para funcionarios como proveedores.

Entonces considero que siempre será mejor invertir en prevención, en calidad temprana, en no ver estas actividades como un costo, sino como una muy buena inversión transversal, que traerá un retorno importante para la organización y para quien goza del producto. Esto permitirá ser eficiente y efectivo en la solución de los hallazgos durante el proceso en las primeras etapas, y reducir sustancialmente el riesgo, y no invertir los altos costos que se generan cuando el producto ya este en producción.

Así que hacer el Software, es más que un proceso de programación, es una interacción multidisciplinaria, transversal y con un propósito en común, donde la Calidad no es la excepción, es la regla principal, no por el reto que esto conlleva, sino porque allí radica el éxito.

REFERENCIAS


[1] Luis E. Mendoza / Maria A. Perez / Anna C. Griman, Prototipo de Modelo sistemico de calidad (MOSCA) del software Computación y Sistemas, vol. 8, Num. 3, pp.196-217. Año 2005. Instituto Politécnico Nacional. http://redalyc.uaemex.mx/redalyc/pdf/615/61580304.pdf

[2] Luis E. Mendoza / Maria A. Perez / Anna C. Griman. Análisis del Impacto del Proceso de Desarrollo en las Características de Calidad del Software. Universidad Simón Bolívar. http://www.lisi.usb.ve/publicaciones/02%20calidad%20sistemica/calidad_11.pdf

[3] Gérald Lomprey1 / Saulo Hernandez2, La Importancia De La Calidad En El Desarrollo De Productos De Software, Facultad de Ingeniería y Tecnología, Universidad de Montemorelos, México. http://fit.um.edu.mx/CI3/publicaciones/Technical%20Report%20COMP-018-2008.pdf

[4] Peter G. Neumann, Illustrative Risks to the Public in the Use of Computer Systems and Related Technology, EE.UU. http://www.csl.sri.com/users/neumann/illustrative.html

[5] Manuel García P/Carlos Quispe A/Luis Raez G, COSTO DE LA CALIDAD Y LA MALA CALIDAD, Año 2002. Industrial Data. http://sisbib.unmsm.edu.pe/bibvirtual/publicaciones/indata/v05_n1/calidad.htm

[6] Red Colombiana de Calidad de Software. Software. (2007). En qué consiste la RED? [Online]. Recuperado de: http://rccs.cidlisuis.org/