یکی از حیاتیترین گامها برای شروع هر پروژه نرمافزاری، تنظیم یک قرارداد برنامهنویسی محکم، عادلانه و شفاف است. چه به عنوان یک برنامهنویس فریلنسر فعالیت میکنید و چه کارفرمایی هستید که قصد سفارش پروژه را دارد، داشتن یک نمونه قرارداد توسعه نرمافزار مهندسیشده، تضمینکننده امنیت مالی، حقوق مادی و معنوی و همچنین پیشگیری از چالشهای فرسایشی در طول مسیر پروژه است.
در این راهنما، با ویژگیهای قالب قرارداد تیپ (عمومی) برای پروژههای طراحی سایت، برنامهنویسی اپلیکیشن موبایل و نرمافزارهای دسکتاپ آشنا میشوید که تمام دغدغههای فنی و حقوقی روز در آن پیشبینی و حل شده است.
چرا استفاده از قرارداد برنامهنویسی استاندارد الزامی است؟
در پروژههای طراحی وبسایت و توسعه نرمافزار، بروز مسائلی مانند تأخیر در تحویل محتوا، تغییر ناگهانی در نیازهای فنی پروژه (Scope Creep)، وجود باگها و مشکلات پرداخت کاملاً رایج است. بدون داشتن یک قرارداد طراحی سایت و برنامهنویسی مکتوب، کوچکترین اختلاف فنی میتواند به یک پرونده حقوقی پیچیده تبدیل شود.
یک قرارداد خوب فراتر از یک سند تشریفاتی، به عنوان ابزاری هوشمند برای مدیریت پروژه عمل میکند که موارد زیر را به طور کامل پوشش میدهد:
- پیشگیری از تغییرات بیرویه: تعریف دقیق فرآیند اعمال تغییرات جدید پس از تحویل نهایی.
- شفافیت در مالکیت فکری: تعیین دقیق تکلیف مالکیت سورسکد (کد منبع) پروژه و فایلهای لایه باز.
- مرزبندی گارانتی و پشتیبانی: تفکیک دقیق میان فرآیند رفع باگهای فنی (رایگان) و درخواست امکانات جدید (هزینهدار).
- شرایط عادلانه فسخ قرارداد: مسدود کردن راههای فرار قانونی و حفظ حقوق هر دو طرف در صورت توقف پروژه.
ویژگیهای منحصربهفرد این قرارداد
بسیاری از نمونه قراردادهای برنامهنویسی موجود در اینترنت قدیمی بوده و با واقعیتهای امروزی دنیای فناوری اطلاعات همخوانی ندارند. این سند به طور اختصاصی بازنگری شده تا نقاط ضعف متداول قراردادهای سنتی را پوشش دهد:
۱. توازن کامل در مکانیزم فسخ و جریمهها (Symmetric Protection)
در قراردادهای قدیمی، اگر کارفرما در پرداختها تأخیر میکرد، پیمانکار فقط میتوانست کار را متوقف کند بدون اینکه جریمهای متوجه کارفرما باشد. در این قرارداد مدرن، مکانیزم فسخ و جریمهها کاملاً متوازن است؛ اگر کارفرما تعهداتش را ایفا نکند و پیمانکار مجبور به فسخ پروژه شود، کارفرما موظف به تسویه کامل بخشهای اجرا شده به علاوه پرداخت خسارت فرصتسوزی (معادل جریمه فسخ داوطلبانه) خواهد بود.
۲. تعریف دقیق ضوابط کمکاری پیمانکار
بزرگترین دغدغه کارفرمایان، نیمهکاره رها شدن پروژه توسط برنامهنویس است. در این قرارداد، بند ویژهای برای کمکاری پیمانکار در نظر گرفته شده که شامل «مهلت جبران نقص (Cure Period)» و «قانون قابلیت استفاده از سورسکد» است. به این ترتیب، در صورت تخلف پیمانکار، کارفرما میتواند با تصاحب کدهای سالمِ توسعهیافته تا آن لحظه، پروژه را جهت ادامه به شخص ثالث بسپارد.
۳. مدیریت شرایط فورسماژور (قطع اینترنت و فیلترینگ)
با توجه به ریسکهای زیرساختی، در ماده ۱۰ (حوادث غیرمترقبه) صراحتاً مواردی نظیر اختلال سراسری در شبکه اینترنت، فیلترینگ گسترده و پاک شدن ناگهانی اطلاعات سرور پیشبینی شده است. در صورت تعلیق بیش از یک ماه، کارفرما میتواند سورسکدهای فعلی را تحویل گرفته و پس از تسویه پیشرفت فیزیکی پروژه، ادامه کار را با تیم دیگری پیش ببرد تا سرمایهاش هدر نرود.
ساختار مواد ۱۲گانه قرارداد برنامهنویسی
این سند حقوقی و فنی در قالب ۱۲ ماده و ۳ تبصره تنظیم شده که تمامی ابعاد پروژه را پوشش میدهد:
- ماده ۱- موضوع قرارداد: قابل استفاده برای انواع پروژههای طراحی وبسایت، اپلیکیشن آنلاین/آفلاین و دسکتاپ به زبانهای برنامهنویسی مختلف بر اساس پیوست فنی.
- ماده ۲- مدت قرارداد: تعیین دقیق تاریخ شروع، روزهای کاری مفید (بدون احتساب تعطیلات رسمی) و کل مدت پروژه.
- ماده ۳- مبلغ قرارداد: قید دقیق ارزش ریالی پروژه و نحوه توافق بر سر هزینهی اعمال تغییرات پس از تحویل نهایی.
- ماده ۴- نحوه پرداخت: فرمول سه مرحلهای استاندارد (پیشپرداخت، مایلستون میانی پس از تایید فاز اول و تسویه نهایی).
- ماده ۵- تعهدات کارفرما: تعیین تکالیف کارفرما در تحویل محتوا، پرداختهای بهموقع، جریمههای پلهای دیرکرد پرداخت و مسئولیت تهیه هاست و دامین.
- ماده ۶- تعهدات پیمانکار: فرآیند رفع باگ، دوره گارانتی ۶ ماهه، شرایط آموزش به پرسنل، خسارت دیرکرد تحویل پروژه و زمان تحویل سورسکد.
- ماده ۷- معرفی نمایندگان و حفظ محرمانگی: تعهد ۳ ساله طرفین بر حفظ محرمانگی دادهها، الگوریتمها، معماری سیستم و کدهای منبع.
- ماده ۸- مراحل اجرای پروژه: تعریف ۱۰ گام تعاملی مشخص از لحظه امضا تا مایلستونهای میانی، دمو، دیباگ و تحویل نهایی.
- ماده ۹- قوانین حاکم: انطباق کامل متن با قوانین و مقررات جمهوری اسلامی ایران.
- ماده ۱۰- حوادث غیرمترقبه (فورسماژور): مکانیزم پیشرفته و عادلانه تسویه حساب و تحویل کدهای منبع در صورت بروز حوادث غیرقابل پیشبینی.
- ماده ۱۱- فسخ قرارداد: تبیین دقیق سه حالتِ: فسخ به دلیل تخلف کارفرما، فسخ داوطلبانه کارفرما (با جریمه) و فسخ به دلیل تخلف/کمکاری پیمانکار.
- ماده ۱۲- حل اختلاف: مرجعیت داوری مرضیالطرفین جهت حل سریع و بیدردسر تداخلها بدون نیاز به مراجعه به دادگاه.
اهمیت حیاتی پیوست فنی در قراردادهای نرمافزاری
توصیه اکید متخصصین حقوق فناوری اطلاعات این است که هرگز هیچ قراردادی را بدون «پیوست فنی مکتوب، تفصیلی و امضاشده» منعقد نکنید. پیوست فنی باید شامل موارد زیر باشد:
- لیست دقیق تمام صفحات، منوها، ویژگیها و عملکردهای مورد انتظار.
- تکنولوژیها، زبانهای برنامهنویسی، پایگاهداده و فریمورکهای مورد استفاده.
- نقشه اولیه محصول (Wireframe) یا داکیومنت نیازمندیها (PRD).
- حداقل مشخصات سختافزاری، سرور یا هاستینگ مورد نیاز جهت استقرار نرمافزار.
سوالات متداول در خصوص قراردادهای برنامهنویسی (FAQs)
۱. مالکیت مادی و معنوی سورسکد در پایان پروژه متعلق به کیست؟
در این قرارداد، توافق شده است که پس از تسویه حساب کامل مالی توسط کارفرما، پیمانکار مکلف است کلیه سورسکدها و مستندات پروژه را به کارفرما تحویل دهد. کارفرما حق هرگونه ویرایش، توسعه بعدی و نگهداری داخلی از این کدها را خواهد داشت.
۲. اگر برنامهنویس در تحویل پروژه تاخیر کند، چه جریمهای به او تعلق میگیرد؟
بر اساس ماده ۶ بند ۵ این قرارداد، در صورت دیرکرد غیرمجاز پیمانکار، خسارت روزانهای معادل حاصل تقسیم مبلغ کل قرارداد بر تعداد روزهای کل پروژه (تا سقف ۱۰ درصد مبلغ قرارداد) محاسبه شده و کارفرما مجاز است این جریمه را مستقیماً از مطالبات نهایی پیمانکار کسر کند.
۳. تفاوت دوره گارانتی (تضمین) با پشتیبانی هزینهدار چیست؟
دوره تضمین (که در این سند به صورت پیشفرض ۶ ماه در نظر گرفته شده) صرفاً مربوط به رفع رایگان ایرادات و نواقص پنهانی است که ناشی از خطای کدنویسی پیمانکار بوده و در محدوده اولیه پروژه قرار دارد. هرگونه اضافه کردن امکانات جدید، توسعه سیستم یا پشتیبانیهای دورهای بعد از پایان گارانتی، نیازمند عقد قرارداد پشتیبانی مجزا و پرداخت هزینه است.
۴. چطور میتوان از قالب قرارداد برنامهنویسی استفاده کرد؟
این سند به عنوان یک قالب عمومی (Template) طراحی شده است. شما میتوانید فایل را دانلود کرده و فضاهای خالی نظیر نقطهچینها [...........] یا گزینههای دوپهلویی که با علامت اسلش متمایز شدهاند (مانند [کارفرما / پیمانکار]) را متناسب با توافقهای شخصی خود تکمیل کرده و سپس نسبت به چاپ و امضای آن اقدام نمایید.
⚠️ یادداشت حقوقی مهم: نمونه قرارداد ارائه شده در این وبسایت صرفاً جهت راهنمایی کلی و افزایش اطلاعات حقوقی مخاطبان عزیز است. با وجود اینکه این قرارداد با بالاترین سطح استانداردهای فنی و حقوقی بازنویسی شده است، اما با توجه به حساسیت پروژههای نرمافزاری بزرگ، اکیداً توصیه میشود پیش از امضای نهایی، متن سند تکمیلشده خود را به تایید یک مشاور حقوقی یا وکیل مجرب در حوزه فناوری اطلاعات برسانید.




پاسخها