تاريخ هندسة البرمجيات  تطورت كتابة البرمجيات منذ بدايتها في الستينيات إلى مهنة تهتم بأفضل طرق زيادة جودة البرمجيات وكيفية إنشائها. يمكن أن تشير الجودة إلى مدى قابلية البرمجيات للصيانة، وإلى ثباتها، وسرعتها، وسهولة استخدامها، وقابلية الاختبار، وسهولة القراءة، وحجمها، وتكلفتها، وأمنها، وعدد العيوب أو «الأخطاء»، بالإضافة إلى خصائص أقل قابلية للقياس مثل الأناقة، والإيجاز، ورضا العملاء، من بين العديد من الخصائص الأخرى. تشكل أفضل طرق إنشاء برمجيات عالية الجودة مشكلة منفصلة ومثيرة للجدل تغطي مبادئ تصميم البرمجيات، وتسمى «أفضل الممارسات» لكتابة التعليمات البرمجية، بالإضافة إلى مسائل إدارية أوسع مثل حجم الفريق الأمثل، والعملية، وأفضل طريقة لتقديم البرمجيات في الوقت المحدد وفي أسرع وقت ممكن، و«ثقافة» مكان العمل وممارسات التوظيف، وما إلى ذلك. يندرج كل هذا تحت العنوان الواسع لهندسة البرمجيات.  يُلاحظ تطور هندسة البرمجيات في عدة مجالات:    تتضمن الأصول المزعومة لمصطلح هندسة البرمجيات خطاب عام 1965 من رئيس رابطة الآلات الحاسوبية أنتوني أوتنجر، حاضر فيه دوغلاس تي روس في معهد ماساتشوستس للتكنولوجيا عام 1950، قائلًا: مارغريت هاملتون «هي الشخص الذي توصل إلى فكرة تسمية هذا التخصص، هندسة البرمجيات، كوسيلة لمنحه الشرعية.»  رعت اللجنة العلمية للناتو مؤتمرين حول هندسة البرمجيات عام 1968 (غارميش، ألمانيا) وعام 1969، مما أعطى المجال دفعة أولية. يعتقد الكثيرون أن هذه المؤتمرات تمثل البداية الرسمية لمهنة هندسة البرمجيات.  حُفزت هندسة البرمجيات بما يسمى أزمة برمجيات الستينيات والسبعينيات والثمانينيات، والتي حددت العديد من مشاكل تطوير البرمجيات. تجاوزت العديد من المشاريع الميزانية والجدول الزمني. وتسببت أخرى في أضرار في الممتلكات. وتسببت بعضها في خسائر في الأرواح. عُرّفت أزمة البرمجيات في الأصل من ناحية الإنتاجية، ولكنها تطورت لتؤكد على الجودة. استخدم البعض مصطلح «أزمة البرمجيات» للإشارة إلى عدم قدرتهم على توظيف عدد كافٍ من المبرمجين المؤهلين.   احتفظ بيتر جي. نيومان بقائمة معاصرة للمشاكل والكوارث البرمجية. تلاشت أزمة البرمجيات عن الأنظار، لأنه من الصعب للغاية من الناحية النفسية البقاء في وضع الأزمة لفترة طويلة (أكثر من 20 عامًا). ومع ذلك، لا تزال البرمجيات -وخاصةً برمجيات الوقت الحقيقي المُضمنة- خطرة ومنتشرة، والأهم أنها لا تحظى بالرضا. خلال السنوات العشر إلى الخمس عشرة الماضية، كتب مايكل إيه. جاكسون بإسهاب عن طبيعة هندسة البرمجيات، وحدد المصدر الرئيسي لصعوباتها أنه النقص في التخصص، واقترح أن توفر أطر مشاكله الأساس «لممارسة طبيعية». لهندسة البرمجيات، وهي شرط أساسي لتصبح هندسة البرمجيات علمًا هندسيًا.  شكّل حل أزمة البرمجيات أهمية بالغة للباحثين والشركات المنتجة للأدوات البرمجية لعقود من الزمان. كانت تكلفة امتلاك البرامج وصيانتها في الثمانينيات تساوي ضعف تكلفة تطوير البرمجيات.   أدى ظهور الإنترنت إلى نمو سريع للغاية في الطلب على أنظمة عرض المعلومات/البريد الإلكتروني الدولية على شبكة الويب العالمية. توجب على المبرمجين التعامل مع الرسوم التوضيحية والخرائط والصور الفوتوغرافية وغيرها من الصور، بالإضافة إلى الرسوم المتحركة البسيطة، بمعدل لم يسبق له مثيل، مع عدد قليل من الطرق المعروفة لتحسين عرض/ تخزين الصور (مثل استخدام الصور المصغرة).  أدى نمو استخدام متصفح الويب، الذي يعمل على لغة ترميز النص الفائق (HTML)، إلى تغيير طريقة تنظيم عرض المعلومات واسترجاعها. أدت اتصالات الشبكة الواسعة النطاق إلى نمو فيروسات الحاسوب الدولية وبرامج الوقاية منها على الحواسيب التي تعمل بنظام إم إس ويندوز، وأصبح الانتشار الواسع لرسائل البريد الإلكتروني غير المرغوب فيها مشكلة تصميم رئيسية في أنظمة البريد الإلكتروني، وغمرت قنوات الاتصال، وتطلبت إجراء فحص مسبق شبه تلقائي. تطورت أنظمة البحث بكلمة أساسية إلى محركات بحث على شبكة الإنترنت، وتوجب إعادة تصميم العديد من أنظمة البرمجيات، للبحث الدولي، اعتمادًا على تقنيات تحسين محركات البحث (سيو). كان هناك حاجة إلى أنظمة ترجمة للغات الطبيعية البشرية لمحاولة ترجمة تدفق المعلومات بلغات أجنبية متعددة، مع تصميم العديد من أنظمة البرمجيات للاستخدام متعدد اللغات، استنادًا إلى مفاهيم التصميم من المترجمين البشريين. انتقلت قواعد مستخدمي الكمبيوتر النموذجية غالبًا من مئات أو آلاف المستخدمين إلى عدة ملايين المستخدمين الدوليين.