این روزها، در حالی که بسیاری از مردم ما در ایران درگیر ابتدایی‌ترین مسائل زیرساختی هستیم، از قطعی و اختلال طولانی اینترنت گرفته تا تغییر ناخواسته پارادایم از «توسعه و پیشرفت» به «بقا و زنده ماندن»، دنیای نرم‌افزار در دنیا با سرعتی عجیب در حال تغییر است.مسئله فقط این نیست که ابزارهای جدیدی آمده‌اند. تغییر عمیق‌تر از این حرف‌هاست. ما در حال ورود به دوره‌ای هستیم که به آن AI-native Engineering می‌گویند؛ یعنی مهندسی نرم‌افزاری که از ابتدا با حضور ایجنت های هوش مصنوعی طراحی می‌شود، نه این‌که AI فقط یک ابزار کمکی کنار تیم باشد.در این مدل جدید، بخش زیادی از کدنویسی، تست، بازبینی، مستندسازی و حتی طراحی فنی می‌تواند توسط ایجنت‌های هوش مصنوعی انجام شود. بعضی تیم‌ها حتی دارند به سناریوهایی نزدیک می‌شوند که تقریباً تمام تولید کد توسط AI انجام می‌شود و نقش انسان بیشتر به سمت تعریف مسئله، تصمیم‌گیری، قضاوت، کنترل کیفیت و هدایت سیستم حرکت می‌کند.برای صنعت نرم‌افزار ایران، این می‌تواند یکی از بزرگ‌ترین شکاف‌های تاریخی با جریان اصلی دنیا باشد. چون وقتی ما هنوز برای اتصال پایدار، دسترسی به ابزارها، پرداخت بین‌المللی، زیرساخت و حتی تمرکز ذهنی می‌جنگیم، آن طرف دنیا بحث از این است که «اگر AI کد می‌نویسد، پس کار اصلی تیم‌های محصول و مهندسی چه می‌شود؟»یکی از ترندهایی که در همین فضا جدی‌تر شده، مفهومی است به نام Spec-Driven Development یا توسعه مبتنی بر اسپک.اما این یعنی چه؟ و چرا برای جامعه نرم افزار و اجایل مهم است؟ایده‌اش در ظاهر ساده است:به‌جای این‌که سریع برویم سراغ کدنویسی و بعداً تلاش کنیم بفهمیم دقیقاً چه ساخته‌ایم، اول نیت، رفتار مورد انتظار، محدودیت‌ها، سناریوها و معیار پذیرش را روشن می‌کنیم. بعد از آن، AI یا تیم توسعه بر اساس همان اسپک شروع به تولید کد، تست و تسک‌های اجرایی می‌کند.اما این فقط یک اسم جدید برای مستندسازی قدیمی نیست.در روش‌های سنتی، خیلی وقت‌ها داکیومنت نوشته می‌شد، بعد در یک فولدر گم می‌شد، و تیم در عمل با برداشت‌های شخصی جلو می‌رفت. در SDD، اسپک قرار است یک فایل تزئینی نباشد؛ قرار است «منبع اصلی قابل اعتماد» باشد. یعنی همان چیزی که محصول، طراحی، معماری، کد و تست باید مدام به آن برگردند.اهمیت این موضوع با AI بیشتر شده است. چون AI می‌تواند خیلی سریع کد تولید کند، اما اگر مسئله مبهم باشد، خروجی هم فقط سریع‌تر اشتباه خواهد شد. سرعت بدون وضوح، لزوماً چابکی نیست؛ گاهی فقط تولید سریع‌تر ابهام است.برای جامعه چابک این نکته مهمی است. ما سال‌ها درباره user story، acceptance criteria، refinement، alignment و shared understanding صحبت کرده‌ایم. SDD در بهترین حالت ادامه همان گفت‌وگوست، اما در دنیایی که AI هم وارد تیم شده. یعنی دیگر فقط انسان‌ها نیاز به فهم مشترک ندارند؛ ابزارهای AI هم باید از یک کانتکست شفاف و ساختارمند تغذیه شوند.یک مثال ساده:فرض کنید می‌خواهیم قابلیت «لغو سفارش» را بسازیم. در حالت معمول ممکن است یک نفر بگوید: «کاربر باید بتواند سفارش را لغو کند.» اما این کافی نیست. تا چه زمانی؟ قبل از ارسال؟ بعد از پرداخت؟ پول چطور برمی‌گردد؟ اگر سفارش بخشی از یک بسته باشد چه؟ پیامی که به کاربر نشان میدهیم چیست؟ وضعیت سفارش در سیستم‌های دیگر چه می‌شود؟در SDD، این سؤال‌ها باید زودتر روشن شوند. نه برای سنگین‌کردن فرایند، بلکه برای کم‌کردن دوباره‌کاری، سوءتفاهم و خروجی‌های نصفه‌نیمه.البته SDD قرار نیست جای گفت‌وگوی واقعی با کاربر، رویکرد محصولی، طراحی خوب یا مهندسی حرفه‌ای را بگیرد. یک اسپک بد، فقط باعث می‌شود AI با اعتمادبه‌نفس بیشتری چیز اشتباهی بسازد. حتی با اسپک خوب هم باید خروجی بررسی شود، تست شود و با واقعیت کسب‌وکار سنجیده شود.به نظرم نگاه بالغ به SDD این است:نه بازگشت به waterfall است، نه جادوی AI.بلکه تلاشی است برای این‌که در عصر AI، «نیت انسانی» گم نشود.در آینده نزدیک، شاید بخش زیادی یا حتی تمام کد را AI بنویسد. اما این‌که چه چیزی باید ساخته شود، چرا باید ساخته شود، برای چه کسی ارزش دارد، و چه چیزی قابل قبول است، هنوز مسئولیت تیم محصول و تیم توسعه است.پس شاید جمله کلیدی این باشد:در دنیای AI-native، مزیت تیم‌ها فقط سرعت تولید کد نیست؛ کیفیتِ بیان مسئله است.