یک نظرسنجی Sonar در سال ۲۰۲۶ نشان می‌دهد که ۸۸٪ از توسعه‌دهندگان معتقدند کدهای تولیدشده توسط هوش مصنوعی در حال افزایش بدهی فنی (technical debt) هستند، و طرفداران توسعه مبتنی بر مشخصات (spec-driven development) استدلال می‌کنند که یک مرحله مشخصات‌نویسی منضبط می‌تواند از این انحراف جلوگیری کند.

چرا این مسئله اهمیت دارد

وقتی یک انسان یک تیکت مبهم دریافت می‌کند، سوالات شفاف‌سازی می‌پرسد. در مقابل، یک عامل هوش مصنوعی (AI agent)، جاهای خالی را با بهترین حدس خود پر می‌کند و کدی را تحویل می‌دهد که معقول به نظر می‌رسد. این توهمِ درستی، هزینه‌بر است: همان نظرسنجی Sonar گزارش می‌دهد که بیش از نیمی از پاسخ‌دهندگان کدهایی را دیده‌اند که از بررسی‌های اولیه عبور کرده‌اند اما نقص‌های ظریفی را پنهان کرده‌اند. این نقص‌ها به عنوان بدهی فنی انباشته می‌شوند، بازنویسی‌ها (refactors) را در آینده اجباری می‌کنند، تحویل ویژگی‌ها را کند کرده و بودجه‌های نگهداری را افزایش می‌دهند.

توسعه مبتنی بر مشخصات چگونه است

توسعه مبتنی بر مشخصات (SDD) ترتیب فعلی را تغییر می‌دهد. به جای دادن یک داستان کاربر (user story) کوتاه به مدل هوش مصنوعی، تیم یک مشخصات (specification) دقیق و قابل اجرا توسط عامل (agent-executable) می‌نویسد که در همان سیستم کنترل نسخه (version-control system) کد قرار دارد. این مشخصات به منبع واحد حقیقت (single source of truth) تبدیل می‌شود؛ یعنی قصد و نیت، موارد خاص (edge cases)، انتظارات عملکردی و هرگونه محدودیتی را که مدل هوش مصنوعی باید رعایت کند، ثبت می‌کند.

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

تغییر در گردش کار

بک‌لاگ محصول (Product backlog) – موارد را کوتاه نگه دارید و فقط قصد و معیارهای پذیرش سطح بالا را ثبت کنید. این لیست همچنان محرک اولویت‌بندی خواهد بود.

برنامه‌ریزی اسپرینت (Sprint planning) – تیم‌ها درباره هدف کلی بحث می‌کنند و بر سر یک هدف اسپرینت (Sprint Goal) توافق می‌کنند، اما تا زمانی که مشخصات آماده نشده باشد، از پیاده‌سازی جزئی خودداری می‌کنند.

در طول اسپرینت – شخصی که وظیفه را برمی‌دارد، یک مشخصات دقیق و ماشین‌خوان می‌نویسد. این مشخصات شامل فرمت‌های ورودی، خروجی‌های مورد انتظار، مدیریت خطا و هرگونه الزامات غیرعملکردی است. از آنجایی که مشخصات تحت کنترل نسخه است، بازبین‌ها می‌توانند مانند کد، نظر بدهند، پیشنهاد ویرایش کنند و تغییرات را تأیید کنند.

تعریفِ انجام‌شده (Definition of Done) – عبارت «مشخصات بازبینی و تأیید شد» را به دروازه کیفیت (quality gate) اضافه کنید. هیچ کدی کامل نیست مگر اینکه مشخصات، همان استانداردهای بازبینی پیاده‌سازی را پشت سر بگذارد.

انطباق با کانبان (Kanban adaptation) – دو ستون جدید اضافه کنید: «پیش‌نویس مشخصات» و «مشخصات تأیید شده». اکنون موارد کاری از بک‌لاگ ← هدف اسپرینت ← پیش‌نویس مشخصات ← مشخصات تأیید شده ← در حال انجام ← انجام‌شده جریان می‌یابند. این تغییر بصری، مرحله هماهنگی را که قبلاً نامرئی بود، آشکار می‌کند.

ابزارهایی که در حال حاضر مشخصات را اعمال می‌کنند

پلتفرم‌هایی مانند GitHub Spec Kit و AWS Kiro دروازه‌هایی را اضافه کرده‌اند که پیش از شروع هرگونه تولید کد توسط هوش مصنوعی، مستلزم وجود سند الزامات هستند. آن‌ها جایگزین مدل هوش مصنوعی نمی‌شوند؛ بلکه عامل‌های تحت‌اللفظی را با نیت انسان همسو می‌کنند. این ابزارها با تبدیل مشخصات به یک پیش‌نیاز، این تغییر را بدون از کار انداختن خط لوله‌های CI/CD موجود، خودکار می‌کنند.

مخالفت‌های احتمالی

منتقدان می‌گویند نوشتن مشخصات باعث ایجاد اصطکاک در ریتم سریع چابک (agile) می‌شود. پاسخ متقابل این است: زمانی که صرف تدوین یک مشخصات می‌شود، معمولاً تنها بخشی از زمانی است که بعداً برای عیب‌یابی کدهای تولیدشده توسط هوش مصنوعی که از یک دستور (prompt) مبهم ناشی شده‌اند، صرف می‌شود.

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

آنچه باید در آینده زیر نظر داشت

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

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