تحتاج إلى برنامج يُبنى لك، وتتردد فيمن يبنيه: شركة سوفت وير (أو شركة برمجيات)، أم مبرمج مستقل (فريلانسر)، أم فريق داخلي من موظفيك. لا يكرر هذا الدليل كيف تختار بين الشركات ولا كم يكلف النظام ولا كيف تحفظ ملكيتك؛ فلكل منها مقال، وسنربطك به حين يلزم. إنما يعطيك ما لا تعطيه تلك المقالات: مقارنة جنبًا إلى جنب بين الخيارات الثلاثة على ست نقاط، واختبارًا قصيرًا يرشدك إلى أحدها.
أولًا: ما الذي تقرره فعلًا
الخيارات الثلاثة هي ثلاث طرق لحمل الأشياء الأربعة نفسها: من يكتب الشيفرة، ومن يعرف كيف يعمل النظام، ومن يتحمل المسؤولية عند العطل، ومن يملك النتيجة. كل فرق أدناه ينشأ من «من يحمل ماذا».
- المبرمج المستقل يحمل الأربعة في شخص واحد.
- شركة البرمجيات تحملها في مؤسسة، فيها عدة أشخاص وإجراءات وعقد.
- الفريق الداخلي يحملها داخل نشاطك، موظفون تديرهم أنت.
لا أحدها الأفضل بإطلاق. فالأنسب يتوقف على ما تبنيه، وكم يجب أن يعيش، وكم إدارة تستطيع أن تقدّم.
المقارنة على ست نقاط
1. المخاطرة
المبرمج المستقل. الخطر الأكبر الاعتماد على شخص واحد: مرضه، أو عرض أفضل جاءه، أو جدوله المزدحم، أو انقطاعه. وجودة العمل تتفاوت تفاوتًا كبيرًا، وقد تكون أنت المراجع الوحيد. المستقل الجيد في مهمة محددة قليل المخاطرة؛ وهو نفسه حين يحمل نظام عملك كله مرتفع المخاطرة.
شركة البرمجيات. المخاطرة موزعة على أشخاص، لكنك تتحمل نوعًا آخر: شركة تبالغ في الوعود، أو تسلمك بعد البيع إلى فريق مبتدئ، أو تكون أكبر أو أصغر مما يناسب مشروعك. يتناول مقال كيف تختار شركة برمجيات اختبار ذلك، ويتناول علامات مبكرة على تعثر مشروع برمجي ما تراقبه بعد البدء.
الفريق الداخلي. تأتي مخاطرة التوظيف أولًا: مبرمج تبيّن أنه أضعف مما بدا في المقابلة يظل راتبًا، وإنهاء التعاقد معه بطيء. والفريق المكوّن من شخص أو اثنين معرّض للاستقالة، وأول أشهر الموظف الجديد قليلة الإنتاج.
2. الاستمرارية
اسأل: إن غادر الشخص الأساسي الشهر القادم فماذا يحدث؟
المبرمج المستقل. الجواب الصادق أنك يجب أن تخطط لذلك من اليوم الأول: توثيق، ووصول إلى الشيفرة والخوادم بحسابك أنت، ومبرمج ثانٍ قرأ الشيفرة. وبدونها قد يعني الرحيل البدء من جديد.
شركة البرمجيات. موظفون آخرون يعرفون المشروع، فنادرًا ما يتوقف العمل برحيل واحد. والاستمرارية كذلك مسألة عقد: ماذا تدين لك الشركة به بعد التسليم، وكم مدة ذلك وبكم.
الفريق الداخلي. لا استمرارية لك إلا إذا كان عندك أكثر من مبرمج، أو كانت المعرفة مكتوبة. المبرمج الداخلي الوحيد مستقل على كشف الرواتب، وينطبق عليه التخطيط نفسه.
3. شكل التكلفة
يختلف السعر في شكله أكثر من حجمه، والشكل مهم لتخطيط السيولة. يشرح مقال كم يكلف النظام المخصص ولماذا تختلف التقديرات سبب تفاوت التقديرات؛ وهنا شكل التكلفة لكل خيار (الأرقام في المثال التطبيقي لاحقًا توضيحية).
المبرمج المستقل. عادةً سعر مشروع أو أجر بالساعة. تكاليف إضافية قليلة والتزام ثابت منخفض. وقد ترتفع التكلفة حين لا يكفي شخص واحد، أو حين تدفع لثانٍ ليراجع أو يتسلّم.
شركة البرمجيات. سعر مشروع أو سعر شهر عمل للفريق، وغالبًا مع رسم دعم شهري بعد التسليم. يبدو السعر أعلى لأنه يشمل الإدارة والاختبار والتصميم وكلفة من يغطي الغياب. اطلب سعر الإصدار الأول وسعر السنة الثانية منفصلين.
الفريق الداخلي. راتب شهري وتكاليف التوظيف المرتبطة به، سواء وُجد عمل كافٍ ذلك الشهر أم لا. اقتصادي حين يكون العمل مستمرًا، ومكلف حين يكون متقطعًا. وتذكّر وقت الإدارة والأجهزة وتراخيص البرامج ووقتك في التوظيف.
وللصورة الكاملة على سنوات اقرأ كم يكلف برنامج الأعمال فعلًا خلال خمس سنوات.
4. السرعة
المبرمج المستقل. الأسرع بدءًا في مهمة صغيرة واضحة: بلا مشتريات، ومحادثة واحدة. ويبطؤ حين تحتاج المهمة تصميمًا وخلفية ونظام جوال واختبارًا معًا، لأن شخصًا واحدًا ينفذها على التوالي.
شركة البرمجيات. أبطأ في البدء بمرحلة استكشاف وعقد، ثم أسرع في الأعمال الكبيرة لأن عدة أشخاص يعملون بالتوازي. احذر من أي شركة تعدك بأن تكون رخيصة وسريعة معًا في نظام كبير.
الفريق الداخلي. الأبطأ في البدء لأنك تحتاج إلى توظيف وتأهيل. ثم الأسرع في التغيير المستمر لأن الفريق يجلس مع عملياتك ويعدّل النظام يوم يتغير العمل.
5. الملكية
المبدأ واحد في الثلاثة: الملكية ما تقوله الورقة لا ما يفترضه الجميع. ويعرض مقال كيف تضمن ملكية برنامجك المخصص وسيطرتك عليه القائمة العملية. وهذه ملاحظتان تخصان مصر من قانون حماية حقوق الملكية الفكرية رقم 82 لسنة 2002:
- برامج الحاسب محمية بوصفها مصنفات في باب حق المؤلف (المادة 140).
- لا يصح نقل حقوق المؤلف المالية إلا كتابةً مع تحديد صريح ومفصّل لكل حق ونطاقه والغرض ومدة الاستغلال والإقليم، ويحتفظ المؤلف بكل حق مالي لم يتناوله التصرف صراحةً (المادة 149).
عمليًا يعني هذا أن عبارة من سطر واحد «كل الحقوق للعميل» قد لا تكفي مع المستقل أو الشركة: ينبغي أن يحدد العقد ما يُنقل (الشيفرة المصدرية، والتصاميم، والتوثيق)، ولكم مدة وفي أي إقليم. وبالنسبة للموظفين، اسأل محاميًا عن معاملة القانون للأعمال المنجزة في إطار الوظيفة وضَعِ النقطة في عقد العمل. هذه معلومات عامة وليست استشارة قانونية.
6. الدعم
المبرمج المستقل. يتوقف الدعم على تفرغه واتفاقك معه. اتفقا كتابةً على أزمنة الاستجابة، وعلى ما يحدث إذا غاب.
شركة البرمجيات. يمكن أن يكون الدعم خدمة محددة بأزمنة استجابة ومراقبة ونوبات. وهو بمقابل، ويستحق أن تتحقق من أن من يدعم النظام هم من يعرفونه.
الفريق الداخلي. أقرب دعم إلى النشاط: المبرمج على بعد رسالة. لكنه محدود بحجم الفريق، فتترك الإجازات والمرض فجوات.
والأمان والبيانات جزء من الدعم. فبموجب قانون حماية البيانات الشخصية المصري رقم 151 لسنة 2020 على المعالج الذي يحوز بيانات شخصية نيابة عنك إخطار مركز حماية البيانات الشخصية خلال 72 ساعة من علمه بأي اختراق (المادة 7). أيًّا كان اختيارك فاتفق كتابةً على من يخبر من وبأي سرعة. وإن أردت مفردات لتسأل بها مورّدًا عن تطوير آمن، فالمعهد الوطني الأمريكي للمعايير والتقنية (NIST) ينشر إطار التطوير الآمن للبرمجيات (SP 800-218) الذي تصفه إرشاداته لسلسلة التوريد بأنه مفردات مشتركة للجهات المتعاقدة في تعاملها مع الموردين؛ وسؤال المورّد هل يتبعه سؤال معقول حتى خارج الولايات المتحدة.
اختبار القرار
أجب عن الأسئلة التالية لمشروعك، وعدّ أي عمود يناسب أكثر إجاباتك.
- كم يجب أن يعيش البرنامج؟ حملة أو فعالية أو نموذج أولي أقل من ستة أشهر يشير إلى مستقل. ونظام تعتمد عليه عملياتك سنوات يشير إلى شركة أو فريق داخلي.
- ما مدى استمرار العمل؟ تغييرات دائمة كل أسبوع تشير إلى الفريق الداخلي. وبناء ثم تعديلات متفرقة يشير إلى شركة أو مستقل.
- كم مهارة تحتاج معًا؟ مهارة واحدة (موقع، إضافة) تناسب مستقلًا. وعدة مهارات (خلفية، جوال، تصميم، استضافة) تناسب شركة أو فريقًا.
- من سيدير العمل؟ إن لم يكن عندك من يراجع فالمستقل محفوف بالمخاطر؛ والشركة التي لها مدير مشروع تحمل هذا العبء. والفريق الداخلي يحتاج مديرًا قد تكون أنت.
- كم يكلف توقف النظام ليوم؟ إن كان يومًا مكلفًا فتحتاج إلى دعم محدد وشخص ثانٍ يعرف النظام.
- ما حساسية البيانات؟ بيانات شخصية أو مالية للعملاء تشير إلى طرف يستطيع إثبات ممارساته الأمنية والتوقيع على التزامات البيانات.
- متى يجب أن تبدأ؟ خلال أيام: مستقل. خلال أسابيع: شركة. خلال أشهر: فريق داخلي.
وإن تفرقت إجاباتك بين الأعمدة فنمط شائع: شركة للبناء الأول والدعم، ثم مبرمج داخلي أو مستقل للتعديلات الصغيرة المستمرة بعد اكتمال التوثيق. والعكس يصلح كذلك: نموذج أولي من مستقل لاختبار الفكرة، ثم شركة لإعادة بناء ما ثبتت فائدته.
مثال تطبيقي (توضيحي)
موزّع يريد تطبيق طلبات لـ300 عميل مع ربط بنظام المحاسبة. يحتاج التطبيق سنوات، ويريد عدة مهارات (جوال وخلفية وتكامل)، ولا أحد في الداخل يراجع الشيفرة، والطلبات تتدفق يوميًا. بالاختبار تشير الإجابات إلى شركة برمجيات: عمر طويل، ومهارات متعددة، وغياب مراجع داخلي، واعتماد يومي. ومع ذلك يصر الموزع على ثلاثة أشياء في العقد: نقل كتابي للشيفرة المصدرية والتوثيق، ومستوى دعم محدد، ووصول إلى مستودع الشيفرة بحسابه هو من الأسبوع الأول. وبعد سنة يتولى مستقل بدوام جزئي التعديلات الصغيرة، ويقرأ التوثيق قبل أن يمس أي شيء.
أسئلة اسألها أيًّا كان اختيارك
- أرني نظامًا بنيتَه يعمل اليوم، ومن يتولى صيانته.
- أين ستُحفظ الشيفرة المصدرية، وفي حساب من؟
- إن غبتَ أسبوعين فمن يصلح مشكلة، وكيف يحصل على الوصول؟
- ما سعر الإصدار الأول، وما التكلفة الشهرية لإبقائه يعمل بعد ذلك؟
- ماذا تحتاج مني، وكم مرة ستحتاج وقتي؟
- ماذا ستفعل في أول 30 يومًا، وكيف سأرى ذلك يعمل؟
الخطوة التالية
اكتب مشروعك في صفحة واحدة: ماذا يفعل، وكم يجب أن يعيش، وكم مرة سيتغير، وكم يكلفك يوم توقف. ثم أجرِ اختبار الأسئلة السبعة ولاحظ أي خيار يفوز. سوفتويرو نفسها شركة برمجيات، فزِن رأيها بذلك؛ وإن أشار الاختبار إلى شركة وأردت رأيًا ثانيًا في نطاق العمل فـأرسل لنا الصفحة وسنقول لك بصدق هل يناسبك مستقل أو توظيف داخلي أكثر.
المصادر
- القانون رقم 82 لسنة 2002 (قانون حماية حقوق الملكية الفكرية)، النص الإنجليزي — ترجمة إنجليزية غير رسمية تستضيفها شركة محاماة. برامج الحاسب مصنفات محمية (المادة 140)؛ ونقل الحقوق المالية يجب أن يكون كتابةً ومحددًا لكل حق ونطاقه ومدته وإقليمه (المادة 149).
- القانون رقم 151 لسنة 2020 لحماية البيانات الشخصية، النص الإنجليزي — ترجمة إنجليزية غير رسمية تستضيفها شركة محاماة. على المتحكم والمعالج إخطار المركز خلال 72 ساعة من وقوع اختراق (المادة 7).
- Software Supply Chain Security Guidance — المعهد الوطني الأمريكي للمعايير والتقنية (NIST). يصف إطار التطوير الآمن للبرمجيات (SP 800-218) بأنه مفردات مشتركة للجهات المتعاقدة في تعاملها مع الموردين.
