💡 استفاده از GenAI در توسعه نرمافزار، خوب، بد، زشت!
💡 استفاده از GenAI در توسعه نرمافزار، خوب، بد، زشت!
چند سالیه که سهم عبارت «AI» لابلای جملات، تیتر اخبار، صحبتهای یومیهی عوام تا متخصصین، شهروند تا دولتمرد، مصرفکننده تا صنعتگر روز به روز بیشتر شده. ترمهایی مثل Vibe Coding یا AI-Driven Development یا AI Slop به دایرهی واژگانمون اضافه شدن. حالا این وسط یه عده سودهای کوتاهمدت میبرن، مثل پکیجفروشها، سرویسهایی که چند تا API رو صدا میکنن و یه سرویس مثلا هوشمند ارائه میکنن؛ و برخی هم بیزنسهای بر پایهی این تحول ایجاد کردن، مثل سازندههای مدلهای پایه، سرویسهای کاربردی مدیریت AI مثل Agent Manager یا Prompt Engineering Platform و… یا اینکه AI رو مثل یک ابزار دیدن و کاربری اون رو «صحیح و اصولی» یاد گرفتن و مرتبا بهروز میشن تا مثل دورانی که اکثریت با محدودیتهای نرمافزارهای دسکتاپ دستوپنجه نرم میکردن و عدهای خیلی زود و به موقع، توسعه مبتنی بر وب رو جایگزین کردن، بتونن از مواهب AI به نفع بهرهوری، خلاقیت، و توسعه پایدار بهره ببرن.
این مطلب رو در چند بخش مینویسم، با توجه به فضای جامعه توسعه نرمافزار، متن رو خیلی مطالعه-محور مینویسم تا مقاومت کمتری نسبت به تحلیل شخصی داشته باشه؛ اول به «بد»، و در ادامه به «زشت» و نهایتا به «خوب» میپردازم:
✅ هوش مصنوعی مولد (GenAI) میتونه بهرهوری رو تا ۵۵٪ افزایش بده، اما اغلب، کدهای ناسازگار و شکننده تولید میکنه که نگهداری اونها دشواره. (sloanreview.mit.edu)
✅ توی تیمهای نوپا، GenAI ضعفهای فنی رو پوشش میدهد اما بدهی فنی ایجاد میکنه و حتی تغییرات کوچکتغییرات رو پرریسک میکنه. (sloanreview.mit.edu)
✅ در شرکتهای بالغ «با شیوههای استاندارد»، GenAI خطاها رو کاهش میده و نوآوری رو تا ۶۴٪ بهبود میده، هرچند نیاز به بررسی انسانی داره. (mckinsey.com)
✅ مطالعات نشون میده ۴۸٪ کدهای GenAI دارای آسیبپذیریهای امنیتی هستن، که البته این یه موضوع بحثبرانگیزه. (secondtalent.com)
💩 فصل اول: The Bad: بدهی فنیای که نمیبینیم
- کد چرخشی (Code Churn): سیگنال خطر: تحقیقات GitClear روی ۲۱۱ میلیون خط کد تغییریافته بین سالهای ۲۰۲۰ تا ۲۰۲۴ نشون میده که Code Churn (درصد کدی که کمتر از دو هفته پس از نوشته شدن اصلاح یا حذف میشه) در سال ۲۰۲۴ دو برابر سال ۲۰۲۱ شده. این یعنی کدی که AI تولید میکنه، اغلب ناقص یا اشتباهه و نیاز به بازنگری سریع داره.
- کپیپیست به جای معماری: در سال ۲۰۲۴، GitClear افزایش ۸ برابری در بلوکهای کد تکراری (۵ خط یا بیشتر) رو ثبت کرده (یعنی ۱۰ برابر بیشتر از دو سال پیشش). مشکل اینجاست که AI به جای refactor کردن و استفاده مجدد از کد موجود، ترجیح میده کد جدید بنویسه. نتیجه؟ نقض اصل (DRY (Don't Repeat Yourself و کدبیسی که مدیریتش کابوسه.
در سال ۲۰۲۴، ۴۶٪ تغییرات کد، خطوط جدید بودند و کد کپیپیست شده، بیش از کد جابجا شده (moved) بوده (یعنی کمتر refactoring شده و بیشتر به صورت بیرویه کد اضافه شده).
- افزایش باگ و کاهش پایداری: مطالعه شرکت Uplevel که توسعهدهندههای با دسترسی به Copilot رو بررسی کرده، نشون میده این دولوپرها به طور معناداری نرخ باگ بالاتری تولید کردن، در حالی که بهرهوری کلیشون ثابت مونده. گزارش DORA 2024 گوگل هم تأیید میکنه: ۲۵٪ افزایش در استفاده از AI منجر به بهبود در code review و مستندات میشه، اما ۷.۲٪ کاهش در پایداری تحویل (delivery stability) ایجاد میکنه. همچنین گزارش Harness 2025 نشون داد اکثر توسعهدهندگان زمان بیشتری صرف debugging کد تولیدشده توسط AI و رفع آسیبپذیریهای امنیتی میکنند.
💬 قبل از پردختن به بخش دوم، یعنی «زشت» و بخش سوم، یعنی «خوب» نظرتون رو در مورد استفاده خوب بگید و بنویسید که آیا این آسیبها رو قبول دارین؟