Programinės įrangos krizė yra neatitikimas tarp to, ką gali pateikti programinė įranga, ir kompiuterinių sistemų pajėgumų bei jų vartotojų lūkesčių. Tai tapo vis didesne problema XX amžiuje, nes kompiuterija sparčiai augo, o programinė įranga negalėjo neatsilikti. Augant sistemų sudėtingumui, didėja ir vartotojų, kurie tikisi iš savo programinės įrangos našumo, poreikiai. Programuotojams gali būti sunku neatsilikti, o tai sukelia programinės įrangos krizę.
Vartotojų programinė įranga paprastai pereina per lėtą kūrimo etapų seriją, tačiau ji sudaro nedidelę pramonės verslo apimties dalį. Didžioji programinės įrangos kūrimo dalis yra nugrimzta į sistemas, skirtas konkrečioms programoms, pradedant programomis, kurios valdo raketų nukreipimą jūrų kreiseriuose ir baigiant sveikatos draudimo kompanijų vidaus registravimu. Ši programinė įranga paprastai reikalauja didelių kliento investicijų, taip pat didelio programavimo iš personalo, atsakingo už jos kūrimą, testavimą ir priežiūrą.
Tokie projektai gali patekti į programinės įrangos krizę, kai jie pradeda viršyti biudžetą ir užtrukti daug ilgiau nei tikėtasi. Programuotojams, dirbantiems su programine įranga, gali tekti spręsti nuolatinius klaidų taisymus, mokantis naujų sistemos aspektų, koreguojant klientus ir sprendžiant kitas kylančias problemas. Žema kokybė gali kelti susirūpinimą, nes programuotojai gali patirti vis didesnį spaudimą bet kokia kaina įvykdyti biudžetą, net jei tai reiškia, kad programinė įranga nebus geros kokybės. Taip pat paprastai pagaminama mažiau dokumentų.
Tai ne tik naujų programinės įrangos produktų kūrimo problema. Kitas rūpestis gali būti poreikis išlaikyti senesnę programinę įrangą, kuri gali turėti problemų, susijusių su prastu plėtra arba nesugebėjimu numatyti augančių poreikių. Programuotojai gali skirti daug laiko, kad išlaikytų senos programinės įrangos funkcionalumą, kad įmonė galėtų toliau veikti. Daug investuodama į senesnę programinę įrangą, įmonė gali nenorėti užsisakyti naujos programos, net jei ji geriau atitiktų jų poreikius, nes tai gali sukelti daugiau išlaidų ir problemų pereinant prie valiutos keitimo.
Spaudimas kurti sudėtingą, pažangų kodą gali labai prisidėti prie programinės įrangos krizės. Gali būti sunku suvaldyti spaudimą kontroliuojant išlaidas ir laikantis tvarkaraščio. Kai kurios priemonės, skirtos programinės įrangos krizei įveikti, gali apimti išsamų pažangų planavimą, aukštos kvalifikacijos darbuotojų atranką ir nuolatinius atnaujinimus, siekiant užtikrinti, kad projektas būtų vykdomas ir sutelktas.