Hva er en programvarekrise?
En programvarekrise er et misforhold mellom hva programvare kan levere og kapasiteten til datasystemer, så vel som forventningene til brukerne. Dette ble et økende problem i det 20. århundre da databehandling vokste med store sprang og programvare klarte ikke å holde tritt. Når kompleksiteten i systemene vokser, gjør også brukerne behov som forventer stadig mer ytelse fra programvaren. Programmerere kan slite med å holde tritt, og skaper en programvarekrise.
Forbrukerprogramvare beveger seg vanligvis gjennom en langsom serie med utviklingsfaser, men utgjør en liten del av volumet i virksomheten. Hovedtyngden av programvareutvikling blir senket i systemer for spesifikke applikasjoner, alt fra programmene som håndterer rakettveiledning om bord i marinecruisere til intern journalføring for helseforsikringsselskaper. Denne programvaren krever vanligvis en betydelig investering fra kunden, samt omfattende programmering fra personell som har ansvar for å utvikle, teste og vedlikeholde den.
Slike prosjekter kan komme i en programvarekrise der de begynner å gå over budsjettet og tar mye lenger tid enn forventet å utvikle. Programmørene som jobber med programvaren, kan være nødt til å håndtere pågående feilrettinger mens de lærer nye aspekter av et system, gjør justeringer for klienten og tar opp andre problemer som oppstår. Lav kvalitet kan være en bekymring, da programmererne kan oppleve et økende press for å møte budsjetter for enhver pris, selv om det betyr at programvaren ikke vil være av god kvalitet. Mindre dokumentasjon har en tendens til å bli produsert også.
Dette er ikke bare et problem for utvikling av nye programvareprodukter. En annen bekymring kan være behovet for å vedlikeholde eldre programvare som kan ha problemer relatert til dårlig utvikling eller unnlatelse av å forutse økende behov. Programmerere kan bruke store mengder tid på å holde eldre programvare funksjonelle slik at et selskap kan fortsette å operere. Med høye investeringer i den eldre programvaren, kan selskapet være motvillig til å bestille et nytt program, selv om det bedre vil dekke behovene deres, fordi dette kan innebære mer utgifter og problemer under omstillingen.
Press for å produsere kompleks, avansert kode kan være en betydelig bidragsyter til en programvarekrise. Det kan være vanskelig å kontrollere trykket mens du holder kostnadene under kontroll og holder deg på en timebord. Noen tiltak for å håndtere en programvarekrise kan omfatte betydelig avansert planlegging, utvalg av høyt kvalifisert personell og løpende oppdateringer for å sikre at prosjektet holder seg på oppgave og fokus.