چیزهایی که تو دانشگاه نمی‌گن: چجوری روت کاز آنالیز (RCA) تحویل بدیم؟

اتفاقات بد، منحصر به دنیای نرم افزار نیستن و همه جا می‌افتن. اما خب توی دنیا ما تقریبا یک چیز روزمره هستن. قطع شدن یک سرویس، کرش کردن دیتابیس، باگ و برنامه نویس تازه کاری که قارتی پوش کرده روی سرور لایو و فیلترینگی که نصفه شبی باعث شده سرور نتونه از ان پی ام آپدیت بشه، اتفاق‌هایی مرسوم هستن.

توی دنیای حرفه‌ای، اتفاق بعد می افته و تیم لایه اول ساپورت یا تکنیکال ساپورت لایه دوم و غیره لازمه با تمام سرعت ممکن مشکل رو برطرف کنن. مثلا اگر در سیستم استعلام جریمه رانندگی خراب بشه و درست کار نکنه، بر اساس قرار، مثلا توی چهار ساعت لازمه سرویس کاملا برگرده و درست کار کنه. شما ممکنه در این چهار ساعت سیستم رو ریبوت کنین یا کلا از مدار خارج کنین و سرویس دوم رو بالا بیارین و غیره و مساله از طریق یک workaround حل بشه اما فرداش لازمه مساله به شکل واقعی حل بشه. یعنی نوشتن و ارائه Root Cause Analysis یا همون RCA.

این یک داکیومنت است که توضیح می ده مشکل چرا پیش اومده بود و احیانا چطور می شه جلوی اتفاق مجددش رو گرفت. در واقع شما دارین علت ریشه ای رو تحلیل می کنین. یک مدیر خوب همیشه بعد از هر اتفاق باید از شما RCA بخواد تا ۱) بتونه بفهمه مشکل چرا پیش امده ۲) جلوش رو بگیره و ۳) دفعه بعدی مرجعی داشته باشه برای اینکه باید چیکار کنه.

اما نوشتن RCA کار بسیار ناخواستنی و نچسبی است ولی هر جای حرفه‌ای که کار کنین لازمه بلدش باشین. آر سی ای معمولا در پنج قدم نوشته می‌شه:

  1. جمع کردن شواهد
  2. تشریح مساله
  3. تحلیل علت و معلول‌ها
  4. پیشنهاد راه حل‌ها
  5. نوشتن RCA

البته مساله همیشه هم به همین راحتی ها نیست و تکنیک هایی هست برای کشف اینکه مشکل کجا بوده. از ترابل شوتینگ سیسمتاتیک تا ۵ بار جواب دادن به این سوال که «چی شد که اینطوری شد؟» و غیره و غیره وجود داره. اما بازم مواردی هست که نمی شه بهش جواب داد. مثلا ممکنه فلان سرویس قطع شده باشه. جواب اول به «چی شد که اینطوری شد؟» اینه که «اپلیکیشن پایین بوده» و جواب بعدی به «چرا؟» این باشه که «چون دیتابیس کرش کرده» و بعد برسین به اینکه «دیتابیس ساعت ۴ کرش کرد» و در جواب به اینکه «چی شد که کرش کرد؟» بعدی جوابی نداشته باشین. حالا شاید بگین:

  1. دیتابیس زاپاس داشته باشیم
  2. لاگ بیشتر اضافه کنیم که ببینیم دیتابیس چرا ممکنه کرش کنه

اولی پر دردسر و گرون است و در واقع فقط فراموش کردن صورت مساله است و دومی یک پینشهاد برای داشتن RCA بهتر در صورت بروز مشکل مجدد.

برای اطلاعات دقیق تر در مورد شیوه نوشتن RCA پیشنهاد می کنم این داکیومنت سریع و راحت با عنوان «رییسم گفته آر سی ای بدم، حالا باید چیکار کنم رو ببینین یا جایی ذخیره کنین چون بدون شک همین که کار حرفه ای تری رو شروع کنین، دائما نیاز به مراجعه بهش خواهید داشت.

  • بر دانشم افزوده شد.

  • MohammadHossein ShahMohammadi

    ممنان گذارتانم :)

  • Arian

    بسیار کمک کننده بود.

  • اینجا لغت post-mortem خیلی مرسوم‌ هست. من انگلیسم ولی با امریکایی ها کار میکنیم و همه از این لغت استفاده میکنن. اولین بار که شنیدم یه حدسایی زدم ولی نمیدونستم یعنی چی. همش افسوس میخورم که ای کاش توی دانشگاه لعنتی یه ذره از این اصطلاحات بهمون یاد میدادن به جای این همه مزخرف.

    https://www.pagerduty.com/resources/learn/post-mortem-incident-report

  • Mohammad Mesripour

    عالی بود مرسی

  • میلاد

    دمت گرم پسر.