Muhammet Sait » مقالات

عن تكلفة البرمجيات المرتفعة والحلول البرمجية الجاهزة

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

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

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

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

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

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

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

لكن لماذا؟

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

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

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

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

الشيء نفسه هو ما يسبب ارتفاع تكلفة تيجان الأسنان: يجب تصميم وتصنيع التاج حسب كل سن في فم كل مريض ولا يمكن إنتاجها “بالجملة”.

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

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

حالياً يزداد التوجه أكثر فأكثر نحو الحلول القياسية، أو ما يدعى غربياً “اللابرمجة - no code”. لعل أكثر هذه الحلول نضجاً هي حلول التجارة الإلكترونية أو توصيل طلبات المطاعم. أو ربما المواقع ذات الميزات التي يمكن خدمتها باستخدام وردبرس أو منصة أخرى شائعة.

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

وهناك أيضاً توجه آخر يكتسب شعبية متزايدة خلال السنوات الماضية، وهو المنصات “عديمة الرأس - headless platforms”. هذه الحلول تكون منصات خدمية تقدم حلولاً قياسية وميزات كبيرة لكن في الوقت نفسه تترك عملية تصميم الواجهات بأكملها للمستخدم. وبذلك يمكنك الاستفادة من الخلفية القوية والدعم الكامل مع حرية تصرفك في تصميم شكل التطبيق أو الموقع وتنفيذه كما يحلو لك.

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

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