الموضوع 65 من 91· هندسة البرمجيات والتسليم الرقمي

WSJF وCD3

CD3 (تكلفة التأخير مقسومة على المدة) وWSJF (أقصر مهمة موزونة أولًا) هما قاعدتا ترتيب حسب الأولوية تُجدولان العمل بـكثافة القيمة: كم من تكلفة التأخير تُزال لكل وحدة من القدرة النادرة المُستهلَكة. تحت قدرة ثابتة ومشتركة، فإن الترتيب بأعلى CD3 أولًا هو التسلسل الأمثل رياضيًا لتدنية إجمالي تكلفة التأخير.

لماذا يهم هذا

كل تراكم عمل هو مشكلة تقنين: عناصر كثيرة جديرة بالاهتمام، وخط أنابيب واحد. اقتصاديات الصحة حلّت نفس المشكلة لميزانيات الصحة بجداول ترتيب فعالية التكلفة - رتّب التدخلات حسب الصحة المكتسَبة لكل جنيه، ومَوِّل نزولًا في القائمة حتى تستنفد الميزانية. CD3 هو نفس المنطق لقدرة التسليم: الفائدة لكل وحدة من المورد المقيَّد، مُموَّلة بترتيب تنازلي. ضبط التسلسل بشكل صحيح مال مجاني - نفس العمل، ونفس القدرة، وإجمالي تكلفة تأخير أقل.

الحساب

CD3  = تكلفة التأخير (£/أسبوع) / المدة (أسابيع)      - وحدات حقيقية (Black Swan Farming)

WSJF = (قيمة العمل/المستخدم + الإلحاح الزمني + تخفيف المخاطر/تمكين
        الفرصة) / حجم المهمة                         - بديل SAFe بمقياس نسبي،
                                                        درجات فيبوناتشي مُعدَّلة

CD3 بعملة حقيقية (تكلفة التأخير) أقوى بشكل صارم من نقاط WSJF عديمة الوحدة - WSJF بالنسبة لـCD3 مثل التسجيل متعدد المعايير بالنسبة لـتحليل التكلفة والمنفعة الكامل: مفيد عندما يكون التقويم النقدي غير عملي، وقابل للتلاعب عندما لا تملك الدرجات مرساة.

مثال محلول

ثلاث ميزات، فريق واحد:

الميزة   تكلفة التأخير (£/أسبوع)   المدة   CD3
أ         30,000       10 أسابيع     3,000
ب         12,000       أسبوعان      6,000
ج         5,000        أسبوع واحد     5,000

ترتيب CD3: ب، ج، أ. قارن إجمالي تكلفة التأخير مقابل "أكبر تكلفة تأخير أولًا" (أ، ب، ج):

ترتيب CD3  (ب، ج، أ): أ ينتظر 3 أسابيع، ج ينتظر أسبوعين ← 30 ألف×3 + 5 ألف×2  = 100 ألف£ تكلفة تأخير
ترتيب تكلفة التأخير  (أ، ب، ج): ب ينتظر 10، ج ينتظر 12   ← 12 ألف×10 + 5 ألف×12 = 180 ألف£

نفس الميزات، نفس الفريق - التسلسل وحده يوفر 80,000£. الحدس: العناصر الصغيرة العاجلة تذهب أولًا لأنها تحرر تكلفة تأخيرها بثمن زهيد؛ والعنصر الكبير يخسر القليل بالانتظار قليلًا.

الصلة بهندسة البرمجيات

بالنسبة لمحافظ برمجيات الرعاية الصحية، حدد تكلفة التأخير بالوحدات التي يعلّمها هذا المرجع: QALYs/أسبوع × العتبة + £/أسبوع تشغيلية، ويصبح تراكم العمل قابلًا للمقارنة المباشرة مع كيفية ترتيب النظام الصحي لكل شيء آخر يشتريه. ملاحظتان عمليتان: (1) المدة تعني الوقت التقويمي الذي يشغل القيد، لا الجهد - عنصر ينقضي خلال أسبوعين ويحتاج يومين فقط من فريق الاختناق أرخص مما يبدو (انظر تحسين الموارد اللاحقة)؛ (2) المستشفيات تطبّق نفس القاعدة ضمنيًا عندما ترتب قوائم غرف العمليات بإنتاجية مرجَّحة بالإلحاح - فئات الأولوية السريرية هي CD3 مرجَّحة بالشدة (انظر عجز QALY ومعدِّلات الشدة).

المزالق

  • مسرحية درجات WSJF: نقاشات فيبوناتشي عديمة الوحدة تتقارب نحو الأعلى صوتًا؛ ارسِ على الأقل عناصر أعلى تراكم العمل بتكلفة تأخير حقيقية.
  • التلاعب بالمدة: تقسيم العناصر لتضخيم ترتيب CD3 - مقبول عندما تسلّم الأجزاء قيمة مستقلة، احتيال عندما لا تفعل.
  • تجاهل أنماط الإلحاح: تكلفة تأخير بشكل موعد نهائي (تواريخ تنظيمية) تكسر افتراض المعدل الثابت؛ جدولها حسب جدوى التاريخ، ثم CD3 للباقي.
  • اضطراب إعادة الترتيب: CD3 لقرارات التسلسل عند لحظة الالتزام، لا لإعادة الخلط اليومي للعمل الجاري (انظر مقاييس التدفق حول العمل قيد التنفيذ).

المصادر