ISO/IEC 25010: La Guía Definitiva para Desarrollar Software de Calidad

INNODEV SOLUTIONS INNODEV SOLUTIONS •
ISO/IEC 25010: La Guía Definitiva para Desarrollar Software de Calidad
Ingeniería de Software Arquitectura & QA Lectura: 16 min Actualizado 2026 (ISO 25010:2023)

¿Funciona o funciona BIEN? La gran diferencia entre el software que compila y el software con calidad real.

Cualquier programador puede escribir código que cumpla una orden básica: un botón que guarda un registro en la base de datos. Pero, ¿qué ocurre si al guardar concurren 500 usuarios a la vez? ¿Qué pasa si la red parpadea a medio proceso? ¿Cuánto cuesta modificar ese código seis meses después cuando el cliente pida un cambio? Ahí es donde termina la improvisación y entra la norma internacional ISO/IEC 25010.

La analogía del automóvil: entender la calidad de un vistazo

Imagina comprar un automóvil nuevo cuyo motor enciende y cuyas ruedas giran (funcionalidad básica). Pero al conducirlo descubres que no tiene frenos confiables (falta de fiabilidad), gasta 40 litros de combustible por kilómetro (ineficiencia), los mandos están en ruso sin traducción (pésima usabilidad), y si quieres cambiar la batería tienes que desarmar el chasis completo (nula mantenibilidad). Ese auto "funciona", pero es una pésima máquina. En el software ocurre exactamente lo mismo: hacer que el botón funcione es apenas el 20% del trabajo.


1. ¿Qué es realmente la ISO/IEC 25010 y por qué existe?

La ISO/IEC 25010 forma parte de la familia de normas SQuaRE (Software Product Quality Requirements and Evaluation).

No es un documento burocrático creado para acumular polvo en una estantería ni un conjunto de reglas rígidas para castigar a los desarrolladores. Es, en esencia, la taxonomía universal de los requisitos no funcionales (NFRs).

Cuando un cliente o un Product Owner pide software sin un estándar técnico, suele recurrir a frases completamente ambiguas y subjetivas:

  • “El sistema tiene que ser rápido.” (¿Rápido para cuántos usuarios concurrentes? ¿Bajo qué latencia de red?)
  • “La aplicación debe ser súper segura.” (¿Contra qué amenazas? ¿Cifrado en reposo, en tránsito, control RBAC?)
  • “Que sea fácil de mantener.” (¿Con qué arquitectura? ¿Qué cobertura de pruebas unitarias?)

Estas frases son imposibles de presupuestar, programar y auditar. La ISO/IEC 25010 resuelve este caos descomponiendo el concepto abstracto de “calidad” en dimensiones concretas, medibles y auditables.


2. Los Dos Modelos de la Norma: Producto vs. Uso

Una de las grandes confusiones al estudiar la norma es no distinguir sus dos perspectivas complementarias:

1

Calidad del Producto Software

Evalúa las propiedades técnicas internas y externas del sistema en sí mismo: código fuente, arquitectura, consumo de hardware, velocidad de respuesta y modularidad.

Quién lo evalúa: Arquitectos de software, desarrolladores y analistas de QA durante las pruebas de caja blanca y caja negra.
2

Calidad en Uso (Quality in Use)

Evalúa el impacto real que produce el software cuando seres humanos reales lo utilizan en su entorno operativo habitual (efectividad, satisfacción, mitigación de riesgos).

Quién lo evalúa: Usuarios finales, clientes corporativos, auditores de negocio y diseñadores de experiencia (UX).

3. Las 8 Dimensiones de Calidad Explicadas con Dolor Real de Producción

En lugar de recitar definiciones de diccionario, analicemos cada una de las 8 dimensiones respondiendo a tres preguntas fundamentales: ¿Qué significa en la práctica?, ¿Cuál es el desastre que ocurre si la ignoras? y ¿Cómo se soluciona en la ingeniería real?


3.1. Adecuación Funcional (Functional Suitability)

¿El software hace exactamente lo que el negocio necesita, de forma completa y sin inventar cosas innecesarias?

  • Qué significa en la práctica: No se trata de que el sistema tenga “muchas pantallas”, sino de que las funciones cubran con exactitud matemática y lógica los casos de uso reales del negocio, incluyendo todos los escenarios alternativos y de error.
  • Riesgo en producción si se ignora: El usuario presiona “Confirmar Factura” y el sistema la genera, pero redondea mal los decimales del impuesto, no valida que la fecha de caducidad esté vigente o colapsa si el cliente tiene dos apellidos extranjeros. El software “funciona”, pero emite comprobantes legalmente inválidos. Otro síntoma clásico es el gold-plating: el equipo pasa dos meses programando un editor de temas oscuros personalizado que nadie pidió, mientras el flujo principal de cobros sigue lleno de vacíos.
  • Implementación y medición técnica:
    • Pruebas de aceptación automatizadas con criterios de Given-When-Then (BDD).
    • Matriz de trazabilidad entre historias de usuario y casos de prueba.
    • Métrica: Porcentaje de cobertura de casos de negocio probados y tasa de defectos lógicos encontrados tras el despliegue.

3.2. Eficiencia de Rendimiento (Performance Efficiency)

¿Qué tan rápido responde el software y cuánta memoria, CPU y red devora mientras lo hace?

  • Qué significa en la práctica: La velocidad y el consumo de recursos bajo diferentes niveles de carga. Un software eficiente no solo responde rápido con 1 usuario en la máquina del programador; mantiene su velocidad cuando concurren 10,000 usuarios en simultáneo.
  • Riesgo en producción si se ignora: El infame “en mi máquina local funcionaba perfecto”. La tienda en línea se lanza al público, llega el evento comercial de Black Friday, concurren 2,000 personas al carrito y la base de datos se congela. Las consultas SQL sin índices hacen barridos secuenciales de millones de filas, la memoria RAM del servidor se satura y la empresa pierde miles de dólares por minuto mientras la pantalla muestra un error 504 Gateway Timeout.
  • Implementación y medición técnica:
    • Pruebas de estrés y carga continua con herramientas como k6, Locust o JMeter.
    • Eliminación de consultas N+1 en bases de datos mediante carga ansiosa (eager loading), indexación compuesta y uso de capas de caché en memoria como Redis.
    • Métricas: Latencia promedio y percentiles críticos (p95, p99 por debajo de 300 ms), peticiones por segundo (Throughput) y porcentaje de utilización de CPU/RAM bajo carga máxima.

3.3. Compatibilidad e Interoperabilidad (Compatibility)

¿Puede este sistema comunicarse fluidamente con otros sistemas y convivir en el mismo servidor sin generar conflictos?

  • Qué significa en la práctica: En la era de la nube y los microservicios, ningún software es una isla solitaria. La compatibilidad evalúa dos aspectos: coexistencia (compartir hardware o red sin interferir con otros programas) e interoperabilidad (capacidad de intercambiar datos estructurados a través de estándares abiertos).
  • Riesgo en producción si se ignora: Construyes un sistema de nómina empresarial pero utiliza un formato binario propietario. Cuando la empresa quiere conectarlo con el sistema de facturación o el banco, nadie puede leer sus datos. O peor: despliegas tu aplicación en un servidor compartido y sobreescribe dependencias globales de Node o Python, rompiendo tres servicios vecinos que estaban en producción.
  • Implementación y medición técnica:
    • Contenedorización absoluta con Docker para garantizar coexistencia limpia.
    • Diseño de APIs RESTful o gRPC gobernadas por contratos formales (OpenAPI / Swagger, Protocol Buffers).
    • Métricas: Tasa de éxito en la integración con APIs externas y porcentaje de conformidad con estándares abiertos de intercambio.

3.4. Usabilidad / Capacidad de Interacción (Interaction Capability)

¿El usuario comprende la interfaz en segundos, completa sus tareas sin frustración y el sistema le previene de cometer errores humanos?

  • Qué significa en la práctica: Un buen software no requiere un manual de 300 páginas. La usabilidad abarca la estética limpia, la navegación intuitiva, la accesibilidad para personas con capacidades diversas y, sobre todo, la protección proactiva contra errores del usuario.
  • Riesgo en producción si se ignora: Los usuarios ingresan a tu aplicación bancaria o e-commerce, se confunden en el formulario de pago y abandonan el proceso (tasa de rebote masiva). O una operadora presiona accidentalmente “Enter” en un campo vacío y el sistema borra todo el historial del cliente porque la interfaz no solicitó confirmación ni ofreció opción de deshacer (undo). El departamento de soporte técnico colapsa recibiendo llamadas de clientes furiosos.
  • Implementación y medición técnica:
    • Pruebas de usabilidad con usuarios reales y mapas de calor (Hotjar, Crazy Egg).
    • Cumplimiento estricto de las directivas internacionales de accesibilidad WCAG 2.2 (contraste cromático, navegación por teclado, soporte de lectores de pantalla).
    • Métricas: Escala de Usabilidad del Sistema (SUS Score; ideal > 80/100), tasa de abandono en flujos críticos y tiempo medio para completar una tarea por primera vez.

3.5. Fiabilidad y Resiliencia (Reliability)

¿El sistema sigue de pie cuando ocurren fallos imprevistos, o se desploma ante la primera anomalía de red?

  • Qué significa en la práctica: La fiabilidad no significa “ausencia de bugs” (el software libre de errores no existe). Significa resiliencia: la capacidad arquitectónica del sistema de mantenerse disponible, absorber errores de terceros, recuperarse automáticamente tras una caída y proteger los datos ante cualquier interrupción.
  • Riesgo en producción si se ignora: Tu aplicación depende de una pasarela de pagos externa. Un día esa pasarela tiene un microcorte de 3 segundos; tu backend no tiene configurado un timeout ni reintentos inteligentes, los hilos de ejecución de tu servidor se quedan colgados esperando respuesta indefinidamente y tu propia aplicación se cae por completo, arrastrando a clientes que solo querían ver el catálogo.
  • Implementación y medición técnica:
    • Patrones de resiliencia como Circuit Breaker (con librerías como Resilience4j o Polly), reintentos con retraso exponencial (exponential backoff y jitter), y balanceadores de carga de alta disponibilidad.
    • Estrategia de respaldos automáticos de base de datos probados con simulacros periódicos de recuperación.
    • Métricas: Uptime anual (los “nueves”, ej. 99.9% = menos de 8.7 horas de inactividad al año), tiempo medio entre fallos (MTBF) y tiempo medio de recuperación (MTTR < 15 minutos).

3.6. Seguridad (Security)

¿Están los datos y las transacciones protegidos contra accesos no autorizados, alteraciones maliciosas y filtraciones?

  • Qué significa en la práctica: La seguridad no es simplemente pedir una contraseña en el login. Implica garantizar los cinco pilares de la información: Confidencialidad (solo quien tiene permiso lo ve), Integridad (nadie altera datos en tránsito o reposo), Autenticidad (sabes quién está al otro lado), No Repudio (el emisor no puede negar haber hecho la transacción) y Responsabilidad/Auditoría (cada acción queda registrada de forma inmutable).
  • Riesgo en producción si se ignora: Almacenas contraseñas en MD5 o texto plano. Un atacante ejecuta una inyección SQL elemental en el campo de búsqueda, descarga toda la base de datos de usuarios y la filtra en internet. La empresa enfrenta sanciones millonarias bajo normativas como la LOPDP en Ecuador o GDPR en Europa, destrucción irreversible de su reputación comercial y demandas colectivas de clientes.
  • Implementación y medición técnica:
    • Cifrado riguroso en tránsito (TLS 1.3) y en reposo (AES-256), hashing moderno de claves con Argon2id o Bcrypt.
    • Control de acceso basado en roles (RBAC) y tokens seguros de vida corta (OAuth 2.0 / OpenID Connect).
    • Escaneo automatizado de vulnerabilidades en el pipeline de CI/CD (SAST con SonarQube, DAST con OWASP ZAP, escaneo de dependencias con Trivy o Dependabot).
    • Métricas: Cero vulnerabilidades críticas o altas (CVSS > 7.0) en entornos de producción.

3.7. Mantenibilidad (Maintainability)

¿Qué tan fácil, rápido y seguro es para un desarrollador corregir un error o añadir una nueva funcionalidad al código?

  • Qué significa en la práctica: El código se escribe una sola vez, pero se lee, analiza y modifica cientos de veces durante su ciclo de vida. La mantenibilidad evalúa la modularidad, la claridad, la reutilización de componentes y la probabilidad de prueba (testabilidad) del software.
  • Riesgo en producción si se ignora: El temido código espagueti. Una sola función de 2,500 líneas se encarga de recibir la petición HTTP, validar datos, calcular impuestos, guardar en base de datos y enviar un correo. Nadie en el equipo se atreve a tocarla porque cada vez que cambian una línea para arreglar un bug en los impuestos, se rompe el envío de correos. La velocidad de entrega del equipo se reduce a cero y la deuda técnica asfixia la evolución del negocio.
  • Implementación y medición técnica:
    • Aplicación estricta de principios SOLID, patrones de diseño y arquitecturas desacopladas (Arquitectura Hexagonal / Limpia).
    • Cobertura sólida de pruebas unitarias y de integración que actúen como red de seguridad ante cualquier refactorización.
    • Métricas: Complejidad Ciclomática (ideal < 10 por función), cobertura de código (Code Coverage > 80%), y calificación de deuda técnica en herramientas como SonarQube (Nivel A).

3.8. Flexibilidad / Portabilidad (Flexibility & Portability)

¿Qué tan fácil es mudar tu aplicación de un servidor local a la nube de AWS, Google Cloud o a un clúster de Kubernetes sin reescribirla?

  • Qué significa en la práctica: La independencia del software respecto al hardware y al sistema operativo subyacente. Un software portátil se instala con un comando, maneja su configuración a través de variables de entorno y escala horizontalmente sin dependencias locales rígidas.
  • Riesgo en producción si se ignora: La aplicación tiene rutas de archivos absolutas grabadas en código (C:\Archivos\sistema\datos.xml), depende de librerías propietarias compiladas para un Windows Server 2012 específico y almacena las sesiones de usuario en la memoria local del servidor. Cuando el negocio quiere migrar a la nube o desplegar en Linux para reducir costos de licencias, la migración es inviable sin reescribir la mitad del proyecto.
  • Implementación y medición técnica:
    • Adopción de la metodología The Twelve-Factor App: configuración 100% inyectada por variables de entorno, procesos sin estado (stateless).
    • Empaquetado en imágenes inmutables mediante contenedores Docker.
    • Métricas: Tiempo necesario para desplegar el sistema desde cero en un nuevo entorno (ideal < 10 minutos mediante scripts de CI/CD automatizados).

4. Tabla Maestra de Diagnóstico: Reconocer los Síntomas de Calidad

Para que tu equipo no memorice listas vacías, utiliza esta matriz diagnóstica de cabecera:

Dimensión ISO 25010 La Pregunta Clave El Síntoma de que está Fallando Herramienta de Control
Adecuación Funcional ¿Cumple lo que el negocio necesita? Cálculos erróneos, casos borde no contemplados, funciones que nadie usa. Cucumber, Playwright, JUnit
Eficiencia de Rendimiento ¿Responde rápido bajo carga? Servidores al 100% de CPU, pantallas congeladas, consultas SQL lentas. k6, Datadog, New Relic
Compatibilidad ¿Se integra con el mundo exterior? Imposible conectar con APIs de bancos o ERPs, colisión de puertos locales. Docker, Postman, OpenAPI Spec
Usabilidad / Interacción ¿El usuario opera sin equivocarse? Abandono de procesos, quejas constantes, errores por presionar el botón equivocado. Hotjar, Google Analytics, Axe (WCAG)
Fiabilidad ¿Aguanta caídas y microcortes? Caídas ante errores de terceros, pérdida de datos tras reinicios de servidor. Sentry, Prometheus, Chaos Mesh
Seguridad ¿Protege los datos contra ataques? Filtraciones de contraseñas, inyecciones SQL, elevación de privilegios no autorizada. OWASP ZAP, SonarQube, Snyk
Mantenibilidad ¿Se puede modificar sin romper todo? Miedo a tocar código ajeno, bugs colaterales constantes, funciones de 1000 líneas. SonarQube, ESLint, Code Climate
Flexibilidad ¿Puede mudarse y escalar en la nube? Rutas C:\ en duro, atado a un solo sistema operativo, despliegues manuales de días. Docker, Kubernetes, Terraform

5. La Gran Evolución: ¿Por Qué se Actualizó a ISO/IEC 25010:2023?

La versión anterior (2011) fue diseñada para un mundo donde predominaban las aplicaciones web monolíticas y los sistemas cliente-servidor tradicionales. En 2023, la International Organization for Standardization actualizó el estándar para responder a los grandes cambios de la última década: la computación en la nube, los microservicios, el Internet de las Cosas (IoT) y la Inteligencia Artificial.

1. Incorporación Vital

Safety (Seguridad Operativa y Física)

En sistemas médicos, vehículos autónomos, robótica industrial o domótica, un bug de software no solo causa pérdida de dinero: puede provocar lesiones físicas o pérdida de vidas humanas. La versión 2023 incorpora Safety para auditar la mitigación de riesgos físicos causados por fallos del sistema.

2. Evolución Conceptual

De Usabilidad a Capacidad de Interacción

Ya no solo interactuamos con pantallas y ratones. El software moderno se comunica por voz, comandos conversacionales (chatbots con IA), gestos y wearables. El nuevo enfoque evalúa la interacción bidireccional multicanal y la inclusividad para personas con neurodiversidad.

3. Escalabilidad en la Nube

De Portabilidad a Flexibilidad Integral

Portar el software ya no es el reto principal (Docker lo resolvió). El reto moderno es la flexibilidad elástica: la capacidad de autoescalar recursos en Kubernetes, extender la lógica mediante plugins y adaptarse dinámicamente a picos impredecibles de demanda.


6. La Realidad del Presupuesto: Cómo Priorizar la Calidad sin Morir en el Intento

Uno de los errores más comunes de los directores de proyectos es querer alcanzar el 100% de cumplimiento en las 8 dimensiones desde el primer día. Eso es financieramente inviable y conduce a la parálisis por análisis.

En la ingeniería de software profesional aplicamos una matriz de compensación (trade-offs) basada en el contexto del negocio:

Escenario A

Startup / MVP de Validación

El objetivo es validar mercado en 8 semanas. Si gastas 6 meses optimizando para 1 millón de usuarios concurrentes, quebrarás antes de lanzar.

Prioridad Máxima: Adecuación Funcional y Usabilidad.
Prioridad Diferible: Escalabilidad extrema y portabilidad multi-nube.
Escenario B

Plataforma SaaS B2B en Crecimiento

Clientes corporativos pagan suscripciones mensuales. Una caída de 2 horas activa penalizaciones contractuales (SLA).

Prioridad Máxima: Fiabilidad (99.9% Uptime) y Mantenibilidad.
Prioridad Media: Interoperabilidad mediante Webhooks/APIs.
Escenario C

Core Bancario / Fintech Transaccional

Se maneja dinero real regulado por la Superintendencia de Bancos y estándares como ISO 20022.

Prioridad Máxima: Seguridad Absoluta, Fiabilidad e Integridad de Datos.
Tolerancia a Fallos: Cero tolerancia a discrepancias numéricas.

7. Caso Práctico Real: Aplicando ISO 25010 a un Sistema de Pagos y Facturación

Veamos cómo una empresa de software traduce los requisitos del cliente en decisiones técnicas de arquitectura bajo la norma ISO 25010:

De la Necesidad del Cliente a la Solución de Ingeniería

1. Adecuación Funcional
Lo que pide el negocio: "El sistema debe emitir facturas electrónicas autorizadas por el ente tributario (SRI)."
Implementación: Servicio dedicado que valida esquemas XSD tributarios, firma digitalmente mediante certificados PKCS#12 y maneja autorizaciones asincrónicas.
2. Eficiencia de Rendimiento
Lo que pide el negocio: "El catálogo de 60,000 productos debe cargar instantáneamente en la app móvil."
Implementación: Paginación basada en cursor en PostgreSQL, índices GIN de búsqueda textual y caché distribuida con Redis (latencia menor a 120 ms).
3. Seguridad & Confidencialidad
Lo que pide el negocio: "Cumplir con la Ley de Protección de Datos Personales (LOPDP)."
Implementación: Cifrado en reposo AES-256 de números de cuenta/tarjetas, autenticación MFA obligatoria y logs de auditoría estructurados con datos ofuscados.
4. Fiabilidad & Tolerancia a Fallos
Lo que pide el negocio: "Si la pasarela de cobros se desconecta, no podemos perder las órdenes de compra."
Implementación: Patrón de mensajería asincrónica (RabbitMQ / SQS) con Dead-Letter Queues (DLQ) para reintentar transacciones cuando el servicio se restablezca.

8. Cómo Integrar la Calidad en Scrum y CI/CD (Automatización)

La calidad no es una reunión aburrida al final del sprint; se automatiza dentro de la cultura DevOps:

En Scrum: Definition of Done (DoD)

Una tarea de desarrollo no está "terminada" solo porque el programador terminó de codificar. Debe cumplir criterios objetivos de calidad:

  • Cobertura de pruebas unitarias superior al 80%.
  • Cero defectos de seguridad clasificados como Críticos o Altos.
  • Documentación de endpoints actualizada en Swagger/OpenAPI.
  • Revisión por pares (*Peer Code Review*) aprobada por al menos un Tech Lead.

En CI/CD: Quality Gates Automatizados

En el pipeline de GitHub Actions o GitLab CI, se configuran compuertas de calidad infranqueables:

  • Si la complejidad ciclomática de una función supera 15, el build falla.
  • Si el análisis estático detecta una inyección SQL potencial, el despliegue se bloquea.
  • Si las pruebas de estrés en staging detectan latencias superiores a 1 segundo, se genera una alerta inmediata.

9. Checklist Accionable para Equipos de Desarrollo

Utiliza esta lista de verificación rápida en tu próximo proyecto de software:

-
Requisitos Claros: ¿Están definidos los límites de rendimiento (usuarios concurrentes, tiempos de respuesta) antes de empezar a programar?
-
Arquitectura Modular: ¿El código de negocio está desacoplado de los frameworks y de la base de datos (Clean Architecture)?
-
Resiliencia de Red: ¿Todos los llamados a servicios externos tienen configurados timeouts y reintentos exponenciales?
-
Seguridad en el Pipeline: ¿Tienes escaneo automático de vulnerabilidades (SAST/DAST) en tu repositorio?
-
Portabilidad: ¿La aplicación corre exactamente igual en el equipo de un nuevo programador con un solo comando de Docker?

Conclusión: La Calidad es Rentabilidad

Construir software sin contemplar la norma ISO/IEC 25010 no ahorra tiempo; simplemente traslada el costo hacia el futuro en forma de parches de emergencia a las 3 de la madrugada, pérdida de clientes insatisfechos y una deuda técnica que terminará haciendo colapsar el proyecto.

La calidad técnica no es un lujo para corporaciones gigantes; es el único camino viable para construir productos digitales escalables, seguros y sostenibles a largo plazo.


INNODEV SOLUTIONS S.A.S.

¿Necesitas auditar o elevar la calidad del software en tu empresa?

En INNODEV SOLUTIONS aplicamos los estándares internacionales más exigentes (ISO/IEC 25010, ISO/IEC 27001, ISO 20022) en cada proyecto. Ayudamos a organizaciones y equipos de desarrollo a evaluar arquitecturas, reducir deuda técnica, automatizar pruebas de rendimiento y construir sistemas de misión crítica.

Agenda un Diagnóstico de Calidad de tu Software →

Referencias Oficiales y Recursos de Consulta:

  • [1] ISO — ISO/IEC 25010:2023: Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — Product quality model. iso.org
  • [2] Portal Oficial de la Familia SQuaRE: Estándares, divisiones y modelos de calidad de software y datos. iso25000.com
  • [3] OWASP Foundation: Software Security Verification Standard (ASVS) y guías de desarrollo seguro. owasp.org
  • [4] The Twelve-Factor App: Metodología y principios arquitectónicos para aplicaciones cloud-native modernas. 12factor.net

Vaciar Lista

¿Estás seguro de que deseas eliminar todos los productos de tu lista de consultas?

Comparativa de Productos