FutureForgeFutureForge

خدمات FutureForge

  • طراحی و ساخت محصولاز شناخت نیاز تا انتشار محصول، یک مسیر روشن پیش رو دارید.
  • توسعه فول‌استکوب‌اپلیکیشن، API و داده را هماهنگ و یکپارچه توسعه دهید.
  • ممیزی مهندسیپیش از هزینه‌ی بیشتر، از وضعیت واقعی محصول‌تان باخبر شوید.
  • مشاوره معماریپیش از یک تصمیم فنی پرهزینه، گزینه‌ها را درست بسنجید.
  • زیرساخت و استقرارمحصول را با خیال راحت منتشر کنید و پایدار نگه دارید.
  • هوش مصنوعی در محصولهوش مصنوعی را فقط جایی به کار می‌گیریم که مسئله‌ای را حل کند.
نمونه‌کارهاقیمت‌گذاریدرباره ما
شروع گفتگو
  1. خانه
  2. /یادداشت‌ها
  3. /یادداشت‌ها
FutureForge

استودیوی مهندسی محصول — طراحی، ساخت و استقرار نرم‌افزار.

خدمات

طراحی سایت با وردپرستوسعه اختصاصیمهندسی محصولزیرساخت و استقرارمشاوره معماریهوش مصنوعی در محصول

راهنمای انتخاب

قیمت‌گذاریتخمین هزینه پروژهمقایسه روش‌هانمونه‌کارهادرباره ماتماس

ارتباط

hello@futureforge.ir

ایده‌ای برای ساخت دارید؟

نیازتان را مطرح کنید تا درباره مسیر توسعه و قدم بعدی صحبت کنیم.

شروع گفتگو

© 2026 FutureForge. همه حقوق محفوظ است.

حریم خصوصیشرایط استفاده
خانهنمونه‌کارشروعتماس
مهندسی محصول

قرارداد توسعهٔ نرم‌افزار: تحویل‌دادنی‌ها و معیار پذیرش را چطور بنویسیم؟

راهنمای فنی (نه حقوقی) برای پیوست قرارداد توسعهٔ نرم‌افزار: فهرست تحویل‌دادنی با شاهد تحویل، معیار پذیرش قابل‌آزمون، شدت اشکال و روند پذیرش.

سا
سهیل ابراهیم‌پور

بنیان‌گذار و مهندس محصول

·۲۶ مهر ۱۴۰۵·7 دقیقه مطالعه
چک‌لیست تحویل و یک لپ‌تاپ با فایل‌های پروژه روی میز، آماده برای صورت‌جلسهٔ پذیرش

قرارداد توسعهٔ نرم‌افزار برای اینکه جلوی دعوای «تمام شد یا نه» را بگیرد، دو چیز را باید مکتوب و قابل‌آزمون کند: فهرست دقیق تحویل‌دادنی‌ها (کد، مستندات، دسترسی‌ها، محیط‌ها) و معیارهای پذیرش هر قابلیت و هر مرحله. این مقاله یک راهنمای فنی و عملی است، نه مشاورهٔ حقوقی: متن بندها، ضمانت‌ها، جریمه‌ها و مالکیت فکری را باید با وکیل و بر اساس قوانین روز ایران تنظیم کنید؛ اینجا فقط می‌گوییم از نظر مهندسی چه چیزهایی باید در پیوست‌های فنی آن بیاید.

سه اصطلاحی که اغلب با هم قاطی می‌شوند

  • تحویل‌دادنی (deliverable): چیزی که باید به شما داده شود؛ مثلاً مخزن کد، سند راه‌اندازی یا نسخهٔ مستقرشده.
  • معیار پذیرش (acceptance criteria): شرط‌هایی که سیستم باید داشته باشد تا کاربر، مشتری یا نهاد مجاز آن را بپذیرد. این تعریف در واژه‌نامهٔ ISTQB آمده است (نسخه‌ای که ما از یک بازنشر واژه‌نامه خواندیم؛ تعریف نسخه‌های مختلف ممکن است فرق کند).
  • تعریف «انجام‌شده» (Definition of Done): استاندارد کیفی داخلی تیم سازنده. راهنمای Scrum آن را توصیف رسمی وضعیتی می‌داند که یک Increment وقتی به معیارهای کیفی لازم برای محصول رسیده باشد دارد و می‌گوید کاری که به آن نرسد جزو Increment حساب نمی‌شود.

تفاوت عملی: Definition of Done می‌گوید کار از نظر تیم فنی چقدر کامل است (مثلاً بازبینی و تست شده)؛ معیار پذیرش می‌گوید رفتار قابلیت از نظر کسب‌وکار چه باید باشد. هر دو لازم‌اند و جای هم را نمی‌گیرند. برای اینکه ورودی‌ها آماده باشد، پیش از قرارداد برنامه‌ریزی پروژه پیش از نوشتن کد را ببینید.

فهرست تحویل‌دادنی‌ها: «نرم‌افزار» کافی نیست

نوشتن «تحویل نرم‌افزار» در قرارداد، ابهام می‌سازد. جدول زیر الگوی پیشنهادی (توصیهٔ عملی نویسنده) برای پیوست فنی است؛ برای هر ردیف مشخص کنید در روز تحویل چه چیزی نشان داده می‌شود.

الگوی پیشنهادی تحویل‌دادنی‌ها و شاهد تحویل
تحویل‌دادنیشاهد در روز تحویل
کد منبع کامل با تاریخچهٔ تغییرات در مخزنی که مالک آن شماستدسترسی مدیر به مخزن و فهرست شاخه‌ها و برچسب نسخهٔ تحویلی
دستور ساخت و اجرایک نفر خارج از تیم سازنده نرم‌افزار را از صفر روی محیط آزمایشی بالا بیاورد
فهرست متغیرهای پیکربندی (فقط نام و توضیح، نه مقدار راز)سند پیکربندی و محل امن نگه‌داری رازها که به شما منتقل شده
طرح دیتابیس و اسکریپت‌های مهاجرتاجرای مهاجرت روی دیتابیس خالی و دیدن همان ساختار
مستندات API و راهنمای فنینمونه درخواست‌ها که با سند هماهنگ جواب می‌دهد
فهرست کتابخانه‌ها و سرویس‌های شخص ثالث و لایسنس آن‌هافهرست مکتوب؛ بررسی حقوقی با شما
دسترسی مدیر به سرویس‌ها (میزبانی، دامنه، پیامک، درگاه) به نام شماورود با حساب خودتان و ثبت فهرست دسترسی‌ها
آزمون‌های خودکار و گزارش اجرای آنها (در صورت توافق)اجرای مجموعه آزمون و گزارش خروجی
راهنمای کاربر یا جلسهٔ آموزشصورت‌جلسهٔ آموزش یا سند تحویل‌شده
روش پشتیبان‌گیری و بازیابییک بار بازیابی نمونه روی محیط آزمایشی
وایت‌برد با مسیر سه‌مرحله‌ای از تحویل تا صورت‌جلسهٔ پذیرش
نمودار مفهومی: تحویل، آزمون و پذیرش.

برای مستندات، Documentation چیست و چرا پروژه‌های حرفه‌ای بدون آن آسیب‌پذیر می‌شوند نشان می‌دهد چه چیزی ارزش نوشتن دارد. و برای اینکه بدانید «آمادهٔ استقرار» از نظر فنی چه معنایی دارد، چه چیزی یک محصول نرم‌افزاری را Production-Ready می‌کند مرجع خوبی است.

نوشتن معیار پذیرش قابل‌آزمون

معیار پذیرش خوب به‌جای توصیف روش پیاده‌سازی، می‌گوید چه کسی در چه شرایطی چه کاری انجام می‌دهد و چه نتیجه‌ای باید ببیند. قالب Given-When-Then که Martin Fowler توضیح داده، سناریو را به سه بخش می‌شکند: حالت اولیه (Given)، رفتار موردنظر (When) و تغییری که انتظار دارید (Then). مثال زیر کاملاً فرضی است:

قابلیت: دریافت گزارش سفارش‌ها (مثال فرضی)
سناریو: کارشناس مالی گزارش همان شعبه را می‌گیرد
  با فرض اینکه کارشناس مالی شعبهٔ الف وارد شده و دو سفارش برای شعبهٔ الف و یک سفارش برای شعبهٔ ب ثبت شده است
  وقتی گزارش سفارش‌ها را درخواست کند
  آنگاه فقط دو سفارش شعبهٔ الف را ببیند و سفارش شعبهٔ ب نمایش داده نشود
تبدیل عبارت‌های مبهم به معیار قابل‌آزمون (نمونه‌های فرضی)
عبارت مبهممعیار قابل‌آزمون (نمونه)
سامانه ایمن باشدکاربری بدون نقش مدیر نتواند صفحهٔ مدیریت را باز کند و پاسخ «دسترسی ممنوع» بگیرد
گزارش سریع باشددر محیط آزمایشی و با دادهٔ توافق‌شده، زمان نمایش گزارش از مقدار توافقی بیشتر نشود (عدد را خودتان با پروژه تعیین می‌کنید)
فرم کاربرپسند باشدکاربر با ورودی نامعتبر پیام خطای مشخص روی همان فیلد ببیند و داده‌اش پاک نشود

روند پذیرش: چه کسی، کجا، با چه مهلتی؟

در واژه‌نامهٔ ISTQB، تست پذیرش کاربر (UAT) تست پذیرشی است که کاربران آینده در محیطی عملیاتی یا شبیه‌سازی‌شده انجام می‌دهند و بر نیازها و خواست‌های کاربر تمرکز دارد. برای پیوست پذیرش این‌ها را مکتوب کنید:

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

اگر داده‌های واقعی حساس‌اند، برای آزمون از داده‌ی ناشناس‌شده یا محیط جداگانه استفاده کنید. این‌ها توصیهٔ مهندسی‌اند؛ اثر حقوقی «پذیرش مشروط» و «پذیرش ضمنی در صورت سکوت» را باید وکیل تعیین کند.

امنیت در پذیرش: دو نمونه برای گفت‌وگو

پروژهٔ OWASP در «Secure Software Contract Annex» می‌نویسد بیشتر قراردادها دربارهٔ امنیت ساکت‌اند و طرفین اغلب برداشت‌های متفاوتی از آنچه توافق شده دارند. این سند خودش را فقط راهنما می‌داند و توصیه می‌کند حتماً با وکیل مشورت شود. نمونه‌ای از بند پذیرش در آن می‌گوید نرم‌افزار تا وقتی «بستهٔ گواهی» (certification package) کامل و همهٔ مسائل امنیتی رفع نشده پذیرفته‌شده حساب نمی‌شود، و نمونهٔ دیگری به کارفرما حق می‌دهد تا ۶۰ روز پس از تحویل نرم‌افزار را برای ایرادهای امنیتی بازبینی کند. این‌ها نمونه‌هایی از یک سند پیشنهادی‌اند، نه استاندارد عمومی؛ همان سند می‌گوید سطح سخت‌گیری باید با اهمیت نرم‌افزار متناسب باشد و تصمیم دربارهٔ اینکه هزینه با کیست را عمداً باز گذاشته است. از آن به‌عنوان فهرست پرسش برای مذاکره استفاده کنید، نه متن آماده.

اشتباه‌هایی که در پیوست‌ها زیاد دیده می‌شود

  • نوشتن «تحویل نرم‌افزار» بدون فهرست کد، مستندات و دسترسی‌ها.
  • معیار پذیرش که فقط صفت دارد («سریع»، «ایمن») و عدد یا سناریو ندارد.
  • نداشتن دسته‌بندی شدت اشکال؛ نتیجه این است که هر ایرادی بتواند پذیرش را متوقف کند یا اشکال جدی «جزئی» جا زده شود.
  • نبود مهلت بررسی؛ هر طرف می‌تواند تصمیم را معلق نگه دارد.
  • مشخص‌نبودن اینکه تغییر درخواستی با اشکال چه فرقی دارد.

چک‌لیست پیش از امضا و در روز تحویل

  1. پیوست فنی هر تحویل‌دادنی را با شاهد تحویل نوشته است.
  2. هر قابلیت اصلی دست‌کم یک معیار پذیرش قابل‌آزمون دارد.
  3. نسخه، محیط، داده و مسئولان آزمون مشخص‌اند.
  4. شدت اشکال‌ها و اثرشان بر پذیرش تعریف شده است.
  5. مهلت بررسی و فرمت صورت‌جلسه روشن است.
  6. مخزن و حساب‌ها به نام شما هستند و در روز تحویل ورود آزمایش می‌شود.
  7. بندهای حقوقی توسط وکیل بازبینی شده‌اند.

اگر می‌خواهید پیش از نوشتن قرارداد، نیازها و محدودیت‌های پروژه‌تان را مرور کنید، می‌توانید آن‌ها را در صفحهٔ شروع پروژه بنویسید؛ طبق توضیح خود صفحه، ارسال فرم تعهدی برای شروع پروژه ایجاد نمی‌کند.

منابع و مراجع

  • Acceptance Criteria — ISTQB Glossary (بازنشر وب‌سایت istqb-glossary.page).
  • User Acceptance Testing — ISTQB Glossary (بازنشر وب‌سایت istqb-glossary.page).
  • The Scrum Guide — Ken Schwaber و Jeff Sutherland، نسخهٔ نوامبر ۲۰۲۰.
  • Given When Then — Martin Fowler، ۲۱ اوت ۲۰۱۳.
  • Secure Software Contract Annex — OWASP Foundation (نویسنده: Jeff Williams).

نویسنده

سا

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

یادداشت‌های مرتبط

یادداشت‌های مرتبط

دسته‌بندی‌ها

خدمات مرتبط

از یادداشت تا پروژه

اگر با مسئله‌ای شبیه این روبه‌رو هستید، درباره‌ی شرایط پروژه‌تان با هم صحبت کنیم.

برای انتخاب مسیر فنی پروژه‌تان کمک می‌خواهید؟

از مسئله و محدودیت‌هایتان بگویید؛ اگر بتوانیم همراهی‌تان کنیم، برای گفت‌وگو هماهنگ می‌کنیم.

قرارداد توسعه نرم‌افزار
معیار پذیرش
تحویل نرم‌افزار
UAT
پیوست فنی قرارداد
سهیل ابراهیم‌پور
یادداشت‌ها
شرح نیازمندی نرم‌افزار قابل‌تخمین: الگو و چک‌لیست
طراحی لندینگ پیج شرکتی: مسیر روشن از پیام تا تماس
طراحی منوی سایت فارسی و راست‌چین: ملاحظات فنی و دسترس‌پذیری
اعتبارسنجی فرم: مرورگر، سرور یا هر دو؟
پیش از انتخاب پیمانکار نرم‌افزار چه سؤال‌های فنی بپرسیم؟

مهندسی محصول

شرح نیازمندی نرم‌افزار قابل‌تخمین: الگو و چک‌لیست

۲۶ مهر ۱۴۰۵

مهندسی محصول

طراحی لندینگ پیج شرکتی: مسیر روشن از پیام تا تماس

۲۶ مهر ۱۴۰۵

مهندسی محصول

طراحی منوی سایت فارسی و راست‌چین: ملاحظات فنی و دسترس‌پذیری

۲۶ مهر ۱۴۰۵

مهندسی محصول

اعتبارسنجی فرم: مرورگر، سرور یا هر دو؟

۲۶ مهر ۱۴۰۵

مهندسی محصول

پیش از انتخاب پیمانکار نرم‌افزار چه سؤال‌های فنی بپرسیم؟

۲۶ مهر ۱۴۰۵
همه یادداشت‌ها239
معماری نرم‌افزار13
واژه‌نامه37
عملیات و استقرار87
مهندسی محصول90
راهنمای وب12
طراحی و ساخت محصول
توسعه فول‌استک
ممیزی مهندسی
مشاوره معماری
زیرساخت و استقرار
شروع گفتگو
ابزارهای رایگان
شروع گفتگو