اقتصاديات هندسة البرمجيات

 

أ.د. محمد محمد الهادي

أستاذ نظم المعلومات

أكاديمية السادات للعلومالإدارية

melhadi@yalla.com

 

 

 

     

 

 

1. المقدمة

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

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

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

ويعني مفهوم « هندسة البرمجيات Software Engineering  » تطبيق العلم والرياضيات التي من خلالها تصبح قدرات الحاسبات مفيدة عبر البرامج والإجراءات والتوثيق.  أما مفهوم « البرمجيات » فيمثل مجموعة كاملة من البرامج والإجراءات والتوثيق المرتبط بها في إطار نظام حاسب آلي. وترتبط عملية تطوير دورة حياة البرمجيات علي عدد من المراحل والأنشطة. وتتمثل المراحل في التالي: (محمد محمد الهادي، 2001)  الخطط والمتطلبات، تصميم منتج البرمجيات، البرمجة أو إنتاج البرمجيات، التكامل والاختبار، الصيانة والتحديث. أما الأنشطة المرتبطة بتلك المراحل وتختص بالتالي: التخطيط، التوصيف، التنفيذ، والاختبار. وكل من المراحل والأنشطة ذات طابع فكري يرتبط بالتفكير العقلي والابتكار والإبداع.

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

 

2. اقتصاد المعرفة

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

وينظر إلي اقتصاد المعرفة من عدة أوجه منها:

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

 ثانيا، الوجهة الاقتصادية حيث أصبحت كل المجالات الزراعية والصناعية والتعليمية والإدارية، الخ تعتمد بقوة علي المعرفة المرتبطة بالمعلومات والبرمجيات المشغلة لهذه المجالات؛

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

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

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

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

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

ويبين الشكل التالي المسار الذي يتخذه نظام الإبداع الوطني موضحا دور التعليم والتدريب والتعلم باعتبارها من العوامل الرئيسية لهذا النظام:

 

شكل (1): مكونات نظام الإبداع الوطني

 

ومن الضروري التمييز بين ما يعرف باقتصاد المعلومات واقتصاد المعرفة.

اقتصاد المعلومات يتعلق بطبيعة القرارات الاقتصادية المبنية علي المعلومات التي تكون إما كاملة أو مؤكدة أو احتمالية أو غير ذلك،

اقتصاد المعرفة يرتبط بالابتكار والتجديد والإبداع  والتطوير حيث يصبح اتخاذ القرار الاقتصادي جزءا منه.

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

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

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

 

شكل (2): التلاحم بين التكنولوجيات المؤدي لظهور الاقتصاد الرقمي

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

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

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

 

3. خلفية وأجيال هندسة البرمجيات

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

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

يلخص العرض الملخص التالي الأجيال الثلاثة في تطوير البرمجيات:

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

3/2 الجيل الثاني يغطي الفترة من الثمانينيات والتسعينياتمن القرن الماضي أطلق عليه تطوير هندسة البرمجيات. واستخدمت المنظمات المضطلعة بالتطوير عمليات أكثر تكرارا وأدوات جاهزة الإنتاج، وأن حوالي 70% من مكوناتها اعتمدت علي لغات عالية المستوي HLL كما أن حوالي 30% من هذه البرمجيات كانت متوافرة كمنتجات تجارية تتضمن نظم التشغيل OS، نظم إدارة قاعدة البيانات DBMS ، الشبكية Networking ، واجهة التفاعل الرسومية مع المستخدم GUI. وخلال الثمانينيات بدأت بعض المنظمات تحقق اقتصاديات في هذا المجال، وتنمو درجة تعقيد التطبيقات وخاصة للنظم الموزعة التي أصبحت لغات البرمجة والأساليب والتكنولوجيات المتوافرة غير كافية.

3/3 الجيل الثالث الحالي ويبدأ ببزوغ القرن اللحادي والعشرين وحتى الآن ارتبطت الممارسة المعاصرة باستخدام العمليات المدارة والمقاسة جيدا ببيئات  وأصبح أكثر من 70% من المكونات متاحة بطريقة جاهزة، أما ال 30% من البرمجيات فإنه يحتاج إلي أن يبني بالتوجه نحو العملاء.

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

 

شكل (3): مدي العائد علي الاستثمار لأجيال تطوير البرمجيات الثلاثة

 

ويوضح الشكل التالي درجة تعقيد البرمجيات والاتجاهات المختلفة في اقتصادياتها:

 

شكل (4): درجة التعقيد والاتجاهات في اقتصاديات البرمجيات

من الشكلين السابقين يمكن أن يتضح أداء مشروع تطوير معين في كل جيل من الأجيال التي مر بها تطوير البرمجيات في التالي:

  • إمكانية التنبؤ في الجيل الأول إلا أن ذلك كان دائما أكثر من الميزانية والجدول الزمني المحدد للتطوير.
  • غير ممكن التنبؤ في الجيل الثاني المرتبط ببزوغ هندسة البرمجيات حيث كان الأداء يقع نادرا علي أساس الميزانية والجدول الزمني.
  • إمكانية التنبؤ في الجيل الثالث الحديث الذي في العادة يعتمد علي ميزانية وجدولة محددة جيدا.

 

4. مجال هندسة البرمجيات: طبيعته ومفهومه

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

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

4/1 طبيعة هندسة البرمجيات:

 من الأسباب التي تكمن فيها المشكلات المتعلقة بهندسة البرمجيات تتمثل في طبيعتها التي تتميز بالعوامل الثلاث التالية:

  • ·        منتجات البرمجيات تكون من بين النظم الأكثر تعقيدا التي يؤديها البشر، وأن البرمجيات بطبيعتها تشتمل علي مكونات وخواص ضمنية ذات طبيعة جوهرية (علي سبيل المثال، التعقيد المتعاظم والصفة غير المنظورة والتغير المستمر) التي لا يمكن مخاطبتها بسهولة [Brooks, 1995] .
  • أساليب وعمليات البرمجة التي أنجزت بفعالية بواسطة فرد أو فريق عمل صغير لتطوير البرامج المتواضعة الحجم لا تلائم أو ترفع بنسبة ما لتطوير النظم الكبيرة والمعقدة (علي سبيل المثال، النظم التي تشتمل علي ملايين من سطور التكويد أو التشفير وتتطلب سنوات من العمل الدءوب بواسطة مئات من مطوري البرمجيات).
  • سرعة التغيير في تكنولوجيا الحاسبات والبرمجيات التي تدفع الطلب علي منتجات البرمجيات الجديدة والمتطورة باستمرار. وقد خلق هذا الوضع توقعات العملاء وقوي المنافسة التي تشد قدرتنا لإنتاج برمجيات تتسم بالجودة العالية في إطار تطوير وجدولة مقبولة.

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

 

4/2 مفهوم هندسة البرمجيات:

بزغ مسمي « هندسة البرمجيات » كمجال علمي عام 1968 في نطاق مؤتمر الناتو NATO  عن هندسة البرمجيات [Naur,1969] . ومنذ ذلك الوقت صار مصطلح « هندسة البرمجيات » مستخدما بتوسع كبير في الصناعة والحكومة والدوائر الأكاديمية: ففي الوقت الحالي يتوافر مئات الآلاف من مهنيي الحاسبات الذين يطلق عليهم « مهندسي برمجيات »، ونشرت المطبوعات العديدة تحت هذا المسمي، وأطلق المصطلح عل عدد كبير من المجوعات والمنظمات والمؤتمرات المهنية، واستحدثت مقررات وبرامج تعليمية تدرس هذا التخصص في كثير من الجامعات في الدول المتقدمة وعلي وجه الخصوص في الولايات المتحدة الأمريكية.

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

(1) « إنشاء واستخدام مبادئ الهندسة المحددة (الطرق) للحصول علي برمجيات اقتصادية الموثوق منها والتي تعمل علي الآلات الواقعية » [Bauer, 1972] .

(2) هندسة البرمجيات تمثل ذلك الشكل من الهندسة الذي يطبق مبادئ علم الحاسب الآلي والرياضيات لتحقيق حلول ترتبط بفعالية التكلفة لمشكلات البرمجيات.

(3) تطبيق مدخل منظمي محدد وكمي في تطوير وتشغيل وصيانة البرمجيات [IEEE, 1990].

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

4/3 هندسة البرمجيات كأحد تخصصات علم الحاسب الآلي:

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

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

 

5. خصائص صناعة البرمجيات

5/1 التدرج العالمي لصناعة البرمجيات وتصدير منتجاتها:

تندرج دول العالم في إطار صناعة البرمجيات وتصدير منتجاتها تحت أربعة فئات أو مستويات كما يلي:

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

وفي هذا الإطار يلاحظ أنه علي الرغم من مرور سنوات طويلة، إلا أن صناعة البرمجيات في مصر لم تحقق ما هو مطلوب منها حتى الآن، علي الرغم من خطة الاتصالات والمعلومات التي وضعتها وزارة الاتصالات والمعلومات بعد إنشائها مباشرة في ديسمبر 1999 [وزارة الاتصالات والمعلومات، 1999] كانت تهدف للوصول بمعدل تصدير البرمجيات المصرية إلي (500) مليون دولار أمريكي بعد خمس سنوات، إلا أنها لم تصل حتى فبراير 2006 إلي (200) مليون دولار أمريكي فقط وفقا لتصريح وزير الاتصالات وتكنولوجيا المعلومات المتاح عل موقع ويب الوزارة[http://www.mcit.gov.eg]   .

5/2 أبعاد وخصائص صناعة البرمجيات:

يمكن تحديد أبعاد وخصائص صناعة البرمجيات في التالي:

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

وعلي هذا الأساس تتحدد مخرجات البرمجيات وصناعة الكمبيوتر مع الناتج المحلي الإجمالي GDP في إطار جدول يحدد في صفوفه سنوات التطور ويبين في أعمدته العناصر التالية: مخرج صناعة البرمجيات (مليون جنيه)، مخرج صناعة الكمبيوتر (مليون جنيه)، البرمجيات ونسبتها لصناعة الكمبيوتر (%)، الناتج المحلي الإجمالي (مليون جنيه)، البرمجيات ونسبتها للناتج المحلي الإجمالي (%).

ومن هذه الجدولة يمكن تحديد نمو قطاع البرمجيات في الدولة.

وفيما يخص الخصائص السابق الإشارة إليها يمكن النظر إليها في التالي:

(1) الهيكل الصناعي والخصائص:

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

كما توضح أنواع منتجات البرمجيات من برمجيات النظم، البرمجيات المساندة، برمجيات التطبيقات الإجمالي ومعدل النمو (%) في صفو الجدول أما أعمدته فقد ترتبط بالسنوات المرتبطة بالمقارنة.

(2) التعليم والموارد البشرية:

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

(3) توزيع شركات تطوير وتصنيع البرمجيات إقليميا:

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

(4) حجم شركات صناعة البرمجيات:

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

(5) مؤشرات الأداء:

    التي تحدد متوسط نمو المنتج المحلي الإجمالي GDP السنوي.

(6) الحافز الاقتصادي:

التشكيل المحلي الإجمالي كنسبة من المنتج المحلي الإجمالي (متوسط النمو السنوي)، قيود الرسوم المفروضة علي البرمجيات، المواد القانونية والتشريعية المنظمة، مدي الرقابة علي الفساد.

(7) نظام الإبداع الوطني:

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

(8) بنية المعلومات الأساسية:

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

وعند مقارنة قدرة شركات صناعة البرمجيات، يمكن قياس القدرة من خلال عدة خصائص منها:

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

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

5/3 صناعة البرمجيات المصرية:

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

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

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

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

وتشير البيانات المتاحة عن صناعة البرمجيات المصرية أن قيمة إيرادات صناعة البرمجيات بلغت حوالي (49) مليون دولار في عام 1997، ارتفعت إلي 129 مليون دولار عام 2001، التي ارتفعت إلي 148 مليون دولار في عام 2002، ثم إلي 174 مليون دولار في عام 2003. وقد وصل عدد الشركات العاملة في صناعة البرمجيات (296) شركة يعمل بها حوالي (700) فني تقدر نسبة الشركات التي تقوم بالتصدير منه حوالي 1% من الحجم الكلي للشركات، وفي عام 2003 قدرت صناعة البرمجيات من 5- – 100 مليون دولار وفقا لأكثر التقديرات تفاؤلا. وقد أشارت دراسة هارفارد الاستشارية حول القدرة التنافسية لقطاع تكنولوجيا المعلومات المصرية بحوالي (45) مليون دولار أمريكي لعام 2002 ، بينما قدرت نفس الدراسة أن إيرادات قطاع تكنولوجيا المعلومات وصلت إلي (470) مليون دولار ومتوسط الإيراد المشغل في هذا القطاع يقدر بحوالي 3700 دولار الذي يعتبر مرتفعا بالمقارنة بكثير من الدول مثل الهند، كما انتهت ستة شركات فقط من الشركات العاملة في مجال تكنولوجيا المعلومات من إعادة تأهيل نفسها والحصول علي نموذج نضوج القدرة CMM المستوي الثالث حتى منتصف 2005.[http://www.mcit.gov.eg]

ويحدد الجدول التالي مؤشرات تطور قطاع تكنولوجيا المعلومات في ديسمبر من عامي 2003 و 2005وفقا لموقع الويب لوزارة الاتصالات وتكنولوجيا المعلومات [http://www.mcit.gov.eg]   .

جدول (1 ): مؤشرات تكنولوجيا المعلومات في عامي 2003 ، 2005

خصائص تكنولوجيا المعلومات

مؤشرات ديسمبر 2003

مؤشرات ديسمبر 2005

النسبة المئوية

عدد الشركات

968 شركة

1442 شركة

67%

رأس المال المصدر

7, 1868 مليون جنيه

3601 مليون جنيه

52%

التكاليف الاستثمارية

3146 مليون جنيه

8, 4754 مليون جنيه

66%

فرص العمالة

28086 فرصة عمل

35094 فرصة عمل

80%

عدد متدربي برامج تنمية المهارات

82383 متدرب

120280 متدرب

5, 68%

عدد متدربي برامج التدريب التخصصية

4, 1667 متدرب

23092 متدرب

2, 7%

يتضح من الجدول السابق الزيادة الملحوظة في توفير فرص العمل وعدد الشركات العاملة في مجال تكنولوجيا المعلومات وفي التكاليف الاستثمارية ورأس المال المصدر.

5/4 صناعة البرمجيات الهندية:

والتوجه العالمي وزيادة مهنية منشآت تطوير البرمجيات في تجربة الهند علي سبيل المثال [Kumar, 2001] أدت لربط عملياتها في هندسة البرمجيات مع المزاولات العالمية الأحسن والحصول علي الشهادات الدولية المعترف بها في جودة المنتجات. علي سبيل المثال، حصلت (170) شركة هندية علي معيار ISO 9000  للمنظمة الدولية التوحيد القياسي في يونيو 2000 ويتوقع حصول (50) شركة أخري  علي نفس الشهادة في عام 2001، بالإضافة لذلك حصلت (38) شركة برمجيات هندية علي نموذج نضوج القدرة CMM لمعهد هندسة البرمجيات  في المستوي الثالث  وأعلي. [Kumar, 2001] ويبين الجدول التالي التخصصات الرئيسية لشركات البرمجيات الهندية في عام 2000   [Kumar, 2001] .

 

جدول (2): التخصصات الرئيسية لشركات البرمجيات الهندية

القطاع / التخصص

عدد الشركات

1. البنوك، التأمين، المحاسبة المالية، البور صات

247

2. التصنيع، التجزئة، التجارة والتوزيع

331

3. النقل، الخطوط الجوية، السكك الحديدية، المواني

157

4. تطبيقات الويب، خدمات المعلومات علي الخط

295

5. الهندسة، الإلكترونيات، تصميم الآلية، الإنسان الآلي

224

6. التطبيقات الطبية والصحية

163

7. التعليم والتدريب والتعلم

115

8. الاتصالات عن بعد

174

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

كما يوضح الجدول التالي ميادين تخصص هذه شركات تطوير البرمجيات الهندية فيما يتعلق بالمجالات التخصصية للبرمجيات ذاتها: [Kumar, 2001]  

جدول (3): ميادين التخصص في البرمجيات للشركات الهندية

ميادين تخصص البرمجيات

عدد الشركات المقدمة للخبرة

1. تكنولوجيا الويب، الإنترنت، التجارة الإلكترونية

319

2. الحلول المالية والنقدية

132

3. تطوير منتجات البرمجيات

286

4. صيانة وتكامل البرمجيات

233

5. نظم إدارة قواعد البيانات، مستودعات البيانات، تنقيب البيانات

215

6. تخطيط موارد المنشأة ، حلول موارد الإدارة

 

205

7. نظم المعلومات الجغرافية، وإعداد الرسومات

55

8. إعادة الهندسة، استشارات عمليات الأعمال

168

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

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

  

6. اقتصاديات هندسة البرمجيات

تبدأ اقتصاديات البرمجيات بهدف تطوير المعرفة الأساسية التي سوف تساعد الزيادة الجوهرية الممكن قياسها في القيمة المنشأة عبر الوقت بواسطة مشروعات ومنتجات وصناعة البرمجيات وتكنولوجيا المعلومات.

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

وفي هذا الصدد يمكن استعراض العوامل الثلاثة التالية المؤثرة علي اقتصاديات البرمجيات:

6/1 اتخاذ القرارات الأحسن لخلق القيمة المضافة:

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

وترتبط عملية اتخاذ قرارات الأعمال المتعلقة باختيار البديل الأحسن لمشروع عرض تطوير البرمجيات بالشكل التالي:

 

شكل (5 ): عملية اتخاذ قرار الأعمال

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

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

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

وفي إطار التجربة الهندية المتميزة في الارتقاء بصناعة البرمجيات كان لقراراتها الرشيدة في إنشاء معاهد التكنولوجية لتنمية رأس المال البشري بها منذ أكثر من خمسين عاما وخاصة في وادي السليكون Silicon Valley التي كان لها أكبر الأثر في نمو هذه الصناعة. [Pandey, et al, 2004] كما حددت الهند بجانب ذلك مجموعة من المحددات التي ساهمت أيضا في نجاح وادي السليكون التي تتضمن التالي:

* الخبرة الفنية،

* المعرفة الكاملة بالغرب والقدرة علي العمل مع نظم الدول المتقدمة وعلي الأخص الولايات المتحدة الأمريكية،

* إتقان اللغة الإنجليزية،

* جمع المهارات الفنية مع المهارات الإدارية الجيدة التي استخدم بعضها لحركة المؤسسات وخاصة في الولايات المتحدة  الأمريكية،

* الروابط مع الشركات والمؤسسات في الهند التي يمكن الاكتشاف للعمل خارج الهند وتقليل تكاليفها التشغيلية بدون التضحية بالجودة.

6/2 مراقبة إدارة الاستثمار الديناميكي والتحكم فيه بطريقة أحسن:

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

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

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

 ( المرتبط بمخاطر المشروع في إطار البرامج وخواص التباين المشترك)، الخ.

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

 

6/3 مراحل تطور الميزة التنافسية:

حدد [Porter, 1990] أربع مراحل أساسية لتطور الميزة التنافسية لأي صناعة والتي منها صناعة البرمجيات والتي تتمثل في التالي:

(1) مرحلة قيادة عوامل الإنتاج: Factor-Driven Stage

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

(2) مرحلة قيادة الاستثمار: Investment-Driven Stage

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

(3) مرحلة قيادة الإبداع: Innovation-Driven Stage

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

(4) مرحلة قيادة الثروة: Wealth-Driven Stage  

 

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

– تراجع المنافسة لزيادة التركيز عل المكانة التي تم التوصل إليها بالتركيز عل تقوية وزيادة الحافز الملائم للاستثمار،

– تزايد الاتجاه نحو قطاع الخدمات،

– انخفاض الحافز للابتكار والإبداع والتجديد،

– انخفاض الاستثمارات واتجاهها نحو سوق المال.

 

7. عناصر مزاولة تطبيقات اقتصاديات هندسة البرمجيات

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

ومن المحتمل أن معظم التقدم الرئيسي في مجال التطبيقات يقع في توجه عملية تطوير برمجيات التطبيقات. وبينما يمكن النظر إلي معظم بحوث هندسة البرمجيات في أنها تلقي الضوء علي « عملية إنتاجها » توجد درجة وعي كبيرة جدا ترتبط بالمزاولة والتطبيق لمجال التطبيق المعين. وقد عمل الممارسون والمزاولون في تطوير برمجيات التطبيقات تغييرات جوهرية في كيفية رؤيتهم لتطوير برمجيات التطبيقات المختلفة والمتنوعة، فقد كان التركيز المبدئي علي التشفير أو التكويد Coding، إلا أن معظم مشروعات التطوير توسعت نحو تطوير محافظ Portfolios   المشروعات والعمليات التي تدعم صيانتها فيما بعد. علي سبيل المثال، تحققت استراتيجية شركة مايكروسوفت، الرائدة في سوق صناعة البرمجيات، في توظيف فرق عمل صغيرة من المطورين الرئيسيين لتطوير البرمجيات التي لم تتم بالدرجة الكافية وخاصة عند مواجهتها الحقائق الكامنة في واقع التطبيقات المتكاملة التي تتعلق بالتطوير والتسويق والصيانة. [Cusumano and Selby, 1995]  

والإشادة بتحسين وجودة تطوير هندسة البرمجيات تنسب في اتباع نموذج نضوج القدرة Capability Maturity Model (CMM)  الذي طوره معهد هندسة البرمجيات SEI بجامعة كارنيجي ميلون بالولايات المتحدة الأمريكية. وعلي الرغم من الجدل الكبير حيال هذا النموذج فيما يتعلق بتفاصيله والسياسة المحيطة بتنفيذه، إلا أن هذا النموذج أدي إلي تغيير اللغة التي توصف بها البرمجيات. وعن طريق تقديم إطار مشترك، بدأ اتصال فعال في عملية التطوير يراعي الدور الملائم لأداء العملية في تطوير البرمجيات. إضافة لذلك، بدأ في الظهور برهان ودليل عملي وتجريبي يرتبط بالقيمة المضافة الاقتصادية عند التقدم في التطوير إلي مستوي أعلى من نضوج العملية.  [Humphrey, Synder and Willis, 1991]

ويتمثل أيضا في تطوير هندسة برمجيات التطبيقات قبول واستخدام القياس بطريقة أكبر في أداء عملية تطوير البرمجيات. [Pfleeger, 1993] . وبصفة جزئية، تتصل الاستجابة بضغوط السوق في تقييم الأدوات وأساليب القياس الإحصائي في مواجهة بدائل المنافسة والحداثة الفائقة التي تعتبر كمكون وعنصر أساسي في جهود تحسين العملية الرئيسية، وتوجد زيادة ملحوظة في قياس منتجات وعمليات هندسة البرمجيات. وباستخدام القياس بطريقة أعظم يرجع في بعض أجزائه إلي وجود وعي أكبر وثقة أعظم في قياسات البرمجيات النابعة من بحوث اقتصاديات هندسة البرمجيات. كما تشتمل بعض القياسات المعينة في إطار خدمات البحث العالمية WISE علي شبكة الإنترنت علي تطوير نقاط الأشياء Object Points [Banker, Kauffman and Kumat, 1991] بالإضافة إلي نقاط الوظيفة [Kemerer, 1993]

وفيما عدا عنصري العملية والقياس في تطبيقات هندسة البرمجيات، أدي التقدم الكبير في تحديد قيمة عدد من المداخل المعينة لتحسين هندسة البرمجيات. علي سبيل المثال، يوجد عنصر اقتصاديات إعادة استخدام Reusability البرمجيات التي فصلت وصممت خلال عقد الثمانينيات من القرن الماضي. [Lim, 1997]  ومن المحتمل، أن عنصر استخدام النماذج المطورة لتقدير التكلفة يعتبر محور العمل في تقدير اقتصاديات البرمجيات الذي تقدم بدرجة كبيرة. كما صار عنصر تطوير الأدوات المحورية في بيئات تطوير البرمجيات مساندا في إدارة عملية تطوير البرمجيات بطريقة جيدة.  [Shepperd, Schofield, and Kitchenham, 1996] 

ومن مجالات العناصر الأخرى التي حظيت باهتمام عظيم من مجتمع خدمات البحوث علي الإنترنت WISE عنصر صيانة البرمجيات كعنصر تكلفة رئيسي في أي دورة حياة تطوير البرمجيات التي ترتبط بالتوجهات النظرية والتطبيقية. [Gode, Baura and Mukhopadhyay 1990]

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

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

 

8. أسس تحسين اقتصاديات هندسة البرمجيات

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

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

وفي إطار نظرية الاقتصاد تنشأ السوق التنافسية  لتسعير التكلفة الهامشية أو الحدية لمنتجات البرمجيات، كما أنه في إطار متوسط تكلفة إنتاج البرمجيات وتكلفة توزيعها الهامشية الصفرية فإن تسعير التكلفة الهامشية تكون غير ممكنة المساندة والمؤازرة التجارية. وفي هذا النطاق، تعتبر البرمجيات الحرة والمجانية غير تجارية بطبيعتها، إلا أنها يمكن أن تكون مساندة تجاريا عندما يأتي العائد من مصادر أخري. [TIF, 2004]

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

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

والعرض التالي يوضح أسس تحسين اقتصاديات تطوير البرمجيات في التالي:

1. تخفيض الحجم أو تقليل درجة تعقيد ما يحتاج إلي تطويره:

   – إدارة المجال،

   – تقليل كمية الأكواد أو الشفرات المنتجة بشريا من خلال التكنولوجيا المبنية علي المكون،

   – زيادة مستوي التجريد واستخدام النمذجة المرئية لإدارة التعقيد.

2. تحسين عملية التطوير:

   – تقليل الأبعاد الثانوية أو الهامشية وإعادة العمل بواسطة النقل من عملية دورة الحياة الخطية

     إلي عمليات التطوير التعاقبية المعاصرة،

   – مجابهة الأخطار الرئيسية من البداية خلال معمارية مرتكزة علي نقطة البدء،

   – استخدام برمجيات المزاولات الأحسن.

3. تشكيل فرق عمل أكثر كفاية:

   – تحسين المهارات الفردية،

   – تحسين بيئة فريق عمل المشروع،

   – تحسن القدرة التنظيمية لفريق العمل.

4. استخدام أدوات متكاملة تستخدم آلية أكبر:

   – تحسين الإنتاجية البشرية من خلال مستويات آلية متقدمة،

   – استبعاد مصادر الخطأ البشري،

   – دعم ومساندة تحسينات عمليات التطوير.

وتتمثل عمليات أو مراحل دورة حياة تطوير البرمجيات بالتالي:

  • دراسة الجدوى،
  • تحديد وتحليل الحاجات والمتطلبات،
  •  تصميم المنتج،
  • التصميم التفصيلي،
  • البرمجة أو التشفير،
  • التكامل، التنفيذ،
  • الصيانة .

والتي تتمثل في النموذج العملي التالي لهندسة تطوير البرمجيات وخاصة البرمجيات التعليمية:

 

شكل (6): نموذج عملي لهندسة البرمجيات

وتتضمن كل مرحلة من المراحل السبع المشار إليها سابق عمليات التدقيق والتصحيح.

وفي هذا الصدد يجب القيام بالتالي:

(1) التبرير الاقتصادي لنموذج دورة الحياة:

   – لتحقيق منتج برمجيات ناجح يجب تحقيق كل الأغراض الفرعية المرتبطة بالعواقب

     المكلفة التي يجب تجنبها،

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

     المبكر علي الأخطاء وعلي وجه الخصوص الكامنة في المتطلبات سوف يؤدي إلي

     تغييرات بسيطة وأقل تكلفة محتاج إليها.

(2) التطوير التعاقبي:

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

   – المزايا يجب أن تكون أكثر إفادة وأسهل للاختبار، تتضمن خبرة المستخدم بطريقة أقل

      تكلفة، وتقلل تكاليف العمل، الخ.

(3) التعزيزات والتقدم المستمر:

   – التوثيق المرتبط بتفسير الأهداف والخطط المفصلة لأنشطة تطوير البرمجيات، وإنتاج

      إصدارات تجريبية لتوثيق المستخدمين.

   – المزايا تختص بتقليل التكاليف الكلية بالحد من الوقت والطاقة المبذولة في أنشطة غير

      إنتاجية، وإعادة توزيع التكاليف من خلال الاستثمار المبدئي الذي يقلل تكاليف الاستثمار

      المتأخر.

(4) نموذج التكلفة الإنشائي Constructive Cost Model

   – منتجات مطورة ذات الحجم الصغير إلي المتوسط،

   – يختص بنظام تقدير تكاليف البرمجيات.

(5) المعاني والمسلمات Definitions and Assumptions

   – باعث التكلفة الأولي يمثل عددا مكن تعليمات المصدر الناتجة  Derived Source Instructions

      المطورة بواسطة المشروع.

   – تبدأ فترة التطوير في مرحلة التصميم وتنتهي في مرحلة التكامل والاختبار،

   – تغطي تلك الأنشطة المبنية علي برمجيات هيكل تجزيء العمل Work Breakdown Structure

   – تغطي كل العمالة المباشرة علي المشروع،

   – يشتمل رجل – شهر علي 152 ساعة عمل.

   – العمل غير المنتج يبقي في حده الأدنى،

   – يفترض أن توصيف المتطلبات لا يتغير جوهريا بعد مرحلة الخطط والمتطلبات.

(6) رجل – شهر في مواجهة التقديرات بالعملة الصعبة:

   – تكاليف بالدولار الأمريكي مثلا يجب تجنبها،

   – رجل – شهر تمثل كمية القياس الثابتة،

   – لتحويل رجل – شهر إلي تقديرات بالدولار مثلا يطبق متوسط سعر الدولار لأشكال

     الرجل – شهر.

(7) جهد وجدول التطوير:

   – تقدم معادلات جهد وجدول لمعظم أنواع مشروعات تطوير البرمجيات الأساسية،

   (8) توزيع مرحلة التطوير:

        – نسبة توزيع جهد وجدول البرمجيات في نطاق مراحل التطوير.

        – منحني العمالة يتبع منحني مستمر،

        – يفسر ذلك بأن عوامل التكيف حيث تكون أحجام المشروع غير معيارية.

(9) تكلفة جودة الإنتاج:

     يحدد الشكل التالي معالم تكلفة جودة تطوير البرمجيات:

 

شكل (7): تكلفة جودة البرمجيات

يلاحظ من الشكل السابق أن تكاليف جودة البرمجيات ترتبط بالتالي:

  • تكاليف الإنجاز Achievement  تختص بكل من:

– تكاليف التقييم Appraisal التي ترتبط بتكاليف تقدير جودة البرمجيات فيما يخص:

  مراجعات تصميم الأداء،  اختبار الأداء، وتدقيق وتصحيح البرمجيات. ويرتبط ذلك

  بأداء أدوات القياس. علي سبيل المثال، عند قياس تقري ما إن كانت البرمجيات

  تلبي أهداف الأداة.

– تكاليف المنع Prevention تختص بتكاليف تأكيد جودة البرمجيات الخاصة بكل من:

  أجور ومرتبات العاملين، تكلفة الأدوات والتصميم الموجه نحو الأداء ومراجعاته.

  وتختص بقياس جمع بيانات لإنشاء نماذج أداء.

          – تكاليف عدم التطابق Non-conformance تختص بكل من تكاليف الفشل الداخلي التي

            تحدث قبل إمداد وإتاحة البرمجيات فيما يتعلق بالتعديل وإعادة التصميم. كما تختص

            بتكاليف الفشل الخارجي التي تحدث بعد إمداد البرمجيات فيما يخص المرتجعات أو

            المردود، والتدرج وعواقب التعاقد.

         – تكاليف الفشل الداخلي تختص بتكاليف الأخطاء المعمارية والتصميم وتتضمن تعريف

            وتقرير المشكلة،  تصحيح المعمارية والتصميم، الاختبار الإضافي نتيجة التصحيح،

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

            التعديل الخاصة أيضا بتعريف وتقرير المشكلة، إعادة عمل المكونات الصحيحة،

           والاختبار الإضافي نتيجة للتصحيح.

        – تكاليف الفشل الخارجي تختص بتكاليف كل من: الدعم الفني، المنتجات المرتجعة أو

          المعادة، إصدارات الصيانة، العقوبات، المبيعات المفقودة، الخ.  

 

9. تحديات التقدم في اقتصاديات هندسة البرمجيات

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

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

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

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

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

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

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

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

 

10. الاستنتاج

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

أما النتائج المستخلصة من هذا العمل فيمكن تحديدها في التالي:

1.     تتواجد البرمجيات لأن للمعلومات المعالجة قيمة، فإذا لم يرغب في دفع تكاليف تطوير برمجياتها لتوقع القيمة المعززة منها، فإن كل العاملين في هذا المجال لن يكون لهم وظائف ، مما يؤدي إلي توقف العالم المعاصر كليا.

2.     العالم المعاصر يعيش ويستفيد من وضعية منتجات البرمجيات المتقدمة المقرر قيمتها، ومن الاهتمامات الذاتية في زيادة فهمها والقدرة في التعامل مع أوجهها الاقتصادية المبررة.

3.     تعزيز وتكييف منتجات البرمجيات المتوافرة يمثل حلا لمواجهة الطلب المتزايد عليه في السوق العالمية المفتوحة.

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

5.     ترتبط هندسة البرمجيات بإمكانيات المستقبل والطلب المتزايد اللانهائي علي منتجاتها.

6.     ضغوط الأعمال والخدمات في اقتصاد المعرفة الجديد ترتبط بكل من: السرعة في إمداد السوق بمنتجات البرمجيات المطلوبة، تغير التكنولوجيا المتسارع، الجودة العالية ورخص الأسعار.

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

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

9.     التكلفة الإجمالية لمنتجات البرمجيات لا تقتصر عن تطويرها فحسب ولكنها تمتد بعد عملية إمدادها وحفظها وصيانتها وتسويقها وإدارتها.

 

ونستنتج من هذا العمل مجموعة التوصيات التالية:

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

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

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

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

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

 

المراجع

(1) محمد محمد الهادي، دورة حياة عملية تطوير نظم المعلومات المبنية علي الكمبيوتر، القاهرة: المكتبة الأكاديمية، 2001، [كراسات مستقبلية]

(2) محمد محمد الهادي، محرر، الابتكار والإبداع لتقدم صناعة المحتوي الإلكتروني في مصر: أبحاث ودراسات المؤتمر العلمي التاسع لنظم المعلومات وتكنولوجيا الحاسبات…، القاهرة: الجمعية ومركز البحوث الإدارية بأكاديمية السادات للعلوم الإدارية، 2002،

(3) وزارة الاتصالات والمعلومات، الخطة القومية للاتصالات والمعلومات، القاهرة: الوزارة، ديسمبر 1999.

 (4) BANKER, r. d., Kauffman, R. J. and Kumar, R. An Emperical Test of Object-based Output Measurement Metrics in Computer-aided Software Engineering (CASE) Environments, Journal of Information Systems, Vol. 8 (1991), pp. 127-150.

(5) Bauer, F. L. “Software Engineering”, Information Processing, Vol. 71 (1972).

(6) Brooks, F. P., The Mythical Man-Month, Essays on Software Engineering, Anniversary ed., Addison-Wesley, 1995.

(7)Cusumano, M. and Selby, R. Microsoft Secrets, New York: The Free Press, 1995.

(8) Code, D. K., Barua, A. and Mukhopadhyoy, T., “On Economics of Software Replacement Problem”, In: Proceedings of the 11th International Conference on Information Systems, Copenhagen, Denmark: 1990, pp. 159-170.

(9) Humphery, W. S., Snyder, T. R. and Willis, R. R. “Software Process Improvement at Hughes Aircraft”, IEEE Software, Vol. 8, N0. 4 (Feb. 1991), pp. 11-23..

(10) IEEE 1990 STD 610.12-1990. Standard Glossary of Software Engineering Terminology, IEEE Computer Society, 1990.

(11) Kemerer, Chris F. “Advances in Software Engineering Economics: Progress, Obstacles and Opportunities  in Software Engineering Economics”, Communications of ACM, Vol. 41, N0. 8 (August 1998), pp. 63-66.

(12) Kemerer, C. F. “Reliability of Function Points Measurement: A Field Experiment”, Communication of ACM, Vol. 36, N0.2 (Feb. 1995), pp. 85-97.

(13) Kumar, Nagesh. National Innovation System and the India Software Industry Development: Research and Information Systems for Developing Countries, 2001 [A Background Paper for World Industrial Development Report].

 (14) Lim, W. C. “effects of Reuse Quality, Productivity and Economics”, In: Kemerer, C. F., ed. Software Project Management: Readings and Cases, Boston, MA: McGraw-Hill (R. D. Irwin), 1997.

(15) Pandey, Albhishek et al., India’s Transforming to Knowledge –based Economy, Evolving Role of India Dispora, Washington, DC: World Bank and Evalueserve, 2002.

(16) Pfleeger, S. L. “Lessons Learned in Building a Computer Metrics Program”, IEEE Software, Vol. 10, N0.5 (1993), pp. 67-74.

(17) Porter, Michael E. The Compe4titive Advantage of Nations, New York: The Free Press, 1990.

(18) Shepperd, M., Schofield, C. and Kitchenham, B. “Effort Examination Using Analogy”, In: Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany: 1996.

(19) Telecoms Infotech Forum (TIF), The Economics of Software Development, Hong Ko9ng: HKU, June 2004. [http://www.trp.hku.ht/tif].

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 Comments »

  1. 1

    […] « Article Précédent […]

  2. 2

    […] 107 […]


RSS Feed for this entry

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :