من سالار ایزدی هستم؛ یک توسعهدهنده مستقل و سازنده محصول. در سالهای اخیر برای من یک سؤال بیشتر از خودِ تکنولوژی اهمیت پیدا کرده: وقتی ماشینها میتوانند بخشی از کارهایی را که قبلاً ساعتها برایشان کد مینوشتیم انجام دهند، نقش برنامهنویس دقیقاً چه خواهد بود؟
یک تغییر آرام، اما عمیق
من فکر میکنم یکی از بزرگترین تغییرات دنیای نرمافزار، نه با یک زبان برنامهنویسی جدید اتفاق افتاده و نه با یک فریمورک تازه. تغییر اصلی جایی اتفاق افتاده که نرمافزار برای اولین بار دارد بخشی از «تصمیمگیری» را هم به عهده میگیرد.
تا همین چند سال پیش، وقتی میگفتیم یک برنامه بسازیم، ذهنمان تقریباً مستقیم به سمت کدنویسی میرفت: منطق را طراحی میکنیم، API مینویسیم، دیتابیس را متصل میکنیم، رابط کاربری میسازیم و در نهایت کاربر از چیزی که ساختهایم استفاده میکند.
اما حالا یک لایه جدید وارد این رابطه شده است؛ چیزی که فقط منتظر دستور مستقیم ما نیست. میتواند هدف را دریافت کند، وضعیت را بررسی کند، تصمیم بگیرد، ابزار مناسب را انتخاب کند و چند مرحله را برای رسیدن به نتیجه پشت سر بگذارد. این همان جایی است که مفهوم AI Agent برای من جذاب میشود.
«آینده برنامهنویسی فقط درباره نوشتن دستور برای کامپیوتر نیست؛ درباره ساختن سیستمی است که بتواند بخشی از مسیر رسیدن به هدف را خودش طی کند.»
از نوشتن کد تا طراحی رفتار
این تغییر برای یک برنامهنویس فقط به معنی «استفاده از هوش مصنوعی برای کدنویسی» نیست. اگر همه چیز را به تولید کد محدود کنیم، بخش مهم ماجرا را از دست دادهایم.
چیزی که در حال تغییر است، سطحی است که در آن نرمافزار را طراحی میکنیم. قبلاً ممکن بود ساعتها درباره این فکر کنیم که یک تابع دقیقاً چه کاری انجام دهد. حالا در بعضی پروژهها سؤال مهمتر این است که یک Agent چه هدفی دارد، چه ابزارهایی در اختیارش است، چه محدودیتهایی دارد و در چه نقطهای باید تصمیم را به انسان برگرداند.
چیزی که برای من تغییر کرده
قبلاً بیشتر به این فکر میکردم که «چطور این قابلیت را پیاده کنم؟». امروز در کنار آن سؤال، بیشتر میپرسم: «چطور سیستمی بسازم که بتواند این کار را با کمترین دخالت انسانی انجام دهد، اما همچنان قابل اعتماد و قابل کنترل باقی بماند؟»
همین تفاوت کوچک در ظاهر، در عمل میتواند معماری یک محصول را کاملاً تغییر دهد.
AI Agent دقیقاً چه چیزی را تغییر میدهد؟
برای من Agent جذاب است چون صرفاً یک مدل زبانی نیست. مدل میتواند پاسخ بدهد، اما یک Agent میتواند بخشی از یک فرآیند را جلو ببرد. تفاوت همینجاست.
- درک هدف: به جای دریافت صرفاً یک دستور، میتواند هدف بزرگتری را دنبال کند.
- استفاده از ابزار: میتواند بسته به مسئله سراغ API، دیتابیس، فایلها یا سرویسهای دیگر برود.
- تصمیمگیری مرحلهای: یک مسئله را به چند اقدام کوچکتر تبدیل کند و بر اساس نتیجه هر مرحله مسیر بعدی را انتخاب کند.
- حلقه بازخورد: نتیجه اقدامات را ببیند و در صورت نیاز مسیر خود را اصلاح کند.
این یعنی ما کمکم از نرمافزارهایی که فقط «اجرا میشوند» به سمت نرمافزارهایی حرکت میکنیم که در محدوده مشخصی عمل میکنند.
پس برنامهنویس حذف میشود؟
به نظر من نه؛ اما تعریف «برنامهنویس بودن» آرامآرام در حال تغییر است.
بخشی از کارهایی که قبلاً زمان زیادی از توسعهدهنده میگرفتند، حالا میتوانند با کمک AI سریعتر انجام شوند. تولید کدهای تکراری، ساخت نمونه اولیه، نوشتن تستهای اولیه، مستندسازی، جستوجوی راهحلها و حتی بررسی بعضی خطاها دیگر الزاماً نقطه اصلی ارزش یک توسعهدهنده نیستند.
ارزش توسعهدهنده به سمت جایی حرکت میکند که هنوز نیاز به قضاوت انسانی دارد: فهم مسئله، طراحی سیستم، تشخیص اولویت، تصمیمگیری، ساخت تجربه و مسئولیتپذیری در برابر نتیجه.
شاید در آینده کسی که فقط سریعتر کد مینویسد، مزیت چندانی نداشته باشد. اما کسی که بتواند یک مسئله مبهم را به یک سیستم قابل ساخت تبدیل کند، همچنان ارزش بسیار زیادی خواهد داشت.
تجربه ساخت محصول در دنیای AI
وقتی روی محصولی مثل SaliBot کار میکنم، این تغییر را فقط از زاویه یک تکنولوژی جذاب نمیبینم. برای من سؤال اصلی همیشه این است که این تکنولوژی چطور میتواند بخشی از تجربه واقعی کاربر شود.
ساخت یک محصول AI با اضافه کردن یک چتبات به یک سایت تمام نمیشود. وقتی AI قرار است بخشی از محصول باشد، باید به این فکر کرد که کاربر چه چیزی میخواهد، سیستم چه اطلاعاتی در اختیار دارد، چه ابزارهایی میتواند استفاده کند و چطور باید بین آزادی عمل AI و کنترل محصول تعادل برقرار کرد.
اینجاست که نقش سازنده محصول برای من پررنگتر از نقش صرفاً برنامهنویس میشود. کد هنوز پایه کار است؛ اما دیگر تمام داستان نیست.
«AI قرار نیست جای سازنده را بگیرد؛ اما سازندهای که بلد است AI را وارد معماری محصولش کند، میتواند محصولی بسازد که قبلاً با همان منابع امکانپذیر نبود.»
مسئله فقط قدرت نیست؛ مسئله کنترل است
هرچقدر Agentها مستقلتر شوند، سؤالهای سختتری هم به وجود میآیند. اگر یک سیستم بتواند تصمیم بگیرد و اقدام کند، چه کسی مسئول نتیجه است؟ اگر تصمیم اشتباه باشد چه؟ اگر ابزار اشتباهی را انتخاب کند؟ اگر یک فرآیند چندمرحلهای در نقطهای غیرمنتظره قرار بگیرد چه؟
به همین دلیل فکر نمیکنم آینده فقط متعلق به Agentهای قدرتمند باشد. آینده متعلق به Agentهایی است که بتوانیم به آنها اعتماد کنیم.
استقلال
Agent باید بتواند در محدودهای مشخص بدون دخالت دائمی انسان کار کند.
کنترل
استقلال بدون محدودیت میتواند به یک نقطه ضعف تبدیل شود؛ سیستم باید قابل مشاهده، قابل توقف و قابل بررسی باشد.
زمینه
کیفیت تصمیم Agent فقط به مدل وابسته نیست؛ اطلاعات و context درست هم بخش بزرگی از ماجراست.
مسئولیت
در محصول واقعی، همیشه باید مشخص باشد چه کسی یا چه سیستمی مسئول تصمیم نهایی است.
مهارتهای آینده از نگاه من
من فکر نمیکنم برنامهنویسی از بین برود. اتفاقاً برعکس؛ فکر میکنم درک عمیق مهندسی نرمافزار مهمتر میشود. چون وقتی تولید کد ارزانتر و سریعتر شود، کیفیت تصمیمهایی که پشت آن کد قرار دارند اهمیت بیشتری پیدا میکند.
- توانایی تعریف دقیق مسئله به جای صرفاً اجرای دستور.
- درک معماری سیستمها و ارتباط میان سرویسها، داده و مدلهای AI.
- توانایی طراحی workflowهایی که انسان و Agent در کنار یکدیگر در آن کار کنند.
- شناخت محدودیتهای مدلها و تشخیص اینکه چه زمانی نباید به AI اعتماد کرد.
- توانایی تبدیل یک ایده خام به محصولی که واقعاً کسی حاضر باشد از آن استفاده کند.
من هنوز کد مینویسم؛ اما با سؤالهای متفاوت
شاید مهمترین تغییری که خودم در مسیر توسعه احساس کردهام همین باشد. هنوز ترمینال را باز میکنم، هنوز باگ پیدا میکنم، هنوز معماری طراحی میکنم و هنوز گاهی ساعتها روی یک مشکل کوچک گیر میکنم. اما حالا ابزارهایی کنار دستم هستند که قبلاً وجود نداشتند.
فرقش این است که دیگر نمیخواهم فقط سریعتر کد تولید کنم. میخواهم سریعتر از یک ایده به یک محصول واقعی برسم.
برای من، AI زمانی واقعاً ارزشمند میشود که فاصله بین «ایدهای که در ذهن دارم» و «چیزی که کاربر میتواند استفاده کند» را کوتاهتر کند.
عصر جدید تازه شروع شده است
ما هنوز در ابتدای مسیر Agentها هستیم. خیلی از چیزهایی که امروز پیچیده، آزمایشی یا حتی غیرقابل اعتماد به نظر میرسند، احتمالاً در چند سال آینده به بخش عادی معماری نرمافزار تبدیل خواهند شد.
اما برای من جذابترین بخش ماجرا پیشبینی آینده نیست. جذابیت واقعی این است که همین امروز میتوانیم شروع به ساختن آن کنیم.
توسعهدهنده آینده الزاماً کسی نیست که بیشترین کد را نوشته باشد. شاید کسی باشد که توانسته یک مسئله پیچیده را به یک سیستم ساده، قابل اعتماد و قابل توسعه تبدیل کند؛ سیستمی که بخشی از کارش را خودش انجام میدهد و در عین حال هنوز تحت کنترل انسان باقی میماند.
من به آیندهای فکر میکنم که در آن ما کمتر درباره تعداد خطوط کد صحبت میکنیم و بیشتر درباره چیزهایی که ساختهایم حرف میزنیم. این برای من یکی از هیجانانگیزترین تغییرات دنیای توسعه نرمافزار است.
هنوز نظری ثبت نشده. اولین نفر باشید!