💡💡 قسمت دوم: استفاده از GenAI در توسعه نرمافزار، خوب، بد، زشت!
💡💡 قسمت دوم: استفاده از GenAI در توسعه نرمافزار، خوب، بد، زشت!
🥴 فصل دوم: The Ugly: تبعات طولانیمدت
اگر "بد" نمایانگر اصطکاک عملیاتیه، "زشت" نمایانگر ریسک سیستمیه. دادههای سالهای ۲۰۲۴ و ۲۰۲۵ به بحرانی قریبالوقوع در قابلیت نگهداری و امنیت نرمافزار اشاره میکنن...
جنبهی «زشت» ماجرا اینه که نتیجهی نهایی استفاده از هوش مصنوعی مولد بهشدت وابسته به بلوغ فنی و انضباط تیمه. اگر تیمی فرهنگ کدنویسی سالم، معیارهای کیفی و فرایندهای بازبینی روشن نداشته باشه، برای استفاده از GenAI دستورالعمل «فکر شده» و متناسب با نیازها و استعداد تیم نداشته باشه؛ AI میتونه هرجومرج ایجاد کنه یا هرجومرج موجود رو تشدید کنه. توی برخی نظرسنجیها دیده شده که کارکنان احساس کردن بهرهوریشون با وجود هوش مصنوعی کاهش یافته!
بدهی فنی که قابل پرداخت نیست
پروفسور Armando Solar-Lezama استاد دانشگاه MIT میگه: "AI مثل یه کارت اعتباری جدیده که به ما اجازه میده بدهی فنی رو به روشهایی انباشته کنیم که هرگز قبلاً نتونسته بودیم."
مطالعه دانشگاه Carnegie Mellon روی ۸۰۷ ریپو GitHub که بین ژانویه ۲۰۲۴ تا مارچ ۲۰۲۵ که از Cursor استفاده کرده بودن، نشون میده که با وجود بهبودهای مدلهای AI (Sonnet، GPT و غیره)، الگوی کاهش کیفیت کد همچنان ادامه داره. حتی با ارتقای ابزارها، کیفیت کد مسیر خودش رو به سمت افول طی میکنه! دلایلی مثل زمان صرف زیاد برای آزمونوخطا با ابزار یا رفع خطاهای ناشی از اون رو میشه در نظر گرفت؛ و تفاوت نتایج بین شرکتهای مختلف (از افزایش کارامدی تا معضلات عمیق) نشون میده که صرف خریداری یا فعالسازی ابزار یا سرویس هوشمصنوعی تضمینی برای موفقیت نیست.
- نابودی دانش تیمی: باز هم مطالعات نشون میدن در ۱۶.۸٪ از چتهای ChatGPT، کد تولید شده به صورت دقیق (با تغییرات جزئی) توی پروژههای GitHub استفاده شدن. مشکل اینجاست: وقتی توسعهدهندهها کد AI رو بدون درک عمیق copy میکنن، expertise model توی تیم توسعه آسیب میبینه و Truck Factor (تعداد اعضای تیم که از دست دادنشون پروژه را میتونه نابود کنه، گاهی هم bus factor گفته میشه) بدتر میشه.
- معضل Context Collapse در آینده: اگه کدهایی که مدلهای آینده از روی اونها train میشن، پیچیدهتر و غیرقابل نگهداریتر بشه، خطر واقعی اینه که مدلهای جدیدتر این روندها رو به صورت نمایی تقویت و تشدید میکنن و کد بدتری تولید خواهند کرد؛ دلیلش هم اینه که از روی کدهای شلوغ و بیکیفیتی آموزش دیدهاند.
- مشارکتکننده دورهگرد: کدهای تولید شده توسط هوش مصنوعی شبیه کار یک پیمانکار کوتاهمدته: از نظر عملکردی در انزوا، صحیح، اما منفک از قراردادها و معماری سیستم کلی! این منجر به تکهتکه شدن (Fragmentation) سبک و منطق کد میشه.
- پارادوکس بهرهوری مهندسی: ترکیب "خوب" (سرعت) و "زشت" (ریزش/کیفیت) منجر به شکلگیری "پارادوکس بهرهوری مهندسی" شده. سازمانها شاهد افزایش چشمگیر خروجی (پولریکوئستها، ویژگیها) هستن، اما همزمان کاهش پایداری و افزایش هزینههای نگهداری رو تجربه میکنن. گزارش سال ۲۰۲۵ DORA از گوگل نشون داد که افزایش ۹۰ درصدی در پذیرش هوش مصنوعی با افزایش ۹ درصدی نرخ باگ و افزایش ۹۱ درصدی زمان بازبینی کد همبستگی داره (بدتر از گزارش DORA در سال ۲۰۲۴ که پیشتر در بخش افزایش باگ و کاهش پایداری قسمت اول اشاره کردم). زمان صرفهجویی شده در تایپ کردن کد، عملاً به مرحله بازبینی و دیباگ منتقل شده؛ با این تفاوت که هزینه این مرحله بالاتره، چون خوندن کد تولید شده سختتر از نوشتنشه.
- انباشت بدهی فنی: انباشت کدهای ضعیف ساختاری، که با پیچیدگی بالا (Cyclomatic Complexity) و تکرار زیاد مشخص میشن؛ بدهیای ایجاد میکنه که باید با بهره پرداخت بشه. Forrester پیشبینی میکنه که سال ۲۰۲۶، ۷۵٪ از شرکتها به دلیل تولید کد کنترلنشدهی هوش مصنوعی، با بدهی فنی "متوسط تا شدید" مواجه خواهند شد.
💬 قسمت بعدی از بخش دارک ماجرا خارج خواهیم شد و به بخش «خوب 👌» خواهم پرداخت ولی نظر و تجربه شما رو دوست دارم بدونم...