نمونه قرارداد توسعه نرم افزار؛ ۱۲ بند ضروری و متن نمونه
بندهایی که هر قرارداد طراحی و توسعه نرمافزار باید داشته باشد، متن نمونه بندهای مالکیت سورسکد، پذیرش و تغییرات، آنچه قانون ایران درباره مالکیت میگوید و NDA.
یک قرارداد توسعه نرم افزار خوب باید دستکم این ۱۲ بند را روشن کند: طرفین، موضوع و شرح کار (پیوست نیازمندی)، فازها و زمان تحویل، مبلغ و شرایط پرداخت، روش تحویل و پذیرش، مالکیت سورسکد و حق تغییر، محرمانگی (NDA)، پشتیبانی و گارانتی، تغییرات خارج از قرارداد، تأخیر و جریمه، فسخ، و حل اختلاف. در ایران، ماده ۶ قانون حمایت از حقوق پدیدآورندگان نرمافزار (۱۳۷۹) میگوید در نرمافزار سفارشی حق تغییر و توسعه با کارفرماست مگر قرارداد خلاف آن را بگوید؛ پس این بند را دقیق بنویسید.
چرا قرارداد نرمافزار مهم است؟
بیشتر اختلافهای پروژههای نرمافزاری نه از بدقولی، بلکه از برداشت متفاوت دو طرف از «کار تمامشده» شروع میشود. کارفرما فکر میکند گزارش اکسل هم جزو کار بوده، سازنده فکر میکند نبوده. قرارداد خوب این ابهامها را پیش از شروع کار برطرف میکند و برای هر دو طرف امنیت میسازد.
۱۲ بند ضروری قرارداد توسعه نرمافزار
| # | بند | چه چیزی باید روشن باشد |
|---|---|---|
| ۱ | طرفین قرارداد | مشخصات کامل حقوقی کارفرما و مجری، نماینده تامالاختیار هر طرف |
| ۲ | موضوع قرارداد | نام و هدف نرمافزار، بستر (وب، موبایل، ویندوز) |
| ۳ | شرح کار | پیوست نیازمندی: فهرست امکانات، نقشها، گزارشها، اتصالها؛ هرچه در پیوست نیست، جزو کار نیست |
| ۴ | فازها و زمانبندی | خروجی هر فاز و تاریخ تحویل آن |
| ۵ | مبلغ و پرداخت | مبلغ کل، پیشپرداخت، پرداخت به ازای تحویل هر فاز، مالیات بر ارزش افزوده |
| ۶ | تحویل و پذیرش | معیار پذیرش هر فاز، مهلت بررسی کارفرما (مثلاً ۷ روز) و حکم سکوت او |
| ۷ | مالکیت و سورسکد | تحویل یا عدم تحویل سورسکد، حق تغییر و توسعه، حق استفاده مجری از بخشهای عمومی |
| ۸ | محرمانگی | تعهد عدم افشای اطلاعات و دادههای کارفرما، حتی پس از پایان قرارداد |
| ۹ | پشتیبانی و گارانتی | مدت رفع اشکال رایگان، زمان پاسخ، تفاوت «رفع اشکال» با «توسعه جدید» |
| ۱۰ | تغییرات | روش درخواست تغییر، برآورد و تأیید هزینه و زمان اضافه |
| ۱۱ | تأخیر، جریمه و فسخ | تأخیر ناشی از هر طرف، شرایط فسخ و تسویه کار انجامشده |
| ۱۲ | حل اختلاف | مذاکره، داور مرضیالطرفین یا مرجع قضایی |
نمونه متن بندهای کلیدی
این متنها نمونهاند و باید با شرایط پروژه و نظر مشاور حقوقی تنظیم شوند:
بند مالکیت سورسکد (نمونه)
«مجری متعهد است پس از تسویه کامل، سورسکد کامل نرمافزار، مستندات فنی و اطلاعات دسترسی به سرور را به کارفرما تحویل دهد. حق تغییر، توسعه و بهرهبرداری از نرمافزار متعلق به کارفرما است. مجری میتواند از کتابخانهها و اجزای عمومی که پیش از این قرارداد داشته، در پروژههای دیگر استفاده کند.»
بند پذیرش (نمونه)
«کارفرما ظرف ۷ روز کاری پس از تحویل هر فاز، نتیجه بررسی را کتباً اعلام میکند. در صورت عدم اعلام در این مهلت، فاز تحویلشده پذیرفتهشده تلقی میشود.»
بند تغییرات (نمونه)
«هر درخواست خارج از پیوست شرح کار، پس از برآورد زمان و هزینه توسط مجری و تأیید کتبی کارفرما، بهعنوان الحاقیه اجرا میشود.»
مالکیت سورسکد از نظر قانون ایران
طبق ماده ۶ قانون حمایت از حقوق پدیدآورندگان نرمافزارهای رایانهای (مصوب ۱۳۷۹)، وقتی نرمافزار موضوع قرارداد یا استخدام است، حقوق مادی مربوط به تغییر و توسعه نرمافزار متعلق به کارفرماست، مگر اینکه در قرارداد ترتیب دیگری آمده باشد. نام پدیدآورنده هم در ثبت نرمافزار باید اعلام شود. با این حال، حق تغییر بدون در اختیار داشتن سورسکد عملاً کاربردی ندارد؛ پس تحویل سورسکد را صریحاً بنویسید. اگر سورس نرمافزار قدیمیتان را ندارید، راه بازسازی آن در مقاله مهندسی معکوس نرم افزار آمده است.
قرارداد محرمانگی (NDA)
اگر سازنده به دادههای واقعی، اسناد یا فرایندهای داخلی شما دسترسی پیدا میکند، یک قرارداد محرمانگی جدا یا یک بند محرمانگی کامل لازم است: چه اطلاعاتی محرمانه است، چه کسانی از تیم مجری به آن دسترسی دارند، مدت تعهد (معمولاً فراتر از پایان قرارداد) و تکلیف دادهها پس از پایان کار (تحویل یا حذف). در طراحی نرم افزار اختصاصی هوش مصنوعی رایورز امضای NDA و نصب روی سرور خود سازمان امکانپذیر است.
۵ اشتباه رایج در قراردادهای نرمافزاری
- شرح کار کلی: «نرمافزار انبار» کافی نیست؛ فهرست امکانات باید پیوست شود.
- پرداخت کامل در ابتدا: پرداخت به ازای تحویل هر فاز منصفانهتر است.
- سکوت درباره سورسکد: بعداً بزرگترین اختلاف میشود.
- تعریفنکردن پشتیبانی: مدت، زمان پاسخ و مرز رفع اشکال و توسعه جدید را بنویسید.
- نبود معیار پذیرش: بدون آن، «تمام شدن» کار هیچوقت روشن نمیشود.
برای اینکه بدانید هر بند در کدام مرحله پروژه به کار میآید، مراحل تولید نرم افزار سفارشی را بخوانید.
این مقاله راهنمای عمومی است و جایگزین مشاوره حقوقی نیست.
پرسشهای متداول
قرارداد توسعه نرم افزار باید چه بندهایی داشته باشد؟
طرفین، موضوع، شرح کار، فازها و زمان، مبلغ و پرداخت، تحویل و پذیرش، مالکیت سورسکد، محرمانگی، پشتیبانی، تغییرات، تأخیر و فسخ، و حل اختلاف.
سورسکد نرمافزار سفارشی متعلق به کیست؟
طبق ماده ۶ قانون ۱۳۷۹، حق تغییر و توسعه در نرمافزار سفارشی با کارفرماست مگر قرارداد خلاف آن را بگوید. تحویل سورسکد را صریحاً در قرارداد بنویسید.
آیا برای پروژه کوچک هم قرارداد لازم است؟
بله. حتی یک قرارداد یک صفحهای با پیوست امکانات، زمان، مبلغ و پشتیبانی، جلوی بیشتر اختلافها را میگیرد.
NDA چیست؟
قرارداد عدم افشا؛ تعهد مجری به محرمانه نگه داشتن اطلاعات و دادههای کارفرما در طول و پس از پروژه.
قرارداد فروش نرمافزار سفارشی با قرارداد توسعه چه فرقی دارد؟
قرارداد فروش معمولاً برای واگذاری یک نرمافزار موجود است؛ قرارداد توسعه برای ساخت نرمافزار جدید و شامل فازبندی، پذیرش و تغییرات است.
نرمافزاری که لازم دارید را به ما بگویید
هر نرمافزاری که سازمان یا کسبوکارتان لازم دارد، از سامانه تحت وب و اپ موبایل تا بازسازی نرمافزار قدیمی و هوش مصنوعی اختصاصی، با موتور هوش مصنوعی رایورز و بازبینی مهندسان ما ساخته میشود.
