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