MÓDULO 3 · ARQUITECTURA DE SISTEMAS CONVERSACIONALES · LECCIÓN 1.4 · 40 MIN

Atributos de Calidad: los "-ilities"

Nivel intermedio — dominar los atributos de calidad principales, sus conflictos, y un método para priorizarlos según contexto.

Idea central "El sistema funciona" no es un criterio de éxito. Los atributos de calidad son los requerimientos NO funcionales — disponibilidad, rendimiento, seguridad, mantenibilidad... — que determinan si un sistema aguanta en producción a largo plazo.

El problema

Un sistema puede funcionar y ser imposible de mantener. Puede ser mantenible pero caerse bajo carga. Puede escalar pero ser inseguro.

Situación típica: el equipo entrega a tiempo, el sistema funciona en las demos. En producción con usuarios reales: latencia de 5 segundos, caídas cada semana, cada feature nuevo tarda el triple de lo estimado. Nadie definió qué significaba "funcionar bien" más allá de los requerimientos funcionales. // lo no-funcional se paga caro cuando se descubre en producción

Los 8 atributos fundamentales

AtributoQué esCómo se mideEjemplo
Disponibilidad% de tiempo operativoUptime, MTBF, MTTR99.9% uptime
EscalabilidadManejar crecimiento de cargaUsuarios concurrentes, req/s100 → 10.000 usuarios sin degradación
RendimientoVelocidad de respuestaLatencia (p50/p95/p99), throughputp95 < 200ms en APIs críticas
SeguridadProtección contra accesos no autorizadosVulnerabilidades, complianceCifrado en tránsito y reposo
MantenibilidadFacilidad para modificar/extenderTiempo por cambio, complejidad ciclomáticaFeature simple en <1 semana
TesteabilidadFacilidad para verificar comportamientoCobertura, tiempo de suiteSuite completa en <10 min
ConfiabilidadConsistencia bajo condiciones variablesTasa de errores<0.1% de error en transacciones
ObservabilidadEntender el estado internoTiempo para diagnosticarIncidente diagnosticable en <15 min

Conflictos entre atributos

No puedes maximizar todos los atributos a la vez. Mejorar uno frecuentemente degrada otro:

Rendimiento ↔ Mantenibilidadcódigo optimizado es más difícil de entender Seguridad ↔ Usabilidadmás controles = más fricción para usuarios Disponibilidad ↔ ConsistenciaTeorema CAP: no puedes tener ambas al 100% Escalabilidad ↔ Simplicidadsistemas distribuidos son inherentemente complejos Testeabilidad ↔ Rendimientoabstracciones para testing agregan overhead

Cuándo priorizar qué

Prioriza estos atributos cuando...Contexto típico
Disponibilidad + RendimientoE-commerce, trading, gaming
Seguridad + ComplianceFintech, healthcare, gobierno
Mantenibilidad + TesteabilidadProductos de larga vida, equipos grandes
Escalabilidad + ObservabilidadSaaS, plataformas, APIs públicas
Los números son ilustrativos, no objetivos universales

"99.9% uptime", "p95 < 200ms", "80% de cobertura" son ejemplos de este material, no cifras que debas copiar en tu próximo proyecto. Conecta con la lección anterior: qué atributo priorizar — y cuánto — depende de qué estás optimizando y qué estás dispuesto a sacrificar. Un MVP no necesita el mismo SLA que un sistema de pagos.

Practica: sistema de citas médicas

Define la matriz de priorización de atributos de calidad para un sistema que: permite a pacientes agendar citas, envía recordatorios, maneja información médica sensible (compliance tipo HIPAA), y opera 24/7 con picos en horario laboral.

Para cada uno de los 8 atributos: prioridad (alta/media/baja) + una línea justificando con el contexto del sistema.