این مقاله درباره

مالکیت سورس کد

مالکیت سورس کد یعنی ریپو، داده و حساب‌ها مال شما باشد تا تیم را عوض کنید — نه فقط یک بند مبهم در قرارداد.

مالکیت سورس کد در پروژه اختصاصی؛ قرارداد، ریپو و وابستگی

نوشته شده توسط محمد اصل زنجانی

بازبینی‌شده توسط روبینش

اولین نظر را بدهید — امتیاز خوانندگان روبینش

وقتی می‌پرسید مالکیت سورس کد یعنی چه، معمولاً دنبال یک جملهٔ حقوقی نیستید؛ می‌خواهید بعد از پرداخت، سامانه واقعاً مال شما باشد. یعنی بتوانید تیم را عوض کنید، روی سرور خودتان ببرید، و برای یک تغییر کوچک گروگان یک نفر نمانید. مالکیت روی کاغذ اگر ریپو، رمز و مستند همراهش نباشد، فقط حس امنیت می‌دهد. این راهنما همان حس را به چک‌لیست قابل بررسی تبدیل می‌کند — بدون اینکه جای وکیل بنشیند.

جست‌وجوهایی مثل «مالکیت سورس کد چیست»، «مالکیت کد نرم افزار اختصاصی»، «تحویل سورس کد در قرارداد»، «دسترسی گیت و ریپو»، «قفل فروشنده نرم افزار» و «انتقال پروژه به تیم دیگر» نشان می‌دهند نیت تجاری است: خروج بدون بحران. اینجا می‌گوییم مالکیت چیست، چه چیزی باید تحویل شود، ریپو و دسترسی یعنی چه، قفل فروشنده از کجا می‌آید و قرارداد را با چه سؤالی تست کنید. مسیر ساخت را در راهنمای نرم‌افزار سفارشی یا آماده ببینید، اثر مالکیت روی برآورد را در هزینه خروج از تیم فعلی، و اجرا را در توسعه نرم‌افزار اختصاصی روبینش.

A repository contains all of your project's files and each file's revision history. You can manage your work and collaborate with others from your repository.

منبع: GitHub Docs — About repositories
ریپوی گیت فارسی با دسترسی کارفرما کنار قرارداد روی لپ‌تاپ — روبینش | Rubinesh
مالکیت وقتی واقعی است که ریپو و رمز در حساب شماست، نه فقط در بند قرارداد.

مالکیت سورس کد چیست و چه چیزی نیست؟

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

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

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

روی کاغذ در برابر قابل تحویل
ادعا نشانهٔ واقعی
مالکیت کامل سورس ریپو در سازمان شما، با تاریخچهٔ کامیت
دسترسی ادمین حساب سرور، دامنه، درگاه و پیامک به نام شما
امکان تعویض تیم مستند ساخت، متغیرهای محیط، و یک استقرار آزمایشی توسط فرد سوم

چه چیزی باید تحویل شود؟

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

چک‌لیست تحویل سورس، دیتابیس و دسترسی سرور روی دو مانیتور — روبینش | Rubinesh
اگر فرد سوم نتواند پروژه را بالا بیاورد، تحویل کامل نشده است.

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

سایت عمومی هم دارایی است. دامنه، هاست و پیشخوان را در چک‌لیست تحویل سایت با نرم‌افزار قاطی نکنید؛ هر کدام دسترسی جدا می‌خواهند. لایسنس کتابخانه‌ها را فهرست کنید تا فردا معلوم نشود یک جزء قابل جابه‌جایی نیست.

ریپو و دسترسی یعنی چه؟

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

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

قفل فروشنده از کجا شروع می‌شود؟

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

خروج از وابستگی فروشنده: انتقال ریپو و کلیدها به سازمان کارفرما — روبینش | Rubinesh
خروج را قبل از بحران تمرین کنید، نه وقتی همکاری تلخ شده است.

نشانه‌های هشدار آشنایند: تحویل فقط در پایان، مستند «بعداً»، رمزها فقط دست یک نفر، و مقاومت در برابر ریپوی شما. قیمت پایین با این الگو، معمولاً قسط بعدی را در سال بعد می‌گیرد. اگر سامانه انبار و سفارش هم دارید، مالکیت همان هسته را هم در راهنمای ERP سبک با اکسل موازی قاطی نکنید؛ داده بدون کد، نیمهٔ دارایی است.

چک‌لیست قرارداد را با سؤال تست کنید

به‌جای جملهٔ «کلیه حقوق متعلق به کارفرماست»، بپرسید: ریپو از کی به نام ماست؟ بعد از فسخ چه چیزی ظرف چند روز می‌آید؟ کتابخانهٔ ثالث با چه مجوزی است؟ چه کسی حساب ابری را تمدید می‌کند؟ اگر تیم جدید بخواهد استقرار آزمایشی کند، کدام فایل را باز کند؟ پاسخی که به «بعداً هماهنگ می‌کنیم» ختم شود، هنوز بند نیست.

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

اشتباهات رایج درباره مالکیت کد

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

چک‌لیست قبل از امضا

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

جمع‌بندی: دسترسی امروز، خروج فردا

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

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

سؤالات متداول

مالکیت سورس کد همان فایل اجرایی روی سرور است؟

خیر. بدون کد منبع، تاریخچه و دستور استقرار، شما مستأجر جعبهٔ سیاه می‌مانید. تحویل یعنی بستهٔ ادامهٔ کار.

لایسنس استفاده همان مالکیت است؟

معمولاً نه. ممکن است سامانه را راه بیندازید اما نتوانید آن را ببرید یا به تیم دیگر بسپارید. بند را با مثال عملی تست کنید.

ریپو از کی باید دست کارفرما باشد؟

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

قفل فروشنده یعنی چه؟

وقتی بدون همان تیم، تغییر و استقرار عملاً ممکن نباشد — از قرارداد مبهم، ساخت اختصاصی آن‌ها، یا حساب‌های به نام شخص.

این مقاله جای قرارداد وکیل است؟

خیر. چارچوب محصول است. بند نهایی را با مشاور حقوقی خودتان ببندید. مسیر اجرا در صفحه توسعه اختصاصی روبینش است نه تعرفه.