Blog de Innevo

Entendiendo la Calidad del Software: qué es, qué la compone y estándares principales

Escrito por Enrique Román | Aug 30, 2024 4:00:00 PM

La calidad del software es un pilar fundamental en el desarrollo de productos tecnológicos que no solo cumplan con las expectativas del cliente, sino que también sean fiables y eficientes. En este artículo, exploraremos qué es la calidad del software, los elementos clave que la componen y los principales estándares que guían su implementación en las organizaciones.

Este artículo fue actualizado el 30 de agosto de 2024 para brindarte información mejorada.

Historia de la Calidad del Software

El impulso por la calidad en el desarrollo de software comenzó en la década de 1980 debido a la rápida evolución tecnológica y la creciente dependencia de sistemas críticos.

Un evento clave fue el fallo de un misil británico en la Guerra de las Malvinas en 1982, causado por un error de software, lo que subrayó la necesidad de métodos estrictos para garantizar la calidad en sistemas críticos.

Además, la administración de Margaret Thatcher en el Reino Unido implementó políticas que exigían estándares de alta calidad en productos de TIC, impulsando la creación de normas internacionales para asegurar la fiabilidad del software.

Ambos eventos resaltaron la urgencia de desarrollar métodos estandarizados para garantizar la calidad en el desarrollo de software.

Para resolver estas iniciativas diversas instituciones trabajaron en la creación y aplicación de estándares de gran importancia para el desarrollo de software como:

  1. CMMI (Capability Maturity Model Integration): Desarrollado por el Software Engineering Institute (SEI) de la Universidad Carnegie Mellon, este modelo en proporciona un marco para mejorar la capacidad de los procesos en la gestión y desarrollo de software, con el objetivo de alcanzar altos niveles de madurez y calidad en las organizaciones.
  2. ISO (International Organization for Standardization): Esta organización internacional desarrolla y publica estándares que aseguran la calidad y seguridad en diversas industrias. Algunas de las normas aplicables al desarrollo de software son:
    1. ISO 9000: Define principios básicos para sistemas de gestión de calidad, aunque es una norma “más genérica”, es aplicable en cualquier industria, incluyendo software.
    2. ISO 12207: Establece procesos para el ciclo de vida del software, desde el diseño hasta el mantenimiento.
    3. ISO 10005: Guía para crear planes de calidad en proyectos, asegurando el cumplimiento de requisitos.
    4. ISO 29110: Marco simplificado para el desarrollo de software en pequeñas organizaciones.
    5. ISO/IEC/IEEE 29119: Proporciona un enfoque estandarizado para la prueba de software.
  3. IEEE (Institute of Electrical and Electronics Engineers): Reconocido a nivel mundial, el IEEE establece estándares técnicos para una amplia gama de tecnologías, incluyendo software. Sus estándares, como el ya mencionado ISO/IEC/IEE 29119 y el IEEE 730 buscan asegurar que los productos tecnológicos y de software sean seguros, confiables y de alta calidad, lo que contribuye a la mejora continua en la ingeniería de software.

Qué es calidad del software

La calidad, en términos generales, se refiere al grado en que un producto o servicio cumple con los requisitos y expectativas establecidos por el cliente o el usuario final. Implica la conformidad con especificaciones y la capacidad de satisfacer necesidades de manera consistente y confiable.

En el contexto del software, la calidad se define como la medida en que una solución desarrollada cumple con las necesidades y requerimientos específicos de los usuarios o clientes, asegurando que estos se alcancen mediante procesos bien estructurados.

Estos procesos deben operar dentro de un marco de trabajo que planifique y controle de manera efectiva los recursos, el presupuesto, el calendario y los riesgos asociados al proyecto. La calidad del software garantiza no solo la funcionalidad adecuada, sino también la eficiencia, seguridad, y mantenibilidad del producto final.

El desarrollo de software no es un proceso basado en la inspiración o creatividad del desarrollador, sino un proyecto de ingeniería de diseño que, al igual que la construcción de un automóvil o un avión, requiere planificación y control precisos.

La calidad del software depende de aplicar técnicas de gestión y control de producción, asegurando que el proyecto sea tratado como un proceso de ingeniería rigurosa, como una fábrica de productos, donde cada elemento contribuye a cumplir con los requisitos y expectativas establecidos.

Lógicamente, hoy en día el desarrollo de software, que ha crecido enormemente en los últimos años, desafíos significativos que afectan su calidad.

Según un estudio de Stripe, hay 18 millones de desarrolladores de software en el mundo, quienes dedican el 42% de su tiempo a corregir problemas de "deuda técnica" debido a un código ineficiente.

Esta ineficiencia cuesta al mercado global de software 300 mil millones de dólares al año y contribuye a que solo el 22% de los proyectos se completen con éxito pleno, es decir, dentro del plazo, presupuesto y con toda la funcionalidad requerida. El 60% de los proyectos logran éxito parcial, mientras que el 18% terminan en fracaso.

Claramente, tratar el desarrollo de software como un proyecto de ingeniería rigurosa es clave para mejorar la calidad y reducir las pérdidas.

Qué compone la calidad del software

¿Cómo se logra entonces una alta calidad en los proyectos de desarrollo? La calidad del software se compone de varios elementos clave que aseguran que el producto final cumpla con los requisitos y expectativas del cliente, contemplando genéricamente las principales características de una eficiente línea de producción:

Gestión de la Calidad (Quality Management, QM)

Coordina todas las actividades y recursos relacionados con la calidad del software, desde la planificación hasta la mejora continua, garantizando que se cumplan los estándares y objetivos establecidos.

Ciclo de Vida del Software

Conjunto de fases que un software atraviesa, desde su concepción hasta su retirada, incluyendo planificación, desarrollo, pruebas, implementación y mantenimiento. Este ciclo y sus fases aseguran que el software sea desarrollado de manera estructurada y eficiente, alineado con los objetivos de calidad.

Aseguramiento de la Calidad (Quality Assurance, QA)

Define y controla el cumplimiento de los procesos de desarrollo de software de acuerdo con las fases del Ciclo de Vida del Software.

Control de la Calidad (Quality Control, QC)

Comprende, documenta y valida con el cliente los requerimientos funcionales y no funcionales del producto solicitado.

Pruebas (Testing)

Las pruebas de software deben diseñarse de forma óptima y aplicarse para comparar los resultados obtenidos contra los requerimientos del cliente, emitiendo evaluaciones de cumplimiento o defectos por corregir.

Los estándares de calidad del software

Un modelo o norma en calidad en desarrollo de software es una propuesta de procesos y prácticas de ingeniería de proyectos, ingeniería de procesos y prácticas de control de calidad de productos para garantizar el éxito del proyecto y la satisfacción del cliente.

Todos los modelos o normas de calidad para el desarrollo de software contemplan tanto el aspecto de la ingeniería como la gestión de la calidad del desarrollo, así que puedes estarte preguntando cuál es la mejor. Pero en realidad cualquiera de estos marcos te traerá los beneficios de control de procesos, optimización, mejora de la calidad y mayor tasa de éxito en tus proyectos a través de la implementación de un sistema de gestión de calidad. Sus diferencias radican más en la forma en que ordenan o estructuran los procesos.

Por ejemplo, CMMI facilita la evolución paulatina y sólida de la empresa porque está estructurado en niveles de capacidad (llamados “niveles de madurez”). Mientras más alto el nivel de madurez la empresa tiene mayor capacidad de control de sus procesos.

En contraste, las normas ISO exigen la implementación de todos los procesos estipulados en la norma en una sola acción, no hay desempeño gradual.

Ambos requieren una auditoría de certificación (en CMMI se llaman Evaluaciones Benchmark, pero esencialmente es lo mismo) realizada por una persona capacitada y autorizada por el organismo propietario del modelo, para el caso de las normas ISO son organismos certificados por la misma ISO y para CMMI es la ISACA, quien avala que la empresa revisada cumple con los requerimientos, procesos y prácticas exigidos por la norma o modelo en cuestión.

Entonces surge una nueva pregunta: ¿qué norma me conviene más? Aquí sí hay una respuesta diferenciada. Pues el principal criterio de selección se basa más en tu contexto operativo y comercial:

¿Qué norma prefiere mi cliente?

  • De forma cada vez más frecuente, los clientes exigen a sus proveedores de desarrollo que cumplan con ciertos estándares. Si es tu caso, la norma o modelo que requiere tu cliente, es la que deberás priorizar.
  • Si a tu cliente le es indiferente cuál norma, entonces pasa a la siguiente pregunta.

¿Qué norma prefiere mi mercado?

  • Este es el caso, principalmente, de ciertos sectores regulados, como las Fintech y el sector salud. Averigua si hay algún estándar que sea básico para tu mercado meta. Si conoces la respuesta, esa es la norma en que debes certificar tu empresa.
  • Si no hay preferencia por alguna norma, entonces continúa con la siguiente pregunta.

¿En qué norma está certificada mi competencia?

  • ¿Tu competencia ya tiene algunas certificaciones en normas y modelos de calidad? ¿cuál(es)? Si conoces la respuesta, en esa norma debes certificar a tu empresa.

Probablemente ahora tengas una idea bastante clara de cuál es la opción ideal para tu organización. Si aún te debates, toma en cuenta también las siguientes características de los principales estándares para desarrollo de software que recomendamos en Innevo:

  • CMMI Nivel 3 o Nivel 5: es el marco de trabajo más aceptado en el mercado (hay 5 certificaciones CMMI por cada certificación ISO). Suele ser requisito en licitaciones para ventas a gobierno en México, Colombia y en otros países fuera de Latinoamérica como China, así mismo es común que se exija a proveedores de empresas internacionales.

  • ISO 29110: Es el estándar ideal para fábricas de software cuyos equipos de desarrollo constan de 25 personas o menos (lo que se considera un equipo compacto. Esta norma incluye aspectos de gestión de proyectos y de implementación de software optimizados para brindar una alta calidad sin la “burocracia” excesiva que les ocasionarían otros estándares, dado el tamaño del equipo.

Sin importar cuál estándar de calidad de software elijas, al implementarla y certificar a tu organización lograrás distinguir tus servicios por la alta calidad de tus productos y por la satisfacción de tu cliente, ser un proveedor de excelencia.  

En Innevo te brindamos acompañamiento para implementar estos y otros estándares de una forma práctica y sencilla, siempre personalizada a las características de cada empresa y asegurando la eficacia de tus procesos y cumplimiento de los requisitos para garantizarte el logro de la certificación.