أزمة البرمجيات
أزمة البرمجيات مصطلح استخدم مع بدايات نشوء حقل هندسة البرمجيات. مع ازدياد اعتماد الإنسان على الحاسوب في مختلف نواحي الحضارة المدنية الحديثة، كان - وما يزال لحد ما - من الصعوبة بمكان كتابة شفرة برنامج بشكل صحيح - ينفذ المطلوب من دون أخطاء -، و دقيق - ينفذ المطلوب كما هو - ، سهل للقراءة من قبل المبرمجين الآخرين أو حتى المبرمج الأصلي، و التحقق من عمل البرنامج و صيانته. من الممكن أن نجمل أسباب هذه الصعوبة في كتابة البرامج لطبيعة البرمجيات الغير ملموسة (INTANGIBLE)و بالتالي لا يمكن قياسها، و لطبيعتها المركبة و المعقدة و المتشعبة، و لطبيعتها كذلك المتغيرة و الغير ثابتة المتطلبات و الأدوات.
أول من صاغ المصطلح "أزمة البرمجيات" كان F. L. Bauer في المؤتمر الأول لهندسة البرمجيات الذي قام به حلف شمال الأطلسي- باعتباره من أهم الزبائن و المستخدمين للبرمجيات - سنة 1968 في ألماتيا. و السبب المباشر وراء انعقاد هذا المؤتمر هو لاقتراح الحلول لأزمة البرمجيات التي أصبحت ظاهرة شائعة، و كانت ملامحها:
- التأخر الكبير في تسليم مشاريع البرمجيات.
- التجاوز الكبير للميزانية في مشاريع البرمجيات.
- قلة جودة البرمجيات المسلمة (عدم تلبيتها للمتطلبات).
- الصعوبة البالغة في صيانة و تحديث البرمجيات.
منذ ذلك اليوم، تم تطوير العديد من منهجيات التطوير - على غرار الهندسات الأخرى - التي لاقت نصيبا متباينا من النجاح و الفشل مع تطور العلم حديث الولادة "علم الحاسوب". في يومنا الحالي - أي بعد أربعة عقود من الزمن بعد بداية هندسة البرمجيات- هناك تحذيرات من أزمة برمجيات ثانية إن لم نقم بالتطور من جديد نحو منهجيات تطوير متخصصة لمجالات العلوم المختفلة تقوم على النمذجة كأهم أداة للتطوير (Specific Domain Modeling Languages)