SpinesTech
العودة للمقالات
الأنظمة التشغيلية بحث مؤسسي

من يملك Source Code بعد تطوير التطبيق؟ وما الذي يجب أن تستلمه من شركة البرمجة؟

الملكية والاستلام التقني دفع قيمة التطوير أو امتلاك نسخة من الملفات لا يكفي وحده للإجابة عن سؤال الملكية. قبل إغلاق المشروع، يجب الفصل بين أربعة أشياء يخلط بينها الجميع: الحقوق القانونية، وحيازة الكود، والتحكم التشغيلي، وجودة المنتج هندسيًا. دليل استلام…

قراءة 12 دقائق نُشر: August 13, 2026 تحديث: August 14, 2026

الملكية والاستلام التقني

<!-- ── خانة صورة اختيارية ───────────────────────────────────────────
وصف الصورة بالعربي
تعليق تحت الصورة (اختياري).
────────────────────────────────────────────────────────────────── -->

دفع قيمة التطوير أو امتلاك نسخة من الملفات لا يكفي وحده للإجابة عن سؤال الملكية. قبل إغلاق المشروع، يجب الفصل بين أربعة أشياء يخلط بينها الجميع: الحقوق القانونية، وحيازة الكود، والتحكم التشغيلي، وجودة المنتج هندسيًا.

دليل استلام لأصحاب المشاريع الرقمية ومدراء المشتريات التقنية مدة القراءة ≈ ١٨ دقيقة

ماذا ستخرج به

  • أربع طبقات منفصلة يخلط بينها أغلب العملاء عند الحديث عن «الملكية».
  • ما الذي يجب أن يحسمه العقد قبل بدء التطوير، لا عند التسليم.
  • جدول ملكية لكل أصل في المشروع، من المستودع إلى حسابات المتاجر.
  • اختبار قبول تقني عملي قبل التوقيع على الاستلام النهائي.

الإجابة المباشرة: من يملك Source Code بعد تطوير التطبيق؟

في السعودية، البرمجيات تدخل ضمن المصنفات التي يحميها نظام حماية حقوق المؤلف ولائحته التنفيذية.[2] وقد أطلقت الهيئة السعودية للملكية الفكرية بالتعاون مع هيئة الاتصالات والفضاء والتقنية دليلًا استرشاديًا لحماية حقوق المؤلف في البرمجيات، يشمل برامج الحاسب وقواعد البيانات والمنصات الرقمية والتطبيقات، ويتناول انتقال المصنفات التقنية وتنظيم العلاقات التعاقدية واتفاقيات الترخيص وضوابط تسجيل المصنفات التقنية.[1]

لكن تحديد من يملك الحقوق المالية في برنامج طُوِّر لصالح عميل لا يُحسم بمجرد الدفع أو استلام الملفات. الحقوق المالية يمكن نقلها كلها أو بعضها، والتصرف فيها يحتاج اتفاقًا مكتوبًا يحدد نطاق الحق والغرض منه. وما لم يُتنازل عنه صراحةً يبقى محل نزاع لاحق.

الجواب العملي: لا تقل «دفعت إذن أملك كل شيء». اقرأ العقد لتعرف ما الحقوق التي نُقلت أو رُخِّصت لك، ثم افحص التسليم التقني لتتأكد أنك تستطيع تشغيل المنتج وصيانته وتطويره دون اعتماد غير مقصود على المورّد السابق.

هذا شرح تقني وتجاري عام وليس استشارة قانونية. تفسير عقد بعينه أو نزاع ملكية يحتاج مراجعة مختص قانوني في بلدك.

أربع طبقات يجب ألا تخلط بينها

٠١

الحقوق القانونية

من يملك الحقوق أو يُرخَّص له بها، وما حدودها؟ يحسمها العقد والنظام المطبَّق، لا العُرف.

٠٢

حيازة الكود

هل لديك نسخة أو مستودع كامل؟ سؤال تقني، وليس دليلًا منفردًا على نطاق الحقوق.

٠٣

التحكم التشغيلي

من يتحكم في الاستضافة والمتاجر والدومين والبيانات والمفاتيح والنشر؟

٠٤

الجودة الهندسية

هل الكود قابل للصيانة والاختبار؟ اكتمال الاستلام لا يعني أن المعمارية جيدة.

أكثر نقطة تسبب سوء فهم

يمكن أن يكون لديك Source Code كامل بينما العقد لا يمنحك كل الحقوق التي تفترضها. ويمكن أن تكون الحقوق واضحة في العقد بينما المنتج ما زال معتمدًا تشغيليًا على حسابات أو معرفة عند المورّد السابق.

ماذا يعني «Source Code» داخل العقد؟

عبارة «سيتم تسليم Source Code» وحدها غامضة في مشروع متعدد المكونات. الأفضل أن تحدد قائمة التسليمات ما يدخل بالاسم:

تطبيقات المستخدم

iOS وAndroid وFlutter أو أي Web Frontend داخل نطاق المشروع.

Backend & APIs

الخدمات الخلفية ومنطق الأعمال وWorkers والمهام المجدولة عند وجودها.

لوحة الإدارة

لوحات الإدارة أو التشغيل التي طُوِّرت خصيصًا للمشروع.

أصول قاعدة البيانات

Schema وMigrations وSeed scripts عندما تكون جزءًا من المشروع.

CI/CD

ملفات Workflows أو تعريفات الـPipeline التي يعتمد عليها البناء والنشر.

Infrastructure as Code

Terraform أو CloudFormation أو ما يعادله إذا كان مستخدمًا في التنفيذ.

العقد: ما الذي يجب أن يحسمه قبل بدء التطوير؟

الدليل الاسترشادي للبرمجيات لا يكتفي بفكرة «الترخيص» عمومًا، بل يتناول تنظيم العلاقات التعاقدية واتفاقيات الترخيص وانتقال المصنفات التقنية.[1] ترجمة ذلك إلى بنود يجب حسمها مسبقًا:

  • من يملك الحقوق المالية في الكود المخصص؟
  • هل هو نقل حقوق أم ترخيص استخدام؟
  • هل النقل كامل أم جزئي، وما نطاقه ومدته؟
  • ما مكونات المورّد السابقة على المشروع؟
  • ما مكونات الطرف الثالث وتراخيصها؟
  • هل يحق للعميل تعديل الكود؟
  • هل يحق له تكليف فريق آخر بالتطوير لاحقًا؟
  • ما الذي يحدث عند إنهاء العقد؟
  • كيف تُستعاد البيانات والوثائق؟
  • ما موعد وآلية التسليم النهائي ومعايير قبوله؟

جدول الملكية: لا تترك أي أصل بلا مسؤول واضح

استخدم الجدول التالي كأداة تفاوض وتشغيل. عمود «ما الذي يجب تحديده» مقصود، لأن الإجابة تختلف حسب عقدك ونموذج تشغيلك.

الأصلالسؤال المطلوب حسمهما الذي يجب تحديدهعند الاستلام
الكود المخصصمن يملك الحقوق أو يُرخَّص له؟العقد ونطاق الحقوقالمستودع أو وسيلة التسليم المتفق عليها
مساحة Gitمن يملك الـOrganization؟Owner/Admin وصلاحيات الفرقنقل الملكية أو منح الصلاحيات
حساب الاستضافةمن هو مالك الحساب؟Admin وBilling ومن يدير المصادقة الثنائيةالوصول والفوترة وخطة الفصل
الدومين وDNSمن يملك حساب المُسجِّل؟مالك الحساب وبريد التجديدRegistrar وDNS وNameservers
Apple / Googleمن يملك حساب النشر؟أدوار الحساب ومتطلبات النقلاتباع عملية النقل الرسمية
البياناتمن يتحكم بالبيانات؟الوصول والنسخ ومدد الاحتفاظ والاستعادةنسخة أو وصول وآلية استعادة
خدمات خارجيةمن صاحب الاشتراك والفاتورة؟المالك والفوترة والتجديد والمفاتيحقائمة الخدمات وخطة النقل
أصول التصميمهل تدخل في التسليمات؟ملفات التصميم والخطوط وتراخيصهانقل الملفات والصلاحيات

المستودع: لا تستلم ملفًا مضغوطًا وتعتبر المهمة انتهت

منصات Git توفّر آليات رسمية لنقل المستودع إلى مستخدم أو مؤسسة أخرى؛ فعند نقل مستودع على GitHub تنتقل معه المشكلات وطلبات السحب والويكي والنجوم والمتابعون، ويستطيع المالك الجديد إدارة محتوياته وإعداداته مباشرة.[3] أي أن الاستلام يمكن أن يشمل نقل التحكم في مساحة التطوير نفسها، لا مجرد تنزيل الملفات.

  • المستودع الرئيسي وكل المستودعات التابعة.
  • سجل الـCommits كاملًا.
  • الفروع والوسوم المهمة.
  • سجل الإصدارات عند استخدامه.
  • المهام ولوحات المشروع إن كانت جزءًا من إدارة العمل.
  • الصلاحيات والفرق.
  • قواعد حماية الفروع.
  • الـWebhooks والتكاملات.

هل يمكن إعادة بناء النسخة المنشورة؟

إذا كان المنتج يعتمد على Pipeline آلية، فملفات هذه الـPipeline وإعداداتها جزء عملي من التسليم لا إضافة اختيارية.

سلسلة إعادة البناء
٠١ Clone ٠٢ Install ٠٣ Build ٠٤ Test ٠٥ Package ٠٦ Deploy
إذا انكسرت السلسلة عند أي خطوة على جهاز جديد، فالتسليم غير مكتمل مهما بدا حجم الملفات كبيرًا.

كذلك يجب حفظ إصدارات الـRuntime والاعتماديات بطريقة تسمح بإعادة البناء. مثالًا، توضح وثائق npm أن ملف package-lock.json يصف الشجرة الدقيقة التي وُلِّدت، بحيث تستطيع عمليات التثبيت اللاحقة توليد شجرة مطابقة بغض النظر عن تحديثات الاعتماديات الوسيطة.[4]

اختبار القبول: على جهاز أو Runner جديد، هل يستطيع الفريق بناء المنتج نفسه من المستودع وتعليمات مكتوبة، دون معرفة شفوية مخزّنة في رأس مطوّر بعينه؟

الاختبارات: ما وُجد منها يجب ألا يضيع في الطريق

ليس كل مشروع يحتوي على النوع نفسه من الاختبارات. لكن ما نُفِّذ منها ضمن نطاق العمل يجب أن يصل إليك:

  • Unit Tests.
  • Integration Tests.
  • End-to-End Tests.
  • بيانات وحالات الاختبار.
  • إعدادات بيئة الاختبار.
  • مهام الـCI التي تشغّل الاختبارات.
  • سيناريوهات القبول لدى فريق الجودة.
  • الاختبارات غير المستقرة المعروفة إن وُجدت.

وجود أو غياب كل نوع يعتمد على نطاق المشروع. لا تستخدم القائمة كادعاء بأن كل مشروع يجب أن يحتوي عليها جميعًا.

الأسرار: لا تحوّل الاستلام إلى تسريب

توصي وثائق GitHub بألا تُكتب الأسرار داخل الكود إطلاقًا، وباستخدام متغيرات البيئة أو أدوات إدارة الأسرار، وبعدم إرسالها عبر البريد أو الرسائل الفورية، وبتحديد صلاحيات انتهاء لها وتدويرها دوريًا. وتضيف أن أي سرّ انكشف ولو للحظة يُعتبر مخترَقًا ويجب إبطاله فورًا واستبداله.[5]

الاستلام الجيد إذن ليس إرسال ملف .env على واتساب، بل تنظيم:

  • جرد كامل: ما الأسرار التي يحتاجها النظام؟
  • أين يُخزَّن كل سرّ؟
  • من يملك صلاحية القراءة أو التعديل؟
  • ما الأسرار المرتبطة بحساب المورّد شخصيًا؟
  • أي بيانات اعتماد يجب تدويرها بعد الانتقال؟
  • كيف تُحدَّث الأنظمة بعد التدوير؟
  • المصادقة الثنائية ووسائل الاسترداد للحسابات الحرجة.
  • منع بقاء أي سرّ داخل المستودع أو التوثيق.

النسخ الاحتياطي: وجوده لا يكفي بدون استعادة مُختبَرة

تنص إرشادات AWS على أن استراتيجية النسخ الاحتياطي يجب أن تتضمن اختبار النسخ، وأن الاستراتيجية لا تكون فعّالة إذا تعذّر استرجاع البيانات المنسوخة، وتوصي باختبار القدرة على تحديد نقاط الاستعادة واستردادها بانتظام.[6]

  • Schema قاعدة البيانات وMigrations.
  • جدول النسخ ومدة الاحتفاظ.
  • مكان تخزين النسخ وصلاحيات الوصول إليها.
  • إجراء الاستعادة موثّقًا.
  • تاريخ آخر اختبار استعادة ناجح.
سؤال أقوى من «هل عندنا نسخة احتياطية؟»: متى كانت آخر مرة استعدنا فيها نسخة بنجاح، وتحققنا أن البيانات قابلة للاستخدام فعلًا؟

متاجر التطبيقات: الملكية ليست اسم مستخدم وكلمة مرور

لدى Apple عملية رسمية لنقل ملكية التطبيق إلى مطوّر آخر دون إزالته من المتجر؛ يحتفظ التطبيق أثناء النقل وبعده بمراجعاته وتقييماته، ويستمر المستخدمون في تلقّي التحديثات، ويحتفظ بمعرّف الحزمة (Bundle ID) الذي لا يمكن تغييره بعد رفع أول Build. ويشترط أن يكون التطبيق قد صدرت له نسخة واحدة على الأقل على المتجر، وألا يكون في حالة مراجعة أو انتظار إصدار.[7]

وGoogle Play كذلك يوفّر عملية نقل رسمية بين حسابات المطورين، تنتقل معها بيانات المستخدمين وإحصاءات التنزيل والتقييمات والمراجعات وبيانات المتجر، بينما لا تنتقل تقارير الأرباح والمدفوعات.[8]

  • مالك الحساب وبيانات المؤسسة.
  • أهلية التطبيق للنقل وفق شروط كل منصة.
  • معرّف الحزمة أو اسم الحزمة.
  • إعدادات التوقيع والشهادات والمفاتيح.
  • الاشتراكات والمشتريات داخل التطبيق إن وُجدت.
  • بيانات المتجر وصلاحيات الإصدار.
  • تنزيل التقارير التي لا تنتقل مع التطبيق قبل بدء النقل.

الدومين والحسابات الحرجة

لا تكتب في محضر الاستلام «الدومين موجود» فقط. سجّل من يملك الحساب الذي يدير الأصل نفسه.

المُسجِّل

من صاحب الحساب؟ وما البريد المستخدم؟ ومن مسؤول التجديد؟

DNS والـNameservers

أين تُدار السجلات؟ وما الخدمات التي ستتأثر عند تغييرها؟

الاسترداد والمصادقة

من يتحكم في وسائل الاسترداد والمصادقة الثنائية للحسابات الحرجة؟

سجل الخدمات الخارجية: الفواتير التي تظهر بعد خروج المورّد

أنشئ سجلًا بكل خدمة خارجية يعتمد عليها المنتج، حتى لا تكتشف بعد الانتقال أن خدمة أساسية مرتبطة ببطاقة أو حساب شخصي سابق.

الخدمةالغرضمالك الحسابالفوترةالتجديدمكان بيانات الاعتماد
الاستضافةتشغيل وقواعد بياناتيُحدَّديُحدَّديُحدَّدمدير الأسرار
الرسائل النصيةتحقق وإشعاراتيُحدَّديُحدَّديُحدَّدمدير الأسرار
الخرائطمواقع وتتبّعيُحدَّديُحدَّديُحدَّدلوحة المزوّد
البريدرسائل النظاميُحدَّديُحدَّديُحدَّدمدير الأسرار
المراقبةأخطاء وتوافريُحدَّديُحدَّديُحدَّدحساب خدمة

هل ستعرف أن Production تعطّل بعد خروج الفريق؟

راجع ما يستخدمه المنتج فعليًا، ولا تضف أدوات لمجرد استكمال قائمة:

  • سجلات التطبيق.
  • تتبّع الأخطاء.
  • مراقبة التوافر والأداء.
  • تنبيهات البنية التحتية.
  • سجلات التدقيق عند الحاجة.
  • قنوات الإشعار عند الحوادث.
  • من يملك حساب كل أداة؟

الحد الأدنى من التوثيق

كلمة «Documentation» في العقد ليست كافية. حدّد المستوى المتفق عليه. قد يشمل بحسب النطاق:

  • نظرة عامة على النظام ومخطط المعمارية.
  • خريطة المستودعات.
  • إعداد بيئة محلية وإصدارات الأدوات والـRuntime.
  • وصف البيئات وتعليمات البناء.
  • إجراء النشر وإجراء الترحيل لقواعد البيانات.
  • التكاملات الخارجية.
  • جرد الأسرار دون كشف القيم.
  • الإجراءات التشغيلية المعروفة.

سجل المشكلات المعروفة والدين التقني

لا تجعل الفريق الجديد يكتشف بعد الاستلام ما كان الفريق السابق يعرفه بالفعل. اطلب سجلًا عمليًا يوضح — إن وُجدت عناصر معروفة:

  • الأخطاء المعروفة والميزات غير المكتملة.
  • الاعتماديات المهجورة.
  • الحلول الالتفافية المطبَّقة.
  • اختناقات الأداء.
  • الملاحظات الأمنية المعروفة.
  • الوحدات القديمة والقرارات المؤجلة.
لا تخلط بين أمرين

اكتمال الاستلام لا يعني أن جودة الكود ممتازة. الأول يقيس قابلية نقل المشروع وتشغيله، أما الجودة والأمن والقابلية للصيانة فتحتاج مراجعة تقنية منفصلة.

اختبار القبول التقني قبل التوقيع

بدل سؤال «هل استلمنا الملفات؟»، اختبر المشروع كسلسلة تشغيل فعلية:

مسار القبول
٠١ Access ٠٢ Clone ٠٣ Configure ٠٤ Build ٠٥ Test ٠٦ Deploy ٠٧ Observe ٠٨ Restore
الخطوات المظللة هي التي تكشف النقص الحقيقي. أما الوصول والاستنساخ فينجحان حتى في تسليم ناقص.

اختبار الوصول

هل يصل شخص مخوَّل إلى كل المستودعات الضرورية؟

اختبار بيئة جديدة

هل يعمل المشروع على بيئة نظيفة بتعليمات مكتوبة فقط؟

اختبار البناء

هل يمكن إنتاج Build صالح من الكود المستلَم؟

اختبار النشر

هل خطوات النشر والصلاحيات واضحة وقابلة للتنفيذ؟

اختبار الاستعادة

هل توجد آلية استعادة بيانات تم التحقق منها فعليًا؟

اختبار التشغيل

هل يعرف الفريق أين يراقب السجلات والأخطاء والتنبيهات؟

قائمة تحقق قبل التوقيع على العقد

  • تعريف دقيق للكود المشمول بالتسليم.
  • تحديد الحقوق التي تنتقل أو تُرخَّص ونطاقها.
  • تحديد مكونات المورّد السابقة وتراخيص الطرف الثالث.
  • تحديد ملكية المستودع والاستضافة والمتاجر والدومين.
  • تحديد التوثيق المطلوب وتسليمات الـCI/CD.
  • تحديد آلية تسليم البيانات وآلية إنهاء العلاقة.
  • تحديد الدعم بعد الاستلام ومعايير القبول.

قائمة تحقق يوم الاستلام

  • المستودعات كاملة بسجل الـCommits والوسوم المهمة.
  • إصدارات الـRuntime موثّقة وملفات قفل الاعتماديات موجودة.
  • ملفات الـCI/CD متاحة، والاختبارات المتفق عليها قابلة للتشغيل.
  • الوصول إلى الاستضافة وقاعدة البيانات منظَّم، وإجراء الاستعادة واضح.
  • جرد الأسرار مكتمل، والاعتمادات الحرجة نُقلت أو دُوِّرت وفق الخطة.
  • حسابات المتاجر منقولة أو متاحة حسب الحاجة.
  • الدومين وDNS تحت سيطرة الجهة المتفق عليها.
  • سجل الخدمات الخارجية والفوترة والتجديدات مكتمل.
  • المراقبة والتنبيهات متاحة للفريق الجديد.
  • التوثيق قابل للاستخدام، والمشكلات المعروفة موثّقة.
  • اختبار القبول التقني ناجح وفق معايير المشروع.

أسئلة متكررة

هل دفع قيمة التطبيق يجعل الكود ملكي تلقائيًا؟

لا تعتمد على الدفع وحده لتحديد نطاق الحقوق. راجع العقد وما نُقل أو رُخِّص فيه صراحةً، إضافة إلى النظام المطبَّق على العلاقة. الدفع يثبت الوفاء بالالتزام المالي، لا نطاق الحقوق.

هل استلام ملف مضغوط يكفي؟

قد يكفي كنسخة ملفات، لكنه لا يضمن اكتمال الاستلام. المشروع قد يحتاج سجل المستودع وإعدادات البناء والـCI/CD وقواعد البيانات والحسابات والتوثيق والخدمات الخارجية. المعيار العملي: هل تستطيع بناء المنتج وتشغيله دون الرجوع إلى المورّد؟

هل يجب تسليم كل كلمات المرور في ملف واحد؟

لا. إرسال الأسرار في ملف واحد عبر البريد أو الرسائل الفورية ممارسة توصي وثائق GitHub صراحةً بتجنّبها.[5] البديل: تسليم جرد بالأسرار ومواضع تخزينها، ثم نقل الوصول عبر أداة إدارة أسرار أو مدير كلمات مرور، مع تدوير الاعتمادات الحرجة بعد انتهاء العلاقة.

هل اكتمال الاستلام يعني أن الكود جيد؟

لا. الاستلام يقيس قابلية نقل المشروع وتشغيله. أما الجودة الهندسية فتحتاج مراجعة مستقلة للكود والمعمارية والاختبارات والأمن والقابلية للصيانة.

هل أستطيع تكليف فريق آخر بالتطوير بعد الاستلام؟

يعتمد على ما ينص عليه العقد. حق التعديل وحق التكليف لطرف ثالث بندان منفصلان، وقد يمنحك العقد الأول دون الثاني. احسمهما كتابةً قبل التوقيع لا بعد الخلاف.

الخلاصة

الملكية ليست سؤالًا واحدًا. هي أربعة أسئلة تُحسم في مكانين مختلفين: العقد، ومحضر الاستلام.

العقد يحدد ما تملكه. الاستلام يحدد ما تستطيع فعله بما تملكه. والفجوة بينهما هي المكان الذي تعلق فيه أغلب المشاريع بعد انتهاء العلاقة مع المورّد.

على وشك إغلاق مشروع أو استلامه من فريق سابق؟

مراجعة بنود الملكية والتسليم قبل التوقيع أرخص كثيرًا من معالجتها بعد خروج الفريق. في SpinesTech نلتزم بتسليم الكود المصدري كاملًا مع التوثيق ونقل الملكية، ويمكننا مراجعة اكتمال استلام مشروع قائم.

ناقش حالة مشروعك

المصادر

  1. هيئة الاتصالات والفضاء والتقنية والهيئة السعودية للملكية الفكرية — إطلاق الدليل الاسترشادي لحماية حقوق المؤلف في البرمجيات، مايو ٢٠٢٤.
  2. جريدة أم القرى — اللائحة التنفيذية لنظام حماية حقوق المؤلف، المملكة العربية السعودية.
  3. GitHub Docs — Transferring a repository.
  4. npm Docs — package-lock.json.
  5. GitHub Docs — Storing your secrets safely.
  6. AWS Prescriptive Guidance — Test data recovery capabilities.
  7. Apple — Overview of app transfer، App Store Connect Help.
  8. Google Play Console Help — Transfer apps to a different developer account.

القوائم في هذا المقال إطار عملي وليست معايير مطلقة، وتُكيَّف وفق نطاق كل مشروع ونموذج تشغيله.

تم نسخ الرابط!

جاهز لبناء منصتك القادمة؟

انضم إلى عشرات الشركات التي تعتمد على منهجية SpinesTech لتصميم وبناء وتوسيع تجارب رقمية جاهزة للمستقبل.