کوڈ پر غصہ: پروگرامر اور منفی

کوڈ پر غصہ: پروگرامر اور منفی

میں کوڈ کا ایک ٹکڑا دیکھ رہا ہوں۔ یہ میں نے اب تک کا بدترین کوڈ دیکھا ہے۔ ڈیٹا بیس میں صرف ایک ریکارڈ کو اپ ڈیٹ کرنے کے لیے، یہ مجموعہ میں موجود تمام ریکارڈز کو بازیافت کرتا ہے اور پھر ڈیٹا بیس میں موجود ہر ریکارڈ کو اپ ڈیٹ کرنے کی درخواست بھیجتا ہے، یہاں تک کہ وہ بھی جنہیں اپ ڈیٹ کرنے کی ضرورت نہیں ہے۔ نقشہ کا ایک فنکشن ہے جو اس کو دی گئی قدر کو واپس کرتا ہے۔ بظاہر ایک ہی قدر کے ساتھ متغیرات کے لیے مشروط ٹیسٹ ہیں، جن کا نام مختلف انداز میں رکھا گیا ہے (firstName и first_name)۔ ہر اپ ڈیٹ کے لیے، کوڈ ایک مختلف قطار میں ایک پیغام بھیجتا ہے، جسے ایک مختلف سرور لیس فنکشن کے ذریعے ہینڈل کیا جاتا ہے، لیکن جو ایک ہی ڈیٹا بیس میں مختلف مجموعہ کے لیے تمام کام کرتا ہے۔ کیا میں نے ذکر کیا کہ یہ سرور لیس فنکشن کلاؤڈ بیسڈ "سروس پر مبنی فن تعمیر" سے ہے جو ماحول میں 100 سے زیادہ فنکشنز پر مشتمل ہے؟

ایسا کرنا بھی کیسے ممکن تھا؟ میں اپنا چہرہ ڈھانپ لیتا ہوں اور اپنی ہنسی سے بظاہر روتا ہوں۔ میرے ساتھی پوچھتے ہیں کہ کیا ہوا، اور میں اسے رنگوں میں دوبارہ بتاتا ہوں۔ BulkDataImporter.js 2018 کی بدترین کامیابیاں. ہر کوئی میری طرف ہمدردی سے سر ہلاتا ہے اور اتفاق کرتا ہے: وہ ہمارے ساتھ ایسا کیسے کر سکتے ہیں؟

منفیت: پروگرامر کلچر میں ایک جذباتی ٹول

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

کوڈ پر غصہ: پروگرامر اور منفی

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

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

کوڈ پر غصہ: پروگرامر اور منفی

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

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

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

  • "اس ماڈیول میں بہت ساری منطقی تضادات ہیں، یہ نمایاں کارکردگی کی اصلاح کے لیے ایک اچھا امیدوار ہے۔"
  • "یہ ماڈیول بہت خراب ہے، ہمیں اسے ری ایکٹر کرنے کی ضرورت ہے۔"
  • "یہ ماڈیول کوئی معنی نہیں رکھتا، اسے دوبارہ لکھنے کی ضرورت ہے۔"
  • "یہ ماڈیول بیکار ہے، اسے پیچ کرنے کی ضرورت ہے۔"
  • "یہ رام کا ایک ٹکڑا ہے، ماڈیول نہیں، اسے لکھنے کی بالکل ضرورت نہیں تھی، اس کا مصنف کیا سوچ رہا تھا۔"

ویسے، یہ "جذباتی ریلیز" ہے جس کی وجہ سے ڈویلپرز کوڈ کو "سیکسی" کہتے ہیں، جو کہ شاذ و نادر ہی منصفانہ ہوتا ہے - جب تک کہ آپ PornHub پر کام نہ کریں۔

مسئلہ یہ ہے کہ لوگ عجیب، بے چین، جذباتی مخلوق ہیں، اور کسی بھی جذبات کا ادراک اور اظہار ہمیں بدل دیتا ہے: پہلے تو باریک بینی سے، لیکن وقت کے ساتھ، ڈرامائی طور پر۔

منفی کی ایک پریشان کن پھسلن ڈھلوان

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

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

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

کوڈ پر غصہ: پروگرامر اور منفی

منفی طریقے

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

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

کوڈ پر غصہ: پروگرامر اور منفی

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

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

حقیقت شاید ان دونوں انتہاؤں کے درمیان کہیں ہے۔

کچھ کمپنیاں انتہائی منفی، انسولر، مضبوط خواہش مند ثقافتیں بنانے میں انتہائی کامیاب رہی ہیں (جیسے مائیکروسافٹ اس سے پہلے کھو دیا دہائی) - اکثر یہ ایسی کمپنیاں ہوتی ہیں جن کی مصنوعات مارکیٹ میں بالکل فٹ ہوتی ہیں اور جلد از جلد بڑھنے کی ضرورت ہوتی ہے۔ یا کمانڈ اینڈ کنٹرول کے درجہ بندی والی کمپنیاں (Apple in the best years of jobs)، جہاں ہر کوئی وہی کرتا ہے جو انہیں بتایا جاتا ہے۔ تاہم، جدید کاروباری تحقیق (اور عام فہم) یہ بتاتی ہے کہ زیادہ سے زیادہ آسانی، جو کمپنیوں میں اختراعی اور افراد میں اعلیٰ پیداواری صلاحیت کا باعث بنتی ہے، جاری تخلیقی اور طریقہ کار کی سوچ کو سہارا دینے کے لیے تناؤ کی کم سطح کی ضرورت ہوتی ہے۔ اور تخلیقی، بحث پر مبنی کام کرنا انتہائی مشکل ہے اگر آپ مسلسل اس فکر میں رہتے ہیں کہ آپ کے ساتھیوں کو آپ کے کوڈ کی ہر سطر کے بارے میں کیا کہنا پڑے گا۔

منفییت انجینئرنگ پاپ کلچر ہے۔

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

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

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

کوڈ پر غصہ: پروگرامر اور منفی

پروگرامنگ کی دنیا تیزی سے ترقی کر رہی ہے اور اپنے کنٹینر کی حدود کے خلاف زور دے رہی ہے - نان پروگرامنگ کی دنیا (یا پروگرامنگ کی دنیا نان پروگرامنگ کی دنیا کے لیے کنٹینر ہے؟ اچھا سوال)۔

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

میں نے منفی کے بارے میں کیا سیکھا۔

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

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

آخر میں، منفی لفظی طور پر آپ کی صحت کو نقصان پہنچاتا ہے.

کوڈ پر غصہ: پروگرامر اور منفی
میرے خیال میں مسکراہٹوں پر ایک ماسٹر کلاس کی طرح نظر آنا چاہیے۔

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

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

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

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

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

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

بنیادی طور پر، میں مسلسل ایک اہم سبق سیکھ رہا ہوں اور دوبارہ سیکھ رہا ہوں: مسلسل غصے اور درد میں رہنے کے لیے زندگی بہت مختصر ہے۔

کوڈ پر غصہ: پروگرامر اور منفی

ماخذ: www.habr.com

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