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