3.7

انگریزی میں دیکھیں

3.7 سافٹ ویئر کی دیکھ بھال

جائزہ اور محرکات

زیادہ تر سافٹ ویئر اپنی زندگی کا بھاری اکثریتی حصہ بنائے جانے میں نہیں بلکہ دیکھ بھال کیے جانے میں گزارتا ہے۔ جس لمحے نظام پروڈکشن میں جاتا ہے، وہ ایسے مرحلے میں داخل ہوتا ہے (جو اکثر برسوں یا دہائیوں چلتا ہے) جس میں نقائص ٹھیک کیے جاتے ہیں، بدلتے ماحول کے مطابق ڈھلا جاتا ہے، جو پہلے سے کام کرتا ہے اسے بہتر بنایا جاتا ہے، اور آئندہ کی مصیبت روکی جاتی ہے۔ بڑے انٹرپرائز میں، اور خاص طور پر حکومت میں، یہ مرحلہ غالب ہے۔ ٹیکس کے انجن، فوائد کے نظام، دفاعی پلیٹ فارمز، اور بنیادی مالیاتی کھاتے معمول سے اس سے کہیں زیادہ دیر برقرار رکھے جاتے ہیں جتنی کسی نے انہیں شروع کرتے وقت توقع کی۔ سافٹ ویئر کی دیکھ بھال پہنچائے گئے سافٹ ویئر کو اس کی پوری آپریشنل زندگی میں درست، موجودہ، اور قیمتی رکھنے کا نظم و ضبط ہے۔

دیکھ بھال کا مستقل کم اندازہ لگایا اور کم قدر کی جاتی ہے، اور یہ غلطی مہنگی ہے۔ دہائیوں میں مطالعہ بہ مطالعہ دیکھ بھال کو سافٹ ویئر کی کل زندگی کی لاگت کے آدھے سے کہیں زیادہ پر رکھتا ہے، طویل العمر نظاموں کے لیے عام طور پر 60 سے 90 فیصد کی حد میں بتایا جاتا ہے۔ پھر بھی ادارے ابتدائی تعمیر کی منصوبہ بندی، بجٹ، عملہ، اور جشن یوں مناتے ہیں جیسے وہ پوری کوشش ہو۔ پھر وہ اس کے بعد ہر چیز کو بعد کا خیال سمجھتے ہیں، سکڑتے بجٹ سے فنڈ شدہ اور جو بھی دستیاب ہو اسے تفویض۔ نتیجہ قابل پیش گوئی ہے: نازک نظام، حوصلہ شکستہ نگہبان، تبدیلی کی بڑھتی لاگت، اور آخرکار بحران جسے “پرانے نظام کا مسئلہ” (باب 3.6) کہا جاتا ہے جب وہ شروع سے بے قابو دیکھ بھال کا مسئلہ تھا۔

یہ باب SWEBOK (Software Engineering Body of Knowledge) کے سافٹ ویئر کی دیکھ بھال کے علمی شعبے اور ISO/IEC 14764 کی پیروی کرتا ہے۔ یہ دیکھ بھال کی بنیادیں اور چار تسلیم شدہ زمرے؛ وہ اہم مسائل جو دیکھ بھال کو مشکل بناتے ہیں، بشمول لاگت، عملہ، اور حوصلہ؛ دیکھ بھال کا عمل؛ پروگرام کی فہم، دوبارہ انجینئرنگ، اور ری فیکٹرنگ کی بنیادی تکنیکیں؛ دیکھ بھال کی لاگت کا اندازہ کیسے لگائیں؛ اور (باب کا سب سے زیادہ لیوریج والا خیال) شروع سے دیکھ بھال کی اہلیت کے لیے ڈیزائن کیسے کریں، کا احاطہ کرتا ہے۔ مرکزی یقین یہ ہے کہ دیکھ بھال انجینئرنگ کے بعد آنے والی کم تر سرگرمی نہیں۔ یہ سافٹ ویئر انجینئرنگ کا سب سے بڑا حصہ ہے، اور اس کی منصوبہ بندی، وسائل، اور احترام اسی طرح ہونا چاہیے۔

بنیادی اصول

  • دیکھ بھال زندگی کے چکر کی اکثریت ہے، خاتمہ نہیں۔ پہلے دن سے اس کی منصوبہ بندی اور بجٹ کریں؛ یہ تعمیر سے زیادہ لاگت کرے گی۔
  • چار زمرے الگ کام ہیں۔ اصلاحی، موافقتی، تکمیلی، اور احتیاطی دیکھ بھال کے مختلف محرک اور تال ہیں؛ زیادہ تر محنت بگ ٹھیک کرنے میں نہیں۔
  • جو آپ سمجھتے نہیں اسے بدل نہیں سکتے۔ پروگرام کی فہم دیکھ بھال کی سب سے بڑی واحد سرگرمی ہے؛ کوڈ اور اس کی تاریخ کو قابل فہم بنائیں۔
  • دیکھ بھال کی اہلیت ڈیزائن کی خاصیت ہے۔ آئندہ تبدیلی کی لاگت بڑی حد تک تعمیر کے دوران کیے فیصلوں سے طے ہوتی ہے؛ اس کے لیے جان بوجھ کر ڈیزائن کریں۔
  • چھوٹی، محفوظ، مسلسل تبدیلی مؤخر بڑی تبدیلی سے بہتر ہے۔ تبدیلی کا قرض جمع کرنے کی بجائے ٹیسٹ کے حفاظتی جال کے تحت بتدریج ری فیکٹر اور جدید کریں۔
  • سافٹ ویئر ساکن بیٹھے بھی بوڑھا ہوتا ہے۔ ماحول حرکت کرتا ہے (انحصارات، پلیٹ فارمز، ضابطے)، اس لیے ساکن نظام خاموشی سے سڑتا ہے؛ احتیاطی دیکھ بھال حقیقی کام ہے۔
  • نگہبان اولین درجے کی حیثیت کے مستحق ہیں۔ دیکھ بھال کی ٹیموں کا حوصلہ، علم کی برقراری، اور عملہ براہ راست طویل مدتی لاگت اور خطرے کو طے کرتے ہیں۔

سفارشات

دیکھ بھال کے چار زمروں میں فرق کریں اور سب کے لیے عملہ رکھیں

ISO/IEC 14764 اور SWEBOK چار زمرے تسلیم کرتے ہیں، اور انہیں ملانا منصوبہ بندی کی عام غلطی ہے۔ اصلاحی دیکھ بھال آپریشن میں پائے گئے نقائص ٹھیک کرتی ہے۔ موافقتی دیکھ بھال سافٹ ویئر کو ماحول بدلنے پر چلتا رکھتی ہے: نئے آپریٹنگ سسٹم، براؤزرز، انحصارات، ہارڈ ویئر، ضابطے، یا انٹرفیس کرنے والے نظام۔ تکمیلی دیکھ بھال سافٹ ویئر کو صارفین اور نگہبانوں کے لیے بہتر بناتی ہے، نئے فیچرز، بہتر کارکردگی، بہتر استعمال کی اہلیت، اور بہتر دیکھ بھال کی اہلیت کے ذریعے۔ احتیاطی دیکھ بھال پوشیدہ نقائص درست کرتی اور آئندہ کا خطرہ ان کے ظاہر ہونے سے پہلے گھٹاتی ہے، نازک علاقوں کی مضبوطی، صفائی، اور جدید کاری کے ذریعے۔ ایک مفید مزید تقسیم اصلاحی اور احتیاطی کو تصحیح (نقائص سے نمٹنا) اور موافقتی اور تکمیلی کو افزودگی (نئے تقاضوں سے نمٹنا) کے طور پر گروپ کرتی ہے۔ فیصلہ کن طور پر، تجرباتی مطالعات مستقل پاتے ہیں کہ دیکھ بھال کی اکثریت اصلاحی نہیں ہے؛ افزودگی اور موافقت غالب ہیں۔ اسی کے مطابق بجٹ اور عملہ رکھیں، اور ٹریک کریں کہ آپ کی محنت دراصل کس زمرے میں آتی ہے تاکہ آپ اسے منظم کر سکیں۔

پروگرام کی فہم میں سرمایہ لگائیں

دیکھ بھال کی سب سے بڑی واحد سرگرمی موجودہ نظام کو اتنی اچھی طرح سمجھنا ہے کہ اسے محفوظ طریقے سے بدلا جا سکے۔ نگہبان معمول سے کوڈ بدلنے سے زیادہ اسے پڑھنے اور اس پر استدلال کرنے میں وقت لگاتے ہیں۔ اسے جان بوجھ کر سستا بنائیں۔ دستاویزات کوڈ کے قریب اور موجودہ رکھیں (باب 2.7)۔ فن تعمیر کے فیصلوں کے ریکارڈز (باب 1.6) اور صاف کمٹ تاریخ (باب 2.6) کے ذریعے فیصلوں کی تاریخ محفوظ رکھیں۔ غیر مانوس علاقے کا نقشہ بنانے کے لیے جامد تجزیہ، انحصار کے گراف، اور کوڈ نیویگیشن ٹولنگ استعمال کریں۔ خصوصیات متعین کرنے والے ٹیسٹ (ٹیسٹ جو موجودہ رویہ، عجیب حرکتوں سمیت، پن کرتے ہیں) مضمر فہم کو قابل عمل، پائیدار علم میں بدلتے ہیں۔ جب فہم مہنگی ہو تو ہر تبدیلی سست اور خطرناک ہے۔ جب سستی ہو تو دیکھ بھال معمول بن جاتی ہے۔

ٹیسٹ کے حفاظتی جال کے تحت مسلسل ری فیکٹر کریں

ری فیکٹرنگ کوڈ کی نظم و ضبط والی تنظیم نو ہے جو اس کے بیرونی رویے کو بدلے بغیر اندرونی معیار بہتر بناتی ہے۔ مسلسل اور چھوٹے قدموں میں کی جائے تو یہ پیچیدگی کی طرف قدرتی بہاؤ کا مقابلہ کرتی ہے اور تبدیلی کی لاگت کو بڑھنے کی بجائے سپاٹ رکھتی ہے۔ غیر قابل مذاکرات پیشگی شرط قابل اعتماد خودکار ٹیسٹ سوٹ ہے (باب 2.4)۔ اس کے بغیر “ری فیکٹرنگ” محض خطرناک دوبارہ تحریر ہے۔ ری فیکٹرنگ کو روزمرہ کام میں سمو دیں: ہر ماڈیول کو جیسا پایا اس سے ذرا صاف چھوڑیں، بجائے اسے نایاب، بڑی، خطرناک صفائیوں کے لیے بچا کر رکھنے کے۔ یہ عمل میں احتیاطی دیکھ بھال ہے، اور یہ سب سے سستی دیکھ بھال ہے۔

جب بتدریج تبدیلی کافی نہ رہے تو دوبارہ انجینئرنگ کریں

جب کوئی جزو اس حد تک بگڑ جائے کہ معمول کی تبدیلی بہت مہنگی یا خطرناک ہو تو دوبارہ انجینئرنگ (نظام کا جائزہ لے کر اسے نئی شکل میں از سر نو تشکیل دینا) بھاری اوزار ہے۔ دوبارہ انجینئرنگ عموماً ریورس انجینئرنگ (نفاذ سے ڈیزائن اور نیت بحال کرنا) کو آگے کی دوبارہ انجینئرنگ (رویہ محفوظ رکھتے ہوئے بہتر ساخت میں دوبارہ بنانا) کے ساتھ جوڑتی ہے۔ مکمل دوبارہ تحریر کی بجائے اسٹرینگلر فِگ اور تجرید کے ذریعے شاخ (باب 3.6) جیسے نمونوں سے محدود، بتدریج ٹکڑوں میں دوبارہ انجینئرنگ کو ترجیح دیں۔ دوبارہ انجینئرنگ دیکھ بھال سے جدید کاری کے تسلسل پر بیٹھتی ہے: چھوٹے اور مقامی کے لیے ری فیکٹرنگ، ساختی کے لیے دوبارہ انجینئرنگ، اور پلیٹ فارم کی سطح کے لیے جدید کاری۔

متعین دیکھ بھال کا عمل چلائیں

دیکھ بھال واضح، قابل تکرار عمل سے فائدہ اٹھاتی ہے، جیسا ISO/IEC 14764 میں بیان ہے: عمل کا نفاذ (منصوبے اور طریقہ کار قائم کرنا)، مسئلے اور تبدیلی کا تجزیہ (درجہ بندی، دوبارہ پیدا کرنا، اثر اور لاگت کا اندازہ)، تبدیلی کا نفاذ، دیکھ بھال کا ریویو اور قبولیت، منتقلی، اور ریٹائرمنٹ۔ اسے نظم و ضبط والے تبدیلی کے انتظام میں لپیٹیں: ہر دیکھ بھال کی درخواست (نقص کی رپورٹ ہو یا افزودگی) لاگ ہونی چاہیے، زمرے سے درجہ بند، اثر کے لیے جانچی گئی، ترجیحی، ٹیسٹوں کے ساتھ ورژن کنٹرول کے تحت نافذ، ریویو شدہ، اور معمول کی پائپ لائن (باب 11.2) سے ریلیز۔ اثر کا تجزیہ، ہر وہ چیز سمجھنا جسے مجوزہ تبدیلی چھو سکتی ہے، مرکزی ہے اور حقیقی محنت کا مستحق ہے۔ ریٹائرمنٹ بھی عمل کا حصہ ہے: نظام کو محفوظ طریقے سے بند کرنا، اس کا ڈیٹا اور صارفین منتقل کرنا، اور ریکارڈ محفوظ رکھنا دیکھ بھال کا کام ہے جس کی منصوبہ بندی ہونی چاہیے، فی البدیہہ نہیں۔

دیکھ بھال کی لاگت کا واضح اندازہ لگائیں اور اسے فنڈ کریں

دیکھ بھال کو مفت، یا تعمیر کے بجٹ میں شور نہ سمجھیں۔ اس کا اندازہ لگائیں۔ عام طریقوں میں دیکھ بھال کی محنت کے تناسب (وسیع استعمال شدہ موٹا اصول کہ سالانہ دیکھ بھال تقریباً اصل ترقیاتی لاگت کا 15 سے 25 فیصد چلتی ہے، حالانکہ طویل العمر نازک نظام اپنی زندگی میں کہیں زیادہ جمع کرتے ہیں)، COCOMO II (Constructive Cost Model) جیسے پیرامیٹرک ماڈلز اپنی دیکھ بھال اور دوبارہ استعمال کی توسیعات کے ساتھ، اور نقائص کی شرح، تبدیلی کے حجم، اور تبدیلی کی لاگت پر آپ کے اپنے تاریخی ڈیٹا سے میٹرکس پر مبنی پیش گوئی شامل ہیں۔ ان اندازوں کو ملکیت کی کل لاگت کے تجزیے اور باب 10.10 میں زیر بحث معاشیات میں کھلائیں۔ نظام کی خریداری کی قیمت یا تعمیر کی لاگت پیشگی ادائیگی ہے۔ قسط دیکھ بھال ہے، اور اسے ہر کاروباری جواز میں نظر آنا چاہیے۔

شروع سے دیکھ بھال کی اہلیت کے لیے ڈیزائن کریں

دیکھ بھال کی لاگت پر سب سے زیادہ لیوریج دیکھ بھال شروع ہونے سے پہلے استعمال ہوتا ہے۔ دیکھ بھال کی اہلیت (تجزیے کی اہلیت، تبدیلی کی اہلیت، ٹیسٹ کی اہلیت، اور ماڈیولریت، ISO/IEC 25010 کی لغت میں) ڈیزائن کی خاصیت ہے جو واضح تقاضا ہونی چاہیے، خوش قسمت اتفاق نہیں۔ ماڈیولر، ڈھیلے جوڑ، اعلیٰ ہم آہنگی والے ڈیزائنوں (باب 2.2)؛ واضح انٹرفیسز اور خدشات کی علیحدگی؛ مضبوط خودکار ٹیسٹ؛ پڑھنے کے قابل کوڈ اور موجودہ دستاویزات؛ اور بھرپور مشاہدہ پذیری کو ترجیح دیں تاکہ آپریٹرز اور نگہبان دیکھ سکیں کہ نظام کیا کر رہا ہے (حصہ 9)۔ ان میں سے ہر فیصلہ ابھی تھوڑی زیادہ محنت کو ان دہائیوں میں بڑی، مرکب بچتوں کے بدلے تجارت کرتا ہے جو نظام واقعی جیے گا۔ دیکھ بھال کی اہلیت کے لیے تعمیر پوری زندگی کے چکر میں سب سے زیادہ واپسی والی سرمایہ کاری ہے۔

سمجھوتے: فوائد اور نقصانات

طریقہفوائدنقصانات
مسلسل ری فیکٹرنگ / احتیاطی دیکھ بھالتبدیلی کی لاگت سپاٹ رکھتی ہے، خطرہ گھٹاتی ہے، اعلیٰ ROIجاری محنت جس میں کوئی نظر آنے والا نیا فیچر نہیں؛ مضبوط ٹیسٹ چاہیے
دیکھ بھال مؤخر کرنا (“بتیاں جلتی رکھیں”)اس سہ ماہی سستا ترین؛ فیچرز کے لیے صلاحیت آزاد کرتا ہےتبدیلی کا قرض مرکب ہوتا ہے؛ آخرکار بحران اور مجبور مہنگا عمل
بگڑے جزو کی دوبارہ انجینئرنگدیکھ بھال کی اہلیت بحال کرتی اور مفید زندگی بڑھاتی ہےنمایاں محنت اور خطرہ؛ رویہ احتیاط سے محفوظ رکھنا ہوگا
پیشگی دیکھ بھال کی اہلیت کے لیے ڈیزائنمرکب زندگی بھر کی بچتیں؛ ہر آئندہ تبدیلی آسانزیادہ ابتدائی لاگت اور نظم؛ فوائد مؤخر اور کم نظر آنے والے

دیکھ بھال میں بار بار آنے والا سمجھوتا موجودہ لاگت بمقابلہ آئندہ لاگت کا ہے، اور ترغیب ہمیشہ ٹالنے کی طرف چلتی ہے۔ ری فیکٹرنگ چھوڑنا، انحصارات کو پرانا ہونے دینا، اور دیکھ بھال کی ٹیم کو بھوکا مارنا سب اس سہ ماہی مفت لگتے ہیں، کیونکہ بل بعد میں آتا ہے: سست، زیادہ خطرناک، زیادہ مہنگے نظام کے طور پر، اور آخرکار “legacy بحران” کے طور پر۔ اچھی دیکھ بھال کا نظم و ضبط یہ ہے کہ بڑی، اچانک، کیریئر متعین کرنے والی لاگتوں سے بچنے کے لیے ابھی چھوٹی، مسلسل، نظر آنے والی لاگتیں ادا کریں۔ چونکہ بچتیں مؤخر اور غیر مرئی ہیں، یہ سودا ایسی قیادت چاہتا ہے جو صرف لانچ کی تاریخوں کو نہیں بلکہ زندگی کے چکر کی معاشیات کو سمجھے۔

اپنی ٹیم کے ساتھ بحث کے سوالات

  1. آپ کے بجٹ میں دیکھ بھال کے عدد کا مالک کون ہے، اور کیا وہ اولین درجے کی مد ہے یا اس کا بقایا جو تعمیر نے خرچ نہیں کیا؟ دیکھ بھال زندگی بھر کی لاگت کی اکثریت ہے، طویل العمر نظاموں کے لیے عموماً 60 سے 90 فیصد، پھر بھی اسے معمول سے بعد کے خیال کے طور پر فنڈ کیا جاتا اور جو بھی فارغ ہو اس سے عملہ رکھا جاتا ہے۔ جب بجٹ بقایا ہو تو احتیاطی کام سب سے پہلے کٹتا ہے، تبدیلی کا قرض مرکب ہوتا ہے، اور “legacy بحران” کی طرف قابل پیش گوئی پھسلن آتی ہے۔ حقیقی اندازہ لائیں (دیکھ بھال کی محنت کا تناسب، پیرامیٹرک ماڈل، یا تبدیلی کی لاگت کا آپ کا اپنا تاریخی ڈیٹا) اور اس شخص کا نام لیں جو نظام کی زندگی بھر اسے فنڈ کرنے کا جوابدہ ہے۔ اصلاح یہ ہے کہ ہر کاروباری جواز میں دیکھ بھال کا واضح بجٹ رکھیں، جیسے قسط خریداری کی قیمت کے ساتھ بیٹھتی ہے۔ جو قیادت صرف لانچز کا جشن مناتی ہے وہ اس مرحلے کو کم فنڈ کرتی رہے گی جہاں زیادہ تر پیسہ اور خطرہ دراصل رہتا ہے۔

  2. کیا آپ احتیاطی دیکھ بھال کے لیے صلاحیت الگ مخصوص کرتے ہیں، یا وہ ہمیشہ اگلے فیچر سے ہار جاتی ہے؟ احتیاطی کام (ٹیسٹ کے جال کے تحت ری فیکٹرنگ، انحصارات کو موجودہ رکھنا، نازک علاقوں کو مضبوط کرنا) سب سے سستی دیکھ بھال ہے، کیونکہ یہ تبدیلی کی لاگت کے منحنی کو بڑھنے دینے کی بجائے سپاٹ رکھتی ہے۔ یہ ٹالنے میں سب سے آسان بھی ہے، کیونکہ اسے چھوڑنا اس سہ ماہی مفت لگتا ہے اور بل بعد میں سست، زیادہ خطرناک نظام کے طور پر آتا ہے۔ ٹھوس طریقہ مدد کرتا ہے: مستقل مختص، اور بہت سی مضبوط ٹیمیں تقریباً پانچواں حصہ صلاحیت کی حفاظت کرتی ہیں، جس کی حفاظت ہو نہ کہ ہر اسپرنٹ مذاکرات میں گنوائی جائے۔ شہادت کے طور پر اپنی تبدیلی کی لاگت کا رجحان لائیں؛ اگر وہ بڑھ رہا ہے تو آپ پہلے ہی کم سرمایہ کاری کر رہے ہیں۔ نظم و ضبط یہ ہے کہ بڑی، اچانک، کیریئر متعین کرنے والی لاگتوں سے بچنے کے لیے ابھی چھوٹی، نظر آنے والی لاگتیں ادا کریں، اور اس کے لیے ایسی قیادت چاہیے جو لانچ کی تاریخوں کی بجائے زندگی کے چکر کی معاشیات پڑھے۔

  3. کسی نظام کو ریٹائر کرنے کا آپ کا منصوبہ کیا ہے، اور آپ نے آخری بار کب واقعی ایک بند کیا؟ ریٹائرمنٹ دیکھ بھال کے عمل کا واضح حصہ ہے (ڈیٹا کی منتقلی، صارفین کا کٹ اوور، ریکارڈ کا تحفظ، محفوظ بندش)، پھر بھی ادارے مردہ اور فالتو نظام برسوں اٹھائے پھرتے ہیں کیونکہ بند کرنا بے رونق اور بغیر بجٹ ہے۔ ہر زومبی نظام اب بھی لائسنس، سلامتی کی پیچنگ، انضمام کی سطح، اور ان لوگوں کی توجہ کھاتا ہے جو کہیں اور ہو سکتے تھے۔ فہرست لائیں اور ان نظاموں کو نشان زد کریں جن کا کوئی فعال صارف نہیں یا مکمل متبادل پہلے سے زندہ ہے، پھر ان کی بندش کی منصوبہ بندی کسی بھی دوسرے کام کی طرح کریں: ڈیٹا منتقل کریں، جو قانون مانگے وہ محفوظ کریں، اور تصدیق کریں کہ کچھ اب بھی ان پر منحصر نہیں۔ خاص طور پر حکومت میں ریکارڈ کی برقراری کا قانون طے کرتا ہے کہ آپ کیسے ریٹائر کریں، اس لیے تعمیل کو جلد شامل کریں۔ ٹریک کرنے کے قابل پختگی کا اشارہ: آپ کے ادارے نے آخری بار کب جان بوجھ کر کچھ بند کیا؟

  4. ہر تبدیلی کا کتنا حصہ چھونے سے پہلے نظام کو سمجھنے میں لگتا ہے، اور سب سے اہم نظاموں پر آپ کا bus factor کیا ہے؟ پروگرام کی فہم دیکھ بھال کی سب سے بڑی واحد سرگرمی ہے، اور اس کی لاگت اس سے طے ہوتی ہے کہ آپ نے کوڈ، اس کی تاریخ، اور اس کے رویے کو کتنا قابل فہم رکھا ہے۔ جب سمجھ صرف چند طویل مدت کے ذہنوں میں رہتی ہے تو ہر رخصتی یا ریٹائرمنٹ ہر آئندہ تبدیلی کی قیمت بڑھاتی ہے، اور ایک غیر حاضری نازک اصلاح روک سکتی ہے۔ شہادت لائیں: حالیہ تبدیلیوں پر پڑھنے اور استدلال کے وقت کا ترمیم کے وقت سے تناسب، ہر بنیادی ماڈیول کو محفوظ طور پر بدل سکنے والے لوگوں کی تعداد، اور آیا کاروباری قواعد اور فیصلے کوڈ کے ساتھ دستاویزی ہیں یا ہر بار یادداشت سے دوبارہ بنائے جاتے ہیں۔ متصادم غور یہ ہے کہ دستاویزات اور خصوصیات متعین کرنے والے ٹیسٹ ابھی محنت لاگت کرتے ہیں ان بچتوں کے لیے جو صرف بعد میں نظر آتی ہیں، اس لیے انہیں چھوڑنا آسان ہے۔ انٹرپرائز اور حکومت میں، جہاں نظام اپنے اصل مصنفین سے دہائیوں زیادہ جیتے ہیں اور قانونی قواعد ایسے حساب کے انجن میں دفن ہیں جسے کوئی پوری طرح یاد نہیں رکھتا، گرفت میں لی گئی فہم (فن تعمیر کے فیصلوں کے ریکارڈز، خصوصیات متعین کرنے والے ٹیسٹ، موجودہ دستاویزات) کو ایسا اثاثہ سمجھیں جسے آپ جان بوجھ کر فنڈ کرتے ہیں، نہ کہ تکلف جو تب ہوتا ہے جب کسی کے پاس فارغ وقت ہو۔

  5. آپ کی دیکھ بھال کے کام کا عملہ دراصل کون ہے، اور کیا اس کی حیثیت اور حوصلہ اس کی اہمیت سے میل کھاتے ہیں؟ دیکھ بھال زندگی بھر کی لاگت کی اکثریت اور سب سے مشکل انجینئرنگ ہے، ایسے نظاموں کو محفوظ طریقے سے بدلنا جو آپ نے نہیں بنائے اور شاید پوری طرح نہ سمجھتے ہوں، پھر بھی اسے معمول سے کم تجربہ کار لوگوں کو سونپا اور کم حیثیت “بتیاں جلتی رکھنے” کے طور پر پیش کیا جاتا ہے۔ وہ اشارہ زہریلا ہے: آپ کے بہترین انجینئر اس کام سے بچتے ہیں، علم مرتکز ہوتا ہے اور پھر دروازے سے باہر چلا جاتا ہے، اور تبدیلی کی لاگت بڑھتی ہے جبکہ کوئی نہیں دیکھ رہا۔ اپنے طویل ترین نظاموں کی دیکھ بھال کرنے والوں کی سینیارٹی کا خاکہ، آپ کی علیحدگی اور علم کی برقراری کا ڈیٹا، اور ایماندار رائے لائیں کہ آیا آپ کے ادارے میں دیکھ بھال کیریئر کا بند گلی ہے یا قابل احترام مہارت۔ کھنچاؤ حقیقی ہے، کیونکہ پرجوش انجینئر نئی چیزیں بنانا چاہتے ہیں اور رہنما لانچز کا جشن منانا، اس لیے دیکھ بھال کا احترام جان بوجھ کر ڈھانچہ مانگتا ہے۔ ایسے بڑے انٹرپرائز یا عوامی ادارے کے لیے جو دہائیوں تک ضابطے اور مالیاتی خطرہ اٹھانے والے نظام چلاتا ہے، دیکھ بھال کا عملہ قابل احترام سینئر انجینئروں سے رکھنا خطرے کے انتظام کا فیصلہ ہے، اور دیکھ بھال کو سزا والی تعیناتی بننے دینا ہی وہ طریقہ ہے جس سے آپ اگلا legacy بحران تیار کرتے ہیں۔

  6. کیا آپ ٹریک کرتے ہیں کہ آپ کی محنت دراصل چار زمروں میں سے کس میں آتی ہے، اور کیا آپ تبدیلی کی لاگت کو پیشگی اشاریے کے طور پر ناپ رہے ہیں؟ ٹیمیں معمول سے دیکھ بھال کی منصوبہ بندی یوں کرتی ہیں جیسے وہ زیادہ تر بگ ٹھیک کرنا ہو، جبکہ تجرباتی مطالعات دکھاتے ہیں کہ افزودگی اور موافقت غالب ہیں، تو صرف اصلاحی کام کے لیے فنڈ شدہ پورٹ فولیو شروع سے غلط دائرے کا ہے۔ زمرے کے ٹریکنگ کے بغیر آپ دیکھ نہیں سکتے کہ نظام ضابطے کی موافقتوں کی مستقل دھار سے ازسرنو شکل پا رہا ہے، اور تبدیلی کی لاگت کے اشاریے (تبدیلی کا لیڈ ٹائم، تبدیلی کی ناکامی کی شرح، پیچیدگی کے رجحانات) کے بغیر آپ نہیں بتا سکتے کہ آپ کا منحنی سپاٹ ہے یا خاموشی سے بحران کی طرف چڑھ رہا ہے۔ پچھلے سال کے لیے اپنے حقیقی زمروں کی تقسیم، اگر ہو تو تبدیلی کی لاگت کا رجحان، اور ایماندار نوٹ لائیں کہ آیا اثر کا تجزیہ حقیقی قدم ہے یا ڈیڈ لائن کے دباؤ میں چھوڑی جانے والی رسم۔ متصادم کھنچاؤ یہ ہے کہ پیمائش خود محنت لیتی ہے اور بوجھ لگ سکتی ہے جب نظام ابھی چلتا ہو۔ انٹرپرائز اور سرکاری پورٹ فولیو میں، جہاں بہت سی ٹیمیں بہت سے نظام برقرار رکھتی ہیں اور کسی ایک پر بڑھتا لاگت کا منحنی ابتدائی انتباہ ہے جس پر عمل کرنا چاہیے، مشترک زمرے کی ٹریکنگ اور تبدیلی کی لاگت کے اشاریے وہ ہیں جو قیادت کو ماڈیول کو بگڑنے سے پہلے دوبارہ انجینئر کرنے دیتے ہیں نہ کہ عوامی طور پر ناکام ہونے کے بعد۔

شعبہ جاتی نقطۂ نظر

اسٹارٹ اپ۔ مٹھی بھر انجینئروں اور کم رن وے کے ساتھ آپ بھاری دیکھ بھال کا عمل برداشت نہیں کر سکتے، مگر ایسا کوڈ بیس بھی برداشت نہیں کر سکتے جسے کوئی نہ چھوئے۔ احتیاطی کام کے لیے ہر چکر کا چھوٹا مستقل حصہ (تقریباً پانچ میں سے ایک دن) الگ رکھیں: انحصارات پیچ کریں، چھوٹے نقائص کو مرکب ہونے سے پہلے صاف کریں، اور جو کونے آپ پہلے ہی ڈرتے ہیں انہیں جو بھی ٹیسٹ ہیں ان کے تحت ری فیکٹر کریں۔ ہدف یہ ہے کہ آپ کے پلٹنے کے دوران کوڈ بدلنے میں سستا رہے، تاکہ آپ بیس انجینئروں پر کبھی جاگ کر مؤخر دیکھ بھال کو “legacy مسئلہ” نہ سمجھیں۔

چھوٹا کاروبار۔ مخصوص دیکھ بھال کے ماہر کے بغیر اور تنگ بجٹ کے ساتھ بنانے کی بجائے خریدنے اور میزبانی کی طرف جھکیں، تاکہ موافقتی دیکھ بھال (سلامتی کے پیچ، پلیٹ فارم اور انحصار کی اپ ڈیٹس) بڑی حد تک کسی اور کا کام ہو۔ جہاں آپ کوڈ کے مالک ہوں اسے چھوٹا، بورنگ، اور اچھی طرح دستاویزی رکھیں، اور یقینی بنائیں کہ جس چیز پر کاروبار انحصار کرتا ہے اسے کم از کم دو لوگ سمجھتے ہیں۔ ان مٹھی بھر نظاموں کو ٹریک کریں جنہیں آپ کھونا برداشت نہیں کر سکتے، اور انہیں موجودہ رکھنے کے لیے معمولی، واضح مد بجٹ کریں بجائے دکھاوا کرنے کے کہ دیکھ بھال مفت ہے۔

بڑا ادارہ۔ پیمانے پر آپ بہت سی ٹیموں میں بہت سے طویل العمر نظام برقرار رکھ رہے ہیں، اس لیے ترجیح متعین، قابل تکرار عمل ہے: لاگ اور درجہ بند درخواستوں کی پائپ لائن، چار زمروں میں درجہ بندی، معمول کا اثر کا تجزیہ، اور مستقل احتیاطی مختص جس کی حفاظت ہو نہ کہ مذاکرات میں گنوائی جائے۔ دیکھ بھال کو اولین درجے کے پروگرام کے طور پر فنڈ کریں، پورٹ فولیو میں تبدیلی کی لاگت کے اشاریے ناپیں، اور بڑھتے منحنی کو ٹرگر کے طور پر استعمال کریں کہ ماڈیول کو بوجھ بننے سے پہلے دوبارہ انجینئر کریں۔ نظم و نسق اور آڈٹ کی توقعات کا مطلب ہے کہ زمرے کی ٹریکنگ اور تبدیلی کے ریکارڈ بوجھ نہیں، وہ شہادت ہیں کہ جائیداد قابو میں ہے۔

حکومت۔ خریداری کے قواعد، شفافیت، اور عوامی جوابدہی دیکھ بھال کو اتنی ہی شکل دیتے ہیں جتنا انجینئرنگ۔ قانون سے چلنے والی موافقتی دیکھ بھال سخت سالانہ ڈیڈ لائنز پر آتی ہے جو پھسل نہیں سکتیں، اس لیے دیکھ بھال کو غیر معینہ آپریٹنگ لاگت کے طور پر بجٹ کریں اور ان قواعد کے علم کو برقرار رکھنے کے لیے مستحکم ماہر ٹیم رکھیں جن کے مصنفین کب کے ریٹائر ہو چکے۔ ریٹائرمنٹ ریکارڈ کی برقراری کے قانون سے محدود ہے، اس لیے بند کرنے کی منصوبہ بندی شروع سے تعمیل کے ساتھ کریں، اور ایسے معاہدوں اور فن تعمیرات کو ترجیح دیں جو نظام کو قابل دیکھ بھال اور قابل منتقلی رکھیں بجائے آپ کو دہائیوں تک واحد فروخت کنندہ میں پھنسانے کے۔

مثالیں

اسٹارٹ اپ۔ اپنا MVP ابھی ریلیز کرنے والا اسٹارٹ اپ ہر گھنٹہ نئے فیچرز میں ڈالنے کا لالچی ہے، مگر اس کا بانی انجینئر پہلے ہی مہینے سے ہر اسپرنٹ کا مستقل حصہ (تقریباً پانچ میں ایک دن) دیکھ بھال کے لیے الگ کرتا ہے۔ یہ بجٹ انحصارات پیچ رکھتا ہے، چھوٹے نقائص کو مرکب ہونے سے پہلے صاف کرتا ہے، اور وہ کونے ری فیکٹر کرتا ہے جن سے ٹیم پہلے ہی ڈرتی ہے، اس لیے پروڈکٹ پلٹنے کے دوران کوڈ بیس بدلنے میں سستا رہتا ہے۔ جو اسٹارٹ اپ اسے چھوڑتے ہیں وہ بیس انجینئروں پر ایسے کوڈ بیس کے ساتھ پہنچتے ہیں جسے کوئی چھونا نہیں چاہتا اور اسے “legacy مسئلہ” سمجھتے ہیں جب وہ شروع سے مؤخر دیکھ بھال تھی۔

بڑا ادارہ۔ ایک عالمی بینک ادائیگیوں کا پلیٹ فارم چلاتا ہے جو پندرہ سال سے پروڈکشن میں ہے۔ وہ دیکھ بھال کو بقایا بجٹ کی مد کی بجائے مستقل، اولین درجے کے پروگرام کے طور پر فنڈ کرتا ہے۔ کام چار زمروں میں درجہ بند ہوتا ہے: موافقتی تبدیلیوں کی مستقل دھار نئے ضابطوں اور شراکت دار بینکوں کے انٹرفیس کی اپ ڈیٹس کا پیچھا کرتی ہے، تکمیلی کام فیچرز جوڑتا اور تھرو پٹ بہتر کرتا ہے، اصلاحی کام سخت سروس لیول معاہدوں (SLAs) کے مقابل نقائص صاف کرتا ہے، اور مستقل احتیاطی مختص (ٹیم کی صلاحیت کا تقریباً پانچواں حصہ) جامع ٹیسٹ سوٹ کے تحت مسلسل ری فیکٹرنگ سے پیچیدگی گھٹاتا ہے۔ ٹیم تبدیلی کا لیڈ ٹائم اور تبدیلی کی ناکامی کی شرح ناپتی ہے، اور بڑھتی تبدیلی کی لاگت کو ماڈیول کو بوجھ بننے سے پہلے دوبارہ انجینئر کرنے کا ابتدائی انتباہ سمجھتی ہے۔ نگہبان سینئر، قابل احترام انجینئر ہیں، “بتیاں جلتی رکھنے” پر لگایا گیا جونیئر عملہ نہیں۔

حکومت۔ قومی ٹیکس اتھارٹی ایسا نظام برقرار رکھتی ہے جو تیس سال سے زیادہ چلا ہے اور ٹیکس کا قانون بدلنے پر ہر سال ترمیم کیا جاتا ہے۔ یہاں غالب زمرہ قانون سے چلنے والی موافقتی دیکھ بھال ہے، سخت سالانہ ڈیڈ لائنز کے ساتھ جو پھسل نہیں سکتیں۔ اتھارٹی پروگرام کی فہم میں بھاری سرمایہ لگاتی ہے: کاروباری قواعد کوڈ کے ساتھ دستاویزی ہیں، خصوصیات متعین کرنے والے ٹیسٹ ان قواعد کا رویہ پن کرتے ہیں جن کے اصل مصنفین کب کے ریٹائر ہو چکے، اور حساب کے انجن میں کسی تبدیلی سے پہلے اثر کا تجزیہ رسمی قدم ہے۔ چونکہ ماحول (قانون) مسلسل بدلتا ہے، نظام کبھی “مکمل” نہیں ہو سکتا، اس لیے اتھارٹی دیکھ بھال کو غیر معینہ آپریٹنگ لاگت کے طور پر بجٹ کرتی ہے، علم برقرار رکھنے کے لیے مستحکم ماہر ٹیم رکھتی ہے، اور گرد کے ترسیلی عمل جیسے سورس کنٹرول، مسلسل انضمام (CI)، اور خودکار ٹیسٹنگ جدید کرتی ہے، چاہے مرکز قائم رہے۔

کاروباری جواز: محرکات، ROI اور TCO

سافٹ ویئر کی بنیادی کاروباری حقیقت یہ ہے کہ پیسہ تعمیر میں نہیں، دیکھ بھال میں جاتا ہے۔ پوری صنعت میں اور دہائیوں کے مطالعے میں دیکھ بھال زندگی بھر کی لاگت کے واضح اکثریتی حصے کا حساب رکھتی ہے، جو طویل جیتے نظاموں کے لیے اکثر 60 سے 90 فیصد بتایا جاتا ہے، جو انٹرپرائز اور حکومت میں زیادہ تر ہیں۔ کوئی بھی ملکیت کی کل لاگت کا تجزیہ جو go-live پر رک جائے کئی گنا غلط ہے۔ دیکھ بھال کو سنجیدگی سے لینے کا بنیادی کاروباری جواز محض درستگی ہے: نظام کی پوری زندگی کے لیے بجٹ بنائیں، یا بار بار بل سے حیران ہوں۔

سرمایہ کاری پر واپسی لاگت کے منحنی کو موڑنے سے آتی ہے۔ نظر انداز شدہ نظام میں ہر تبدیلی کی لاگت وقت کے ساتھ بڑھتی ہے جیسے پیچیدگی جمع ہوتی اور فہم گھٹتی ہے، یہاں تک کہ تبدیلی ممنوعہ حد تک سست اور خطرناک ہو جاتی ہے۔ اچھی طرح برقرار رکھے گئے نظام میں مسلسل احتیاطی کام (ری فیکٹرنگ، انحصار کی تازگی، ٹیسٹ کی کوریج، دستاویزات) اس منحنی کو سپاٹ رکھتا ہے، اس لیے ہزارویں تبدیلی کی لاگت تقریباً دسویں جتنی ہے۔ دیکھ بھال کی اہلیت اور احتیاطی دیکھ بھال میں سرمایہ کاری اس لیے کم کرنے والا خرچ نہیں۔ یہ وہ لیور ہے جو طے کرتا ہے کہ نظام بدلنے میں سستا رہتا ہے یا legacy جائیداد (باب 3.6) کی بڑھتی لاگت اور خطرے اور باب 10.4 کے پائیداری کے چیلنجوں میں بہہ جاتا ہے۔ دیکھ بھال کو جان بوجھ کر فنڈ کریں، تبدیلی کی لاگت کو پیشگی اشاریے کے طور پر ناپیں، اور بڑھتے منحنی کو قدرت کی حقیقت کی بجائے عمل کا اشارہ سمجھیں۔ معاشیات باب 10.10 میں مزید بیان ہوئی ہے۔

ضد نمونے اور خامیاں

  • دیکھ بھال کو بعد کا خیال سمجھنا۔ صرف تعمیر کا بجٹ اور جشن، پھر کہیں بڑے اور لمبے دیکھ بھال کے مرحلے کو بھوکا مارنا۔
  • دیکھ بھال کا عملہ سب سے کم تجربہ کار لوگوں سے رکھنا۔ مشکل ترین کام (ایسے نظاموں کو محفوظ طور پر بدلنا جنہیں آپ پوری طرح نہیں سمجھتے) ان کو سونپنا جو سب سے کم لیس ہیں، اور اشارہ دینا کہ دیکھ بھال کم حیثیت ہے۔
  • دیکھ بھال کو بگ ٹھیک کرنے سے ملانا۔ صرف اصلاحی کام کی منصوبہ بندی جب محنت پر دراصل موافقت اور افزودگی غالب ہو۔
  • احتیاطی دیکھ بھال کو غیر معینہ مدت تک ٹالنا۔ کبھی ری فیکٹر نہ کرنا، کبھی انحصارات اپ ڈیٹ نہ کرنا، یہاں تک کہ تبدیلی کا قرض مہنگا بحران مجبور کرے۔
  • اثر کے تجزیے کے بغیر کوڈ بدلنا۔ “چھوٹی اصلاح” کرنا جو کہیں اور غیر متوقع ناکامیوں میں لہراتی ہے۔
  • ٹیسٹ کے حفاظتی جال کے بغیر ری فیکٹرنگ۔ ایسے کوڈ کی تنظیم نو جس میں رویہ محفوظ رہنے کا ثبوت نہ ہو: یہ محض خطرناک دوبارہ تحریر ہے۔
  • علم کو دروازے سے باہر جانے دینا۔ کاروباری قواعد اور فیصلے دستاویزی نہ کرنا، اس لیے ہر ریٹائرمنٹ یا رخصتی ہر آئندہ تبدیلی کی لاگت بڑھاتی ہے۔
  • کبھی کچھ ریٹائر نہ کرنا۔ مردہ اور فالتو نظاموں کو ہمیشہ اٹھائے پھرنا کیونکہ بند کرنا بے رونق اور بغیر منصوبے ہے۔

پختگی کا ماڈل

  • سطح 1: آغاز۔ دیکھ بھال غیر منصوبہ بند اور بغیر فنڈ ہے، جو بھی فارغ ہو ردعملی طور پر سنبھالتا ہے۔ اسے بگ ٹھیک کرنا اور کم حیثیت کام سمجھا جاتا ہے۔ نہ زمرے کی ٹریکنگ، نہ لاگت کا اندازہ، اور علم چند ذہنوں میں ہے۔ تبدیلی کی لاگت بے توجہی میں بڑھتی ہے جب تک اصلاح رک نہ جائے یا بحران توجہ مجبور نہ کرے۔
  • سطح 2: ترقی۔ کچھ ٹیمیں دیکھ بھال کی درخواستیں لاگ اور درجہ بند کرنا اور بجٹ کی مد رکھنا شروع کر چکی ہیں، مگر عمل ادارے میں غیر مستقل ہے اور بجٹ عموماً بقایا ہے۔ اصلاحی کام ٹریک ہوتا ہے جبکہ موافقتی اور تکمیلی محنت واضح الگ نہیں۔ کچھ ٹیسٹ اور دستاویزات گوشوں میں موجود ہیں، اس لیے تبدیلی جزوی طور پر قابو میں ہے مگر فہم ٹیم سے ٹیم مہنگی اور ناہموار رہتی ہے۔
  • سطح 3: معیار بندی۔ متعین دیکھ بھال کا عمل (ISO/IEC 14764 کے مطابق) دستاویزی اور ادارے بھر میں نافذ ہے: کام چار زمروں میں درجہ بند ہوتا ہے، اثر کا تجزیہ اور تبدیلی کا انتظام معمول ہیں، اور دیکھ بھال کا اندازہ ہر کاروباری جواز میں واضح لگتا اور فنڈ ہوتا ہے۔ احتیاطی دیکھ بھال اور ری فیکٹرنگ ٹھوس ٹیسٹ سوٹ کے تحت معیاری عمل ہیں، اور دیکھ بھال کی اہلیت (تجزیے، تبدیلی، ٹیسٹ، ماڈیولریت کی اہلیت) مقامی عادت کی بجائے واضح ڈیزائن کا تقاضا ہے۔
  • سطح 4: انتظام۔ دیکھ بھال ڈیٹا سے بنیادی خطوط کے مقابل ناپی اور کنٹرول کی جاتی ہے۔ تبدیلی کی لاگت کے اشاریے (تبدیلی کا لیڈ ٹائم، تبدیلی کی ناکامی کی شرح، پیچیدگی اور نقائص کے رجحانات) فی نظام ٹریک ہوتے ہیں، چار زمروں کی محنت کی ترکیب توقعات کے مقابل مقدار میں ناپی جاتی ہے، اور دیکھ بھال کی محنت کے تناسب اور پیرامیٹرک اندازے حقیقی تاریخی تبدیلی کی لاگت کے مقابل جانچے جاتے ہیں۔ بڑھتا لاگت کا منحنی پیشگی اشاریے کے طور پر پکڑا جاتا اور عمل چلاتا ہے، اور احتیاطی مختص اندازے کی بجائے شہادت سے سائز ہوتی ہے۔ ری فیکٹر، دوبارہ انجینئر، یا ریٹائر کرنے کے فیصلے وجدان کے بجائے ناپی گئی حدوں پر ہوتے ہیں۔
  • سطح 5: ہم آہنگی۔ دیکھ بھال پورے ادارے اور اس کی زندگی کے چکر کی معاشیات میں مسلسل بہتر اور مربوط ہے۔ زندگی کے چکر کا TCO پورٹ فولیو کی سرمایہ کاری چلاتا ہے، اجزا کے بگڑنے سے پہلے جان بوجھ کر دوبارہ انجینئرنگ ہوتی ہے، علم فعال طور پر برقرار رکھا جاتا ہے، اور ریٹائرمنٹ منصوبہ بند اور معمول سے انجام پاتی ہے۔ ماحول (ضابطے، پلیٹ فارمز، انحصارات) کے بدلنے پر ادارہ دیکھ بھال کی محنت دوبارہ متوازن کرتا ہے، نگہبان قابل احترام سینئر انجینئر ہیں، اور پوری جائیداد اس طرح ڈھلتی ہے کہ دہائیوں جیتے نظاموں میں تبدیلی کی لاگت سپاٹ رہے۔

بحث کے لیے خیالات

  1. آپ کی انجینئرنگ کی محنت کا کتنا حصہ دراصل دیکھ بھال پر جاتا ہے، اور کیا آپ کا بجٹ اور عملہ اس حقیقت کو ظاہر کرتا ہے؟
  2. کیا آپ اپنی دیکھ بھال کا کام چار زمروں میں تقسیم کر سکتے ہیں، اور کیا تقسیم آپ کے مفروضوں سے میل کھاتی ہے؟
  3. ایک عام تبدیلی کا کتنا حصہ نظام کو سمجھنے بمقابلہ بدلنے میں لگتا ہے، اور فہم کو سستا کیا بنائے گا؟
  4. کیا وقت کے ساتھ آپ کی تبدیلی کی لاگت بڑھ رہی ہے، سپاٹ ہے، یا گھٹ رہی ہے، اور کیا آپ اسے ناپ بھی رہے ہیں؟
  5. کیا آپ کی ٹیموں کے پاس قابل اعتماد ٹیسٹ کا حفاظتی جال ہے جو مسلسل ری فیکٹرنگ کو محفوظ بناتا ہے، یا تنظیم نو کوشش کے لیے بہت خطرناک ہے؟
  6. آپ کے طویل ترین نظاموں کی دیکھ بھال کون کرتا ہے، ان کا علم کیسے گرفت میں آتا ہے، اور اس کام کی حیثیت اور حوصلہ کیا ہے؟

اہم نکات

  • دیکھ بھال سافٹ ویئر کی زندگی بھر کی لاگت کی اکثریت ہے (طویل العمر نظاموں کے لیے عموماً 60 سے 90 فیصد) اور اس کی منصوبہ بندی، بجٹ، اور عملہ اولین درجے کی سرگرمی کے طور پر ہونا چاہیے۔
  • چار زمرے (اصلاحی، موافقتی، تکمیلی، احتیاطی) الگ کام ہیں، اور بگ ٹھیک کرنے کی بجائے افزودگی اور موافقت عموماً غالب ہوتی ہے۔
  • پروگرام کی فہم دیکھ بھال کی سب سے بڑی واحد سرگرمی ہے؛ کوڈ، تاریخ، اور رویے کو قابل فہم بنائیں تاکہ ہر تبدیلی سستی رہے۔
  • ٹیسٹ کے حفاظتی جال کے تحت مسلسل ری فیکٹر کریں اور بگڑے اجزا کو بتدریج دوبارہ انجینئر کریں تاکہ تبدیلی کی لاگت سپاٹ رہے۔
  • دیکھ بھال کی لاگت کا واضح اندازہ لگائیں اور اسے ملکیت کی کل لاگت اور معاشی فیصلوں میں کھلائیں۔
  • شروع سے دیکھ بھال کی اہلیت کے لیے ڈیزائن کریں (یہ پوری زندگی کے چکر میں سب سے زیادہ واپسی والی سرمایہ کاری ہے) اور نگہبانوں کو وہ سینئر پیشہ ور سمجھیں جو انہیں ہونا چاہیے۔

حوالہ جات اور مزید مطالعہ

  • IEEE Computer Society, SWEBOK Guide (Software Engineering Body of Knowledge), Software Maintenance knowledge area
  • ISO/IEC 14764 / IEEE 14764, Software Engineering: Software Life Cycle Processes, Maintenance
  • ISO/IEC 25010, Systems and software Quality Requirements and Evaluation (SQuaRE): maintainability quality characteristics
  • Martin Fowler, Refactoring: Improving the Design of Existing Code
  • Michael Feathers, Working Effectively with Legacy Code
  • Thomas M. Pigoski, Practical Software Maintenance
  • Penny Grubb and Armstrong A. Takang, Software Maintenance: Concepts and Practice
  • Barry Boehm et al., Software Cost Estimation with COCOMO II (maintenance and reuse models)
  • Meir M. Lehman, “Laws of Software Evolution” (on why software must continually change or become less useful)
  • Robert C. Seacord, Daniel Plakosh, and Grace A. Lewis, Modernising Legacy Systems