Product Craft Bible
Status Pages e Incidencias
Inicio SaaS y Admin Status Pages e Incidencias
SaaS y Admin

Status Pages e Incidencias

8 reglas Atlassian Statuspage Design Guide · Stripe Status · GitHub Status · Dan LuuPagerDuty Incident Response Guide · Atlassian Incident Severity Levels · WCAG 2.1 SC 1.4.1Atlassian Incident Communication Templates · Dan Luu · Stripe incident historyPagerDuty "How to Communicate ETAs During an Outage" · Atlassian · Stripe Engineering Blog
124

Status Pages e Incidencias

8 reglas
1102

Estructura 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 Luu
Preferir
All systems operational Updated 14:02 UTC

Acme Platform Status

status.acme.com · Independent infrastructure

Components
Web App & CDN
Operational
REST API
Partial Outage
Database & Cache
Operational
Payment Integration
Degraded
90-day uptime history
90 days ago99.71% uptimeToday
Evitar
System Status
All systems operational.
No issues detected.
1103

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.1
Preferir
Label Umbral de impacto Color
Operational <0.1% error rate Operational
Degraded Performance Latencia >2x o 0.1-1% errores Degraded
Partial Outage 1-25% de usuarios afectados Partial Outage
Major Outage >25% usuarios o función principal caida Major Outage
Under Maintenance Ventana planificada Maintenance
Evitar
Good
Issues detected
Service disruption event
Issues detected
1104

Template 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 history
Preferir
Resolved 15:42 UTC

The 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.

Identified 15:18 UTC

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.

Investigating 15:03 UTC

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.

Evitar
Update ~3:40pm

We are working on the issue.

Update ~3:20pm

We are working on the issue.

Update ~3:00pm

We are aware of issues and are looking into it. More info shortly.

1105

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 Blog
Preferir
Fase: Investigating No publicar ETA
Causa raiz no conocida aún. Cualquier ETA es intuición, no evidencia. Esperar a Identified.
Fase: Identified, rollback en curso Publicar ETA
Rollback confirmado: duración técnica 20 min → buffer 1.5x = comunicar 30 min.
We expect this to be resolved by 15:45 UTC.
We'll update this page by 15:40 UTC if that changes.
ETA en riesgo de expirar Actualizar 10 min antes
Publicar extensión 10 min antes de que expire. Nunca dejar que el ETA pase en silencio.
Evitar
Investigating, 14:58 UTC
We are aware of issues with our API and investigating.
ETA: 30 minutes
Update, 15:30 UTC
We are still working on the issue.
ETA: soon
Update, 16:00 UTC
We expect this to be resolved shortly.
1106

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 Engineering
Preferir
Post-Mortem: API Degradation, June 12, 2026
Duration: 47 min Impact: 8% of API users Published: June 14, 2026
Summary
A deploy at 14:55 UTC introduced a misconfigured rate limit that caused 8% of REST API requests to time out for 47 minutes. Approximately 3,200 users were affected. No data was lost.
Timeline (UTC)
14:55
Deploy v2.14.3 to production
14:58
Alerts fired: p99 latency >4s on /v2/orders
15:03
Incident declared, first update published
15:18
Root cause identified, rollback initiated
15:42
Service fully restored
Root Cause
A rate limit configuration in the deploy set the orders endpoint ceiling to 10 req/s instead of 1,000 req/s, causing the majority of authenticated requests to be rejected.
Remediation items
Add config validation step to CI pipelinePlatformJun 20
Rate limit monitoring alert at 50% thresholdObservabilityJun 24
Evitar
Incident Update, June 12

Yesterday 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.

1107

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 Dashboard
Preferir
Scheduled Maintenance, Database cluster upgrade Announced T-72h
Database Cluster Upgrade
Planned · Under Maintenance
Start
Jun 17 · 02:00 UTC
Duration
~2 hours
Affected
Database · Search
Unaffected
Auth · CDN · API
Starts in
1day
:
14hours
:
32minutes
During maintenance, you can
Read-only access to existing reports will remain available
Export your data before 02:00 UTC if needed
API write calls will be queued and processed after completion
Evitar
Maintenance scheduled for today
System Maintenance

We will be performing maintenance in approximately 2 hours. Some services may be unavailable. Sorry for the inconvenience.

1108

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 Docs
Preferir
503
We're temporarily unavailable
Our servers are under heavy load or undergoing maintenance. Your URL is preserved, come back soon.
Retrying automatically in 28s…
404
This page doesn't exist
The URL /products/shoes couldn't be found. Try one of these instead:
You might be looking for
/products /products/clothing
500
Something went wrong on our end
This specific request failed. Your data is safe. Please try once more or contact support.
Error ID: a3f-892-bc1
Evitar
Something went wrong
An error occurred. Please try again later.
1109

In-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
Preferir
Payment processing is experiencing an outage affecting checkout. Learn more
Dashboard Orders Settings
Falla de pagos, usuario en checkout Mostrar
Auto-save caido, usuario editando documento Mostrar
Latencia +200ms, usuario en listado de reportes No mostrar
Mantenimiento de componente que el usuario no usa No mostrar
Evitar
We're experiencing some issues with our platform. Posted 14 days ago
Dashboard Orders Settings