| |||||||||
The software crisis was a term used early in the days of software engineering, before it was a well-established subject, to describe the impact of the rapid increases in computer power and the complexity of the problems which could be tackled. It refers in essence to the difficulty of writing correct, understandable and verifiable computer programs.
The roots of the software crisis are complexity, expectations, and change.
See software engineering.
Indeed, the problem of trying to write an encyclopedia is very much like writing software. Both running code and a hypertext/encyclopedia are wonderful turn-ons for the brain, and you want more of it the more you see, like a drug. As a user, you want it to do everything, as a customer you don't really want to pay for it, and as a producer you realize how unrealistic the customers are. Requirements will conflict in functionality vs affordability, and in completeness (get everything in) vs timeliness (meet the deadline).
The notion of a software crisis emerged at the end of the 1960s. An early use of the term is in Edsger Dijkstra's ACM Turing Award Lecture, "The Humble Programmer" (EWD340), given in 1972 and published in the Communications of the ACM. Dijkstra says,