Status Pages e Incidencias
Status Pages e Incidencias
8 reglasEstructura canónica de la status page
Una status page efectiva responde tres preguntas en menos de 5 segundos: ¿qué está caído ahora?, ¿cuándo estuvo caído antes?, ¿cómo me entero de lo siguiente? Sin esas tres respuestas visibles above the fold, la página no cumple su función. Los componentes deben organizarse en capas lógicas (frontend, API, datos, integraciones), el historial de uptime debe cubrir 90 días, y el método de suscripción debe estar en posición prominente o sticky.
Atlassian Statuspage Design Guide · Stripe Status · GitHub Status · Dan LuuAcme Platform Status
status.acme.com · Independent infrastructure
Niveles de severidad con color y copy calibrado
Cada nivel de severidad debe mapearse a un color universal, una etiqueta textual inequívoca y un umbral de impacto medible. La ambiguedad en el nivel ("Issues detected") es más danina que reconocer una interrupción mayor, porque el usuario no puede tomar decisiones. WCAG 1.4.1 exige que el color nunca sea el único diferenciador: siempre acompañar con icono y etiqueta de texto.
PagerDuty Incident Response Guide · Atlassian Incident Severity Levels · WCAG 2.1 SC 1.4.1Template de update durante el incidente
Cada update publicado durante un incidente activo debe seguir una estructura fija de tres bloques: lo que sabemos, lo que estamos haciendo y cuando es el proximo update. Esta estructura impide que el redactor en crisis omita información y establece un ritmo de comunicación predecible que reduce la carga de soporte. El primer update debe publicarse en 15 minutos desde la detección, aunque sea solo una confirmación de que se esta investigando.
Atlassian Incident Communication Templates · Dan Luu · Stripe incident historyThe REST API latency issue affecting 8% of users has been fully resolved. All endpoints are now responding within baseline thresholds.
Rolled back the 14:55 UTC deploy and restored the previous stable versión. Root cause analysis in progress.
Elevated p99 latency on REST API (/v2/orders) since 14:58 UTC. Approximately 8% of requests timing out. Root cause identified: a deploy at 14:55 UTC.
Initiating rollback to previous stable versión. ETA: resolved by 15:45 UTC.
15:40 UTC, or sooner if resolved.
We are aware of elevated error rates on the REST API affecting a subset of users. Impact began approximately 14:58 UTC.
15:20 UTC.
We are working on the issue.
We are working on the issue.
We are aware of issues and are looking into it. More info shortly.
ETA: cuando comunicarlo y como actualizarlo
Un ETA incumplido dana más la confianza que no haberlo comunicado. La regla: publicar ETA solo cuando hay evidencia técnica concreta, con buffer de 1.5x el tiempo estimado, y actualizar proactivamente antes de que expire si no se cumplira. Nunca publicar ETA durante la fase "Investigating": sin causa raiz identificada, cualquier estimación es un over-promise garantizado.
PagerDuty "How to Communicate ETAs During an Outage" · Atlassian · Stripe Engineering BlogWe'll update this page by 15:40 UTC if that changes.
Post-mortem publico: estructura, timing y tono
El post-mortem publico convierte un incidente en evidencia de madurez operacional. Su objetivo no es disculparse sino demostrar comprensión causal y capacidad de remediation. Publicarlo antes de 48h (datos incompletos) o después de 5 días (percepción de ocultamiento) reduce su valor de confianza. La estructura correcta incluye: summary, timeline UTC, root cause, contributing factors, remediation con owners y fechas, y al menos un "What went well".
Google SRE Book cap. 15 · Atlassian Postmortem Template · GitHub Blog · Stripe EngineeringYesterday we experienced some issues with our platform. We apologize for any inconvenience this may have caused.
We've taken steps to improve our processes and are committed to ensuring this doesn't happen again.
Mantenimiento programado: aviso, countdown y alternativas
El mantenimiento programado es el único tipo de interrupción que el equipo controla completamente. No comunicarlo con 48h de anticipación mínima (7 días para flujos criticos como facturación o autenticación) es un error de proceso, no de infraestructura. El countdown en las últimas 2h debe mostrar días/horas/minutos, no segundos: el movimiento constante de segundos genera ansiedad sin información nueva.
Atlassian Statuspage Scheduled Maintenance · PagerDuty Planned Maintenance · AWS Service Health DashboardWe will be performing maintenance in approximately 2 hours. Some services may be unavailable. Sorry for the inconvenience.
Error pages 503 vs 404 vs 500: copy, acción y preserve URL
Cada código de error HTTP tiene una causa distinta y requiere un copy, una acción sugerida y un comportamiento de retry diferentes. Usar el mismo template "Something went wrong" para 503, 404 y 500 esconde información critica del usuario y aumenta el costo de soporte. La acción clave del 503: preservar la URL y ofrecer retry automático. La del 404: sugerencias de navegación sin retry. La del 500: request ID visible para facilitar el debugging.
MDN HTTP Status Codes · Smashing Magazine 404 Design · Google Search Central · Stripe API DocsIn-app status banner: cuando mostrarlo y cuando no
El in-app banner de incidentes informa a usuarios dentro del producto sobre algo que afecta su sesión actual. No es sustituto de la status page ni debe mostrarse en cada incidente: mostrarlo innecesariamente genera "banner fatigue" y los usuarios aprenden a ignorarlo. El criterio es afectación directa al flujo activo del usuario. En Major Outage no hay dismiss: el usuario debe ver el estado hasta la resolución.
Intercom Product Blog · Atlassian In-App Incident Banners · Linear.app · Nielsen Norman Group "Banner Blindness" 2018- R-1102 Estructura canónica de la status page
- R-1103 Niveles de severidad con color y copy calibrado
- R-1104 Template de update durante el incidente
- R-1105 ETA: cuando comunicarlo y como actualizarlo
- R-1106 Post-mortem publico: estructura, timing y tono
- R-1107 Mantenimiento programado: aviso, countdown y alternativas
- R-1108 Error pages 503 vs 404 vs 500: copy, acción y preserve URL
- R-1109 In-app status banner: cuando mostrarlo y cuando no