Software crisis
Il software crisis è un termine usato nei primi giorni dell'ingegneria del software per descrivere l'impatto della rapida crescita della potenza degli elaboratori e la complessità dei problemi che dovevano essere affrontati. Le parole chiave della software crisis erano complessità, attese e cambiamento.
I requisiti, continuamente in conflitto tra loro, impedivano lo sviluppo del software. Per esempio, mentre gli utenti domandavano un largo numero di funzionalità, i committenti, generalmente, chiedevano di minimizzare i costi dello sviluppo ed i tempi.
Il concetto di software crisis era emerso alla fine del 1960. Un vecchio uso del termine era in ACM Turing Award Lecture, "The Humble Programmer" (EWD340), di Edsger Dijkstra del 1972 pubblicato in Communications of the ACM.
Dijkstra affermava[1]:
Le cause della software crisis era collegate alla complessità dei processi software ed alla relativa immaturità dell'ingegneria del software. La crisi si manifestava in diversi modi:
- Progetti oltre il budget
- Progetti oltre i limiti di tempo
- Software di scarsa qualità
- Software che spesso non rispettava i requisiti
- Progetti ingestibili e codice difficile da mantenere
La crisi del software condusse, quindi, alla nascita dell'Ingegneria del software ed ai primi modelli, come il modello a cascata.
Per superare la crisi, infatti, si dovettero introdurre:
- Management
- Organizzazione
- Teorie e Tecniche
- Strumenti
- Metodologie
Note
- ^ (EN) Edsger Dijkstra, The Humble Programmer (PDF), in Classics in Software Engineering, Yourdon Press, 1979.