سخت‌افزار خطاپذیر است، بنابراین افزونگی اضافه می‌کنیم. این کار به ما امکان می‌دهد تا از پس شکست‌های سخت‌افزاری برآییم، اما احتمال وجود حداقل یک خرابی در هر لحظه را افزایش می‌دهد.

نرم‌افزار خطاپذیر است. برنامه‌های ما از نرم‌افزار ساخته شده‌اند، بنابراین در برابر شکست آسیب‌پذیرند. نظارت اضافه می‌کنیم تا از خرابی برنامه‌ها مطلع شویم، اما این نظارت نیز از نرم‌افزار تشکیل شده است و خود نیز خطاپذیر است.

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

بنابراین، نظارت را به خودکارسازی اضافه می‌کنیم. نرم‌افزار بیشتر، فرصت‌های بیشتر برای شکست.

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

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

ارزش دارد به یاد بیاوریم که حادثه جزیره تری‌مایل عمدتاً به دلیل یک شیر تخلیه فشار رخ داد—سازوکاری ایمنی که قرار بود از برخی انواع شکست‌های ناشی از فشار بیش‌ازحد جلوگیری کند.

پس، در مواجهه با قطعیت شکست در سیستم‌هایمان، چه می‌توانیم بکنیم؟

بپذیرید که سیستم شما، صرف‌نظر از هر اقدامی، همواره با انواعی از خرابی‌ها روبه‌رو خواهد شد. اگر این واقعیت را انکار کنید، توانایی کنترل و مهار آن‌ها را از دست خواهید داد. اما زمانی که بپذیرید شکست رخ خواهد داد، می‌توانید نحوه واکنش سیستم خود را در برابر شکست‌های مشخص طراحی کنید. همان‌طور که مهندسان خودرو «مناطق مچاله‌شونده» را طراحی می‌کنند—بخش‌هایی که با شکست خود از سرنشینان محافظت می‌کنند—شما نیز می‌توانید حالت‌های شکست ایمن ایجاد کنید که آسیب را مهار کرده و از بقیه سیستم محافظت کنند. اگر حالت‌های شکست خود را طراحی نکنید، با حالت‌های غیرقابل پیش‌بینی—و معمولاً خطرناک—روبرو خواهید شد.

نویسنده:  Michael Nygard