مدیریتِ حادثه؛ وقتی prod واقعاً down است
در حادثه، زبان باید «فشرده و بیهیجان» باشد: اعلام (P1: checkout down, ~30% of users affected), قالبِ هر آپدیت (impact / cause-so-far / next action / ETA), و تفکیکِ نقشها. جملهٔ طلایی: "Facts first, theories second." و در postmortem: "The system allowed a bad deploy — the fix is systemic, not personal."
حادثهٔ production، شبِ امتحانِ همهٔ مهارتهای این دوره است: فنی، سازمانی و زبانی — همزمان. تیمهای حرفهای برای همین، «زبانِ حادثه» را از قبل تمرین میکنند: جملهایِ کوتاهِ قالبدار که در فشارِ آدرنالین هم بیابهام میمانند. این درس همان زبان است: از لحظهٔ اولِ پیامِ alert تا جلسهٔ postmortem.
قاعدهٔ فرهنگیِ بنیادین: در حادثه، «آرامشِ صوتی» گمراهکننده نیست؛ فرماندهی است. صدای پُرتنش در کانالِ حادثه، همه را کندتر میکند؛ جملههای کوتاهِ بیهیجان، همه را تیزتر.
لحظهٔ صفر؛ اعلام و صفبندی
سه جزءِ اعلام: شدت و مختصات (P1/P2 + چه سیستمی + از چه ساعتی + چند درصدِ کاربر), کانالِ جنگ (#inc-XXX — کانالِ تازه، نه کانالِ تیم), نقشها — incident commander (فرمانده: تصمیم و پروسه), comms lead (ارتباط: آپدیتهای بیرونی), ops (دستِ اجرا). اگر فرمانده ندارید، خودت باش و بگو — جملهاش همان امضاست. سوالِ اولِ جذبشدنها: "Who's on it and what do you need from me?" (کی روشه و از من چی لازمه؟)
ریتمِ حادثه؛ بریفِ هر دهدقیقه
قالبِ آپدیتِ دورهای (فرمانده مینویسد، در کانال + برای ذینفعها): "14:20 STATUS: 5xx at ~30%, EU-heavy. CAUSE (working theory): last deploy's DB pool change; not confirmed. ACTION: rolling back deploy now, ETA 10 min. NEXT UPDATE: 14:30." — چهار خط: وضعیت/تئوری/اقدام/زمانِ آپدیتِ بعدی. قاعدهٔ فکری: Facts first, theories second — نظریه را حتماً بهعنوان «working theory» برچسب بزن تا تصمیمها با حدسها قاطی نشوند. و جملههای کانالِ جنگ: "Rollback is running, 3 of 12 pods done." · "I need someone on the DB metrics — can you take it, Sara?" · "Heads-up: I'm about to failover — confirm you're ready." — هر پیام، یک فعلِ در حالِ انجام یا یک درخواستِ نامدار.
Postmortem؛ دادگاهِ سیستم، نه آدم
سندِ postmortem (درس ۵۹ را کامل میکند): What happened / Impact / Timeline / Root cause / What went well / Action items. قواعدِ زبانیِ بیاتهام: عاملیت را به سیستم بده — "The deploy pipeline allowed an incompatible migration to ship" نهِ «Jack shipped…»؛ نکتهٔ جالبش این است که هم چابکتر است هم دقیقتر. در جلسه: "The goal is blameless analysis — we assume everyone acted reasonably with the information they had." (هدف، تحلیلِ بیاتهامه — فرض میکنیم همه با اطلاعِ خودشون معقول رفتار کردن.) و بندِ جمعبندیِ معجزهگر: "If a perfectly reasonable person could have made this same mistake, the fix belongs in the system." — Action items با مالک و تاریخ، وگرنه پستمورتم، ادبیات است نه مهندسی.
گرامرِ عمیقتر: زبانِ فشردهٔ حادثه
حادثه، سه قالبِ چهارخطی دارد: اعلام: «P1 — [system] is down/degraded for [X%] of users since [time]. Channel: #inc-NNN.» بریف: «STATUS / CAUSE (working theory) / ACTION / NEXT UPDATE at [time].» پایان: «All-clear: metrics back to baseline. Postmortem [day] at [time].» — و زمانِ فعلها: ادامهٔ حادثه با استمرار (users are seeing 5xx), اقدام با استمرار (we're rolling back), نتیجه با ساده (errors dropped). و پرچمهای فکری: working theory (هنوز حدس), confirmed (تأیید شد), ruled out (حذف شد) — سه برچسبِ جلوگیری از قاطیشدنِ حدس و واقعیت.
گفتگو: در کانالِ جنگ — ده دقیقهٔ خاموشگیر
اشتباههای رایجِ فارسیزبانها در همین درس
این بخش را با یک قرارداد بخوان: هر ❌ یعنی «مغزِ فارسیزبانت این را میسازد و طبیعی است»، و هر ✅ یعنی «این همان چیزی است که گیرندهٔ انگلیسیزبان میشنود». خطاها اثرِ مستقیمِ ترجمهٔ ذهنیِ فارسی به انگلیسیاند؛ با هر جفت بلند تکرار کن تا شکلِ درست در گوشت نشست کند.
تمرینهای این درس — چهار قدم، بیعجله
حادثه، تمرینِ نوشتنِ زیرِ فشار است؛ هر چهار را با تایمرِ پنجدقیقهای اول خودت بلند بگو، بعد پاسخ را باز کن.
- اولین خطِ اعلامِ حادثه را بنویس: قطعیِ checkout از ساعت ۱۴:۰۲ برایِ حدود ۳۰٪ کاربرها؛ کانالِ جنگ: #inc-042. (قالبِ درس: سطح + سیستم + دامنه + زمان + کانال)
- جملهٔ اتهامدار را بازنویسی کن: «Sara's config change broke the cache.» — فرایند را نشانه بگیر، نه آدم را.
- دارا در پلِ جنگ میگوید: «I think it's the DNS.» — حرفش را با برچسبِ درست در بریفِ وضعیت ثبت کن.
- بریفِ پایانِ حادثه را بنویس: خطاها ۳۰ دقیقه در سطحِ پایه مانده، پایش برداشته میشود، پستمورتم جمعه ساعت ۱۰.
پاسخ تمرینها — اول خودت جواب بده، بعد باز کن
پاسخ تمرین ۱
پاسخ تمرین ۲
پاسخ تمرین ۳
پاسخ تمرین ۴
چالشِ امروز
🎯 برایِ آخرین قطعی یا باگِ جدیِ تیمتان یک بریفِ چهارخطیِ STATUS / CAUSE / ACTION / NEXT UPDATE بنویس — حتی اگر هفتهها پیش بوده؛ عضلهٔ حادثه با بازنویسی ساخته میشود.
نکات مکالمهٔ واقعی که کتابها کم میگویند
- فرضیه را برچسب بزن — «working theory» و «confirmed» را قاطی نکن — اعلامِ حدس بهعنوانِ واقعیت در حادثه، خطای هفتساله میسازد.
- هر بریف با زمانِ آپدیتِ بعدی — «NEXT UPDATE 14:30» — وعدهٔ آپدیت، وحشتِ سکوت را میکُشد؛ حتی خبرِ «تغییری نیست» را بده.
- نقشها را با اسم اعلام کن — «Dara on metrics, Sara on comms» — حادثهٔ بینقش، حادثهٔ بیمسئولیت است؛ اولین جملهٔ فرمانده همین است.
زبانِ حادثه: اعلامِ چهارجزئی (شدت/سیستم/زمان/درصد + کانال + فرمانده), آپدیتِ دهدقیقهایِ چهارخطی (STATUS/working theory/ACTION/NEXT), جملههای «فعل یا درخواستِ نامدار», و postmortemِ blameless که عاملیتش با سیستم است. آرامشِ صوتی، فرماندهی است — و قاعدهٔ طلاییِ فکر: facts first, theories second.