ڈویلپرز مریخ سے ہیں، منتظمین زہرہ سے ہیں۔

ڈویلپرز مریخ سے ہیں، منتظمین زہرہ سے ہیں۔

اتفاقات بے ترتیب ہیں، اور واقعی یہ کسی اور سیارے پر تھا...

میں تین کامیابی اور ناکامی کی کہانیاں شیئر کرنا چاہوں گا کہ کس طرح ایک بیک اینڈ ڈویلپر ایڈمنز کے ساتھ ٹیم میں کام کرتا ہے۔

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

+ تمام طاقت آپ کے ہاتھ میں ہے۔
+ سرور تک رسائی کے لئے کسی سے بھیک مانگنے کی ضرورت نہیں ہے۔
+ تمام سمتوں میں تیز ردعمل کا وقت۔
+ مہارت کو اچھی طرح سے بہتر بناتا ہے۔
+ مصنوعات کے فن تعمیر کی مکمل سمجھ حاصل کریں۔

- اعلی ذمہ داری
- پیداوار کو توڑنے کا خطرہ۔
- تمام شعبوں میں ایک اچھا ماہر بننا مشکل ہے۔

کوئی دلچسپی نہیں، آئیے آگے بڑھتے ہیں۔

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

  • پیداوار میں تعیناتی کا اوسط وقت 4-5 گھنٹے ہے۔
  • پیداوار میں زیادہ سے زیادہ تعیناتی کا وقت 9 گھنٹے
  • ایک ڈویلپر کے لیے، پروڈکشن میں ایک ایپلیکیشن بلیک باکس ہے، بالکل پروڈکشن سرور کی طرح۔ کل کتنے ہیں؟
  • ریلیز کا کم معیار، بار بار غلطیاں
  • ڈویلپر رہائی کے عمل میں حصہ نہیں لیتا ہے۔

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

ایکٹ 1۔ منتظم پوشیدہ ہے۔
ریلیز کا دن، ڈویلپر اور ایڈمن بات چیت نہیں کرتے ہیں۔ ایڈمن کے پاس کوئی سوال نہیں ہے۔ لیکن آپ بعد میں سمجھیں گے کیوں؟ ایڈمن ایک اصولی شخص ہے، اس کے میسنجر نہیں ہیں، اپنا فون نمبر کسی کو نہیں دیتے، اور سوشل نیٹ ورکس پر اس کا پروفائل نہیں ہے۔ کہیں اس کی تصویر تک نہیں، کیا لگتے ہو یار؟ ہم ذمہ دار مینیجر کے ساتھ تقریباً 15 منٹ تک گھبراہٹ میں بیٹھے رہتے ہیں، اس وائجر 1 کے ساتھ رابطہ قائم کرنے کی کوشش کرتے ہیں، پھر کارپوریٹ ای میل میں ایک پیغام ظاہر ہوتا ہے جو اس نے ختم کر دیا ہے۔ کیا ہم میل کے ذریعے خط و کتابت کرنے جا رہے ہیں؟ کیوں نہیں؟ آسان، ہے نا؟ ٹھیک ہے، چلو ٹھنڈا کرتے ہیں۔ یہ عمل پہلے ہی جاری ہے، پیچھے ہٹنے کی کوئی صورت نہیں۔ پیغام دوبارہ پڑھیں۔ "میں ختم". تم نے کیا ختم کیا؟ کہاں؟ میں تمہیں کہاں تلاش کروں؟ یہاں آپ سمجھتے ہیں کہ رہائی کے لیے 4 گھنٹے کیوں معمول کی بات ہے۔ ہمیں ترقی کا جھٹکا لگتا ہے، لیکن ہم رہائی کو ختم کرتے ہیں۔ رہائی کی اب کوئی خواہش نہیں ہے۔

ایکٹ 2۔ وہ ورژن نہیں۔
اگلی ریلیز۔ تجربہ حاصل کرنے کے بعد، ہم منتظمین کے لیے سرور کے لیے ضروری سافٹ ویئر اور لائبریریوں کی فہرستیں بنانا شروع کر دیتے ہیں، جو کچھ کے لیے ورژن کی نشاندہی کرتے ہیں۔ ہمیشہ کی طرح، ہمیں ایک کمزور ریڈیو سگنل موصول ہوتا ہے کہ منتظم نے وہاں کچھ ختم کر دیا ہے۔ ریگریشن ٹیسٹ شروع ہوتا ہے، جس میں تقریباً ایک گھنٹہ لگتا ہے۔ ایسا لگتا ہے کہ سب کچھ کام کر رہا ہے، لیکن ایک اہم بگ ہے۔ اہم فعالیت کام نہیں کرتی۔ اگلے چند گھنٹے دف کے ساتھ ناچ رہے تھے، کافی کے میدانوں پر خوش قسمتی بتا رہے تھے، اور کوڈ کے ہر ٹکڑے کا تفصیلی جائزہ لے رہے تھے۔ ایڈمن کا کہنا ہے کہ اس نے سب کچھ کر لیا ہے۔ ٹیڑھی ڈیولپرز کی لکھی ہوئی ایپلیکیشن کام نہیں کرتی لیکن سرور کام کرتا ہے۔ اس کے لیے کوئی سوال؟ ایک گھنٹہ کے اختتام پر، ہم منتظم کو پروڈکشن سرور پر لائبریری کا ورژن چیٹ اور بنگو میں بھیجنے کے لیے حاصل کرتے ہیں - یہ وہ نہیں ہے جس کی ہمیں ضرورت ہے۔ ہم منتظم سے مطلوبہ ورژن انسٹال کرنے کو کہتے ہیں، لیکن جواب میں ہمیں موصول ہوتا ہے کہ OS پیکیج مینیجر میں اس ورژن کی عدم موجودگی کی وجہ سے وہ ایسا نہیں کر سکتا۔ یہاں، اس کی یادداشت کے وقفوں سے، مینیجر کو یاد آیا کہ ایک اور ایڈمن نے اس مسئلے کو پہلے ہی ہاتھ سے مطلوبہ ورژن جمع کر کے حل کر دیا تھا۔ لیکن نہیں، ہمارا ایسا نہیں ہوگا۔ ضابطے منع کرتے ہیں۔ کارل، ہم یہاں کئی گھنٹوں سے بیٹھے ہیں، وقت کی حد کیا ہے؟! ہمیں ایک اور جھٹکا لگا اور کسی نہ کسی طرح ریلیز ختم کر دی۔

ایکٹ 3، مختصر
فوری ٹکٹ، کلیدی فعالیت پیداوار میں صارفین میں سے ایک کے لیے کام نہیں کرتی۔ ہم چند گھنٹے پوک اور چیکنگ میں گزارتے ہیں۔ ترقی کے ماحول میں، سب کچھ کام کرتا ہے. ایک واضح فہم ہے کہ php-fpm لاگز کو دیکھنا اچھا خیال ہوگا۔ اس وقت پروجیکٹ پر ELK یا Prometheus جیسے لاگ سسٹم نہیں تھے۔ ہم ایڈمنسٹریشن ڈیپارٹمنٹ کے لیے ایک ٹکٹ کھولتے ہیں تاکہ وہ سرور پر php-fpm لاگز تک رسائی حاصل کر سکیں۔ یہاں آپ کو یہ سمجھنے کی ضرورت ہے کہ ہم ایک وجہ سے رسائی مانگ رہے ہیں، کیا آپ کو یاد نہیں کہ بلیک ہول اور ایڈمنز 24/7 مصروف رہتے ہیں؟ اگر آپ ان سے لاگز کو خود دیکھنے کو کہتے ہیں، تو یہ "اس زندگی میں نہیں" ترجیح کے ساتھ ایک کام ہے۔ ٹکٹ بنایا گیا تھا، ہمیں انتظامیہ کے شعبہ کے سربراہ کی طرف سے فوری جواب موصول ہوا: "آپ کو پروڈکشن لاگز تک رسائی کی ضرورت نہیں ہے، کیڑے کے بغیر لکھیں۔" ایک پردہ۔

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

تبدیلی۔
یہ سب کچھ کافی عرصے تک برداشت کرنے کے بعد، ٹیم کے ساتھ مل کر ہم نے اس سمت میں آگے بڑھنا شروع کیا جو ہمارے لیے زیادہ کامیاب تھا۔ مختصراً، ہمیں کن مسائل کا سامنا کرنا پڑا؟

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

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

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

PS لوگوں کے ساتھ چیٹ میں ڈویلپرز بمقابلہ ایڈمنز کے بارے میں تھوڑی بات کرنے کے بعد، میں ان لوگوں سے ملا جنہوں نے میرا درد بیان کیا۔ لیکن وہ لوگ بھی تھے جنہوں نے کہا کہ انہیں کبھی بھی ایسی کسی چیز کا سامنا نہیں کرنا پڑا۔ ایک ڈیوپس کانفرنس میں، میں نے Anton Isanin (Alfa Bank) سے پوچھا کہ انہوں نے ایڈمنز کی شکل میں رکاوٹ کے مسئلے سے کیسے نمٹا، جس پر اس نے کہا: "ہم نے انہیں بٹنوں سے بدل دیا۔" ویسے پوڈ کاسٹ اس کی شرکت کے ساتھ. میں یہ ماننا چاہوں گا کہ دشمنوں سے زیادہ اچھے ایڈمنز ہیں۔ اور ہاں، شروع میں تصویر ایک حقیقی خط و کتابت ہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں