# 15 — Riesgos *(Entregable O)*

> Escala de impacto y probabilidad: **Alto / Medio / Bajo**.
> Prioridad = impacto × probabilidad. Los riesgos **críticos** tienen mitigación obligatoria en el plan.

---

## Mapa de riesgos

```
   Impacto
     ▲
Alto │  R-06        R-01  R-02       R-03
     │  R-11        R-04  R-05       R-07
     │              R-14
     ├──────────────────────────────────────
Medio│  R-16        R-09  R-12       R-08
     │              R-13  R-17       R-10
     ├──────────────────────────────────────
Bajo │  R-19        R-18             R-15
     └──────────────────────────────────────►
         Bajo        Medio           Alto     Probabilidad
```

---

# Riesgos funcionales

## R-01 · Las decisiones pendientes no se resuelven a tiempo
**Impacto:** Alto · **Probabilidad:** Media · **Prioridad:** 🔴 Crítica

Hay 9 decisiones bloqueantes. Si DP-03 (nota única) se resuelve después de construir la Fase 5, el módulo de notas
se rehace. Si DP-05 (área vs asignatura) llega tarde, se rehace la plantilla del boletín.

**Mitigación:**
- Las fases 0 a 4 **solo** requieren DP-08 y RG-01. Hay tiempo de sobra para el resto.
- El documento 00 lista qué decisión bloquea qué fase, con la antelación necesaria.
- Cada decisión tiene una **recomendación por defecto**: si el cliente no responde, el equipo propone proceder con
  ella dejando constancia escrita, en lugar de detener el proyecto.

## R-02 · El modelo de nota única resulta insuficiente
**Impacto:** Alto · **Probabilidad:** Media · **Prioridad:** 🔴 Crítica

§28 define una nota por asignatura y periodo. Si en la práctica los docentes necesitan registrar actividades con
porcentajes, el módulo de notas cambia estructuralmente.

**Mitigación:**
- La entidad de nota se diseña con la relación hacia una futura entidad de actividades **reservada desde ahora**
  ([DP-03](00-hallazgos-y-decisiones.md#dp-03--una-sola-nota-por-asignatura-y-periodo-o-notas-parciales)).
- Migrar a notas parciales agrega una entidad; **no reescribe** boletines, promedios ni reportes.
- Validación explícita con docentes reales al cerrar la Fase 5.

## R-03 · El criterio de promoción no coincide con el SIEE del colegio
**Impacto:** Alto · **Probabilidad:** Alta · **Prioridad:** 🔴 Crítica

Cada colegio tiene su propia regla de promoción y el Decreto 1290 no impone ninguna. Si el sistema decide
automáticamente con una regla equivocada, produce decisiones administrativas incorrectas sobre estudiantes reales.

**Mitigación:**
- El sistema **no decide**: sugiere y muestra los insumos. La decisión final es humana y auditada
  ([DP-06](00-hallazgos-y-decisiones.md#dp-06--criterio-de-promoción--reprobación)).
- La regla de sugerencia es configurable.
- Este es un caso donde **no automatizar es la decisión correcta**.

## R-04 · El indicador para familias filtra información que debía ocultar
**Impacto:** Alto · **Probabilidad:** Media · **Prioridad:** 🔴 Crítica

Mostrar el promedio numérico permite inferir notas individuales, contradiciendo §9 y §10.

**Mitigación:**
- Indicador **cualitativo por defecto**, sin números
  ([DP-01](00-hallazgos-y-decisiones.md#dp-01--el-padre-y-el-estudiante-no-ven-notas-pero-sí-ven-promedio-general-y-puesto)).
- Tres interruptores de configuración para que el colegio decida el nivel de apertura sin desarrollo adicional.
- Criterio de aceptación explícito en la Fase 6.

## R-05 · No hay canal de entrega del boletín a la familia
**Impacto:** Alto · **Probabilidad:** Media · **Prioridad:** 🔴 Crítica

La familia no ve boletines en línea y no hay módulo de correo. Si el colegio esperaba entrega digital, lo
descubrirá el día de la primera entrega de boletines.

**Mitigación:**
- Confirmación explícita del cliente en [DP-02](00-hallazgos-y-decisiones.md#dp-02--si-la-familia-no-ve-el-boletín-en-el-sistema-cómo-lo-recibe).
- Impresión masiva por curso construida en la v1.
- Punto de extensión previsto para entrega por enlace temporal [FF].

## R-06 · Los docentes rechazan la digitación de notas
**Impacto:** Alto · **Probabilidad:** Baja · **Prioridad:** 🟠 Alta

Si calificar es lento, los docentes vuelven al Excel y el sistema pierde su fuente de datos.

**Mitigación:**
- Digitación **100 % con teclado** como requisito de diseño, no como mejora.
- Autoguardado para que nunca se pierda trabajo.
- **Prueba con docentes reales antes de cerrar la Fase 5.**
- Objetivo medible: un curso de 32 estudiantes calificado en menos de 5 minutos.

## R-07 · Alcance creciente durante el desarrollo
**Impacto:** Alto · **Probabilidad:** Alta · **Prioridad:** 🔴 Crítica

Al ver el sistema funcionando, el colegio pide asistencia, horarios, notificaciones y entrega de tareas — todos
explícitamente fuera de alcance (§59), y todos razonables desde su punto de vista.

**Mitigación:**
- Este documento define el alcance con precisión, incluyendo lo que **no** se hace.
- Toda petición nueva se clasifica: ¿está en la especificación? Si no, entra a la lista de la versión siguiente
  con su estimación.
- La arquitectura preparada permite decir "sí, en la v2, y no habrá que rehacer nada" — que es una respuesta mucho
  mejor que "no".

---

# Riesgos técnicos

## R-08 · Fallo de generación masiva de boletines en hosting compartido
**Impacto:** Medio · **Probabilidad:** Alta · **Prioridad:** 🟠 Alta

Es el fallo más común de los sistemas académicos en PHP: 35 boletines superan el tiempo máximo de ejecución.

**Mitigación:** generación por lotes desde el diseño, no como parche
([RG-03](00-hallazgos-y-decisiones.md#rg-03--generación-masiva-de-boletines-tiempo-de-ejecución-y-memoria)).
Criterio de aceptación verificado en la Fase 7 sobre el hosting real de producción.

## R-09 · Degradación del rendimiento con datos reales
**Impacto:** Medio · **Probabilidad:** Media · **Prioridad:** 🟡 Media

Con 20 estudiantes de prueba todo es rápido. Con 850 y tres años de histórico, no necesariamente.

**Mitigación:**
- Índices definidos desde el diseño ([05 — Modelo de datos](05-modelo-de-datos.md#índices-y-rendimiento)).
- Consolidado materializado en lugar de recálculo en lectura.
- **Datos de prueba realistas (800 estudiantes) desde la Fase 4.**
- Objetivos de tiempo definidos como criterios de aceptación, no como aspiración.

## R-10 · Discrepancia de cálculo entre pantalla, boletín y reportes
**Impacto:** Medio · **Probabilidad:** Alta · **Prioridad:** 🟠 Alta

Es el defecto clásico: el boletín dice 3.8 y la pantalla 3.9. Destruye la confianza en el sistema completo, aunque
la diferencia sea de redondeo.

**Mitigación:**
- **Un único servicio de cálculo**, usado por los tres consumidores. Sin excepciones.
- Cobertura de pruebas superior al 95 % en ese servicio.
- El ejemplo trabajado del documento 06 como caso de prueba obligatorio.

## R-11 · Corrupción de caracteres del español
**Impacto:** Alto · **Probabilidad:** Baja · **Prioridad:** 🟠 Alta

Un descuido en la normalización a mayúsculas corrompe el apellido "MUÑOZ" en cientos de registros. Corregirlo
después de meses de operación es costoso y visible.

**Mitigación:** funciones multibyte obligatorias · `utf8mb4` en toda la base de datos · prueba automatizada con
`ÑÁÉÍÓÚÜ` como criterio de aceptación desde la **Fase 0**
([RG-06](00-hallazgos-y-decisiones.md#rg-06--mayúsculas-y-caracteres-del-español)).

## R-12 · Pérdida de datos por concurrencia
**Impacto:** Medio · **Probabilidad:** Media · **Prioridad:** 🟡 Media

Dos matrículas simultáneas con el mismo código; un docente digitando mientras se cierra el periodo.

**Mitigación:** secuencias con bloqueo dentro de la transacción · revalidación del estado del periodo en el
servidor al guardar · operaciones multi-entidad transaccionales · conservación de lo digitado ante un rechazo.

## R-13 · Fuga entre colegios al activar multi-colegio
**Impacto:** Alto · **Probabilidad:** Baja (hoy) · **Prioridad:** 🟡 Media

Con un solo colegio el riesgo es teórico. Al activar el segundo, una consulta sin filtro expone datos entre
instituciones.

**Mitigación:** filtro inyectado automáticamente por la capa de repositorio **desde la v1** · prohibición de
consultas fuera de repositorios, verificada por análisis estático
([RG-05](00-hallazgos-y-decisiones.md#rg-05--multi-colegio-el-riesgo-no-es-la-columna-es-el-olvido)).

## R-14 · Vulneración de cuentas por contraseñas predecibles
**Impacto:** Alto · **Probabilidad:** Media · **Prioridad:** 🔴 Crítica

`Nombre@4 dígitos` con nombres públicos y sin límite de intentos es vulnerable en minutos.

**Mitigación:** bloqueo progresivo obligatorio · contadores por usuario y por IP · bitácora de accesos ·
contraseña mostrada una sola vez · sufijo de 6 dígitos recomendado
([DP-08](00-hallazgos-y-decisiones.md#dp-08--la-política-de-contraseñas-tiene-un-riesgo-de-seguridad-real)).

## R-15 · Despliegue sobre PHP sin soporte de seguridad
**Impacto:** Alto · **Probabilidad:** Alta si no se corrige · **Prioridad:** 🔴 Crítica

PHP 8.0 no recibe parches desde noviembre de 2023, y el sistema maneja datos de menores.

**Mitigación:** exigir PHP 8.2 como piso, verificado en la lista previa a producción
([RG-01](00-hallazgos-y-decisiones.md#rg-01--php-80-está-fuera-de-soporte-de-seguridad--crítico)).

## R-16 · Pérdida de datos sin copias de seguridad
**Impacto:** **Muy alto** · **Probabilidad:** Baja · **Prioridad:** 🟠 Alta

El histórico académico de un colegio es irreemplazable. La especificación no menciona respaldos.

**Mitigación:** respaldo diario automatizado · almacenamiento fuera del servidor · **prueba periódica de
restauración documentada**. Un respaldo nunca restaurado no cuenta como respaldo.

---

# Riesgos de proceso y organizacionales

## R-17 · Datos iniciales incompletos o inconsistentes
**Impacto:** Medio · **Probabilidad:** Alta · **Prioridad:** 🟠 Alta

El colegio entrega listados con documentos repetidos, nombres inconsistentes y acudientes sin datos de contacto.

**Mitigación:**
- **Importador con validación previa** que reporta errores fila por fila antes de insertar nada.
- Reporte de integridad de datos (R-CTL-03) para revisión periódica.
- Campos opcionales por defecto (§12, §21): el colegio completa la información gradualmente en lugar de bloquearse.

## R-18 · Resistencia al cambio de los usuarios
**Impacto:** Medio · **Probabilidad:** Media · **Prioridad:** 🟡 Media

Docentes acostumbrados a su Excel; secretaría acostumbrada al papel.

**Mitigación:**
- Interfaz que **ahorra tiempo visiblemente** desde el primer uso — el mejor argumento de adopción.
- Validación con usuarios reales en los hitos de las fases 4, 5 y 7.
- Uso temprano en producción por fases, no un cambio total de un día para otro.
- Manuales por rol, breves y con capturas.

## R-19 · Dependencia de una sola persona en el mantenimiento
**Impacto:** Medio · **Probabilidad:** Media · **Prioridad:** 🟡 Media

Sistema a la medida sin documentación técnica = colegio atado a quien lo construyó.

**Mitigación:** este conjunto de documentos como base · código con convenciones estándar (PSR-12) · sin framework
exótico · manual técnico de despliegue y operación en la Fase 10 · esquema de base de datos documentado y
versionado en migraciones.

---

# Riesgos legales y de cumplimiento

## R-20 · Incumplimiento de la Ley 1581 de 2012
**Impacto:** Alto · **Probabilidad:** Media · **Prioridad:** 🟠 Alta

El sistema trata datos sensibles de menores (EPS, RH, observaciones médicas) sin que la especificación mencione
autorización de tratamiento ni política de datos.

**Mitigación:** casilla de autorización obligatoria en la matrícula, con fecha y usuario · clasificación y
restricción de campos sensibles · auditoría de su consulta · minimización en exportaciones · política de
tratamiento publicada
([RG-02](00-hallazgos-y-decisiones.md#rg-02--datos-sensibles-de-menores--ley-1581-de-2012)).

**Nota:** el sistema provee las herramientas técnicas de cumplimiento. La adopción de la política y el
cumplimiento legal son responsabilidad de la institución.

## R-21 · El boletín no cumple una exigencia formal de la Secretaría de Educación
**Impacto:** Medio · **Probabilidad:** Baja · **Prioridad:** 🟡 Media

Algunas secretarías tienen requisitos de formato para informes académicos.

**Mitigación:** boletín compuesto por **bloques activables** y plantilla en HTML/CSS, ajustable sin reprogramar
([10 — Boletines](10-boletines.md#plantillas-configurables)). Validar la maqueta con la coordinación durante la
Fase 6, antes de programarla.

---

# Resumen — riesgos críticos

Los que exigen atención explícita del cliente antes de iniciar:

| ID | Riesgo | Qué se necesita |
|---|---|---|
| **R-15** | PHP sin soporte de seguridad | Confirmar PHP 8.2+ en el hosting **antes de la Fase 0** |
| **R-14** | Contraseñas vulnerables | Aprobar el bloqueo progresivo **antes de la Fase 1** |
| **R-01** | Decisiones pendientes | Resolver las 9 del documento 00 según el calendario del documento 14 |
| **R-03** | Criterio de promoción | Entregar el SIEE, o confirmar decisión manual |
| **R-04** | Filtración por el indicador | Decidir el nivel de opacidad del dashboard familiar |
| **R-05** | Entrega del boletín | Confirmar que la entrega es física |
| **R-07** | Alcance creciente | Aceptar formalmente el alcance de este documento |
| **R-02** | Modelo de nota única | Confirmar que el docente digita una sola nota por periodo |

---

# Riesgos aceptados conscientemente

Riesgos que existen y que **se decide asumir** por su bajo costo esperado frente al costo de mitigarlos:

| Riesgo | Por qué se acepta |
|---|---|
| Sin alta disponibilidad ni redundancia | Un colegio tolera una caída de horas. La infraestructura redundante multiplica el costo sin beneficio proporcional |
| Sin cifrado a nivel de columna en la base de datos | HTTPS + control de acceso + respaldos cifrados cubren el modelo de amenazas realista |
| Sin autenticación de dos factores | Desproporcionado para el perfil de usuario (docentes y acudientes). Queda como [FF] si el colegio lo pide |
| Boletín sin firma digital certificada | La firma manuscrita escaneada es la práctica institucional vigente. El código de verificación propuesto cubre el caso básico |
| Sin aplicación móvil nativa | La interfaz responsive cubre el caso de uso de familias y estudiantes. Explícitamente fuera de alcance (§59) |
