💻 techEvent1 views3 min read

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.

Share:

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

Year 'Software Crisis' coined
1968
NATO Software Engineering Conference
Dijkstra's Turing Award Lecture
1972
ACM
Average software project schedule overrun
50%
Scientific American, 1994
Large systems operating failures
75%
Scientific American, 1994
Breakthrough in Dijkstra's algorithm
August 2025
Tsinghua University

📅Complete Timeline11 events

1
1956Major

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.

2
1959Major

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.'

3
October 1968Critical

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.

4
August 1969Major

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.

5
August 14, 1972Critical

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.

6
1984Notable

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.

7
August 2002Major

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.

8
2010Major

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.

9
August 22, 2025Major

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.

10
January 16, 2026Major

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.

11
March 13, 2026Notable

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?

Explore Scenarios
Building relationship map...

People Also Ask

What was the 'Software Crisis'?
The 'Software Crisis' was a term coined in 1968 to describe the widespread difficulties in software development, characterized by projects running over budget and time, and producing unreliable or inefficient software. It arose because increasing hardware capabilities outpaced existing ad-hoc programming methods.
How did Dijkstra's view of the crisis differ?
Dijkstra's 'crisis' was more idiosyncratic, emphasizing a lack of mathematical rigor and intellectual discipline in programming. He advocated for replacing 'mediocre programmers' with 'mathematical engineers' and championed structured programming and formal methods as the solution.
What solutions emerged from the Software Crisis?
The Software Crisis spurred the development of software engineering as a discipline. Key solutions included structured programming, object-oriented design, version control, code review, and later agile methodologies, all aimed at managing complexity and improving software quality.
Is the Software Crisis still relevant today?
Yes, the Software Crisis is considered an enduring challenge that has evolved with technology. As of 2026, new forms include managing cybersecurity threats, the demand for increasingly complex software, and a 'second software crisis' related to the challenges of integrating and reviewing high volumes of AI-generated code.
What is the 'New Abundance Problem' in software?
The 'New Abundance Problem,' discussed in 2026, refers to a potential 'second software crisis' where the rapid generation of code by AI coding assistants outpaces human ability to manage, review, and integrate it effectively. This leads to senior engineers being overwhelmed by the volume of output.