توسعه مبتنی بر مشخصات در سال ۲۰۲۶
عاملهای هوش مصنوعی در نوشتن کد عالی هستند، اما در حدس زدن منظور شما بسیار ضعیف عمل میکنند.
به همین دلیل است که توسعه مبتنی بر مشخصات (Spec-Driven Development یا SDD) در سال ۲۰۲۶ به یک استاندارد تبدیل شده است.
در گذشته، مردم از روش «vibe coding» استفاده میکردند. این یعنی یک دستور (prompt) کلی به هوش مصنوعی میدهید و هر چیزی را که تحویل داد، منتشر میکنید. این روش برای نمونههای اولیه (prototypes) جواب میدهد، اما برای نرمافزارهای واقعی که نیاز به نگهداری دارند، شکست میخورد.
SDD روشی منضبط برای ساختن است. شما با مشخصات (specification) به عنوان «منبع حقیقت» برخورد میکنید. مشخصات، هدف و قصد شما را اعلام میکند و کد صرفاً آن را پیادهسازی میکند.
تغییر در مهارتها کاملاً مشخص است: شما دیگر زمان خود را صرف تایپ کردن کد نمیکنید. شما زمان خود را صرف تعریف دقیقِ هدف میکنید، به گونهای که ماشین نتواند آن را اشتباه متوجه شود.
نحوه استفاده تیمها از SDD:
- Spec-First (ابتدا مشخصات): مشخصات، پیشنویس اول را هدایت میکنند. کد ممکن است بعداً از مسیر اصلی منحرف شود. از این روش برای نمونههای اولیه استفاده کنید.
- Spec-Anchored (مبتنی بر مشخصات): مشخصات و کد با هم تکامل مییابند. تستهای خودکار تضمین میکنند که آنها همسو باقی بمانند. این بهترین انتخاب برای اکثر سیستمهای عملیاتی (production) است.
- Spec-as-Source (مشخصات به عنوان منبع): انسانها فقط مشخصات را ویرایش میکنند. هوش مصنوعی تمام کدها را تولید میکند. این روش نیازمند اعتماد بالا به ابزارهای شماست.
گردش کار SDD:
۱. Constitution (قانون اساسی): تعریف قوانین پروژه (زبانها، فریمورکها، تستها). ۲. Specify (مشخص کردن): تعریف «چیستی» و «چرایی» با استفاده از داستانهای کاربر (user stories). ۳. Clarify (شفافسازی): عامل هوش مصنوعی برای رفع ابهام، سوال میپرسد. ۴. Plan (برنامهریزی): تعریف معماری و مدلهای داده. ۵. Tasks (وظایف): تقسیم برنامه به موارد کوچک و قابل عرضه. ۶. Implement (پیادهسازی): اجرای وظایف. ۷. Analyze (تحلیل): بررسی اینکه آیا برنامه و وظایف با مشخصات اصلی مطابقت دارند یا خیر.
یک قانون طلایی: هرگز مستقیماً از مشخصات به سراغ کد نروید. همیشه ابتدا برنامه و وظایف را بازبینی کنید.
برای اینکه مشخصات قابل اجرا باشند، از EARS (رویکرد آسان برای نحو نیازمندیها) استفاده کنید. به جای جملات مبهم، از الگوهایی مانند این استفاده کنید:
- WHEN [event] THE system SHALL [action].
- IF [condition] THEN [result].
این کار باعث میشود نیازمندیهای شما مستقیماً به موارد تست (test cases) نگاشت شوند.
ابزارهایی که باید زیر نظر داشت:
- GitHub Spec Kit: متنباز و مستقل از مدل.
- AWS Kiro: بهترین گزینه برای مجموعههای مبتنی بر AWS.
- Claude Code (cc-sdd): عالی برای جریانهای کاری مبتنی بر ترمینال.
- Cursor: بهترین گزینه برای تجربه کاربری مبتنی بر IDE.
نکته نهایی: تفکر در مرحله مشخصات اتفاق میافتد. اگر از هوش مصنوعی برای نوشتن کد خود استفاده میکنید، مشخصات شما مهمترین چیزی است که تولید میکنید.
انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi