2008/06/29

Testing your software before distribution

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

  1. إستخدام رقم هاتف واحد (51999) لإستقبال الطلبات ثم الرد عليها، وبسبب كثافة الطلبات زيادة التحميل Overload، لم يستطع هذا الخط الوحيد التحمل فأنهار، مما جعل القائمون على المشروع يقومون بفتح خطوط أخرى مستقلة للرد.
  2. عدم تجربة البرنامج الخاص بالرد على الطلبات في ظروف تشغيل صحيحة وإقتصار هذا التجريب على ارسال بعض الطلبات والرد عليها، فبينما أقتصر التجريب على بضع عشرات الرسائل على أكثر تقدير كان العمل الحقيقي يعمل بعشرات الألاف من الرسائل على أقل تقدير.
  3. البيانات المدخلة لقاعدة البيانات غير متكاملة، وأحياناً ناقصة، مما سبب الرد الخاطئ على الإستفسارات.
  4. الشركة لم تقم يتجريب مثل هذا النظام مسبقاً وكل خبرتها تنحصر في مسابقات السحب والأبراج وأشياء بسيطة أخرى.
  5. عدم التنسيق التام مابين الشركة وشركتي ليبيانا والمدار الجديد، وعند وجود أول مشكلة تبرأت الشركتين من الليبية محمودل وقامت بقطع الخدمة عنها.
  6. الأشخاص الذين لم يصلهم الرد ستحاول الشركة الرد عليهم ولكن متى؟ بعد أن عرفوا النتيجة مجاناً من الأنترنت، يعني خسروا نقودهم (نصف دينار إن لم يكن أكثر).
الشركة دخلت في هذه المغامرة بغرض الربح السريع ولكنها خسرت وفشلت فشلاً ذريعاً، كان الأجدى أن تقوم بإحتياطات أكثر لتلافي مثل هذه المشاكل، لكن كما يقولون "خسائر قوم عند قوم فوائد"، فمن مشكلة الليبية محمول نتحصل على نصائح جيدة لتطوير أنظمة الخدمة المضافة وخدمات SMS والبرامج والمنظومات البرمجية بصفة عامة، وهي:
  • قم بتجربة نظامك البرمجي بطريقة صعبة جداً حسب ظروف التشغيل المتوقعة، ويفضل أن يقوم غيرك بالتجريب، ويستحسن أن يكون هذا الشخص لايعرف كيف يعمل البرنامج داخلياً.
  • لاتهم مصاريف التجربة، فهي تغنيك عن مشاكل الصيانة المستقبلية.
  • إذا كنت تقوم بتطوير أنظمة وبرمجيات القيمة المضافة المعتمدة على SMS، وكانت الخدمة ذات إقبال كبير، يفضل حجز أكثر من خط، الأول لإستقبال الطلبات والأخرين للرد عليها.
  • لا تقم ببرمجة البرنامج في وقت قصير، بل أعط البرمجة حقها.
  • لا يجب إدخال البرنامج الى العمل الفعلي بعد الإنتهاء
  • الإهتمام بالتصميم الجيد لقاعدة البيانات من ناحية قدرة قاعدة البيانات إعطاء النتيجة في أقل وقت ممكن.
  • الإهتمام بالبيانات المدخلة في قاعدة البيانات لمنع التكرار.
  • برنامجك هو دعاية لك، فأجعلها دعاية جيدة.
  • لا تهم التقنيات المستخدمة وحداثتها، بل المهم تقديم الخدمة للمستفيد كما يريدها وفي الوقت المحدد.
  • بعض المعلومات تفقد قيمتها بعد مرور الوقت، لذا أحرص على تقديم المعلومة في وقتها المحدد.
وأخر نصيحة: أستفد من أخطاءك وأخطاء الأخرين لبناء برنامج يحمل أقل قدر من الأخطاء (لايوجد برنامج بدون أخطاء لذا حاول إنقاصها دائماً)، لأتمنى عدم تكرار هذا الخطأ مرة أخرى.

1 comment:

Anonymous said...

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