Crisis del software era un término usado en los días tempranos de tecnología de dotación lógica, antes de él estaba un tema establecido. El término fue utilizado para describir el impacto de aumentos rápidos en energía de computadora y la complejidad de los problemas que podrían ser abordados. Esencialmente, refiere a la dificultad de la escritura correcta, comprensible, y comprobable programas de computadora. Las raíces de la crisis del software son complejidad, expectativas, y cambio.
Los requisitos que estaban en conflicto han obstaculizado siempre el proceso del desarrollo del software. Por ejemplo, mientras que los usuarios exigen una gran cantidad de características, los clientes desean generalmente reducir al mínimo la cantidad que deben pagar por el software y el tiempo requeridos para su desarrollo.
El término crisis del software fue acuñado cerca F. L. Bauer en la primera conferencia de la tecnología de dotación lógica de la OTAN adentro 1968 en Garmisch, Alemania. Un uso temprano del término está adentro Edsger Dijkstra's 1972 Concesión de ACM Turing Dé una conferencia, “el programador humilde” (EWD340), publicado en Comunicaciones del ACM. Estados de Dijkstra.
- Proyectos que funcionan el sobre-presupuesto.
- Proyectos que funcionan en horas extras.
- El software estaba de baja calidad.
- El software no resolvió a menudo requisitos.
- Los proyectos eran unmanageable y código difíciles de mantener.
Vario procesos y metodologías se han convertido sobre las últimas décadas “domestican” la crisis del software, con grados que variaban de éxito. Sin embargo, se conviene extensamente que hay ninguna “bala de plata” que es, ningún acercamiento que prevendrá los sobrantes y las faltas del proyecto en todos los casos. Generalmente proyectos del software que son grandes, complicados, pobre-especificado, e implican aspectos desconocedores, siguen siendo particularmente vulnerables a los problemas grandes, inesperados.