Saltar a contenido

Sistemas de Gestión de Calidad

1. ¿Qué es un Sistema de Gestión de Calidad?

Un Sistema de Gestión de Calidad (SGC) en el desarrollo de software es una estructura organizacional diseñada para:

  • Mejorar la calidad de los productos
  • Mejorar la calidad de los procesos
  • Establecer responsabilidades claras
  • Organizar actividades, recursos y procedimientos

Referencia Estándar: ISO 9000:2000

La norma ISO 9000:2000 proporciona un marco de trabajo general para asegurar la calidad en la producción de bienes y servicios, incluyendo explícitamente el software.

2. Estructura de un Sistema de Gestión de Calidad

Un SGC típico en desarrollo de software incluye tres niveles de aplicación:

2.1 Nivel de Organización

Alcance: Aplica a toda la empresa/organización

Componentes:

  • Políticas de calidad generales
  • Objetivos de calidad globales
  • Marco de trabajo corporativo
  • Procedimientos estándar para todos los proyectos

Responsable: Dirección/Gerencia

Ejemplo:

POLÍTICA DE CALIDAD CORPORATIVA:
"Todos los proyectos deben alcanzar 95% de cobertura de tests,
cero vulnerabilidades críticas de seguridad, y ser revisados
por al menos 2 desarrolladores antes del merge."

2.2 Nivel de Proyecto

Alcance: Cada proyecto específico

Componentes:

  • Adaptación de estándares corporativos al proyecto
  • Selección de tecnologías específicas
  • Selección de herramientas adecuadas
  • Adaptación de procesos para objetivos particulares

Responsable: Project Manager / Tech Lead

Ejemplo:

PLAN DE CALIDAD DEL PROYECTO X:
- Tests unitarios con 90%+ cobertura (más estricto para módulo crítico)
- Revisión de código semanal
- Integración continua con Jenkins
- Base de datos: PostgreSQL (según política corporativa)

2.3 Nivel de Fase de Desarrollo del Proyecto

Alcance: Cada fase del desarrollo

Fases típicas:

  1. Análisis: Definición clara de requisitos
  2. Diseño: Arquitectura revisada
  3. Implementación: Código siguiendo pautas
  4. Testing: Pruebas según plan
  5. Despliegue: Seguir proceso de lanzamiento
  6. Mantenimiento: Actualizaciones controladas

Componentes en cada fase:

  • Prácticas específicas de calidad
  • Criterios de aceptación
  • Documentación requerida
  • Revisiones y auditorías

Ejemplo - Fase de Diseño:

PRÁCTICAS DE CALIDAD EN DISEÑO:
- Crear diagramas de clases (UML)
- Documentar decisiones de diseño
- Revisar con al menos 2 arquitectos
- Validar contra requisitos
- Identificar riesgos potenciales

3. Tareas Clave en la Gestión de la Calidad

3.1 Aseguramiento de la Calidad (SQA - Software Quality Assurance)

¿Qué es?: Conjunto de actividades preventivas para asegurar que el proceso y el producto cumplen estándares

Responsabilidades:

  • Definir procesos de calidad
  • Supervisar que se siguen estos procesos
  • Realizar auditorías
  • Revisar procesos de desarrollo

¿Cuándo actúa?: Antes y durante el desarrollo (prevención)

Ejemplo de actividades SQA:

  • Auditoría: Verificar que el equipo sigue las pautas de codificación
  • Revisión de proceso: Comprobar que se hacen reviews de código
  • Entrenamiento: Enseñar nuevas prácticas al equipo

3.2 Establecimiento del Marco de Trabajo de Procedimientos y Estándares Corporativos

¿Qué es?: Documentar todas las prácticas de calidad de la organización

Forma: Manual de Calidad

Contenido típico:

  • Políticas de codificación (naming, espacios en blanco, etc.)
  • Procesos de revisión de código
  • Estándares de documentación
  • Procedimientos de testing
  • Gestión de versiones
  • Seguridad

Beneficio: Todos en la organización hablan el mismo idioma de calidad

3.3 Planificación de la Calidad (SQAP - Software Quality Assurance Plan)

¿Qué es?: Plan específico para cada proyecto

Se documenta en: Plan de Aseguramiento de Calidad del Proyecto (SQAP)

Contenido típico:

  • Objetivos de calidad específicos del proyecto
  • Estándares a aplicar
  • Herramientas a usar
  • Roles y responsabilidades
  • Calendario de revisiones
  • Métricas a medir
  • Proceso de escalado ante problemas

Ejemplo SQAP para un proyecto:

PLAN DE CALIDAD - PROYECTO "SISTEMA BANCARIO"

Objetivo: Software 100% funcional, 98% cobertura de tests,
cero vulnerabilidades críticas

Estándares:
- ISO 9000:2000
- OWASP para seguridad
- Clean Code principles

Herramientas:
- JUnit para tests
- SonarQube para análisis estático
- OWASP ZAP para seguridad

Revisiones:
- Semanal: Métricas de calidad
- Quincenal: Revisión de arquitectura
- Mensual: Revisión de seguridad

Responsable: Lead Developer (María García)

3.4 Control de la Calidad (SQC - Software Quality Control)

¿Qué es?: Conjunto de actividades correctivas para medir y mejorar la calidad

Responsabilidades:

  • Medir la calidad del software
  • Ejecutar pruebas
  • Inspeccionar técnicamente
  • Identificar defectos
  • Detectar desviaciones de estándares

¿Cuándo actúa?: Durante y después del desarrollo (corrección)

Actividades típicas:

  • Testing (unitario, integración, sistema, aceptación)
  • Inspecciones técnicas de código
  • Revisión de estándares de codificación
  • Pruebas de seguridad
  • Validación con requisitos

Diferencia clave entre SQA y SQC:

SQA (Aseguramiento):
- PREVENTIVO
- "¿Estamos haciendo bien el trabajo?"
- Auditorías, procesos, capacitación

SQC (Control):
- CORRECTIVO
- "¿El producto es bueno?"
- Tests, inspecciones, detección de defectos

4. Implementación Efectiva de un SGC

Para implementar efectivamente un sistema de gestión de calidad, es crucial:

4.1 Compromiso Organizacional

Todos los niveles deben estar comprometidos:

  • Alta dirección: Aprobar presupuesto y tiempo
  • Gerentes de proyecto: Implementar en proyectos
  • Desarrolladores: Seguir procesos y estándares
  • QA/Testers: Ejecutar pruebas exhaustivas

4.2 Cultura de Calidad

  • La calidad no es responsabilidad solo de QA
  • Todos son responsables de la calidad
  • Los defectos se previenen, no solo se detectan

4.3 Mejora Continua

  • Medir métricas regularmente
  • Analizar problemas
  • Implementar mejoras
  • Ajustar procesos

Actividades

  • AC903. Crear un Plan de Aseguramiento de Calidad (SQAP) básico para este proyecto. Incluye:

    • Objetivos de calidad: ¿Qué nivel de calidad quieres alcanzar?
    • Estándares: ¿Qué estándares vas a seguir?
    • Herramientas: ¿Qué herramientas de testing, análisis, etc. usarás?
    • Actividades de SQA: ¿Qué hará el equipo de aseguramiento?
    • Actividades de SQC: ¿Cómo verificarás la calidad?
    • Roles: ¿Quién es responsable de qué?
    • Métricas: ¿Qué medirás? (ej: cobertura de tests, bugs por 1000 líneas, etc.)

    Formato: Documento de 3-4 páginas. Sé específico y práctico.

    Nota: Este es un ejercicio de pensamiento crítico. No es aceptable usar generadores de IA.

  • AC904. Elige dos empresas desarrolladoras de software diferentes (pueden ser grandes como Google/Microsoft o pequeñas startups). Investiga:

    • ¿Qué procesos de calidad usan? (busca en blogs, documentación pública, entrevistas)
    • ¿Cómo están organizados (SQA, SQC)?
    • ¿Qué estándares siguen?
    • ¿Cuál parece tener mayor enfoque en calidad?

    Presenta:

    • Tabla comparativa
    • Análisis de diferencias
    • Tu opinión sobre qué enfoque es mejor y por qué

    Fuentes: Documentación oficial, blogs técnicos, presentaciones en conferencias, no ChatGPT.