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

کدری در بازبینی. سیاستی که تنها بهصورت وزنها وجود دارد، نمیتواند توسط افرادی که در قبال آن پاسخگو هستند بازبینی، تفاوتگذاری یا تصدیق شود. یک بازبین میتواند یک فهرست مجاز را بخواند. یک بازبین نمیتواند یک چکپوینت را بخواند. وقتی بازبینی یک حادثه میپرسد چرا عامل این ابزار را با این دامنه فراخوانی کرد، پاسخ طبقهبند به آن امتیاز ۰٫۸۷ داد پاسخی نیست که یک حسابرس را قانع کند و پاسخی نیست که از یک اصلاح پشتیبانی کند.
قاعده لایهبندی
نخست سیاست قطعی. دامنهها، فهرستهای مجاز خروجی، سقفهای هزینه و قراردادهای ابزار بهصورت مصنوعات قابل بازبینی — فایلها، رکوردها، پیکربندیای که انسان میتواند بخواند و یک کار CI میتواند تفاوتگذاری کند. اینها فضای عمل مجاز را تعریف میکنند. خستهکنندهاند و خستهکننده بودن نکته اصلی است: اینها لایهای هستند که میتوان آن را تصدیق کرد.
دوم مدلهای تصمیم. آنها از میان گزینههایی انتخاب میکنند که لایه قطعی پیشتر مجاز کرده است. فضای مجاز را گسترده نمیکنند. ابزار، دامنه یا مقصدی را معرفی نمیکنند که لایه سیاست پیشتر مجاز نکرده باشد.
آزمون یک جمله است: هر چیزی که مدل میتواند تصمیم بگیرد باید بهصورت سیاستی بیانپذیر باشد که لایه قطعی میتوانست آن را تصمیم بگیرد، فقط کندتر. اگر تصمیمی را نتوان بهصورت قاعده نوشت — حتی قاعدهای پیچیده، حتی قاعدهای که به وضعیت ارجاع میدهد — آنگاه تصمیم مسیریابی نیست، تغییر سیاست است و به بالادست تعلق دارد جایی که میتوان بازبینیاش کرد.
یک سازوکار مشخص این را عملیاتی میکند. برای هر نقطه تصمیم، یک جایگزین قطعی نگه دارید که همان فضای نتایج را در کد پیادهسازی کند. جایگزین لازم نیست بهخوبی مدل باشد؛ لازم است درست و خوانا باشد. مدل در مسیر داغ اجرا میشود. جایگزین در سایه، روی همان ورودیها اجرا میشود و ثبت میکند که چه میگفت. دو خروجی مقایسه میشوند و واگرایی همراه با ورودی، انتخاب مدل و انتخاب جایگزین ثبت میشود. این همزمان سه چیز میدهد: بیانیهای قابل بازبینی از قصدg)ست.
پیامدهای ارزیابی

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