حجت جعفری
حجت جعفری
خواندن ۶ دقیقه·۱۴ روز پیش

آیا دستیار‌ان برنامه نویسی هوش مصنوعی واقعا مفیدند؟

شرکت تجزیه و تحلیل کد هنگام اندازه گیری معیارهای کلیدی برنامه نویسی، هیچ مزیت عمده‌ای در استفاده از ابزار توسعه هوش مصنوعی نمی‌بیند، اگرچه دیگران از سودمندی روز افزون استفاده از کمک برنامه‌نویس‌ها با تاکید روی بازبینی کد (Code Review) گزارش می‌دهند.

دستیاران برنامه‌نویسی یکی از موارد استفاده اولیه و بدیهی در عصر جویندگان طلای هوش مصنوعی مولد بوده‌اند، اما بهبود بهره‌وری وعده‌ داده شده محقق نشده است، اگر اصلاً وجود داشته باشد.

بسیاری از توسعه‌دهندگان می‌گویند دستیاران کدنویسی هوش مصنوعی باعث افزایش بهره‌وری آن‌ها می‌شود، اما اخیرا مطالعه‌ای برای اندازه‌گیری خروجی آن‌ها انجام شده که هیچ افزایش قابل توجهی را نشان نمی‌دهد. طبق این مطالعه شرکت Uplevel که یک ارائه دهنده تحلیل و بینش‌ از داده‌های همکاری و کدنویسی است، استفاده از GitHub Copilot همچنین باعث افزایش ۴۱ درصدی خطاها شد.

در این مطالعه، زمان چرخه درخواست ادغام (PR) یا زمان ادغام کد در یک مخزن و توان عملیاتی PR، یعنی تعداد درخواست‌های ادغام شده، اندازه‌گیری شد.در نهایت هیچ بهبود قابل توجهی برای توسعه‌دهندگان استفاده‌کننده از Copilot پیدا نشد.
شرکت Uplevel با استفاده از داده‌های تولید شده توسط مشتریان خود، خروجی حدود ۸۰۰ توسعه‌دهنده که از GitHub Copilot در طول یک دوره سه ماهه استفاده می‌کردند را با خروجی آن‌ها در یک دوره سه ماهه قبل از پذیرش، مقایسه کرد.

اندازه‌گیری فرسودگی شغلی

علاوه بر اندازه‌گیری بهره‌وری، مطالعه Uplevel به عوامل مربوط به فرسودگی شغلی توسعه‌دهندگان نیز پرداخت و دریافت که GitHub Copilot در این زمینه نیز کمکی نکرده است. میزان زمان کاری صرف شده خارج از ساعات استاندارد برای هر دو گروه کنترل و گروه آزمایشی استفاده‌کننده از ابزار کدنویسی کاهش یافت، اما این کاهش برای توسعه‌دهندگانی که از Copilot استفاده نمی‌کردند بیشتر بود.

به گفته مت هافمن (Matt Hoffman)، مدیر محصول و تحلیلگر داده این شرکت، مطالعه‌ی Uplevel ناشی از کنجکاوی در مورد ادعاهای افزایش قابل توجه بهره‌وری با فراگیر شدن دستیاران کدنویسی هوش مصنوعی انجام شد. یک نظرسنجی GitHub که در ماه اوت منتشر شد نشان داد که ۹۷ درصد از مهندسان نرم‌افزار، توسعه‌دهندگان و برنامه‌نویسان گزارش کردند که از دستیاران کدنویسی هوش مصنوعی استفاده می‌کنند.

او گفت: ما مطالعات مختلفی از افرادی دیده‌ایم که می‌گویند: "این واقعا برای بهره‌وری ما بسیار مفید است." ما همچنین شاهد برخی افراد بوده‌ایم که می‌گویند: "می‌دونی چیه؟ من مجبورم بیشتر به عنوان یک بازبین کد (Code Reviewer) عمل کنم."

نماینده GitHub Copilot نظری در مورد این مطالعه نداشت، اما به یک مطالعه اخیر اشاره کرد که نشان می‌داد توسعه‌دهندگان توانستند با استفاده از دستیار کدنویسی ۵۵ درصد سریع‌تر کد بنویسند.

هافمن گفت: تیم Uplevel نیز انتظار داشت که شاهد برخی افزایش‌های بهره‌وری باشد. فرضیه تیم ما این بود که فکر می‌کردیم زمان چرخه PR کاهش خواهد یافت. ما فکر می‌کردیم که آن‌ها می‌توانند کد بیشتری بنویسند و در واقع فکر می‌کردیم که نرخ ایرادها ممکن است کاهش یابد زیرا از این ابزارهای هوش مصنوعی مولد برای کمک به بررسی کد خود قبل از انتشار آن استفاده می‌کنید.

هافمن اذعان می‌کند که ممکن است روش‌های بیشتری نسبت به زمان چرخه PR یا توان عملیاتی PR برای اندازه‌گیری بهره‌وری توسعه‌دهندگان وجود داشته باشد، اما Uplevel این سنجه‌ها را به عنوان معیاری محکم برای اندازه گیری خروجی توسعه‌دهندگان در نظر می‌گیرد.

شاید آینده نزدیک

علاوه بر این، Uplevel پیشنهاد نمی‌کند که سازمان‌ها استفاده از دستیاران کدنویسی را متوقف کنند، زیرا این ابزارها به سرعت در حال پیشرفت هستند.

هافمن می‌افزاید: ما شنیده‌ایم که در نهایت مردم بیش از گذشته به عنوان بازبین کد عمل خواهند کرد و ممکن است شما اعتماد نادرستی داشته باشید که این کد همان کاری را انجام می‌دهد که انتظار دارید. شما فقط باید به دقت آنچه را که تولید می‌شود بررسی کنید؛ آیا کاری را انجام می‌دهد که انتظار دارید انجام دهد؟

ایوان گخت(Ivan Gekht)، مدیرعامل شرکت توسعه نرم‌افزار سفارشی Gehtsoft USA می‌گوید که توسعه‌دهندگان این شرکت افزایش قابل توجهی در بهره‌وری با دستیاران کدنویسی مبتنی بر مدل‌های زبانی بزرگ (LLM) مشاهده نکرده‌اند. Gehtsoft دستیاران کدنویسی را در محیط‌های آزمایشی امتحان کرده است اما هنوز از آن‌ها در پروژه‌های مشتری استفاده نکرده است.

ایوان گخت می‌گوید: درک و اشکال‌زدایی کد تولید شده توسط هوش مصنوعی به طور فزاینده‌ای چالش‌برانگیزتر می‌شود و عیب‌یابی آنقدر پرهزینه می‌شود که بازنویسی کامل کد از ابتدا ساده‌تر از رفع عیب آن است.

او می‌گوید: استفاده از LLMها برای بهبود بهره‌وری مستلزم آن است که هم LLM از نظر توانایی‌ها با یک انسان واقعی رقابت کند و هم کاربر واقعی بداند که چگونه از LLM به کارآمدترین حالت استفاده کند. LLM دارای تفکر انتقادی، خودآگاهی یا توانایی تفکر نیست.

گخت می‌افزاید: نوشتن چند خط کد و توسعه کامل یک نرم‌افزار با هم تفاوت دارند. کدنویسی مانند نوشتن یک جمله است، در حالی که توسعه مانند نوشتن یک رمان است.

او می‌افزاید: توسعه نرم‌افزار ۹۰ درصد عملکرد مغز است یعنی درک نیازمندی‌ها، طراحی سیستم و در نظر گرفتن محدودیت‌ها و قیود. تبدیل تمام این دانش و درک به کد واقعی بخش ساده‌ای از کار است.

مانند مطالعه Uplevel، گخت نیز شاهد وارد شدن خطاها در کد توسط دستیاران هوش مصنوعی است. وقتی که قسمت‌های مختلف کد با استفاده از درخواست‌های مختلف توسعه می‌یابد، با هر بار تکرار جدید، سازگاری (consistency) کد تولید شده توسط هوش مصنوعی با قسمت‌های دیگر کمتر می‌شود.

او می‌گوید: درک و اشکال‌زدایی کد تولید شده توسط هوش مصنوعی به طور فزاینده‌ای چالش‌برانگیزتر می‌شود و عیب‌یابی آنقدر پرهزینه می‌شود که بازنویسی کامل کد از ابتدا ساده‌تر از رفع آن است.

بارقه‌های امید

تجربه دستیار کدنویسی در Innovative Solutions که یک ارائه دهنده خدمات ابری است بسیار متفاوت بوده. تراویس رهل (Travis Rehl) مدیر ارشد فناوری این شرکت می‌گوید که این شرکت شاهد افزایش قابل توجه بهره‌وری با استفاده از دستیاران کدنویسی مانند Claude Dev و GitHub Copilot بوده است. این شرکت همچنین از یک وصله داخلی Claude AI Anthropic برای نظارت بر درخواست‌های ادغام و تأیید کیفیت کد استفاده می‌کند.

رهل می‌گوید که بر اساس سرعت تکمیل تیکت‌های توسعه‌دهنده، زمان چرخش تحویل به مشتری و کیفیت تیکت‌ها که با تعداد اشکالات موجود در کد اندازه‌گیری می‌شود، بهره‌وری توسعه‌دهندگان دو تا سه برابر افزایش یافته است.

او می‌گوید: تیم او اخیراً یک پروژه مشتری را در ۲۴ ساعت با استفاده از دستیاران کدنویسی تکمیل کرده است، در حالی که انجام همان پروژه در گذشته حدود 30 روز طول می‌کشید.

با این حال، رهل می‌گوید که برخی از هیاهوها در مورد دستیاران کدنویسی (نظراتی مثل اینکه آن‌ها به جای تکمیل یا تغییر شکل دادن به تیم‌های توسعه، جایگزین کل تیم‌های توسعه خواهند شد) غیر واقعی است. او می‌افزاید که دستیاران کدنویسی می‌توانند برای جایگزینی سریع کد یا بهینه‌سازی مسیرهای کد با بازسازی بخش‌هایی از کد استفاده شوند.

او می‌گوید: "انتظارات در مورد دستیاران کدنویسی باید تعدیل شود زیرا آن‌ها در تلاش اول تمام کد یا حتی تمام کد صحیح را نخواهند نوشت. این یک فرآیند تکراری است که در صورت استفاده صحیح، به توسعه‌دهنده اجازه می‌دهد سرعت کدنویسی خود را دو یا سه برابر افزایش دهد.

نظر شما چیست؟

آیا موافقید؟ یا مخالف؟ آیا از این دستیارها استفاده کرده‌اید؟ چقدر فکر می‌کنید روی بهره‌وری شما موثر بوده؟

منابع:

https://www.cio.com/article/3540579/devs-gaining-little-if-anything-from-ai-coding-assistants.html
https://resources.uplevelteam.com/gen-ai-for-coding
https://uplevelteam.com/blog/why-dora-metrics-are-only-part-of-the-equation

هوش مصنوعیبرنامه نویسینرم افزارتوسعه دهنده
کسی که می خواهد برنامه نویس بماند، برنامه نویس شرکت فن افزار، بازی ساز، گرشاسپ راز اژدها، شمشیر تاریکی...
شاید از این پست‌ها خوشتان بیاید