11.3 قطار کا نظریہ
جائزہ اور محرکات
قطار کا نظریہ انتظار کی لائنوں کا ریاضیاتی مطالعہ ہے۔ سافٹ ویئر انجینئرنگ میں یہ بہت بڑے عمل کے پیچھے خاموش نظریہ ہے۔ گاہک سروس کی جوابدہی، kanban کی منصوبہ بندی (کھینچ پر مبنی طریقہ جو بہاؤ بہتر کرنے کو جاری کام کی حد لگاتا ہے)، inter-process message قطاریں، continuous-deployment پائپ لائنز: یہ سب قطاریں ہیں، اور سب انہی قوانین کی پابندی کرتی ہیں۔ ان قوانین کو سمجھنا ٹیم کو lead times، throughput، صلاحیت، اور نظاموں کو حد کے قریب چلانے کی حقیقی لاگت پر استدلال کرنے دیتا ہے، production میں ان سے حیران ہونے کی بجائے۔ یہ باب بہاؤ والے حصے میں اس لیے بیٹھتا ہے کہ قطار کا نظریہ بہاؤ کی رسمی بنیاد ہے: یہ بتاتا ہے کہ کام کیوں انتظار کرتا ہے، اور انتظار اصل میں کیا گھٹاتا ہے۔
محرک یہ ہے: قطاروں کے بارے میں وجدان قابل بھروسگی سے غلط ہے، اور مہنگے طریقوں سے غلط۔ لوگ فرض کرتے ہیں کہ 90% استعمال پر چلتا server “مصیبت سے 10% دور” ہے، جبکہ حقیقت میں استعمال 100% کے قریب پہنچنے پر انتظار کے اوقات غیر خطی طور پر پھٹتے ہیں۔ وہ فرض کرتے ہیں کہ جاری کام (WIP) بڑھانا ترسیل تیز کرتا ہے، جبکہ یہ lead times لمبے کرتا ہے۔ وہ صلاحیت اوسطوں کے گرد منصوبہ کرتے ہیں، پھر تغیر سے تباہ ہوتے ہیں۔ تھوڑا قطار کا نظریہ ان مہنگے وجدانوں کو مضبوط تعلقات کی چھوٹی تعداد سے بدلتا ہے، سب سے اہم Little کا قانون، جو گاہک قطاروں، ٹاسک بورڈز، اور CI/CD پائپ لائنز میں یکساں لاگو ہے۔
بڑی ٹیموں، انٹرپرائز، اور حکومت کے لیے، قطار کا نظریہ صلاحیت اور بہاؤ کی مشترک زبان ہے، جو ان کرداروں کو جوڑتی ہے جو ورنہ ایک دوسرے سے ہٹ کر بات کرتے ہیں۔ پروڈکٹ مینیجرز کو خیال سے گاہک تک lead time کی فکر ہے۔ SREs کو server کے استعمال اور latency کی۔ DevOps ٹیموں کو ڈیپلائے کی تعدد کی۔ سپورٹ رہنماؤں کو جواب کے اوقات کی۔ یہ سب قطار کے میٹرکس ہیں، اور انہیں ایک چوکھٹے (آمد کی شرح، سروس کی شرح، استعمال، انتظار کا وقت) میں ظاہر کرنا ادارے کو صلاحیت کی منصوبہ بندی، حقیقت پسند SLOs (service-level objectives) طے کرنے، اور قصے کی بجائے ریاضی سے سرمایہ کاری کا جواز دینے دیتا ہے۔
بنیادی اصول
- ہر وہ چیز جس میں انتظار ہو قطار ہے: ٹکٹ، ٹاسک، پیغامات، اور ڈیپلائے بھی۔
- Little کا قانون لنگر ہے: نظام میں اشیا = آمد کی شرح × نظام میں وقت (κ = λτ)۔
- استعمال اور انتظار کا وقت غیر خطی ہیں: صلاحیت کا آخری 15% سب سے مہنگا ہے۔
- تغیر بہاؤ کا دشمن ہے: اوسط درد چھپاتے ہیں؛ variance قطاریں بناتی ہے۔
- جاری کام گھٹانا lead time گھٹاتا ہے: مقصد بہاؤ ہے، مصروفیت نہیں۔
- پورا بہاؤ ناپیں: آمدیں، سروس، کامیابیاں، ناکامیاں، skips، اور انتظار۔
- عمل قطاروں کی قطار ہے: مراحل کا ماڈل بنائیں، پھر رکاوٹ والے مرحلے کو بہتر کریں۔
سفارشات
بنیادی علامت سیکھیں اور اسے مستقل استعمال کریں
مٹھی بھر مقداریں کسی بھی قطار کو بیان کرتی ہیں۔ ان پر معیار بندی (یونانی حروف روایتی ہیں) ٹیموں میں ابہام ہٹاتی ہے:
- λ (lambda)، آمد کی شرح: نئی اشیا کتنی تیزی سے داخل ہوتی ہیں۔
- μ (mu)، سروس کی شرح: اشیا کتنی تیزی سے سنبھالی جاتی ہیں۔ چونکہ “سروس کی شرح” مبہم طور پر استعمال ہوتی ہے، اکثر throughput کو واضح طور پر کل شرح (χ)، کامیابی کی شرح (α)، ناکامی کی شرح (β)، اور skip کی شرح (σ) میں تقسیم کرنا مفید ہے، جہاں χ = α + β + σ۔
- ρ (rho)، استعمال / ٹریفک کی شدت = λ / μ: واحد سب سے اہم خلاصہ۔ ρ < 1 کا مطلب قطار خالی ہوتی ہے؛ ρ ≥ 1 کا مطلب بلا حد بڑھتی ہے۔
- اوقات: lead time (τ، آغاز سے اختتام)، کام کا وقت (φ، اصل پروسیسنگ)، انتظار کا وقت (ω، زیر التوا)، اور قدم کا وقت (θ، تکمیلوں کے درمیان)۔
- ε (epsilon)، غلطی کا تناسب: ناکامیاں ÷ کل۔
ناکامیوں اور skips کے نام واضح طور پر لینا سافٹ ویئر میں اہم ہے: ترک شدہ شے (گاہک جو چھوڑ دے، چھوڑی ہوئی cart، مسترد ورک ٹکٹ) بغیر سروس ہوئے قطار چھوڑتی ہے، اور دکھاوا کہ اس کی “سروس ہوئی” آپ کے میٹرکس بگاڑتا ہے۔ Balking (شامل نہ ہونے کا فیصلہ)، reneging (انتظار کے بعد ہار ماننا)، اور jockeying (قطاریں بدلنا) کو اولین درجے کے نتائج کے طور پر ٹریک کریں۔
منصوبہ بندی کو Little کے قانون پر لنگر انداز کریں
Little کا قانون کہتا ہے کہ مستحکم نظام میں اشیا کی طویل مدتی اوسط تعداد اوسط آمد کی شرح ضرب ہر شے کے نظام میں گزارے اوسط وقت کے برابر ہے: κ = λ τ (کلاسیکی طور پر L = λW)۔ یہ حیرت انگیز طور پر عام ہے (اسے آمد کی تقسیم یا سروس کی ترتیب کے بارے میں کوئی مفروضہ نہیں چاہیے)، جو اسے بہاؤ کی منصوبہ بندی کا کام کا گھوڑا بناتا ہے۔ دوبارہ ترتیب دیں تو یہ بتاتا ہے کہ lead time = جاری کام ÷ throughput۔ یہ kanban اور lean کی ریاضیاتی بنیاد ہے: اگر آپ چھوٹے lead times چاہتے ہیں اور throughput نہیں بڑھا سکتے تو آپ کو WIP گھٹانا ہوگا۔ یہ فوری سنجیدگی کی جانچیں بھی دیتا ہے۔ اگر 40 ٹکٹ کھلے ہیں اور آپ روزانہ 8 بند کرتے ہیں، تو اوسط ٹکٹ میں تقریباً 5 دن لگتے ہیں، چاہے کوئی کتنا ہی مصروف محسوس کرے۔ اس کی ایک ہی ضرورت استحکام ہے: آمدیں مسلسل روانگیوں سے نہ بڑھیں (ρ < 1)، ورنہ قطار، اور قانون کے مفروضے، ٹوٹ جاتے ہیں۔
استعمال کی غیر خطیت کا احترام کریں
قطار کے نظریے کا سب سے اہم آپریشنل سبق یہ ہے کہ استعمال 100% کے قریب پہنچنے پر جواب کا وقت بتدریج نہیں، تیزی سے بڑھتا ہے۔ Bob Wescott کی Seven insights into queueing theory عملی نتائج کو واضح طور پر پکڑتی ہے:
- سروس سینٹر جتنا سست ہو، اتنا ہی کم زیادہ سے زیادہ استعمال کا منصوبہ بنائیں۔
- کسی بھی چیز کا آخری 15% استعمال کرنا بہت مشکل ہے۔
- آپ کنارے کے جتنے قریب چلیں، غلط ہونے کی قیمت اتنی اونچی۔
- جواب کے وقت کی نمو اس سے محدود ہے کہ کتنی اشیا انتظار کر سکتی ہیں۔
- یہ اوسط ہیں، زیادہ سے زیادہ نہیں: دم کے لیے منصوبہ بنائیں۔
- کئی سروس سینٹروں میں انسانی انکار کے اثر سے خبردار رہیں۔
- چھوٹی بہتریوں کو ان کی بہترین روشنی میں دکھائیں۔
ڈیزائن کا مطلب: دانستہ گنجائش مہیا کریں۔ latency کے لحاظ سے حساس نظاموں کے لیے 70–80% استعمال کا ہدف ضیاع نہیں؛ یہ قابل پیش گوئی جواب کا وقت خریدنا ہے۔ یہ براہ راست صلاحیت کی منصوبہ بندی اور SLOs (ابواب 3.5 اور 9.1) کو آگاہ کرتا ہے۔
عملوں کو قطاروں کی قطار کے طور پر ماڈل کریں
حقیقی کام مراحل سے بہتا ہے، اور کثیر مرحلہ عمل محض ایسی قطار ہے جس کی اشیا خود ہر قدم پر قطار میں ہیں۔ اسے یوں ہی ماڈل کریں: عمل کی آمد کی شرح مرحلہ 1 کی آمد کی شرح ہے؛ عمل کی کامیابی کی شرح آخری مرحلے کی کامیابی کی شرح ہے؛ عمل کی غلطی اور skip کی گنتی مراحل پر مجموعہ ہے۔ دو عام شکلیں بار بار آتی ہیں:
- Funnels، جہاں ہر مرحلے میں اشیا کی گنتی سکڑتی ہے (بھرتی: outreach → انٹرویو → پیشکش؛ خریداری: browse → cart → ادائیگی؛ ترسیل: integrate → UAT → production)۔ اس مرحلے کو بہتر کریں جو سب سے اہم ہے: funnel کے اوپر کی آمدیں زیادہ سے زیادہ کریں، درمیانی skips (cart چھوڑنا) کم سے کم کریں، یا آخری مرحلے کی غلطیاں (production کے بری rollouts) کم سے کم کریں۔
- Double-diamond دریافت-اور-ترسیل کے بہاؤ (discover → define → develop → deliver)، جن کا اس کتاب کا بہاؤ والا حصہ براہ راست احاطہ کرتا ہے (باب 11.1)۔
رکاوٹ والے مرحلے کو ڈھونڈنا اور اس کا بوجھ ہلکا کرنا وہ جگہ ہے جہاں بہاؤ کی بہتری ادا کرتی ہے؛ غیر رکاوٹوں کو بہتر کرنا محض قطار کو کہیں اور لے جاتا ہے۔
قطار کے میٹرکس کو ان KPIs سے جوڑیں جو ٹیمیں پہلے ہی استعمال کرتی ہیں
قطار کی مقداریں اس کتاب میں کہیں اور ترسیل اور قابل اعتمادی کے میٹرکس پر صاف نقشہ بند ہوتی ہیں، جو نظریے کو علمی کی بجائے عملی بناتا ہے:
- ترسیل کا lead time (Dτ)، “تصور سے گاہک تک”، lead-time (τ) کی پیمائش ہے اور DORA (DevOps Research and Assessment) میٹرک (باب 11.2) ہے۔
- ڈیپلائے کی تعدد (Dμ) سروس کی شرح کی پیمائش ہے۔
- تبدیلی کی ناکامی کی شرح (Dε) غلطی کا تناسب ہے۔
- بحالی کا وقت (Rτ) بحالی کا lead time ہے، یعنی MTTR (باب 9.3)۔
کئی MTTRs (mean time to respond، repair، recover، اور resolve) میں فرق کریں کیونکہ وہ واقعے کی قطار کے مختلف حصے ناپتے ہیں اور معمول سے الجھائے جاتے ہیں۔ SLIs/SLOs/SLAs (باب 9.1) کو قطار کی اصطلاحات میں جمانا اہداف کو ایماندار اور قابل موازنہ رکھتا ہے۔
سمجھوتے: فوائد اور نقصانات
| فیصلہ | فوائد | نقصانات |
|---|---|---|
| نظام اونچے استعمال پر چلانا | فی اکائی کم ہارڈ ویئر/لاگت | غیر خطی latency کے دھماکے؛ spikes کے لیے نازک |
| فراخ گنجائش مہیا کرنا | قابل پیش گوئی latency؛ تغیر کے لیے لچکدار | اونچی مستحکم حالت کی لاگت؛ “کم استعمال شدہ” لگتا ہے |
| WIP کی حد لگانا (kanban) | چھوٹے lead times؛ کم context-switching | آہستہ لگتا ہے؛ حد برقرار رکھنے کو نظم و ضبط چاہیے |
| رسمی قطار کی ماڈلنگ | مقدار شدہ صلاحیت کے فیصلے؛ کم حیرتیں | سیکھنے کا منحنی؛ ماڈل گندی حقیقت کو سادہ کرتے ہیں |
| صرف انگوٹھے کے اصول | تیز، ریاضی نہیں | ٹھیک وہاں غلط جہاں سب سے مہنگا ہے (صلاحیت کے قریب) |
بار بار کا سمجھوتہ کارکردگی بمقابلہ پیش گوئی کی صلاحیت ہے: استعمال اوپر دھکیلنا پیسہ بچاتا ہے جب تک اچانک نہ بچائے، اس موقع پر latency، ناکامی، اور آگ بجھانے کی لاگتیں بچت کو بونا کر دیتی ہیں۔ قطار کے نظریے کی شراکت یہ بتانا ہے کہ وہ چٹان کہاں ہے تاکہ سمجھوتہ حادثہ نہیں، انتخاب ہو۔
اپنی ٹیم کے ساتھ بحث کے سوالات
ہر latency کے لحاظ سے حساس نظام کے لیے آپ کا واضح استعمال کا ہدف کیا ہے، اور اس پر دستخط کس نے کیے؟ گنجائش قابل پیش گوئی latency کی دانستہ خریداری ہے، اس لیے یہ بیان کردہ پالیسی ہونی چاہیے، اس حادثے کی نہیں کہ کون سا لوڈ آیا۔ چونکہ جواب کا وقت غیر خطی طور پر بڑھتا ہے، 85% پر چلنے کا مطلب پہلے ہی بڑھی ہوئی دم کی latency ہو سکتا ہے، پھر بھی مالیات گنجائش کو ضیاع سمجھتی اور استعمال اوپر دھکیلتی ہے۔ اعداد لائیں: موجودہ استعمال، ناپا گیا latency کا منحنی، اور آپ کے آخری latency کے واقعے کی لاگت، پھر دکھائیں کہ ہر سروس کے لیے چٹان کہاں ہے۔ موسمی چوٹیوں والے انٹرپرائز اور سرکاری نظاموں (filing کا موسم، اندراج کی کھڑکیاں) کے لیے، ہدف اوسط نہیں بلکہ چوٹی کے لیے چٹان سے ہٹ کر طے کریں۔ اگر استعمال کے ہدف کا کوئی مالک نہیں تو latency کے واقعات “کہیں سے بھی” ظاہر ہوتے رہیں گے۔
آپ کے نظاموں میں کہاں قطار بلا حد ہے، بغیر back-pressure کے کہ بوجھ ڈھلے جب مغلوب ہو؟ بلا حد قطار نرمی سے ناکام نہیں ہوتی؛ یہ ڈھے جاتی ہے، کیونکہ آمدیں مسلسل روانگیوں سے بڑھنا (rho >= 1) کا مطلب ہے قطار بلا حد بڑھتی ہے۔ اپنی message قطاروں، thread pools، اور request buffers کی فہرست بنائیں اور پوچھیں کہ ہر ایک پر کیا ہوتا ہے جب آمد کی شرح سروس کی شرح سے بڑھ جائے: کیا یہ بوجھ ڈھالتی ہے، back-pressure لگاتی ہے، یا گر جاتی ہے؟ یہ انٹرپرائز پیمانے پر شدت سے اہم ہے، جہاں ایک سیر شدہ downstream سروسز میں سلسلہ وار پھیل سکتا ہے۔ load-test کا نتیجہ یا ماضی کا واقعہ لائیں جہاں قطار بھر گئی، اور جانچیں کہ نظام نے فاضل کام مسترد کیا یا سب رکھنے کی کوشش کی۔ حل واضح back-pressure اور Little کے قانون سے اخذ شدہ timeouts کے ساتھ محدود قطاریں ہیں، تاکہ بوجھ پڑنے پر نظام گرنے کی بجائے ڈھالے۔
کیا آپ اپنے خیال-سے-production بہاؤ کو قطاروں کی قطار کے طور پر ماڈل کر رہے ہیں، اور کیا آپ کی بہتریاں حقیقی رکاوٹ کی طرف ہیں؟ کثیر مرحلہ عمل ایسی قطار ہے جس کی اشیا ہر مرحلے پر قطار میں ہیں، اور رکاوٹ والے مرحلے کے سوا کچھ بھی بہتر کرنا محض قطار کو کہیں اور لے جاتا ہے۔ اپنا ترسیل کا funnel (integrate سے UAT سے production، یا discover سے define سے develop سے deliver) نقشہ بند کریں اور ہر مرحلے پر آمد، سروس، انتظار، اور skip کی شرحیں ناپیں تاکہ دیکھیں کہ کام اصل میں کہاں جمع ہوتا ہے۔ ٹیمیں معمول سے رکاوٹ کی بجائے وہ مرحلہ بہتر کرتی ہیں جسے وہ سب سے بہتر سمجھتی ہیں، جو کوشش خرچ کرتا اور کچھ نہیں ہلاتا۔ اندازے کی بجائے فی مرحلہ انتظار کے وقت کا ڈیٹا لائیں، کیونکہ رکاوٹ اکثر کام کی حالت کی بجائے انتظار کی حالت (ریویو، منظوری، ماحول کی دستیابی) ہوتی ہے۔ جب آپ کو رکاوٹ معلوم ہو تو وہیں ہدف کریں اور غیر رکاوٹوں کو اکیلا چھوڑ دیں۔
کیا آپ WIP کی حدیں طے کرنے کو Little کا قانون استعمال کر رہے ہیں، یا ایسے lead times کا علاج صلاحیت بڑھا کر کر رہے ہیں جنہیں صرف زیادہ نظم و ضبط ٹھیک کرتا؟ Little کا قانون کہتا ہے کہ lead time برابر ہے جاری کام تقسیم throughput، اس لیے اگر آپ throughput نہیں بڑھا سکتے تو چھوٹے lead times کا واحد باقی لیور WIP گھٹانا ہے، جو ضبط کے سوا کچھ نہیں لاگت دیتا۔ متصادم کھنچاؤ حقیقی ہے: جاری کام کی حد لگانا آہستہ اور بے کار لگتا ہے، اور دباؤ میں مینیجر ٹیموں سے کم شروع کرنے اور زیادہ ختم کرنے کو کہنے کی بجائے بھرتی یا ہارڈ ویئر خریدنا پسند کریں گے۔ سخت اعداد لائیں، موجودہ کھلی اشیا اور فی مرحلہ تکمیل کی شرح، اور مضمر اوسط lead time شمار کریں، پھر اس کا موازنہ اس سے کریں جو لوگ سمجھتے ہیں؛ فرق عموماً بڑا اور شرمناک ہوتا ہے۔ بڑے انٹرپرائز یا ایجنسی میں، lead-time کی اصلاح کے طور پر جائز ٹھہرائی بھرتی یا خریداری کی درخواست پہلے اس حساب سے آزمائی جانی چاہیے، کیونکہ WIP بڑھانے والا headcount کا اضافہ ٹھیک وہ lead times لمبے کر سکتا ہے جنہیں چھوٹا کرنا تھا۔
کیا آپ صلاحیت اوسطوں کے گرد منصوبہ بناتے ہیں، یا اس تغیر کو مقدار دی ہے جو واقعی آپ کی قطاریں بناتا ہے؟ قطاریں اوسط سے نہیں، variance سے بنتی ہیں، اس لیے یکساں اوسط بوجھ والے دو نظام بالکل مختلف برتاؤ کر سکتے ہیں اگر ایک کی آمدیں دھماکہ خیز یا سروس کے اوقات لمبی دم والے ہوں۔ کھنچاؤ یہ ہے کہ اوسط جمع کرنا آسان اور رپورٹ کرنے میں تسلی بخش ہیں، جبکہ variance اور دم ناپنا مشکل اور status اپ ڈیٹ میں ناپسندیدہ ہے۔ اوسط نہیں، تقسیم لائیں: آمد کی دھماکہ خیزی، 95ویں اور 99ویں percentile کی سروس اور انتظار کے اوقات، اور وہ بیچ سائز جو کام کو spikes میں مرتکز کرتے ہیں۔ قابل پیش گوئی ابھاروں والے انٹرپرائز اور سرکاری نظاموں (filing کا موسم، payroll runs، اندراج کی کھڑکیاں، سہ ماہی کے اختتام کا بوجھ) کے لیے، buffer اور استعمال کا ہدف چوٹی کی مدت کے variance کے گرد منصوبہ کریں، کیونکہ سالانہ اوسط کے مطابق سائز کیا ڈیزائن ٹھیک تب ناکام ہوگا جب عوام دیکھ رہی ہو۔
آپ کی کون سی قطاریں چھوڑ دینے اور مسترد کرنے کو یوں گنتی ہیں جیسے کام کی سروس ہوئی ہو، اور یہ کون سی غیر پوری طلب چھپاتا ہے؟ جو شے balk، renege، یا مسترد ہو وہ سنبھالے بغیر قطار چھوڑتی ہے، اور اسے “serviced” ریکارڈ کرنا آپ کا throughput، غلطی کا تناسب، اور صلاحیت کا منصوبہ ایک ساتھ بگاڑتا ہے۔ متصادم غور یہ ہے کہ “جواب دی گئی کالیں” یا “بند ٹکٹ” ڈیش بورڈ پر “کال کرنے والے جنہوں نے ہار مان لی” سے بہتر لگتے ہیں، اس لیے ایماندار عدد وہ ہے جسے ظاہر کرنے کی کوئی رضاکارانہ کوشش نہیں کرتا۔ skip کی شرح (σ)، balking اور reneging کی گنتی، اور پیش کردہ لوڈ اور سروس شدہ لوڈ کا فرق لائیں، تاکہ حقیقی طلب نظر آئے۔ یہ سرکاری سروس کی ترسیل میں شدت سے اہم ہے، جہاں فون کی قطار یا فوائد کی درخواست چھوڑنے والے شہری حل شدہ معاملات کی بجائے غیر پوری ذمہ داریاں ہیں، اور انہیں سنبھالا ہوا رپورٹ کرنا کارکردگی کو غلط بیان کرتا اور اس صلاحیت کو کم ظاہر کرتا ہے جو عوام کی مقروض ہے۔
شعبہ جاتی نقطۂ نظر
اسٹارٹ اپ۔ آپ کے پاس رسمی قطار کی ماڈلنگ کا وقت نہیں اور اس کی ضرورت بھی نہیں۔ پہلے دو سستی ترین جیتیں آزمائیں: اپنے backlog پر Little کا قانون لگا کر دیکھیں کہ آپ کا WIP حقیقی lead time کیا ظاہر کرتا ہے، اور اس رکاوٹ کے خلاف بھرتی کرنے سے پہلے اپنا kanban بورڈ دیکھیں کہ کام کس مرحلے پر جمع ہوتا ہے جو شاید موجود ہی نہ ہو۔ latency کے لحاظ سے حساس راستے پر ٹیوننگ کی بجائے گنجائش چھوڑ کر استعمال کو چٹان سے دور رکھیں، کیونکہ نمو کے spike کے دوران outage تھوڑی بیکار صلاحیت سے کہیں زیادہ لاگت دیتا ہے۔
چھوٹا کاروبار۔ عملے میں قطار کے ماہر کے بغیر، میٹرکس خریدیں، ماڈل نہ بنائیں۔ ایسا help desk، message broker، یا hosting پلیٹ فارم چنیں جو پہلے ہی آمد کی شرح، انتظار کا وقت، اور چھوڑ دینے کو رپورٹ کرتا ہو، اور انہیں اخذ کرنے کی بجائے وہ اعداد پڑھیں۔ فیصلے کو دو علامات پر نظر کے طور پر تشکیل دیں: انتظار جو آپ کے مصروف ہونے پر غیر خطی طور پر چڑھے، اور گاہک جو سروس سے پہلے ہار مانیں، کیونکہ کھویا گاہک وہ قطار کی لاگت ہے جو چھوٹے کاروبار کو سب سے زیادہ دکھاتی ہے۔
بڑا ادارہ۔ کام قطار کی سوچ کو بہت سی ٹیموں میں مشترک نظم و ضبط بنانا ہے: ایک متفقہ علامت (λ, μ, ρ, lead time)، مستقل WIP اور استعمال-گنجائش کی پالیسیاں، اور back-pressure کے معیار تاکہ سیر شدہ downstream سروسز میں سلسلہ وار نہ پھیلے۔ SLOs اور صلاحیت اندازے کی بجائے قطار کے تجزیے سے طے کریں، اور اپنی قطاروں کو بنیادی خطوط اور ریویو والے پورٹ فولیو کے طور پر منظم کریں تاکہ کوئی ایک ٹیم تنہائی میں گرم نہ چلے۔ تجزیہ صلاحیت کے نظم و نسق اور آڈٹ میں پکائیں، تاکہ گنجائش کا ہدف دستاویزی فیصلہ ہو جس کا کوئی مالک ہو۔
حکومت۔ خریداری، شفافیت، اور عوامی جوابدہی ہر صلاحیت کے انتخاب کو شکل دیتے ہیں۔ رابطہ مراکز اور شہری سامنا کرتے نظاموں کا سائز سالانہ اوسط نہیں بلکہ چوٹی کی مدت کے variance (filing کا موسم، اندراج کی کھڑکیاں) پر رکھیں، اور طلب بڑھنے پر استعمال کو چٹان سے دور رکھنے کا عملہ دیں۔ balking اور reneging کو “جواب دی گئی کالوں” کے اندر چھپانے کی بجائے غیر پوری عوامی طلب کے طور پر ٹریک کریں، اور صلاحیت کے خرچ کا جواز انتظار کے وقت کے Little کے قانون کے تخمینوں سے دیں، جو آڈیٹرز اور منتخب افسران کو قصے کی بجائے قابل دفاع، ریاضی پر مبنی دلیل دیتے ہیں۔
مثالیں
اسٹارٹ اپ۔ سپورٹ backlog میں ڈوبتی پانچ افراد کی SaaS ٹیم فرض کرتی ہے کہ انہیں ایک اور ایجنٹ بھرتی کرنا ہوگا۔ پیسہ خرچ کرنے سے پہلے وہ Little کا قانون لگاتے ہیں: 60 کھلے ٹکٹ اور روزانہ 12 بند کا مطلب ہے کہ اوسط ٹکٹ تقریباً 5 دن انتظار کرتا ہے، جو غصے والی ای میلوں سے میل کھاتا ہے۔ اپنا kanban بورڈ دیکھتے ہوئے وہ نوٹس کرتے ہیں کہ ٹکٹ سپورٹ پر نہیں، انجینئرنگ کے انتظار میں جمع ہوتے ہیں، اس لیے وہ جاری کام کی حد لگاتے ہیں اور bug رپورٹوں کو قطار میں لگنے دینے کی بجائے سیدھا sprint میں بھیجتے ہیں۔ Lead time بغیر نئی بھرتی کے دو دن سے کم ہو جاتا ہے، اور وہ بچا ہوا بجٹ حقیقی رکاوٹ پر استعمال کرتے ہیں۔
بڑا ادارہ۔ اپنی authorisation سروس کا سائز طے کرتا ادائیگیوں کا پلیٹ فارم λ ≈ 850 درخواستیں/سیکنڈ اور فی node μ ≈ 200/سیکنڈ ناپتا ہے۔ سادگی سے یہ ~5 nodes (ρ = 0.85) ہیں، مگر یہ جانتے ہوئے کہ ρ = 0.85 پہلے ہی تیزی سے بڑھی ہوئی دم کی latency کا مطلب ہے، ٹیم ρ ≈ 0.65 تک provision کرتی ہے اور Little کا قانون جاری درخواستوں کی گنتی کی پیش گوئی کرنے اور قطار کی گہرائیاں اور timeouts طے کرنے کو استعمال کرتی ہے۔ چوٹی کے موسم کے واقعات جو “کہیں سے بھی” ظاہر ہوتے تھے غائب ہو جاتے ہیں، کیونکہ ٹیم اب منحنی کے کھڑے حصے پر کام نہیں کر رہی تھی۔
حکومت۔ ٹیکس ایجنسی کا رابطہ مرکز filing کے موسم کی سپورٹ کو قطار کے طور پر ماڈل کرتا ہے: آمد کے spikes (λ)، ایجنٹ کی صلاحیت (μ)، اور، فیصلہ کن طور پر، ان شہریوں کی skip کی شرح (σ) جو لمبے انتظار کے بعد چھوڑ دیتے ہیں۔ صرف “جواب دی گئی کالوں” کی بجائے balking اور reneging ٹریک کر کے، قیادت حقیقی غیر پوری طلب دیکھتی ہے، چوٹیوں کے دوران استعمال کو چٹان سے دور رکھنے کا عملہ دیتی ہے، اور اضافی صلاحیت کا جواز انتظار کے وقت کے Little کے قانون کے تخمینوں سے دیتی ہے، جو عوامی خرچ کے لیے قصے کی بجائے قابل دفاع، ریاضی پر مبنی دلیل ہے۔
کاروباری جواز: محرکات، ROI اور TCO
قطار کا نظریہ دو مہنگی غلطیاں روک کر ادا کرتا ہے: ضرورت سے زیادہ provisioning (غیر ضروری بیکار صلاحیت کی ادائیگی) اور، کہیں زیادہ نقصان دہ، چٹان کے قریب کم provisioning (جہاں بوجھ میں چھوٹے اضافے بڑی latency، توڑے SLAs، چھوڑ دینے والے گاہک، اور ہنگامی خرچ کا سبب بنتے ہیں)۔ چونکہ 100% استعمال کے قریب چلنے کی لاگت غیر خطی ہے، “بس تھوڑا اور لوڈ ڈال دو” کی بچتیں چھوٹی اور منفی پہلو تباہ کن ہے، ٹھیک وہ عدم توازن جسے تھوڑی ریاضی دانستہ فیصلے میں بدل دیتی ہے۔ واپسی ٹلے outages، پوری ہوئی SLAs، برقرار گاہکوں جو ورنہ balk کرتے، اور پرسکون on-call rotations میں ناپی جاتی ہے۔
ملکیت کی کل لاگت پر، یہ چوکھٹا اپنانے میں سستا ہے (یہ علم ہے، ٹولنگ نہیں) اور یہ بڑے ادارے کے نظام کی زندگی میں صلاحیت، latency، اور بہاؤ کے تقریباً ہر فیصلے کو بہتر کرتا ہے۔ Little کا قانون اور WIP کی حدیں کچھ خریدے بغیر lead times گھٹاتی ہیں (خالص عمل کی جیت)، جبکہ استعمال کا نظم و ضبط معمولی، قابل پیش گوئی مستحکم حالت کی لاگت کو مہنگی، ناقابل پیش گوئی ناکامیوں کے خاتمے سے بدلتا ہے۔ قیادت کے سامنے دلیل رکھنے کو، حالیہ latency کے واقعے کو استعمال کے منحنی میں ترجمہ کریں اور دکھائیں کہ گنجائش کا ہدف اسے کیسے روکتا، اور Little کا قانون WIP میں کمی کو تیز ترسیل سے براہ راست جوڑنے کو استعمال کریں۔
ضد نمونے اور خامیاں
- صلاحیت اوسطوں کے گرد منصوبہ بنانا: variance کو نظر انداز کرنا، جو اصل میں قطاریں بناتا ہے۔
- گرم چلانا: latency کے لحاظ سے حساس نظاموں پر 90%+ استعمال کا ہدف اور دم کی latency سے حیران ہونا۔
- Skips کو سروس گننا: چھوڑے گئے گاہکوں یا مسترد ٹکٹوں کو سنبھالا ہوا سمجھنا، میٹرکس بگاڑنا۔
- WIP کا ڈھیر لگانا: مصروفیت کو throughput سمجھنا اور lead times لمبے کرنا۔
- غیر رکاوٹ کو بہتر کرنا: ان مراحل کو بہتر کرنا جو رکاوٹ نہیں اور قطار کو کہیں اور لے جانا۔
- MTTRs کو الجھانا: “recovery” رپورٹ کرنا جبکہ “repair” ناپنا، یا الٹ۔
- بلا حد قطاریں: کوئی back-pressure نہیں، اس لیے مغلوب نظام بوجھ ڈھالنے کی بجائے ڈھ جاتا ہے۔
- اوسط بطور زیادہ سے زیادہ: اوسط کے مطابق ڈیزائن کرنا اور دم سے page ہونا۔
پختگی کا ماڈل
- سطح 1، آغاز: قطاریں (ٹکٹ، ٹاسک، پیغامات، ڈیپلائے) غیر منظم اور ردعملی ہیں؛ صلاحیت کا اندازہ ہے؛ استعمال جہاں بوجھ گرے وہاں چلتا ہے؛ latency کے مسائل ٹیم کو حیران کرتے اور بعد میں آگ کی طرح بجھائے جاتے ہیں۔
- سطح 2، ترقی: چند ٹیمیں بنیادی میٹرکس (throughput، اوسط انتظار) جمع کرتی ہیں مگر انہیں اوسط کے طور پر پڑھتی اور غیر مستقل لاگو کرتی ہیں؛ کچھ گروہ WIP کی حد لگاتے یا گنجائش چھوڑتے ہیں جبکہ دوسرے گرم چلتے ہیں؛ کوئی مشترک علامت نہیں، اس لیے عمل ٹیموں میں سفر نہیں کرتے۔
- سطح 3، معیار بندی: مشترک علامت (λ, μ, ρ, lead time) دستاویزی اور ادارے بھر نافذ ہے؛ WIP کی حدیں اور استعمال-گنجائش کے اہداف ہر latency کے لحاظ سے حساس نظام کے لیے دانستہ طے ہیں؛ کئی MTTRs میں فرق کیا جاتا ہے؛ back-pressure والی محدود قطاریں سروسز میں ڈیفالٹ ہیں۔
- سطح 4، انتظام: قطاریں بنیادی خطوط کے مقابل ناپی اور کنٹرول کی جاتی ہیں: آمد کی شرح، سروس کی شرح، استعمال، دم کی latency (p95/p99)، اور lead time متعین اہداف اور SLOs تک ٹریک ہوتے ہیں؛ قطار کی گہرائیاں، timeouts، اور گنجائش اندازے کی بجائے Little کے قانون سے اخذ ہوتے ہیں؛ balking، reneging، اور skip کی شرح گنی جاتی ہے تاکہ پیش کردہ لوڈ سروس شدہ لوڈ سے ممتاز ہو؛ صلاحیت کے فیصلوں کا احساس پر نہیں، اس شہادت پر ریویو ہوتا ہے۔
- سطح 5، ہم آہنگی: بہاؤ کو قطاروں کی قطار کے طور پر مسلسل ماڈل کیا جاتا ہے؛ رکاوٹیں جاری عمل کے طور پر پہچانی اور ہلکی کی جاتی ہیں؛ صلاحیت، SLOs، اور back-pressure بدلتی طلب اور variance کے ساتھ ڈھلتے ہیں؛ قطار کے میٹرکس براہ راست DORA اور کاروباری KPIs سے جڑتے ہیں، اور بوجھ اور خطرے کی تصویر بدلنے پر ادارہ پورے بہاؤ میں صلاحیت کو دوبارہ متوازن کرتا ہے۔
بحث کے لیے خیالات
- آپ کے latency کے لحاظ سے حساس نظام اصل میں کس استعمال پر چل رہے ہیں، اور ان کی چٹان کہاں ہے؟
- اپنے موجودہ backlog پر Little کا قانون لگائیں: آپ کا WIP ÷ throughput کون سا lead time ظاہر کرتا ہے، اور کیا وہ حقیقت سے ملتا ہے؟
- آپ کی کون سی قطاریں خاموشی سے “skips” (چھوڑنا، مسترد) کو یوں گنتی ہیں جیسے سروس ہوئی ہو؟
- WIP گھٹانا صلاحیت بڑھانے سے سستا lead time کہاں چھوٹا کرے گا؟
- آپ کے خیال-سے-production بہاؤ میں کون سا مرحلہ حقیقی رکاوٹ ہے، اور کیا آپ کی بہتریاں وہیں ہدف ہیں؟
- کیا آپ کے ڈیش بورڈ وہاں اوسط دکھاتے ہیں جہاں دم ہی آپ کو واقعی نقصان پہنچاتی ہے؟
اہم نکات
- گاہک کی قطاریں، kanban بورڈز، message قطاریں، اور ڈیپلائے پائپ لائنز سب ایک ہی قوانین کی پابند قطاریں ہیں۔
- Little کا قانون (κ = λτ) بہاؤ کی منصوبہ بندی کو لنگر دیتا ہے: lead time = WIP ÷ throughput۔
- استعمال اور انتظار کا وقت غیر خطی ہیں: گنجائش مہیا کریں؛ آخری 15% سب سے مہنگا ہے۔
- پوری تصویر ٹریک کریں: آمدیں، سروس، کامیابیاں، ناکامیاں اور skips، اور انتظار؛ چھوڑ دینے کو چھپنے نہ دیں۔
- عملوں کو قطاروں کی قطار کے طور پر ماڈل کریں اور رکاوٹ ٹھیک کریں، مصروفیت نہیں۔
- قطار کے میٹرکس براہ راست DORA/بہاؤ اور SLI/SLO کی پیمائشوں (ابواب 11.1، 11.2، 9.1) پر نقشہ بند ہوتے ہیں، جو پورے ادارے کو صلاحیت اور بہاؤ کی ایک زبان دیتے ہیں۔
حوالہ جات اور مزید مطالعہ
- Bob Wescott, Seven Insights into Queueing Theory (and The Every Computer Performance Book).
- John D. C. Little, “A Proof for the Queuing Formula L = λW” (1961): Little’s Law.
- Nicole Forsgren, Jez Humble, Gene Kim, Accelerate: flow-based DORA metrics that align with queue KPIs.
- Donald Reinertsen, The Principles of Product Development Flow: queues, batch size, and WIP economics.
- Daniel Vacanti, Actionable Agile Metrics for Predictability: Little’s Law applied to kanban.
- Joel Parker Henderson, Queueing Theory: notation, KPIs, and queue-of-queues (github.com/joelparkerhenderson/queueing-theory).
- Dan Slimmon, “The most important thing to understand about queues” (2016).
- Wikipedia: “Queueing theory,” “M/M/1 queue,” “Little’s law,” “Markov chain.”