نیرنگ خیال
لائبریرین
قیصرانی بھائی نے ایک بار ایک تحریر کا ترجمہ کیا تھا جس میں نیٹ ورک ٹیم کی طرف سے بڑے ہی زبردست مشوروں سے نوازا گیا تھا۔ آج یوں ہی بیٹھے بیٹھے خیال آیا کہ اسی قسم کے چند مشورے ہم کو بھی کنفیگریشن ٹیم کی طرف سے باقی کمپنی کو دینے چاہییں۔
چند مشورے، سافٹ وئیر کنفیگریشن ٹیم کی طرف سے
جب آپ اپنی بلڈ ڈیفینیشن (Build Definition) ایک پراجیکٹ سے دوسرے پراجیکٹ پر منتقل کرنا چاہیں تو اس امر کو یقینی بنا لیں کہ وہاں کوئی بلڈ کنڑولر نہیں ہے۔ تاکہ جب آپ کی بلڈز نہ چل سکیں تو آپ کے پاس مورد الزام ٹھہرانے کو پہلے سےہی لوگوں کے نام ہوں۔
بلڈ جب بھی فیل ہوجائے کبھی لاگ نہ پڑھیں۔ ہم سے آکر پوچھ لیں۔ ہم بغیر لاگ فائل پڑھے سب جانتے ہوتے ہیں۔
جب آپ کے پاس کسی دوسری ٹیم کا پراجیکٹ کمپائل نہ ہو تواس ٹیم سے رابطہ کرنے کی بجائے فوراً ہمیں بتائیں۔ ہمیں تمام ٹیمز کے پراجیکٹس اور ان کی کمپائلیشن (Compilation)سے متعلق چیزیں ازبر ہوتی ہیں۔
جب آپ ہمیں بتائیں کہ بلڈ فیل ہو رہی ہے تو کبھی یہ نہ بتائیں کہ آپ نے کوڈ میں کیا چینجز کی ہیں۔ بلکہ یہی کہتے رہیں کہ کل تک تو چل رہا تھا اور میرے پاس تو اب بھی کمپائل ہو رہا ہے۔
جب بھی کوئی فائل پراجیکٹ میں ایڈ یا ڈیلیٹ کریں تو ہمیں بتانے کی کوئی ضرورت نہیں ہے۔ ہمیں ہزاروں فائلز اور ان کا انسٹالر کے اندر ڈیسٹینیش(Destination) لوکیشن از خود پتا چل جاتی ہے۔ اور یہ بھی پتا ہوتا ہے کہ آج آپ کس فائل کو ڈیلیٹ کرنے والے ہیں۔
جب بھی پروڈکٹ میں کوئی نیا پراجیکٹ ایڈ کریں تو کبھی اس کا بلڈ آرڈر نہ بتائیں۔ ہم نام دیکھ کر سمجھ جاتے ہیں کہ یہ کب اور کس کے بعد یا کس سے پہلے کمپائل ہوگا۔
جب آپ کو بلڈ فیل ہونے کی لاگ فائلز ای میل میں ملیں تو ان کو الگ فولڈر میں منتقل کر دیں یا ڈیلیٹ کریں۔ بلڈ سسٹم کبھی شغلاً بھی ایسی ای میلز کر دیتا ہے۔
جب ہم کبھی چھٹی پر ہوں تو فوراً کمرشل پیچ (Patch)یا ہاٹ فکس (HotFix)پلان کر لیں۔ کیوں کہ ہم خود کام کرنے کی بجائے فون پر دوسروں کو زیادہ بہتر طریقے سے کام کروا سکتے ہیں۔
بلڈ سسٹم ہمیشہ انٹیلجنٹ ہوتا ہے۔ آپ نئے پراجیکٹ ایڈ کر دیں وہ خود بخود ان کو انسٹالر میں شامل کر کے ان کی کام(COM) اور ڈی کام (DCOM)کی سیٹنگز بھی کر دے گا۔ کسی کو اس بارے میں بتانے کی ضرورت نہیں ہوتی۔
جب کوئی بلڈ ایمر جنسی میں چاہیے ہو تو اس کے لیے ساری مینجمنٹ ای میل میں ڈال دیں۔ اس سے بلڈ سسٹم تیز کمپائل کر دیتا ہے۔
جب ڈیپلائمنٹ(Deployment) کے بعد آپ کے ورک فلوز فیل ہوجائیں تو ہمیں ای میل کر دیا کریں۔ انسٹالر کبھی آدھی فائلز بھی ڈیپلائے کر دیتا ہے۔
کبھی ان انسٹالیشن فیل ہوجائے تو ہمیں بلا لیا کریں۔ ہمیں ساری رجسٹری اینٹریز زبانی یاد ہوتی ہیں۔ اور مینوئل ان انسٹالیشن میں ہم کو ملکہ حاصل ہوتا ہے۔
اگر کبھی آپ کے این یو گیٹ(NUGet) سرورز کام نہ کر رہے ہوں تو ہمیں بتا دیا کریں۔ بعض دفعہ ہم نے نیٹ ورک کیبل پر پاؤں رکھا ہوتا ہے۔
ہم ڈی ایل ایل(DLL) یا ایگزی(EXE) کا نام دیکھ کر سمجھ جاتے ہیں کہ اس کی ڈیپن ڈینسی کیا ہوگی۔ اس معاملے میں آپ ہمیں کوئی معلومات نہ دیا کریں۔ بہت ہوا تو صرف یہ بتا دیا کریں کہ کچھ ری ڈسٹری بیوٹ ایبلز چاہیے ہوں گے۔ اس سے ہمارے اندر علم حاصل کرنے کی پیاس بڑھے گی۔
جب ہم آپ کو کہیں کہ ہم بلڈ میں آنے والے مسئلے دیکھ رہے ہیں تو فوراً برا سا منہ بنا کر کہیے کہ کیا صرف دیکھو گے ۔ فکس نہیں کرو گے۔ اس سے ہماری اخلاقی ہمت اور بندھے گی۔
اگر آپ دن کو کوئی نیا پراجیکٹ یا فائل بلڈ سسٹم میں اینٹر کروانا بھول جائیں تو ہمیں آدھی رات کو جگا دیں۔یوں بھی دن سارا دفتر میں سوئے رہنے کے بعد ہم رات کو محلے کی چوکیداری کرتے ہیں۔
نائٹلی(Nightly) بلڈز ہمارے حکم کی غلام ہوتی ہیں۔ ہم جب چاہے انہیں بنا بگاڑ سکتے ہیں۔ لہذا ان کو ری کمپائل کر کے پروڈکٹ دوبارہ دینے میں ہمیں پندرہ منٹ نہیں لگتے۔ یہ آٹھ دس گھنٹے والی باتیں سب ہوائی ہیں۔
پروجیکٹس میں تھرڈ پارٹی کمپونینٹ(Component) بدلتے وقت ہمیں بتانے کی ضرورت نہیں ہوتی۔ بلڈ سسٹم پر ہر طرح کے تھرڈ پارٹی کمپونینٹس ہر وقت میسر ہوتے ہیں۔
جب بلڈ ایک بار فیل ہوجائے تو بنا کوڈ چھیڑے دوبارہ بلڈ چلا دیں۔ بعض دفعہ بلڈ سسٹم دوبارہ کمانڈ دینے پر ایرر خود ہی فکس کر دیتا ہے۔
جب کبھی ورژن کنڑول سسٹم میں کسی برانچ پر رائٹس کے لیے ای میل کریں کبھی برانچ کا نام نہ لکھیں۔ ہمیں ازخود پتا ہوتا ہے کہ آپ آج کل کس برانچ پر کام کر رہے ہیں۔
پروڈکٹ آرکیٹیکٹس کی دی گئی گائیڈ لائنز کو کبھی بھول کر بھی ہاتھ نہ لگائیے۔ یہ صرف انٹرن و نومولود ڈویلپرز کے لیے ہوتی ہیں۔
اگر کسی اور کا کوڈ آپ کے کام میں مداخلت کر رہا ہو۔ تو اس کو کمنٹ کر دیں۔ ہم بلڈ سسٹم پر از خود ایسا کوڈ ڈٹیکٹ کر کے ان کمنٹ کرنے کی صلاحیت رکھتے ہیں۔
" جب ہم آپ کو کسی تکنیکی تفصیل "جیسے انسٹالر کا مختلف آپریٹنگ سسٹمز پر برتاؤ"سے آگاہ کریں تو فوراً جماہی لے کر کہیے "یار یہ سب بکواس ہے۔ مجھے ککھ پلے نہیں پڑ رہا"۔ ہم آپ کو کیسے بتائیں کہ ہماری محنت کو جب بکواس کہا جائے تو ہمیں کتنی دلی خوشی ہوتی ہے۔"
جب کسی پراجیکٹ میں ریفرنس ایڈ کرنا ہو تو ہمیں حکم دیجیے۔ مائیکرو سافٹ کمپنی کا حکم ہے کہ اتنا مشکل کام صرف وہی افراد کر سکتے ہیں جن کے پاس کوڈنگ سٹینڈرڈز کے مضمون میں پی ایچ ڈی کی ڈگری ہو۔
جب انسٹالر میں کوئی ڈویلپمنٹ کرنی ہو تو یوزر (User)سٹوری میں انسٹالر اپگریڈ لکھ کر ہمیں اسائن کر دیجیے۔ ہمیں از خود پتا ہوتا ہے کہ کیا اپگریڈ کرنا ہے۔
نیٹ ورک میں کوئی مسئلہ ہو تو ہمیں بتا دیجیے۔ ہم لوگ پارٹ ٹائم نیٹ ورک کا کام بھی کرتے ہیں۔
جب کوئی پیچ (Patch)ڈیپلائے کرنا ہو تو کبھی اس کے ساتھ دی گئی گائیڈ لائن نہ پڑھیں۔ اور کوئی بھی ایرر آنے پر ہمیں ای میل کر دیں۔ اس کو ڈیپلائے کرنے کے ضروری نکات ہم آپ کو اس ای میل میں بتا دیں گے۔
کسی بھی قسم کا ایرر آنے پر اس کی تفصیلات نہ لکھیں۔ بلکہ لکھ دیں انسٹالر ایرر۔ ہمیں پتا ہوتا ہے کہ کس وقت کس طرح کا ایرر آتا ہے اور اس کو فکس کرنے کی صلاحیت قدرتی طور پر ہمارے اندر ہوتی ہے۔
اگر کبھی آپ نے ورژننگ (Versioning) پر کوئی چھوٹا موٹا بلاگ پڑھ لیا ہے تو ظاہر ہے اس کے سامنے ہماری ساری علمی قابلیت اور تجربہ ہیچ ہے۔
کلائنٹ سائیڈ پر ڈیپلائے منٹ ایرر کے ذمہ دار صرف ہم ہوتے ہیں۔ ٹیسٹنگ ٹیم بیچاری کو تو ان ایررز کا پتا ہی نہیں ہوتا۔ لہذا ہمارے کام کی کوالٹی پر سوال اٹھائیے۔
کون سی بلڈ کمرشل ہے یہ ہم سے کبھی نہ پوچھیں۔ بلکہ جو دل کر ے اٹھا کر اپلوڈ کر دیں۔ اس سے ہمیں دلی خوشی ہوگی۔
جب بلڈ سے متعلق کوئی چیز پوچھنی ہو تو اس کا نام یاد نہ رکھیں۔ بار بار یہی کہتے رہیں کہ وہ کیا بات تھی جو میں نے پوچھنی تھی۔
بلڈ جب بھی فیل ہوجائے کبھی لاگ نہ پڑھیں۔ ہم سے آکر پوچھ لیں۔ ہم بغیر لاگ فائل پڑھے سب جانتے ہوتے ہیں۔
جب آپ کے پاس کسی دوسری ٹیم کا پراجیکٹ کمپائل نہ ہو تواس ٹیم سے رابطہ کرنے کی بجائے فوراً ہمیں بتائیں۔ ہمیں تمام ٹیمز کے پراجیکٹس اور ان کی کمپائلیشن (Compilation)سے متعلق چیزیں ازبر ہوتی ہیں۔
جب آپ ہمیں بتائیں کہ بلڈ فیل ہو رہی ہے تو کبھی یہ نہ بتائیں کہ آپ نے کوڈ میں کیا چینجز کی ہیں۔ بلکہ یہی کہتے رہیں کہ کل تک تو چل رہا تھا اور میرے پاس تو اب بھی کمپائل ہو رہا ہے۔
جب بھی کوئی فائل پراجیکٹ میں ایڈ یا ڈیلیٹ کریں تو ہمیں بتانے کی کوئی ضرورت نہیں ہے۔ ہمیں ہزاروں فائلز اور ان کا انسٹالر کے اندر ڈیسٹینیش(Destination) لوکیشن از خود پتا چل جاتی ہے۔ اور یہ بھی پتا ہوتا ہے کہ آج آپ کس فائل کو ڈیلیٹ کرنے والے ہیں۔
جب بھی پروڈکٹ میں کوئی نیا پراجیکٹ ایڈ کریں تو کبھی اس کا بلڈ آرڈر نہ بتائیں۔ ہم نام دیکھ کر سمجھ جاتے ہیں کہ یہ کب اور کس کے بعد یا کس سے پہلے کمپائل ہوگا۔
جب آپ کو بلڈ فیل ہونے کی لاگ فائلز ای میل میں ملیں تو ان کو الگ فولڈر میں منتقل کر دیں یا ڈیلیٹ کریں۔ بلڈ سسٹم کبھی شغلاً بھی ایسی ای میلز کر دیتا ہے۔
جب ہم کبھی چھٹی پر ہوں تو فوراً کمرشل پیچ (Patch)یا ہاٹ فکس (HotFix)پلان کر لیں۔ کیوں کہ ہم خود کام کرنے کی بجائے فون پر دوسروں کو زیادہ بہتر طریقے سے کام کروا سکتے ہیں۔
بلڈ سسٹم ہمیشہ انٹیلجنٹ ہوتا ہے۔ آپ نئے پراجیکٹ ایڈ کر دیں وہ خود بخود ان کو انسٹالر میں شامل کر کے ان کی کام(COM) اور ڈی کام (DCOM)کی سیٹنگز بھی کر دے گا۔ کسی کو اس بارے میں بتانے کی ضرورت نہیں ہوتی۔
جب کوئی بلڈ ایمر جنسی میں چاہیے ہو تو اس کے لیے ساری مینجمنٹ ای میل میں ڈال دیں۔ اس سے بلڈ سسٹم تیز کمپائل کر دیتا ہے۔
جب ڈیپلائمنٹ(Deployment) کے بعد آپ کے ورک فلوز فیل ہوجائیں تو ہمیں ای میل کر دیا کریں۔ انسٹالر کبھی آدھی فائلز بھی ڈیپلائے کر دیتا ہے۔
کبھی ان انسٹالیشن فیل ہوجائے تو ہمیں بلا لیا کریں۔ ہمیں ساری رجسٹری اینٹریز زبانی یاد ہوتی ہیں۔ اور مینوئل ان انسٹالیشن میں ہم کو ملکہ حاصل ہوتا ہے۔
اگر کبھی آپ کے این یو گیٹ(NUGet) سرورز کام نہ کر رہے ہوں تو ہمیں بتا دیا کریں۔ بعض دفعہ ہم نے نیٹ ورک کیبل پر پاؤں رکھا ہوتا ہے۔
ہم ڈی ایل ایل(DLL) یا ایگزی(EXE) کا نام دیکھ کر سمجھ جاتے ہیں کہ اس کی ڈیپن ڈینسی کیا ہوگی۔ اس معاملے میں آپ ہمیں کوئی معلومات نہ دیا کریں۔ بہت ہوا تو صرف یہ بتا دیا کریں کہ کچھ ری ڈسٹری بیوٹ ایبلز چاہیے ہوں گے۔ اس سے ہمارے اندر علم حاصل کرنے کی پیاس بڑھے گی۔
جب ہم آپ کو کہیں کہ ہم بلڈ میں آنے والے مسئلے دیکھ رہے ہیں تو فوراً برا سا منہ بنا کر کہیے کہ کیا صرف دیکھو گے ۔ فکس نہیں کرو گے۔ اس سے ہماری اخلاقی ہمت اور بندھے گی۔
اگر آپ دن کو کوئی نیا پراجیکٹ یا فائل بلڈ سسٹم میں اینٹر کروانا بھول جائیں تو ہمیں آدھی رات کو جگا دیں۔یوں بھی دن سارا دفتر میں سوئے رہنے کے بعد ہم رات کو محلے کی چوکیداری کرتے ہیں۔
نائٹلی(Nightly) بلڈز ہمارے حکم کی غلام ہوتی ہیں۔ ہم جب چاہے انہیں بنا بگاڑ سکتے ہیں۔ لہذا ان کو ری کمپائل کر کے پروڈکٹ دوبارہ دینے میں ہمیں پندرہ منٹ نہیں لگتے۔ یہ آٹھ دس گھنٹے والی باتیں سب ہوائی ہیں۔
پروجیکٹس میں تھرڈ پارٹی کمپونینٹ(Component) بدلتے وقت ہمیں بتانے کی ضرورت نہیں ہوتی۔ بلڈ سسٹم پر ہر طرح کے تھرڈ پارٹی کمپونینٹس ہر وقت میسر ہوتے ہیں۔
جب بلڈ ایک بار فیل ہوجائے تو بنا کوڈ چھیڑے دوبارہ بلڈ چلا دیں۔ بعض دفعہ بلڈ سسٹم دوبارہ کمانڈ دینے پر ایرر خود ہی فکس کر دیتا ہے۔
جب کبھی ورژن کنڑول سسٹم میں کسی برانچ پر رائٹس کے لیے ای میل کریں کبھی برانچ کا نام نہ لکھیں۔ ہمیں ازخود پتا ہوتا ہے کہ آپ آج کل کس برانچ پر کام کر رہے ہیں۔
پروڈکٹ آرکیٹیکٹس کی دی گئی گائیڈ لائنز کو کبھی بھول کر بھی ہاتھ نہ لگائیے۔ یہ صرف انٹرن و نومولود ڈویلپرز کے لیے ہوتی ہیں۔
اگر کسی اور کا کوڈ آپ کے کام میں مداخلت کر رہا ہو۔ تو اس کو کمنٹ کر دیں۔ ہم بلڈ سسٹم پر از خود ایسا کوڈ ڈٹیکٹ کر کے ان کمنٹ کرنے کی صلاحیت رکھتے ہیں۔
" جب ہم آپ کو کسی تکنیکی تفصیل "جیسے انسٹالر کا مختلف آپریٹنگ سسٹمز پر برتاؤ"سے آگاہ کریں تو فوراً جماہی لے کر کہیے "یار یہ سب بکواس ہے۔ مجھے ککھ پلے نہیں پڑ رہا"۔ ہم آپ کو کیسے بتائیں کہ ہماری محنت کو جب بکواس کہا جائے تو ہمیں کتنی دلی خوشی ہوتی ہے۔"
جب کسی پراجیکٹ میں ریفرنس ایڈ کرنا ہو تو ہمیں حکم دیجیے۔ مائیکرو سافٹ کمپنی کا حکم ہے کہ اتنا مشکل کام صرف وہی افراد کر سکتے ہیں جن کے پاس کوڈنگ سٹینڈرڈز کے مضمون میں پی ایچ ڈی کی ڈگری ہو۔
جب انسٹالر میں کوئی ڈویلپمنٹ کرنی ہو تو یوزر (User)سٹوری میں انسٹالر اپگریڈ لکھ کر ہمیں اسائن کر دیجیے۔ ہمیں از خود پتا ہوتا ہے کہ کیا اپگریڈ کرنا ہے۔
نیٹ ورک میں کوئی مسئلہ ہو تو ہمیں بتا دیجیے۔ ہم لوگ پارٹ ٹائم نیٹ ورک کا کام بھی کرتے ہیں۔
جب کوئی پیچ (Patch)ڈیپلائے کرنا ہو تو کبھی اس کے ساتھ دی گئی گائیڈ لائن نہ پڑھیں۔ اور کوئی بھی ایرر آنے پر ہمیں ای میل کر دیں۔ اس کو ڈیپلائے کرنے کے ضروری نکات ہم آپ کو اس ای میل میں بتا دیں گے۔
کسی بھی قسم کا ایرر آنے پر اس کی تفصیلات نہ لکھیں۔ بلکہ لکھ دیں انسٹالر ایرر۔ ہمیں پتا ہوتا ہے کہ کس وقت کس طرح کا ایرر آتا ہے اور اس کو فکس کرنے کی صلاحیت قدرتی طور پر ہمارے اندر ہوتی ہے۔
اگر کبھی آپ نے ورژننگ (Versioning) پر کوئی چھوٹا موٹا بلاگ پڑھ لیا ہے تو ظاہر ہے اس کے سامنے ہماری ساری علمی قابلیت اور تجربہ ہیچ ہے۔
کلائنٹ سائیڈ پر ڈیپلائے منٹ ایرر کے ذمہ دار صرف ہم ہوتے ہیں۔ ٹیسٹنگ ٹیم بیچاری کو تو ان ایررز کا پتا ہی نہیں ہوتا۔ لہذا ہمارے کام کی کوالٹی پر سوال اٹھائیے۔
کون سی بلڈ کمرشل ہے یہ ہم سے کبھی نہ پوچھیں۔ بلکہ جو دل کر ے اٹھا کر اپلوڈ کر دیں۔ اس سے ہمیں دلی خوشی ہوگی۔
جب بلڈ سے متعلق کوئی چیز پوچھنی ہو تو اس کا نام یاد نہ رکھیں۔ بار بار یہی کہتے رہیں کہ وہ کیا بات تھی جو میں نے پوچھنی تھی۔