چیت‌شیت

نتایج، جریان‌های کاری، ریسک‌ها و مشخصات فنی

Outcomes, Workflows, Risks and Specs

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

  • ۱۳ بخش
  • ۷ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. از درخواست تا مرحله
  2. انتخاب مرحله
  3. قالب‌بندی نتیجه
  4. فرمول‌های آزمایشگاه
  5. مفروضات و شواهد
  6. سه حالت تصمیم‌گیری
  7. پیش‌نمونه، نسخه‌ی پایلوت، محیط عملیاتی
  8. قرارداد معیار
  9. توابع آزمایشگاه
  10. ثوابت آزمایشگاه
  11. پیام‌های اعتبارسنج
  12. پرسش‌ها
  13. نکات کاربردی

از درخواست تا مرحله

گام‌به‌گام
  1. نتیجهخروجی نهایی را بدون نام بردن از یک راه‌حل قالب‌بندی کنید.
  2. جریان کاریمراحلی را که افراد انجام می‌دهند، همراه با شواهد ثبت کنید.
  3. مفروضاتحدس‌ها و ریسک‌ها را امتیازدهی کنید. ابتدا پرریسک‌ترین فرض باز را بیازمایید.
  4. برشکوچک‌ترین برشی را انتخاب کنید که اثبات مورد نیاز را پوشش دهد.
  5. مشخصات فنیپایاهای سیستم را ثابت کنید. حالت تصمیم‌گیری هر بخش را مشخص کنید.
  6. معیارهاآستانه‌ها را پیش از تولید نتایج تعیین کنید.
  7. مرحلهبین پیش‌نمونه، نسخه‌ی پایلوت یا محیط عملیاتی انتخاب کنید.

انتخاب مرحله

معماری
خیربلهخیربلهنامشخصسؤال مربوط به یادگیرینیاز به کاربران یا داده‌های واقعی؟choose_stageپیش‌نمونهدورریختنی، ایزولهپیامدها محدود، عملیات آماده است؟پیامد زیر 4نسخه‌ی پایلوتمخاطب مشخص، بازگشت به عقبمحیط عملیاتیپشتیبانی و مالکیت مستمر

قالب‌بندی نتیجه

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

فرمول‌های آزمایشگاه

مفهوم‌ها
ریسک
$\mathrm{impact} \times \mathrm{uncertainty} + \mathrm{irreversibility}$
امتیاز برش
$\frac{\mathrm{value} + \mathrm{uncertainty\ reduced}}{\mathrm{effort} + \mathrm{risk\ penalty}}$
جریمه‌ی ریسک
اگر برگشت‌پذیر نباشد پیامد ضربدر 2، وگرنه ضربدر 0.5.
برش واجد شرایط
اثبات مورد نیاز زیرمجموعه‌ای از proves باشد.
نسبت شواهد مستقیم
موارد مستقیم به کل موارد شواهد.
at-most
وقتی مقدار مساوی یا کمتر از آستانه باشد پاس می‌شود.
at-least
وقتی مقدار مساوی یا بیشتر از آستانه باشد پاس می‌شود.

مفروضات و شواهد

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

سه حالت تصمیم‌گیری

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

پیش‌نمونه، نسخه‌ی پایلوت، محیط عملیاتی

مقایسه
عاملپیش‌نمونهنسخه‌ی پایلوتمحیط عملیاتی
سؤالآیا اصلاً سازوکار می‌تواند شواهد را تولید کند؟آیا با مخاطب واقعی و محدود به‌طور ایمن کار می‌کند؟آیا می‌توانیم با پایاییِ وعده‌داده‌شده مالکیت آن را بر عهده بگیریم؟
زمان استفادهعدم نیاز به داده یا کاربران واقعینیاز به رفتار واقعی، پیامدها آماده نیستپیامدها محدود، عملیات آماده
کنترل‌هاورودی‌های ساختگی یا ضبط‌شده، دورریختنیمخاطب محدود، بازگشت به عقب، مالک انسانی، ردگیری ممیزیتوافق‌نامه‌ی سطح خدمت (SLO)، نوبت پاسخگویی (آنکال)، بازبینی امنیتی، پایشگری
خروجسازوکار شایستگی ورود به مرحله‌ی بعد را کسب کندگسترش، بازنگری یا توقفمسیر بازنشستگی

قرارداد معیار

کد
python
plan = MeasurementPlan(
    goal="Reduce time to identify the affected service without increasing unsafe actions",
    questions=["How quickly is the correct service identified?"],
    metrics=[
        Metric("median_identification_seconds", "at-most", 120,
               "ten incident replays", "replay log", "outcome"),
        Metric("correct_service_rate", "at-least", 0.9,
               "ten incident replays", "incident record", "outcome"),
        Metric("production_writes", "at-most", 0,
               "entire pilot", "audit log", "guardrail"),  # نوع الزامی
    ])
report(plan, values)                                       # مقدار ناموجود وضعیت missing را برمی‌گرداند

توابع آزمایشگاه

کار و کد
وظیفهکد
اجرای یک آزمایشگاه و تست‌های آنpython3 -m unittest discover code/tests -v
وضعیت قالب‌بندیdecision(frame)
ممیزی شواهد جریان کاریaudit(steps)
رتبه‌بندی مفروضاتprioritize(items)
بالاترین ریسک بازnext_experiment(items)
انتخاب یک برش واجد شرایطchoose(items, required_proof)
مشخصات به قراردادcompile_contract(specification)
مرحله و کنترل‌های آنplan(decision)

ثوابت آزمایشگاه

پیش‌فرض‌ها
تنظیمپیش‌فرضنکته
Risk dimensionsrange(1, 6)اثرگذاری، قطعیت‌نداشتن، برگشت‌ناپذیری
Evidence `confidence`0 <= item.confidence <= 1در غیر این صورت یک مشکل (issue)
Workflow `order`range(1, len(steps) + 1)پیوسته در حافظه از شماره یک
VALID_MODES{"locked", "bounded", "delegated"}سایر حالت‌ها نامعتبرند
Stage `consequence`1 <= decision.consequence <= 5در غیر این صورت یک خطا
Pilot at consequence4یا برگشت‌ناپذیر، یا آماده‌نبوده

پیام‌های اعتبارسنج

عیب‌یابی
  • desired outcome names the proposed output

    علت
    نشت راه‌حل به نتیجه
    راه‌حل
    نتیجه‌ی قابل مشاهده را به‌جای آن بیان کنید
  • non-goals are empty

    علت
    هیچ مرزی برای برش وجود ندارد
    راه‌حل
    نااهداف مشخصی اضافه کنید که کارها را رد کند
  • no slice proves the required assumptions

    علت
    کاندیداها بخش پرریسک را رد می‌کنند
    راه‌حل
    برشی طراحی کنید که مجموعه‌ی اثبات را پوشش دهد
  • constrained decision lacks rationale

    علت
    قفل‌شده یا محدود بدون ارائه‌ی دلیل
    راه‌حل
    دلیل این محدودیت را بنویسید
  • guardrail metric is missing

    علت
    تنها معیارهای سنجش نتیجه وجود دارد
    راه‌حل
    یک گاردریل از نوع production_writes اضافه کنید

پرسش‌ها

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

نکات کاربردی

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