مصنف: The Pragmatic Engineer
ترجمہ: شن چاؤ ٹیکفلو
شین چاؤ کا خلاصہ: AI کوڈ لکھنے میں تیز ہو رہا ہے، لیکن کوڈ کی جانچ اب بھی انسان کرتے ہیں۔ یہ تناقض ایک بحران میں تبدیل ہو رہا ہے: انجینئرز AI کے ذریعہ تخلیق کردہ PRs سے دب گئے ہیں، یا تو ان کی جانچ کرنے میں تھک گئے ہیں، یا پھر AI کے کوئی خطا نہ دکھانے پر صرف "منظور" کر دیتے ہیں۔ بڑی کمپنیاں اس کا مقابلہ کرنے کے لیے اپنے اپنے ٹولز بنارہی ہیں، لیکن اب تک کسی کے پاس معیاری جواب نہیں ہے۔
ہیلو، میں گرگلی ہوں، یہ Pragmatic Engineer Newsletter کا ایک مفت اضافہ ہے۔ میں ہر ایڈیشن میں بڑی ٹیک کمپنیوں اور اسٹارٹ اپس کے بارے میں تجربہ کار انجینئرز اور انجینئرنگ لیڈرز کے نقطہ نظر سے رپورٹ کرتا ہوں۔ آج ہم The Pulse جریدے کے چار موضوعات میں سے ایک پر بات کر رہے ہیں۔ مکمل سبسکرائب کرنے والوں کو یہ آرٹیکل ایک ہفتہ پہلے موصول ہو چکا ہے۔ اگر یہ ای میل آپ کو فوروارڈ کیا گیا ہے، تو آپ یہاں سبسکرائب کر سکتے ہیں۔
میں نے سنا ہے کہ انجینئرنگ لیڈرز کی سب سے بڑی فکر یہ ہے کہ وہ مستقل طور پر بڑھتے ہوئے کوڈ ریویو کے بوجھ کا مقابلہ کیسے کریں۔ یہ موضوع کچھ عرصہ سے موجود ہے، اور اب اس قسم کی بات چیت مزید زیادہ عام ہوتی جا رہی ہے۔
میرے لیے یہ جنوری 2024 سے شروع ہوا، جب Opus 4.5 اور GPT 5.4 نے زیادہ تر کمپنیوں میں زیادہ بہتر کوڈ لکھنا شروع کر دیا۔ تقریباً اسی وقت سے ڈائریکٹر لیول کے لوگوں نے بات شروع کر دی کہ سافٹ ویئر ڈویلپمنٹ کا瓶颈 کوڈنگ مرحلے سے ریویو مرحلے کی طرف منتقل ہو رہا ہے۔
AI کوڈ ریویو ٹولز کا بھرپور اظہار
فبروری 2024 کے بعد، بڑھتے ہوئے لوڈ کے جواب میں AI کوڈ ریویو ٹولز میں انفجاری اضافہ ہوا ہے، جس میں CodeRabbit، Greptile، Qodo، SonarQube (اب Gitar کے ساتھ) جیسے مخصوص AI کوڈ ریویو ٹولز کے تجربے اور اپنائی میں انفجاری اضافہ ہوا ہے۔ اس کے علاوہ، Claude Code review، Cursor review، GitHub Copilot review جیسے کوڈنگ ٹولز خود بخود فراہم کردہ ٹولز بھی شامل ہیں۔ اس کے علاوہ، وہ ٹولز جو پہلے کوڈ ریویو میں شامل نہیں تھے لیکن کوڈ بیس کے لیے سندھ مہیا کرتے تھے، وہ بھی اس شعبے میں شامل ہو رہے ہیں، جیسے Sentry کے Seer AI reviews، Linear code reviews۔
بڑے کمپنیوں کے اپنے اندر کے ٹولز: یوبر کا کوڈ ان بکس
بڑی کمپنیاں کوڈ ریویو کے تجربے کو بہتر بنانے کے لیے اندرونی ٹولز بنارہی ہیں۔ اوبیر کا کوڈ انباک اس کا ایک مثال ہے:
سمارٹ اسائنمنٹ Code Inbox کا ایک فیچر ہے جو جائزہ لینے کے عمل کو آگے بڑھانے کے لیے استعمال ہوتا ہے:

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

تصویر: کوڈ انباکس کا ریسک پروفائلز فیچر، جو کوڈ میں تبدیلیوں کے خطرے کا اندازہ لگاتا ہے اور اہم نکات پر توجہ مرکوز کرنے کی تجویز کرتا ہے۔ ذریعہ: The Pragmatic Engineer
ہم نے یوبر کے بارے میں رپورٹ کیا تھا کہ وہ AI کا استعمال کیسے کرتا ہے سافٹ ویئر ترقی کے لیے، اور صرف یوبر ہی نہیں: کلاؤڈفلیر (AI Code Reviewer)، فیئر (Fairey)، ہب اسپاٹ (Sidekick) اور بہت ساری دیگر کمپنیاں اپنے کوڈ ریویو پروسیس کو زیادہ بہتر بنانے کے لیے ٹولز تیار کر چکی ہیں، کیونکہ انہوں نے پایا کہ ان کے اندر تیار کردہ حلز، سپلائرز کے حلز سے بہتر کام کرتے ہیں۔
"جائزہ" سے "تصدیق" کی طرف
ایک دوسری طریقہ یہ سوچنا ہے کہ کوڈ کی تصدیق کیسے کی جائے، نہ کہ اس کا جائزہ لیا جائے۔ بولنا آسان ہے، لیکن کرنا مشکل ہے؛ نظریہ طور پر، مکمل ٹیسٹنگ کوڈ کو توقع کے مطابق کام کرنے کی تصدیق کر سکتی ہے۔ لیکن "مکمل" کا کیا مطلب ہے؟ ہم کس قسم کے ٹیسٹز کی بات کر رہے ہیں؟ کیا انٹیگریشن ٹیسٹ اور اینڈ تو اینڈ ٹیسٹز بھی شامل ہیں؟ فاز ٹیسٹنگ؟ فارمل میتھڈز؟ نئے ٹیسٹز کیسے تصدیق کی جائے کہ وہ فنکشنلٹی کو توقع کے مطابق کور کر رہے ہیں؟ ہم ان سب کو مشاہدہ پذیری سے کیسے جوڑ سکتے ہیں؟
زیادہ جانچ پڑتال ہندسہ کاروں کو تھکا رہی ہے
زیادہ تفصیلی کوڈ ریویو کی وجہ سے انجینئرز تھک چکے ہیں اور ریویو کی معیار کم ہو رہا ہے۔ میں نے کئی باتیں سنی ہیں کہ ڈویلپرز دیکھ رہے ہیں کہ دوسرے لوگ کوڈ کا دھیان سے ریویو نہیں کر پا رہے، اگر AI کوڈ ریویو میں کوئی اہم تجاویز نہیں ہیں تو وہ بس اسے منظور کر دیتے ہیں۔ اس کے برعکس، وہ ڈویلپرز جو پہلے کی طرح کوڈ ریویو کے لیے اتنی ہی محنت اور وقت دے رہے ہیں، ان کو AI کے بے حس PRs سے دبایا جا رہا ہے۔
مسئلہ موجود ہے، اور حل ابھی تجرباتی ہے
مسئلہ موجود ہے، لیکن حل کا انداز زیادہ تجرباتی لگتا ہے۔
