تخمینہ کسی کام کو مکمل کرنے، فیچر تیار کرنے یا پورے پروجیکٹ کی فراہمی کے لیے درکار محنت کی مقداری جانچ ہے۔ موبائل ڈویلپمنٹ میں، تخمینے اسپرنٹ کی منصوبہ بندی، لاگت کے تعین اور کلائنٹ کی توقعات کے انتظام کے لیے استعمال ہوتے ہیں۔ Project Management Institute, 2024 کے مطابق، پروجیکٹ کے ابتدائی مراحل میں تخمینے کی غلطی 100% تک پہنچ سکتی ہے، جو تخمینہ کو ڈویلپمنٹ کے سب سے مشکل شعبوں میں سے ایک بناتی ہے۔
اہم نکات
تخمینہ (انگریزی estimate سے — جانچ) کسی کام کو مکمل کرنے کے لیے درکار وقت یا محنت کی مقدار کی پیشین گوئی ہے۔ موبائل ڈویلپمنٹ میں، تخمینے گھنٹوں، دنوں، اسٹوری پوائنٹس یا مالی اصطلاحات میں ظاہر کیے جا سکتے ہیں۔ تخمینے کا مقصد درست پیشین گوئی نہیں، بلکہ فیصلہ سازی کے لیے غیر یقینی کو کم کرنا ہے۔
تخمینہ غلطی کی گنجائش والی پیشین گوئی ہے۔ عہد کسی مخصوص تاریخ تک کام مکمل کرنے کا وعدہ ہے۔ فرق اہم ہے: تخمینہ کہتا ہے «ممکنہ طور پر 5 دن»، عہد کہتا ہے «ہم اسے 5 دنوں میں کریں گے»۔ مینیجرز اکثر ان تصورات کو گڈمڈ کر دیتے ہیں، تخمینہ کو غلطی کی گنجائش کے بغیر ڈیڈ لائن میں تبدیل کر دیتے ہیں۔
تخمینہ کا عمل اس کے نتیجے سے کم اہم نہیں ہے۔ جب ٹیم کسی کام کے تخمینے پر بحث کرتی ہے، تو پوشیدہ ضروریات، انحصار اور خطرات سامنے آتے ہیں۔ چاہے حتمی عدد غلط ہو، بحث تمام شرکاء کو کام کی سمجھ دیتی ہے۔ اسی لیے اجتماعی تخمینہ کے طریقے (Planning Poker) انفرادی طریقوں سے زیادہ مؤثر ہیں۔
پروجیکٹ کے مختلف مراحل اور تفصیل کی سطحوں کے لیے کئی تخمینہ طریقے موجود ہیں۔ طریقے کا انتخاب دستیاب اعداد و شمار اور مطلوبہ درستگی پر منحصر ہے۔
| طریقہ | قسم | درستگی | کب استعمال کریں |
|---|---|---|---|
| Planning Poker | ماہر، اجتماعی | اعلی (اسپرنٹ میں) | اسپرنٹ کے کاموں کا تخمینہ |
| T-Shirt sizing | ماہر، تیز | درمیانی | ایپک کا ابتدائی تخمینہ |
| مشابہ تخمینہ | تاریخ پر مبنی | درمیانی | ماضی کے ملتے جلتے کام |
| تین نکاتی (PERT) | امکانیاتی | اوسط سے زیادہ | زیادہ غیر یقینی والے کام |
| پیرامیٹرک | فارمولا پر مبنی | اعداد و شمار پر منحصر | دہرائے جانے والے قابل پیمائش کام |
Planning Poker Agile میں تخمینہ کا سب سے مقبول طریقہ ہے۔ ہر ڈویلپر کو فبونیکی نمبروں (1، 2، 3، 5، 8، 13، 21) والے کارڈز کا ایک ڈیک ملتا ہے۔ کام پر بحث کرنے کے بعد، سب ایک ساتھ اپنا کارڈ دکھاتے ہیں۔ اگر تخمینے مختلف ہوں تو، کم سے کم اور زیادہ سے زیادہ تخمینہ والے ڈویلپر اپنی منطق بیان کرتے ہیں، پھر دوبارہ ووٹنگ ہوتی ہے۔ یہ طریقہ اختیار کے تعصب کو ختم کرتا ہے اور زیادہ درست تخمینہ دیتا ہے۔
T-Shirt sizing ٹی شرٹ کے سائز (XS، S، M، L، XL، XXL) کے مطابق ایک تخمینی تخمینہ ہے۔ یہ طریقہ بڑے کاموں (ایپک) کے فوری تخمینے کے لیے ابتدائی مراحل میں استعمال ہوتا ہے جب تفصیلات معلوم نہ ہوں۔ بعد میں، ایسے ہر کام کو ٹکڑوں میں تقسیم کیا جاتا ہے اور Planning Poker میں تخمینہ لگایا جاتا ہے۔ T-Shirt sizing فی کام 5-10 منٹ لیتا ہے، لیکن صرف ایک تقریبی پیمانہ فراہم کرتا ہے۔
PERT تین تخمینے استعمال کرتا ہے: رجائیتی (O)، یاسیتی (P)، اور زیادہ تر ممکنہ (M)۔ حتمی تخمینہ فارمولے (O + 4M + P) / 6 سے لگایا جاتا ہے۔ یہ طریقہ غیر یقینی کو مدنظر رکھتا ہے اور ایک تخمینے سے زیادہ حقیقت پسندانہ نتیجہ دیتا ہے۔ PERT خاص طور پر زیادہ خطرات یا نئی ٹیکنالوجی والے کاموں کے لیے مفید ہے۔
تخمینے کی درستگی پروجیکٹ کے مرحلے اور معلوم معلومات کی مقدار پر منحصر ہے۔ تخمینہ جتنا پہلے لگایا جاتا ہے، غلطی کی گنجائش اتنی ہی زیادہ ہوتی ہے — یہ معمول ہے اور منصوبہ بندی میں اسے مدنظر رکھنا چاہیے۔
غیر یقینی کا مخروط (Cone of Uncertainty) ایک ماڈل ہے جو بتاتا ہے کہ پروجیکٹ کے آگے بڑھنے کے ساتھ تخمینے کی غلطی کیسے کم ہوتی ہے۔ تصوراتی مرحلے میں، غلطی کی گنجائش 400% ہے (کام میں 1 سے 4 مہینے لگ سکتے ہیں)۔ اسپرنٹ کے مرحلے تک، یہ 20% (1-1.2 مہینے) ہوتی ہے۔ اس ماڈل کو سمجھنا ابتدائی مراحل میں درست تخمینے کا مطالبہ نہ کرنے میں مدد دیتا ہے۔
نسبتی تخمینہ (اسٹوری پوائنٹس میں) مطلق تخمینہ (گھنٹوں میں) سے زیادہ درست ہے کیونکہ لوگ وقت کا تخمینہ لگانے کے بجائے کاموں کا موازنہ کرنے میں بہتر ہیں۔ «یہ کام اس سے دوگنا پیچیدہ ہے» «یہ کام 8 گھنٹے لے گا» سے زیادہ قابل اعتماد فیصلہ ہے۔ نسبتی تخمینے کسی مخصوص ڈویلپر پر منحصر نہیں ہوتے اور ذمہ دار تبدیل ہونے پر درستگی برقرار رکھتے ہیں۔
تخمینے کی درستگی کو منظم طریقہ کار، اجتماعی بحث اور ماضی کی غلطیوں کے تجزیے سے بہتر بنایا جا سکتا ہے۔ کئی ثابت شدہ طریقے ہیں۔
2 دن سے زیادہ کا تخمینہ لگایا گیا کوئی بھی کام ذیلی کاموں میں تقسیم کیا جانا چاہیے۔ اصول: اگر کسی کام کا 50% سے زیادہ درستگی سے تخمینہ نہیں لگایا جا سکتا، تو وہ بہت بڑا ہے۔ اسے ایسے مراحل میں تقسیم کریں جو سمجھ میں آتے ہوں اور قابل تخمینہ ہوں۔ تقسیم کے بعد، کل تخمینہ اکثر ابتدائی تخمینے سے 1.5-2 گنا بڑا ہوتا ہے۔
تخمینوں کی تاریخ رکھیں اور اصل محنت سے موازنہ کریں۔ مثال: «3 اسٹوری پوائنٹس پر تخمینہ لگائے گئے کام اوسطاً 4 دن لیتے ہیں، 2 نہیں»۔ پیشین گوئی کے لیے ٹیم کی velocity استعمال کریں: اگر ٹیم فی اسپرنٹ 20 اسٹوری پوائنٹس مکمل کرتی ہے، تو 30 کا منصوبہ نہ بنائیں۔ ماضی کے تخمینوں کی درستگی کا تجزیہ تخمینہ کی مہارت کے لیے بہترین تربیت ہے۔
لنگر ایک نفسیاتی اثر ہے جہاں پہلا بیان کردہ تخمینہ تمام شرکاء کو متاثر کرتا ہے۔ Planning Poker میں لنگر سے بچنے کے لیے، سب باری باری نہیں بلکہ ایک ساتھ اپنے کارڈ دکھاتے ہیں۔ انشانکن تخمینوں کا اصل نتائج سے باقاعدہ موازنہ ہے: 10-20 اسپرنٹ کے بعد، ٹیم فیڈ بیک کے ذریعے زیادہ درست تخمینہ لگانا سیکھتی ہے۔
ہر کام میں پوشیدہ خطرات ہوتے ہیں: ڈویلپر کی بیماری، API کے مسائل، ضروریات میں تبدیلی۔ اپنے تخمینے میں خطرے کے مطابق عنصر شامل کریں: زیادہ خطرہ والے کاموں کے لیے 1.5-2 کا ضارب، کم خطرہ کے لیے 1.1-1.2۔ کلائنٹ کو شفاف طریقے سے دکھائیں کہ کن خطرات کو مدنظر رکھا گیا ہے اور وہ وقت کے جدول کو کیسے متاثر کرتے ہیں۔
تخمینہ کی غلطیاں زیادہ تر ٹیموں میں دہرائی جاتی ہیں، ان کی پختگی سے قطع نظر۔ ان غلطیوں کو جاننا ان کی اصلاح کا پہلا قدم ہے۔
سب سے عام غلطی بہترین منظر نامے کے مطابق تخمینہ لگانا ہے: «اگر سب کچھ کامل ہو، تو ہم 3 دنوں میں کریں گے»۔ حقیقت میں، کچھ بھی کامل نہیں ہوتا: بگز، ضروریات کے بارے میں سوالات، منحصر کام۔ حل: رجائیتی کے بجائے زیادہ تر ممکنہ منظر نامے کے مطابق تخمینہ لگائیں۔ تغیر کو مدنظر رکھنے کے لیے PERT استعمال کریں۔
جب مینیجر کہتا ہے «ہمیں جمعہ تک چاہیے»، ڈویلپر لاشعوری طور پر تخمینہ کو اس ڈیڈ لائن کے مطابق ایڈجسٹ کرتا ہے۔ دباؤ میں تخمینہ ہمیشہ کم ہوتا ہے اور ڈیڈ لائن ضائع ہونے کا باعث بنتا ہے۔ حل: تخمینہ ڈیڈ لائن سے پہلے آنا چاہیے، نہ کہ اس کے برعکس۔ پہلے ٹیم تخمینہ لگائے، پھر فریقین وقت کے جدول پر متفق ہوں۔
کام کی پیچیدگی (کتنا سوچنا ہے) اور وقت (کتنا کرنا ہے) مختلف میٹرکس ہیں۔ ایک کام سادہ لیکن وقت طلب ہو سکتا ہے (10 اسکرینز بنانا) یا پیچیدہ لیکن تیز (لیگسی کوڈ میں بگ ڈھونڈنا)۔ اسٹوری پوائنٹس عام طور پر پیچیدگی کا تخمینہ لگاتے ہیں، جبکہ وقت ٹیم کی velocity سے اخذ کیا جاتا ہے۔
ایک ڈویلپر ایک کام پر لگاتار 8 گھنٹے کام نہیں کرتا: میٹنگز، کوڈ ریویو، ساتھیوں کی مدد اور انتظامی کام کام کے وقت کا 30-50% استعمال کرتے ہیں۔ سیاق و سباق کی تبدیلی کو تخمینے میں مدنظر رکھنا چاہیے: حقیقت میں، ایک ڈویلپر دن میں 3-4 گھنٹے کوڈ لکھتا ہے۔
اکثر پوچھے گئے سوالات
ڈویلپمنٹ اعلی غیر یقینی کے ساتھ ایک تخلیقی عمل ہے۔ تعمیرات یا مینوفیکچرنگ کے برعکس، جہاں ہر قدم معلوم ہے، آئی ٹی میں ہر کام منفرد ہے۔ نامعلوم نامعلوم (unknown unknowns) غلطی کی بنیادی وجہ ہے۔ تجربہ کار ٹیم بھی 30-50% تخمینوں میں غلطی کرتی ہے۔ یہ معمول ہے اور منصوبہ بندی میں مدنظر رکھنا چاہیے۔
اسٹوری پوائنٹس اسپرنٹ کی منصوبہ بندی کے لیے بہتر ہیں کیونکہ وہ نسبتی ہیں اور انجام دینے والے پر منحصر نہیں۔ گھنٹے معاہدوں اور بیرونی رپورٹنگ کے لیے ضروری ہیں لیکن کم درست ہیں۔ بہترین امتزاج: کاموں کا تخمینہ اسٹوری پوائنٹس میں لگایا جاتا ہے، اور ڈیڈ لائنز ٹیم کی velocity کے ذریعے کیلنڈر دنوں میں تبدیل کی جاتی ہیں۔
نامعلوم ٹیکنالوجی والے کاموں کے لیے، پہلے اسپائک (وقت کی پابند تحقیق) استعمال کریں۔ تحقیق کے بعد، ٹیم پیچیدگی سمجھتی ہے اور حقیقت پسندانہ تخمینہ دے سکتی ہے۔ عام تخمینے پر 2-3 کا ضارب لگائیں اور غیر متوقع مشکلات کے لیے 50% بفر شامل کریں۔
تقسیم دکھائیں — کام کو انفرادی تخمینوں کے ساتھ ذیلی کاموں میں تقسیم کریں۔ وضاحت کریں کہ وقت کس چیز پر مشتمل ہے: ڈویلپمنٹ، ٹیسٹنگ، کوڈ ریویو، دستاویزات۔ متبادل پیش کریں: دائرہ کار کم کریں، فعالیت آسان کریں، یا مراحل میں تقسیم کریں۔ ضروریات کو تبدیل کیے بغیر کبھی تخمینہ کم نہ کریں۔
دوبارہ تخمینہ ضروری ہے جب کام کے بارے میں نئی معلومات سامنے آئیں: اضافی ضروریات دریافت ہوں، تکنیکی رکاوٹیں ملیں، یا ترجیحات بدل جائیں۔ اسپرنٹ کے اندر، کاموں کا دوبارہ تخمینہ نہیں لگایا جاتا — توجہ تکمیل پر ہوتی ہے۔ اسپرنٹ کے درمیان، grooming کے دوران بیک لاگ کا دوبارہ تخمینہ لگایا جاتا ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں