إيداع الكود المصدري لدى طرف ثالث، المعروف في السوق باسم software escrow، موجود للرد على خوف مشروع: أن يختفي المورد الذي بنى نظامك الحيوي ويشغله، فتبقى أنت مع شيء تعتمد عليه ولا تستطيع صيانته. يضع عقد الإيداع الكود المصدري لدى وسيط محايد يسلمه إليك إذا وقع ذلك فعلا.

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

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


ما الذي يغطيه إيداع الكود المصدري

عقد ثلاثي بينك وبين المورد ووكيل الإيداع. يودع المورد المواد لدى الوكيل، ويحتفظ بها الوكيل، وتحدد شروط تسليم منصوص عليها متى تحصل عليها.

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

الإيداع نفسه يجب أن يزيد على الكود. الحد الأدنى: تعليمات بناء دقيقة بما يكفي لإنتاج نظام يعمل، وإصدارات الاعتماديات، وإعدادات البنية التحتية، وتوثيق الخدمات الخارجية ومكان حفظ بيانات الاعتماد، وجهة اتصال تقنية محددة بالاسم. من دون ذلك كله يكاد الكود المصدري لا يساوي شيئا.

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

لماذا تفشل معظم عقود الإيداع عند التسليم

لأن أحدا لم يتحقق.

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

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

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

مشكلة البرمجيات السحابية

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

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

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

ولمعظم البرمجيات المستضافة يكون عقد الإيداع الأداة الخطأ، يشترى بحكم العادة، والمال ينفق بشكل أفضل على عمليات تصدير منتظمة أثبتت أنك تستطيع قراءتها.

كم يكلف ولمن يناسب

الإيداع كلفة سنوية، تتراوح عادة من بضع مئات إلى بضعة آلاف من الجنيهات الإسترلينية في السنة حسب حجم الإيداع وعدد المستفيدين ومستوى التحقق. ويحتسب التحقق بشكل منفصل، وهناك يقع الإنفاق ذو المعنى.

يناسب فعلا: الأنظمة التي يضر انقطاعها بالعمل ضررا ملموسا، والموردين الصغار بما يكفي ليكون تعثرهم احتمالا حقيقيا، والبرمجيات المثبتة محليا أو القابلة للاستضافة الذاتية التي يمكنك تشغيلها بشكل معقول، والحالات التي تفرضه فيها جهة تنظيمية أو عقد مع عميل.

ويناسب أقل: البرمجيات المستضافة التي لن تشغل كودها على أي حال، والأنظمة النمطية التي يسهل استبدالها، والموردين الصغار الذين تشكل الكلفة السنوية لديهم نسبة ملحوظة من قيمة العقد.

البديل الذي يستحق النظر أولا هو ببساطة أن تملك الكود. إذا كان العمل مخصصا وأنت من طلبه، فتفاوض على نقل الملكية الفكرية وعلى نسخة من المستودع عند كل إصدار. هذا يلغي الحاجة إلى وكيل، والنقاط الواردة في دليل العناية التقنية الواجبة لدينا هي نفسها التي تجعل مثل هذا التسليم قابلا للاستخدام.

كيف تجعله مفيدا إذا اشتريته رغم ذلك

تفاوض على محفزات التسليم بدل قبول القائمة النموذجية، وأدرج تخلي المورد عن المنتج إلى جانب الإعسار.

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

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

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

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

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



الأسئلة الشائعة

ما هو إيداع الكود المصدري؟ عقد ثلاثي بين عميل ومورد برمجيات ووكيل إيداع. يودع المورد الكود المصدري والمواد المساندة لدى الوكيل، الذي يسلمها إلى العميل عند تحقق شروط منصوص عليها، وأكثرها شيوعا إعسار المورد أو توقفه عن صيانة المنتج.

لماذا تفشل عقود الإيداع عند التسليم؟ لأن الإيداع لم يجر التحقق منه قط. النتائج الشائعة هي مواد لا تبنى من دون أداة غير موثقة، أو اعتماد على مستودع حزم خاص يختفي مع المورد، أو غياب بيانات اعتماد لخدمات خارجية، أو إصدار أقدم من الذي يعمل في الإنتاج. والتحقق الذي يبني الإيداع ويشغله هو الفحص الوحيد الذي يجيب عن السؤال الحقيقي.

هل ينفع إيداع الكود المصدري مع البرمجيات السحابية؟ بشكل ضعيف. استلام الكود المصدري لمنصة مستضافة يتركك بحاجة إلى بنية تحتية وأدوات نشر ومعرفة تشغيلية وبياناتك، ويستغرق تشغيلها أسابيع. حقوق استخراج البيانات، وفترة استمرارية تعاقدية بعد الإنهاء، وعمليات تصدير تختبر بانتظام، تحمي خدمة مستضافة أفضل بكثير من إيداع الكود.

كم يكلف إيداع الكود المصدري؟ عادة من بضع مئات إلى بضعة آلاف من الجنيهات الإسترلينية في السنة حسب حجم الإيداع وعدد المستفيدين ومستوى التحقق، مع احتساب التحقق بشكل منفصل. الإنفاق ذو المعنى يقع في التحقق، والعقد الذي يخلو منه ينقل الشعور بالمخاطرة بدل المخاطرة نفسها.

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