Ohjelmistokriisi on ristiriita ohjelmistotuotteiden ja tietokonejärjestelmien kapasiteetin sekä käyttäjien odotusten välillä. Tästä tuli kasvava ongelma 20 -luvulla, kun tietojenkäsittely kasvoi harppauksin ja ohjelmistot eivät kyenneet pysymään vauhdissa. Järjestelmien monimutkaisuuden kasvaessa myös käyttäjien tarpeet kasvavat, sillä he odottavat yhä enemmän suorituskykyä ohjelmistoiltaan. Ohjelmoijat voivat taistella pysyäkseen vauhdissa ja luoda ohjelmistokriisin.
Kuluttajaohjelmistot kulkevat tyypillisesti hitaiden kehitysvaiheiden läpi, mutta muodostavat pienen osan alan liiketoiminnasta. Suurin osa ohjelmistokehityksestä on upotettu järjestelmiin tiettyjä sovelluksia varten, aina ohjelmista, jotka käsittelevät ohjusohjausta laivaston risteilijöillä, ja sairausvakuutusyhtiöiden sisäiseen kirjanpitoon. Tämä ohjelmisto vaatii yleensä asiakkaalta huomattavia investointeja sekä laajoja ohjelmointeja sen kehittämisestä, testaamisesta ja ylläpidosta vastaavalta henkilöstöltä.
Tällaiset hankkeet voivat joutua ohjelmistokriisiin, jossa ne alkavat ylittää budjetin ja kestää paljon odotettua kauemmin. Ohjelmiston parissa työskentelevien ohjelmoijien on ehkä käsiteltävä käynnissä olevia virheenkorjauksia samalla kun he oppivat järjestelmän uusia näkökohtia, tekevät muutoksia asiakkaalle ja käsittelevät muita esiin tulevia ongelmia. Huono laatu voi olla huolenaihe, koska ohjelmoijat voivat kokea kasvavaa painetta saavuttaa budjetit hinnalla millä hyvänsä, vaikka se tarkoittaisi, että ohjelmisto ei ole hyvälaatuista. Asiakirjoja tuotetaan myös vähemmän.
Tämä ei koske vain uusien ohjelmistotuotteiden kehittämistä. Toinen huolenaihe voi olla tarve ylläpitää vanhempia ohjelmistoja, joilla voi olla ongelmia huonosta kehityksestä tai kasvavien tarpeiden ennakoimattomuus. Ohjelmoijat voivat käyttää paljon aikaa vanhojen ohjelmistojen pitämiseen toiminnassa, jotta yritys voi jatkaa toimintaansa. Kun investoidaan paljon vanhempiin ohjelmistoihin, yritys saattaa olla haluton tilaamaan uutta ohjelmaa, vaikka se vastaisi paremmin heidän tarpeitaan, koska tämä voi aiheuttaa enemmän kuluja ja ongelmia siirtymisen aikana.
Paine monimutkaisen, edistyneen koodin tuottamiseen voi olla merkittävä tekijä ohjelmistokriisissä. Paineen hallitseminen voi olla vaikeaa pitämällä kustannukset kurissa ja pysymällä aikataulussa. Jotkin toimenpiteet ohjelmistokriisin ratkaisemiseksi voivat sisältää merkittävän edistyneen suunnittelun, korkeasti koulutetun henkilöstön valinnan ja jatkuvia päivityksiä varmistaakseen, että projekti pysyy tehtävässä ja keskittyy.