What Happened to Dijkstra's Crisis (within the Software Crisis)?
Dijkstra's Crisis refers to computer scientist Edsger W. Dijkstra's specific and often idiosyncratic interpretation of the broader 'Software Crisis' that emerged in the late 1960s. While the general crisis highlighted widespread project failures, Dijkstra emphasized the need for rigorous mathematical discipline and structured programming to replace what he saw as a chaotic, ad-hoc approach to software development. His views profoundly influenced the nascent field of software engineering, though the 'software crisis' continues to evolve with new challenges even today, including a 'second software crisis' driven by AI-generated code.
Quick Answer
Dijkstra's Crisis was Edsger W. Dijkstra's influential perspective on the 'Software Crisis' of the late 1960s and early 1970s. He argued that the fundamental problem in software development was a lack of mathematical rigor and advocated for structured programming and formal methods to create reliable software. Although his vision of an 'elite corps of mathematical engineers' was controversial, his ideas were foundational to the discipline of software engineering. As of 2026, the 'software crisis' persists in new forms, with recent discussions about a 'second software crisis' driven by the challenges of managing AI-generated code, indicating the enduring relevance of complexity management in software.
📊Key Facts
📅Complete Timeline11 events
Dijkstra conceives shortest path algorithm
Edsger W. Dijkstra conceived his famous shortest path algorithm while working as a programmer at the Mathematical Center in Amsterdam, aiming to demonstrate the capabilities of the new ARMAC computer.
Dijkstra's algorithm published
Dijkstra's shortest path algorithm was formally published in a three-page article titled 'A Note on Two Problems in Connexion with Graphs.'
NATO Software Engineering Conference
The first NATO Software Engineering Conference was held in Garmisch, Germany, where the term 'Software Crisis' was officially coined to describe the widespread problems in software development.
Notes on Structured Programming circulated
Dijkstra circulated his influential manuscript 'Notes on Structured Programming' (EWD249), advocating for programming as a discipline rather than a craft and laying the groundwork for structured programming.
Dijkstra's Turing Award Lecture: 'The Humble Programmer'
Edsger Dijkstra delivered his Turing Award lecture, 'The Humble Programmer,' where he articulated his views on the software crisis, emphasizing the need for intellectual humility and rigorous, mathematical approaches to programming.
Dijkstra moves to University of Texas at Austin
Disenchanted with the direction of Burroughs Corporation and lack of support for computer science in the Netherlands, Dijkstra accepted a prestigious chair at the University of Texas at Austin.
Edsger W. Dijkstra passes away
Edsger W. Dijkstra passed away in Nuenen, Netherlands, after a battle with cancer, leaving behind a profound legacy in computer science.
Thomas Haigh's 'Dijkstra's Crisis' paper
Historian Thomas Haigh published 'Dijkstra's Crisis: The End of Algol and Beginning of Software Engineering,' which re-evaluates the conventional narrative of the software crisis and Dijkstra's specific role.
Breakthrough in Dijkstra's Algorithm
Researchers at Tsinghua University announced a significant breakthrough, shattering the long-standing time complexity barrier of Dijkstra's algorithm for shortest paths, marking the first major improvement since 1984.
Discussion of a 'Second Software Crisis'
Graham Perich published an article discussing the emergence of a 'second software crisis,' driven by the 'New Abundance Problem' where AI coding assistants generate code faster than it can be managed and reviewed.
Hacker News discussion on Haigh's paper
A Hacker News thread actively discussed Thomas Haigh's 2010 paper on 'Dijkstra's Crisis,' reflecting ongoing academic and industry interest in the historical interpretation of the software crisis and Dijkstra's legacy.
🔍Deep Dive Analysis
The term 'Software Crisis' was coined at the 1968 NATO Software Engineering Conference in Garmisch, Germany, to describe the widespread difficulties in developing useful, efficient, and reliable computer programs within budget and on time. Projects were chronically late, over budget, and often failed to meet requirements, largely because the rapid advancements in hardware capabilities had outpaced the industry's ad-hoc programming practices.
Edsger W. Dijkstra, a highly influential and often controversial figure in computer science, presented his unique perspective on this crisis, which can be termed 'Dijkstra's Crisis.' While acknowledging the practical problems, Dijkstra's interpretation was more philosophical and prescriptive. He believed the core issue was a fundamental lack of intellectual discipline and mathematical rigor in programming. In his seminal 1972 Turing Award lecture, 'The Humble Programmer,' Dijkstra famously stated, '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.'
Dijkstra advocated for a radical shift, proposing that programming should be transformed into a mathematical discipline, moving away from what he described as 'Chinese armies' of badly trained programmers towards an 'elite corps of mathematical engineers' modeled on himself. His 'Notes on Structured Programming,' circulated in 1969, became a cornerstone of his proposed solution, emphasizing program modularization, clarity, and provable correctness. This approach, along with his strong denunciation of the GOTO statement, profoundly influenced the development of structured programming.
The consequences of the broader 'Software Crisis' and Dijkstra's contributions were significant. It led to the formal establishment of 'software engineering' as a discipline, aiming to apply systematic, disciplined, and quantifiable approaches to software development. Methodologies like structured programming, object-oriented design, version control, and later agile practices emerged as efforts to manage complexity and improve software quality.
As of March 2026, the 'Software Crisis' is considered an enduring challenge, evolving with new technological landscapes. Cybersecurity threats and the demand for increasingly intricate software continue to strain development processes. A significant recent development is the discussion around a 'second software crisis,' highlighted in January 2026. This new crisis is attributed to the rapid advancement of AI coding assistants, which have dramatically increased code generation capabilities, creating a 'New Abundance Problem.' Senior engineers are reportedly 'drowning' in the volume of code requiring review and integration, as management practices struggle to adapt to this new pace. This echoes the original crisis where hardware outpaced human ability, suggesting that Dijkstra's emphasis on managing complexity and intellectual control remains highly relevant. Furthermore, in August 2025, researchers at Tsinghua University announced a breakthrough in Dijkstra's own shortest-path algorithm, shattering a long-standing time complexity barrier, demonstrating that even foundational concepts continue to be refined.
What If...?
Explore alternate histories. What if Dijkstra's Crisis (within the Software Crisis) made different choices?