Mis on tarkvarakriis?

Tarkvarakriis on ebakõla selle vahel, mida tarkvara suudab pakkuda, arvutisüsteemide võimsuste ja nende kasutajate ootuste vahel. Sellest sai 20. sajandil kasvav probleem, kuna andmetöötlus kasvas hüppeliselt ning tarkvara ei suutnud sellega sammu pidada. Süsteemide keerukuse kasvades kasvavad ka kasutajate vajadused, kes ootavad oma tarkvaralt järjest suuremat jõudlust. Programmeerijatel võib olla raske sammu pidada, tekitades tarkvarakriisi.

Tarbijatarkvara liigub tavaliselt läbi aeglaste arendusfaaside seeria, kuid moodustab väikese osa tööstuse ärimahust. Suurem osa tarkvaraarendusest on süvendatud konkreetsete rakenduste jaoks mõeldud süsteemidesse, alates programmidest, mis haldavad rakettide juhtimist mereväe ristlejatel, kuni tervisekindlustusseltside sisemiste andmete säilitamiseni. See tarkvara nõuab tavaliselt kliendilt märkimisväärset investeeringut, aga ka selle arendamise, testimise ja hooldamise eest vastutavatelt töötajatelt ulatuslikku programmeerimist.

Sellised projektid võivad sattuda tarkvarakriisi, kus nad hakkavad ületama eelarvet ja nende arendamine võtab oodatust palju kauem aega. Tarkvara kallal töötavad programmeerijad peavad võib-olla tegelema käimasolevate veaparandustega, õppides samal ajal süsteemi uusi aspekte, tehes kliendi jaoks kohandusi ja lahendades muid esilekerkivaid probleeme. Madal kvaliteet võib olla muret tekitav, kuna programmeerijad võivad kogeda üha suuremat survet eelarvet iga hinna eest täita, isegi kui see tähendab, et tarkvara ei ole hea kvaliteediga. Ka dokumentatsiooni kipub tootma vähem.

See ei ole ainult uute tarkvaratoodete väljatöötamise probleem. Teine probleem võib olla vajadus hooldada vanemat tarkvara, millel võib olla probleeme seoses kehva arenguga või suutmatusega ette näha kasvavaid vajadusi. Programmeerijad võivad kulutada palju aega pärandtarkvara töökorras hoidmisele, et ettevõte saaks edasi tegutseda. Suure investeeringu vanemasse tarkvarasse ei pruugi ettevõte uut programmi tellida, isegi kui see vastaks nende vajadustele paremini, kuna sellega võib kaasneda ülemineku ajal rohkem kulutusi ja probleeme.

Surve keeruka ja täiustatud koodi tootmiseks võib tarkvarakriisi oluliselt kaasa aidata. Survet võib olla raske kontrollida, hoides samal ajal kulusid kontrolli all ja püsides ajakavas. Mõned tarkvarakriisiga toimetulemise meetmed võivad hõlmata põhjalikku täpsemat planeerimist, kõrgelt kvalifitseeritud töötajate valikut ja pidevaid uuendusi, et tagada projekti täitmine ja keskendumine.