A crise do software foi um termo utilizado nos anos 1970, quando a engenharia de software era praticamente inexistente. O termo expressava as dificuldades do desenvolvimento de software frente ao rápido crescimento da demanda por software, da complexidade dos problemas a serem resolvidos e da inexistência de técnicas estabelecidas para o desenvolvimento de sistemas que funcionassem adequadamente ou pudessem ser validados.
A noção da crise do software emergiu no final dos anos 60. O termo "crise do software" foi cunhado por alguns participante da primeira Conferência de Engenharia de Software da OTAN em 1968 em Garmisch, Alemanha. Edsger Dijkstra, na apresentação feita em 1972 na Association for Computing Machinery ao ser laureado com o Prêmio Turing, intitulada The Humble Programmer (EWD340) e publicada no periódico Communications of the ACM faz menção ao mesmo problema.
The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem.
– Edsger Dijkstra , ''The Humble Programmer (EWD340) , Communications of the ACM
As causas da crise do software estão ligadas a complexidade do processo de software e a relativa imaturidade da engenharia de software como profissão. A crise se manifesta de várias formas:
A maior parte dos projetos continuam com estes problemas ainda na atualidade, assim pode se dizer que a crise continua vigente ainda na atualidade.
As soluções para a crise de software: