مقالات
ما الذي يجب أن تملكه شركتك من اليوم الأول
الكود والخوادم والنطاق وحسابات المتاجر والخدمات: لماذا تسجل باسم شركتكم من البداية، وما الذي تسألون عنه أي مطور قبل التوقيع.
عندما تبدأ شركة مشروعا برمجيا، يتركز الاهتمام على الشاشات والمزايا وموعد الإطلاق. سؤال الملكية يأتي متأخرا، وغالبا في أسوأ توقيت: عندما يتوقف المطور عن الرد، أو ينتهي التعاقد، أو تريد الشركة أن تنقل العمل إلى جهة أخرى.
أنا أسجل مستودع الكود وجميع الحسابات باسم شركة العميل من اليوم الأول. في هذا المقال أشرح السبب، وأعرض القائمة التي أنصح أي شركة بمراجعتها، سواء عملت معي أو مع غيري.
الخطر عندما تكون المفاتيح عند المطور
موقف معتاد في السوق: شركة تتعاقد مع مطور لبناء نظام وتطبيق جوال. لتسريع العمل، يشتري المطور النطاق باسمه، ويفتح الخادم على حسابه، وينشر التطبيق من حسابه في متاجر التطبيقات. النظام يعمل والجميع راض. ثم تتغير الظروف. المطور انشغل بمشاريع أخرى، أو حدث خلاف على دفعة، أو قررت الشركة ببساطة أن تتعامل مع فريق آخر.
في هذه اللحظة تكتشف الشركة أنها لا تملك ما دفعت ثمنه:
- الكود على جهاز المطور أو في حسابه، ولا توجد نسخة لدى الشركة.
- الخادم مدفوع من بطاقته. إذا توقف عن الدفع، يتوقف النظام.
- النطاق مسجل باسمه، وتجديده بيده، وبريد الشركة قد يكون مرتبطا به.
- التطبيق منشور من حسابه في المتاجر. نقله ممكن في حالات كثيرة، لكنه يحتاج تعاونه.
- الخدمات الخارجية مثل بوابة الدفع وإرسال الرسائل والخرائط مفعلة بحساباته ومفاتيحه.
هذا لا يعني أن المطور سيئ النية. في أغلب الحالات فعل ذلك لأنه الطريق الأسرع في البداية. لكن النتيجة واحدة: أصول تشغيل شركتكم معلقة على شخص واحد خارجها.
والخطر لا يأتي من الخلاف وحده. قد ينشغل المطور أو يغير عمله، أو ينسى تجديد النطاق، فيتوقف الموقع والبريد في يوم عادي بدون أن يقصد أحد شيئا. الحسابات التي باسمكم تحميكم من الظروف، وليس من الأشخاص فقط.
القائمة: ما يجب أن يكون باسم شركتكم
مستودع الكود
الكود يحفظ في مستودع كود (code repository) على حساب تملكه الشركة. المطور يضاف إليه عضوا بصلاحيات محددة، ويمكن إزالته متى شئتم. بهذا يكون لديكم آخر نسخة من الكود، وسجل بالتغييرات: من غير ماذا، ومتى.
الخوادم والاستضافة
حساب الاستضافة يفتح باسم الشركة، وبوسيلة دفع الشركة. المطور يحصل على صلاحية الإدارة التقنية، لكن الحساب نفسه، وقرار نقله أو إغلاقه، يبقى لكم.
النطاق وإعدادات DNS
النطاق هو عنوان شركتكم على الإنترنت، وعليه يعتمد الموقع والبريد، وأحيانا التطبيق. يسجل باسم الشركة، في حساب تملكونه، مع تفعيل التجديد التلقائي. وإعدادات DNS، التي توجه النطاق إلى الخادم والبريد، تدار من الحساب نفسه.
حسابات متاجر التطبيقات
إذا كان لديكم تطبيق جوال، فحساب المطور في متاجر التطبيقات يفتح باسم الشركة. بهذا يظهر التطبيق للناس باسم شركتكم، وتبقى التقييمات والتحديثات تحت إدارتكم. المطور يضاف إلى الحساب بصلاحية النشر فقط.
حسابات الخدمات الخارجية
أغلب الأنظمة تعتمد على خدمات من جهات أخرى: إرسال البريد والرسائل، وبوابات الدفع، والخرائط، والتخزين. كل خدمة منها حساب له مفاتيح ربط وفواتير. تسجل كلها باسم الشركة، وبوابة الدفع قبل غيرها، لأن أموالكم تمر عبرها.
البريد ووسائل الدخول
البريد المستخدم لفتح هذه الحسابات يكون بريدا تابعا للشركة، وليس بريدا شخصيا للمطور، ولا لموظف واحد قد يغادر. ووسائل التحقق الثنائي ترتبط برقم أو جهاز تحت سيطرة الشركة.
الوثائق التي تشرح كيف يعمل النظام
امتلاك الحسابات خطوة أولى. الخطوة الثانية أن يستطيع شخص غير المطور أن يفهم كيف يعمل النظام. لذلك يجب أن تكون لديكم وثائق مكتوبة تجيب عن أسئلة عملية:
- أين يعمل النظام، وما الحسابات والخدمات التي يعتمد عليها.
- كيف ينشر تحديث جديد.
- كيف تؤخذ النسخ الاحتياطية، وكيف يسترجع منها.
- ما الإعدادات والمفاتيح التي يحتاجها النظام، وأين تحفظ بأمان.
- ما الربط مع المنصات الأخرى، وماذا يحدث إذا توقف أحدها.
الوثائق الجيدة تعني أن مطورا آخر يستطيع أن يستلم النظام بدون أن يبدأ من الصفر. وهذا في مصلحتكم حتى لو استمر تعاملكم مع المطور نفسه لفترة طويلة، لأنها تجعل علاقتكم به اختيارا، وليست اضطرارا.
إذا كان إنهاء العلاقة مع المطور يوقف نظامكم، فأنتم لا تملكون النظام.
إذا كان النظام قائما بالفعل
بعض الشركات تقرأ هذه القائمة ونظامها يعمل منذ مدة، وجزء من الحسابات ليس باسمها. هذا يمكن إصلاحه، والأفضل أن يتم في وقت هادئ، وليس وسط خلاف.
ابدأوا بحصر ما لديكم: أين الكود، وعلى أي حساب الخادم، وباسم من النطاق، ومن أي حساب نشر التطبيق. ثم اطلبوا من المطور نقل كل عنصر إلى حساب الشركة، واحدا بعد الآخر. أغلب هذه الخدمات توفر طريقة رسمية لنقل الملكية. المطور المحترف لا يرى في هذا الطلب اتهاما، لأنه طلب طبيعي من صاحب النظام.
كيف أطبق هذا في مشاريعي
في بداية المشروع تفتح الشركة الحسابات بنفسها، أو أساعدها في فتحها باسمها وبريدها. ثم تضيفني بالصلاحيات التي يحتاجها العمل. بعد الإطلاق تبقى الحسابات حيث هي. تغطي فترة الدعم المحددة في العرض أي خطأ يظهر، وبعدها تكون الصيانة اختيارية. وإذا قررتم في أي وقت التوقف عن التعامل معي، تزيلون صلاحياتي، ويستمر النظام في العمل كما هو.
وأنا أعمل وحدي، وأستعين بمتخصصين عند الحاجة. هذا سبب إضافي لأن تكون الحسابات باسمكم: من يدخل إلى النظام، ومتى يخرج منه، قرار يعود إليكم.
أسئلة لأي مطور قبل التوقيع
اطرحوا هذه الأسئلة على أي مطور أو شركة برمجة، ودونوا الإجابة بنعم أو لا:
- هل سيحفظ الكود في مستودع على حساب تملكه شركتكم من اليوم الأول؟
- هل ستفتح الاستضافة باسم الشركة وبوسيلة دفعها؟
- هل سيكون النطاق وإعدادات DNS في حساب تملكونه؟
- هل سينشر التطبيق من حساب الشركة في متاجر التطبيقات؟
- هل ستكون بوابة الدفع وخدمات البريد والرسائل والخرائط باسم الشركة؟
- هل ستستخدم الحسابات بريدا تابعا للشركة؟
- هل ستستلمون وثائق تشرح التشغيل والنشر والنسخ الاحتياطي؟
- هل يستمر النظام في العمل إذا أزلتم صلاحيات المطور؟
إذا كانت الإجابة عن أي سؤال «لا»، فاطلبوا تعديلها في العقد قبل البدء. هذه الأمور أسهل كثيرا في اليوم الأول منها بعد الإطلاق.
إذا رغبتم، اكتبوا لي وصفا قصيرا لطريقة عملكم والأنظمة التي تعتمدون عليها اليوم، وسأشارككم ما يستحق المراجعة من ناحية الملكية.
مرتبط بهذا المقالطريقة العمل