هوش مصنوعی ممکن است هنوز همه مشاغل را بهطور کامل تغییر نداده باشد، اما بر توسعهدهندگان تأثیر قابلتوجهی دارد.

مایکروسافت آیندهای را به تصویر میکشد که در آن هوش مصنوعی تمام موارد روی رایانهٔ شما را کنترل میکند و عوامل هوش مصنوعی بهصورت پسزمینه برای شما کار میکنند. اما پیش از آنکه شرکت به این هدف برسد، باید ابزارهایی بسازد تا این سیستمها بهدرستی کار کنند و توسعهدهندگان خود را قانع کند که هوش مصنوعی واقعاً توانایی تحقق این وعدههای بزرگ را دارد.
مدیر عامل مایکروسافت ساتیا نادلا اوایل سال جاری فاش کرد که تا ۳۰ درصد از کد «برخی از پروژههای ما» توسط هوش مصنوعی نوشته میشود و از آن زمان مشتاق بودهام دقیقاً بدانم توسعهدهندگان مایکروسافت چگونه از این فناوری بهره میگیرند. من با منابع و مدیران شرکت گفتگو کردهام تا تصویری واضحتر از استفادهٔ هوش مصنوعی توسط توسعهدهندگان مایکروسافت به دست آورم. برخی کارمندان به من گفتند که نسبت به توانایی عوامل هوش مصنوعی برای جایگزینی کامل کارهای انسانی شک دارند و این امر باعث میشود توسعهدهندگان مجبور به رفع خطاهای ناشی از عوامل خودکار شوند.
وقتی از شرکت درخواست جزئیات بیشتری میکنم، مایکروسافت موفقیتهای اولیه خود در بهکارگیری هوش مصنوعی بهصورت داخلی را برجسته میکند.
“ما میخواهیم بهدقت بهجایی که توسعهدهندگان با کارهای طاقتفرسا مواجه هستند و جایی که ناکارآمدی وجود دارد، نگاه کنیم”، میگوید آماندا سیلور، معاون ارشد در تیم CoreAI مایکروسافت که مسئول محصول پلتفرم برنامهها و عوامل شرکت است، در مصاحبهای با نوتپد. “بخشی از آنچه که ما بررسی میکنیم، هم نحوه بکارگیری هوش مصنوعی و هم محل بکارگیری آن است.”
بیش از ۱۰۰٬۰۰۰ مخزن کد در مایکروسافت وجود دارد، از پروژههای نوپا تا پایگاههای کدهای قدیمی که بیش از ۲۰ سال قدمت دارند و همچنان فعال هستند. “تقریباً هر زبان برنامهنویسی، معماری و مرحلهٔ چرخه حیات که میتوانید تصور کنید، در اختیار داریم و این واقعاً بسیاری از مشتریان ما را بازتاب میدهد”، میگوید سیلور. این حجم عظیم کدها فرصت زیادی برای هوش مصنوعی فراهم میکند، بهویژه که مایکروسافت بهجای تکمیل ساده کد، خودکارسازی بیشتری با عوامل هوش مصنوعی دنبال میکند.
در ماه مه، مایکروسافت یک عامل برنامهنویسی را مستقیماً در GitHub Copilot ادغام کرد تا توسعهدهندگان بتوانند کارهای موردنظر خود را به آن واگذار کنند. این عامل سپس محیط توسعهای مستقل ایجاد میکند، در پسزمینه اجرا میشود و پیشنویس درخواستهای ترکیبی (pull‑request) را میسازد. “آنچه میبینیم این است که توسعهدهندگان به طور متوسط ۳۰ دقیقه برای کارهای ساده، بیش از نیمروز برای کارهای متوسط و دو هفته برای کارهای پیچیده صرفهجویی میکنند”، میگوید سیلور. توسعهدهندگان مایکروسافت از این ابزار برای وظایف زمانبر و تکراری همچون رفع خطاها و بهبود مستندات برنامهها و سرویسها استفاده میکنند.
مایکروسافت ساعتهای صرفهجوییشده توسط توسعهدهندگان، حوادث جلوگیریشده یا ساعتهای تخمینی صرفهجویی برای وظایف را برای رسیدن به این اعداد بررسی میکند. “علاوه بر این، ما به اقداماتی که توسط قابلیتهای عاملی انجام میشود، مثل تعداد درخواستهای ترکیبی که ایجاد میکند، نگاه میکنیم”، میگوید سیلور.
اندازهگیری تأثیر هوش مصنوعی بر بهرهوری توسعهدهندگان موضوعی است که میشنوم مایکروسافت بهصورت داخلی به آن وسواس دارد، حتی اگر برخی مطالعات نشان دهند که هوش مصنوعی میتواند سرعت توسعهدهندگان باتجربه را کاهش دهد. برخی کارکنان که مایل به حفظ ناشناسی خود هستند، احساس میکنند که مدیران مایکروسافت از فراوانی استفاده توسعهدهندگان از هوش مصنوعی در حال حاضر راضی نیستند. فشار داخلی برای اینکه توسعهدهندگان ابتدا برای همه کارها از هوش مصنوعی استفاده کنند وجود دارد، اما میشنوم که پذیرش این ابزارها همیشه بهصورت طبیعی پیش نمیرود.
“این کار کمی مشارکت آگاهانه میطلبد تا تغییر نگرش بهوجود آید”، سیلور میپذیرد. در حالی که توسعهدهندگان مایکروسافت میتوانستند GitHub Copilot Chat را نادیده بگیرند چون در پنجرهای جدا بود، حالت عاملی و عامل برنامهنویسی مستقیماً در زمینهٔ کاری که توسعهدهندگان انجام میدهند، حضور دارند. “این امر به یک عادت تبدیل میشود و رفتار را تغییر میدهد”، میگوید سیلور.
مایکروسافت اعلام میکند که ۹۱ درصد از تیمهای مهندسی خود از GitHub Copilot استفاده میکنند، اما منابع اطلاعاتی ارائه کردهاند که نشان میدهد در برخی بخشهای شرکت، پذیرش کلی ابزارهای هوش مصنوعی بسیار کمتر است – نزدیک به ۵۱ درصد توسعهدهندگانی که به Stack Overflow اعلام کردهاند اکنون بهطور حرفهای روزانه از ابزارهای هوش مصنوعی استفاده میکنند.
سیلور فهرستی از تیمهایی را که کار خود را با هوش مصنوعی سرعت بخشیدهاند، بیان میکند. تیم Xbox اخیراً از عامل بهروزرسانی برنامه Copilot برای ارتقا سرویس اصلی Xbox از .NET 6 به .NET 8 استفاده کرد. “آنها کاهش ۸۸ درصدی در تلاش مهاجرت دستی مشاهده کردند”، او میگوید، که “ماهها کار را فشردهسازی کرده و در قالب روزها بهدست آوردند”. تیم کشف و کوانتوم مایکروسافت از عامل Copilot برای مهاجرت یک برنامه Java به آخرین نسخه بهره برد و مشابه همان “کاهش در تلاشی که نیاز بود، بهدلیل اینکه عامل هوش مصنوعی بهصورت خودکار APIهای منسوخ را شناسایی، پیشنهاد اصلاحات میکند و آسیبپذیریهای امنیتی را شناسایی مینماید”. عامل “ES Chat” شرکت، که میتواند به سؤالات دربارهٔ سیستمهای مهندسی مایکروسافت پاسخ دهد، برای مهندسان “۴۶ دقیقه در هر تسک نسبت به روشهای جستجوی سنتی صرفهجویی کرده است”. مایکروسافت همچنین از عوامل هوش مصنوعی برای کمک به مهندسان قابلیت اطمینان سایت (SRE) در پاسخ به قطعیهای سیستمها و برنامهها استفاده میکند. در این زمینه، شرکت تا بهحال بیش از “۱۰٬۰۰۰ ساعت زمان عملیاتی” را صرفهجویی کرده است.
تمام این صرفهجوییهای زمانی به این معنی است که کدهای مایکروسافت بهتدریج توسط هوش مصنوعی ساخته میشوند نه صرفاً توسط انسانها، اما سیلور عددی برای مقدار کدهای تولیدشده توسط هوش مصنوعی ارائه نمیدهد. او استدلال میکند که ردیابی همه چیز دشوار است زیرا هوش مصنوعی در تولید کد، فرآیندهای بازبینی، تولید تستها و خطوط لولهٔ استقرار تعبیه شده است. “عوامل واقعاً بهعنوان بخشی اساسی از سیستم مهندسی تبدیل میشوند”، میگوید سیلور. “این یکی از دلایلی است که تعیین دقیق تعداد خطوط کدی که هوش مصنوعی به آنها اضافه میکند، کار دشواری است.” همچنین حس میکنم که تبلیغ عددی که یا بیش از حد بالا یا پایین باشد، میتواند برای تلاشهای بازاریابی مایکروسافت، چه داخلی و چه خارجی، مضر باشد.
با این حال، من درک پیچیدگی این کار را زیر سؤال نمیبرم. یک مهندس انسانی میتواند در حالی که Copilot در ویرایشگر خود در حال اجراست، کد را ارسال کند یا کد تولید شده توسط هوش مصنوعی را کپی‑پیست کند. میتوان گفت هوش مصنوعی در برخی بخشهای خروجی توسعهدهندگان مایکروسافت رایج است. کافی است به مخازن کد Aspire، Typescript Go و چارچوب عامل مایکروسافت (Agent Framework) نگاهی بیندازید تا ببینید Copilot نقش مهمی در هر یک از آنها ایفا میکند.
سیستمهای هوش مصنوعی نیز بینقص نیستند. سیلور میگوید مهندسان کارهای خود را بازبینی میکنند. همچنین یک منبع در مایکروسافت به من اطلاع داد که برخی ابزارها بهآنچه انتظار میرود، نیستند. “چت ES برای من زمان صرفهجویی میکند چون من از آن استفاده نمیکنم”، او به شوخی گفت.
پیشبرد جسورانهٔ مایکروسافت برای استفاده از عوامل هوش مصنوعی در برنامهنویسی برای توسعهدهندگان، برخی از کارمندان داخل شرکت را نسبت به آینده نگران کرده است. من با مهندسانی در بخش CoreAI مایکروسافت گفتگو کردهام که نگران استفاده از عوامل هوش مصنوعی خودکار هستند، بهویژه وقتی که این عوامل پروژههایی را بر عهده میگیرند که معمولاً به توسعهدهندگان جوان اختصاص مییابد. ترس واقعی در صنعت، و حتی در داخل مایکروسافت، وجود دارد که نقشهای توسعهدهندگان جوان در حال ناپدید شدن هستند و مهندسان باتجربه مجبور میشوند خروجی ابزارهای هوش مصنوعی را زیر نظر بگیرند.
با هدف نادلا برای بازنگری اساسی مایکروسافت به شرکتی که بر عوامل هوش مصنوعی تمرکز دارد و کارها را بهدست آنها میسپارد، این همه نشان میدهد که در آینده افراد کمتری در فرآیند کدنویسی حضور خواهند داشت. سیلور بهنظر میرسد با نگرش مثبت این موضوع را میبیند که هوش مصنوعی به سادگی به توسعهدهندگان این امکان را میدهد تا کارهای خستهکننده را بهدستگیری کنند و بهجای آن بر خلاقیت خود تمرکز کنند.
«هیچ توسعهدهندهای وارد این صنعت نشده است زیرا میخواست یک پروژهٔ طولانیمدت نگهداری و مهاجرت کد را بهدست بگیرد»، میگوید سیلور. «آنها میخواهند در لبهٔ پیشرفت باشند، میخواهند خلق کنند، میخواهند نوآوری نمایند. اینها همان چیزهایی هستند که میخواهند به هوش مصنوعی واگذار کنند تا بتوانند به فرآیند خلاقیت بازگردند.»