💻 techConcept0 views3 min read

What Happened to Dijkstra's Crisis (Algol and Software Engineering)?

Dijkstra's Crisis refers to the 'software crisis' of the late 1960s and early 1970s, articulated and addressed by computer scientist Edsger W. Dijkstra. It highlighted the pervasive issues of unreliable, over-budget, and late software projects, advocating for structured programming and more rigorous, mathematical approaches to software development, moving away from unstructured practices prevalent with languages like Algol. Today, while the original crisis led to foundational changes in software engineering, new complexities, particularly with AI integration and cybersecurity, suggest a 'modern software crisis' with ongoing challenges.

Share:

Quick Answer

Dijkstra's Crisis emerged in the late 1960s as a response to the widespread 'software crisis,' characterized by project failures, budget overruns, and unreliable software. Edsger W. Dijkstra, a prominent computer scientist, championed structured programming and a more mathematical approach to software development, notably through his influential 'Go To Statement Considered Harmful' paper. His work, alongside the NATO Software Engineering Conferences, laid the groundwork for modern software engineering. As of 2026, while many original problems have been mitigated, the industry faces new complexities with AI-driven development, cybersecurity threats, and managing ever-increasing system scale, leading some to suggest a 'modern software crisis' where Dijkstra's emphasis on foundational principles remains highly relevant.

📊Key Facts

Denver International Airport Baggage System Over Budget (1995)
$560 million
Software Crisis: Keeping Up with Changing Business Needs (October 15, 2025)
Ariane 5 Rocket Explosion (1996)
Caused by a simple integer overflow error
Software Crisis: Keeping Up with Changing Business Needs (October 15, 2025)
Projected Growth for Software Developers (2022-2032)
25%
What Software Engineers Need to Know in 2026 (February 3, 2026)
Agentic AI Project Failure Rate (by 2027)
40%
Critical Software Development Industry Challenges to Watch in 2026 (January 19, 2026)
AI Handling Routine Coding Tasks (by 2026)
70-80%
Critical Software Development Industry Challenges to Watch in 2026 (January 19, 2026)

📅Complete Timeline14 events

1
1956Major

Dijkstra Develops Shortest Path Algorithm

Edsger W. Dijkstra formulates and solves the shortest path problem, demonstrating his early contributions to fundamental algorithms.

2
1958Major

ALGOL Programming Language Family Developed

The ALGOL (Algorithmic Language) family of imperative computer programming languages is originally developed, becoming highly influential for future language design.

3
1960Major

First ALGOL 60 Compiler Developed

Edsger Dijkstra and Jaap Zonneveld develop the first compiler for the ALGOL 60 programming language, a key advance in structured programming.

4
October 1968Critical

NATO Software Engineering Conference Coins 'Software Crisis'

The NATO Software Engineering Conference in Garmisch, Germany, officially recognizes and coins the term 'software crisis' due to widespread project failures and complexities.

5
1968Critical

'Go To Statement Considered Harmful' Published

Edsger W. Dijkstra publishes his influential letter 'Go To Statement Considered Harmful,' critiquing the use of GOTO statements and advocating for structured control flow.

6
1972Critical

Dijkstra Receives Turing Award and Popularizes 'Software Crisis'

Edsger W. Dijkstra receives the A.M. Turing Award for his fundamental contributions to programming, using his lecture to widely popularize the concept of the 'software crisis'.

7
1972Major

Structured Programming Term Coined

Dijkstra coins the term 'structured programming' in his 'Notes on Structured Programming,' further solidifying the principles for building reliable software.

8
August 6, 2002Major

Edsger W. Dijkstra Dies; Dijkstra Prize Established

Edsger W. Dijkstra passes away. The ACM PODC Influential-Paper Award in distributed computing is renamed the Dijkstra Prize the following year in his honor.

9
2019Notable

CWI Founds Dijkstra Fellowships

The Centrum Wiskunde & Informatica (CWI) founds the Dijkstra Fellowships in honor of Edsger W. Dijkstra's pioneering work and lasting legacy in computer science.

10
November 30, 2024Major

Discussions on a 'Modern Software Crisis' Emerge

Articles begin to explore parallels between the original software crisis and new challenges, including cybersecurity, ethical dilemmas, and AI complexity, suggesting a 'modern software crisis'.

11
October 6, 2025Major

AI-Driven Test Automation Becomes Key Trend

AI and Machine Learning become standard features in software testing solutions, with generative AI transforming test case creation and execution, significantly reducing manual scripting time.

12
January 19, 2026Critical

AI Expected to Handle 70-80% of Routine Coding Tasks

By 2026, AI is projected to handle 70-80% of routine coding tasks, shifting the programmer's role towards architecture, security verification, and creative problem-solving.

13
February 27, 2026Major

Software Engineering Best Practices Adapt to AI/ML

Best practices in software engineering in 2026 increasingly focus on collaboration, continuous delivery, and adaptation to emerging technologies, especially artificial intelligence and machine learning.

14
March 13, 2026Notable

Dijkstra's Historical Narrative Reconsidered

A Hacker News discussion on 'Dijkstra's Crisis: The End of Algol and Beginning of Software Engineering (2010)' highlights academic historical challenges to the conventional narrative, suggesting Dijkstra used the 'software crisis' to advocate for an elite corps of 'mathematical engineers'.

🔍Deep Dive Analysis

The term 'software crisis' was coined at the 1968 NATO Software Engineering Conference in Garmisch, Germany, where experts recognized that software projects were routinely exceeding budgets, missing deadlines, and delivering unreliable or incomplete systems. This period saw a dramatic increase in computing power, but software development methodologies failed to keep pace, leading to what Edsger W. Dijkstra famously described in his 1972 Turing Award Lecture: 'the major cause of the software crisis is that machines have become several orders of magnitude more powerful.'

Dijkstra was a pivotal figure in articulating and addressing this crisis. His 1968 letter, 'Go To Statement Considered Harmful,' published in the Communications of the ACM, became a seminal critique of unstructured programming practices, arguing that the excessive use of 'goto' statements led to 'spaghetti code' that was difficult to read, debug, and maintain. He advocated for 'structured programming,' a paradigm emphasizing modular units with clear, single entrance and exit points, which significantly improved program clarity and correctness. Languages like Algol 60, while influential for introducing concepts like block structure, also highlighted the need for more disciplined approaches as software complexity grew. Dijkstra's critique of Algol 68, for instance, reflected his push for more mathematically rigorous and elegant solutions.

The consequences of Dijkstra's work and the broader software engineering movement were profound. It led to the formal establishment of software engineering as a discipline, the adoption of high-level languages like Pascal (a descendant of Algol), and the widespread acceptance of structured programming principles. However, the 'crisis' itself was not a one-time event. High-profile failures continued, such as the Denver International Airport baggage system in 1995, which ran $560 million over budget, and the European Space Agency's Ariane 5 rocket explosion in 1996 due to a software error.

As of 2026, the software industry continues to grapple with challenges that echo the original crisis, leading many to speak of a 'modern software crisis.' The rapid pace of business needs often outstrips the speed of software development, and increasing complexity, particularly with distributed systems, cloud-native architectures, and the integration of AI and machine learning, introduces new vulnerabilities and management difficulties. Cybersecurity threats have become a global menace, and the ethical implications of software in critical infrastructure are more pronounced than ever. While AI is augmenting development by handling routine tasks, it also creates new challenges like skills gaps, burnout among developers, and the need for robust AI governance and security. Dijkstra's enduring legacy lies in his insistence on foundational computer science principles, mathematical rigor, and the importance of writing correct, understandable code, which remain critical for navigating the complexities of software development in 2026 and beyond.

What If...?

Explore alternate histories. What if Dijkstra's Crisis (Algol and Software Engineering) made different choices?

Explore Scenarios
Building relationship map...

People Also Ask

What was the original 'software crisis'?
The original 'software crisis' was a period in the late 1960s and early 1970s where software projects consistently ran over budget, missed deadlines, and delivered unreliable or incomplete systems. It was formally recognized at the 1968 NATO Software Engineering Conference.
How did Edsger W. Dijkstra contribute to addressing the software crisis?
Edsger W. Dijkstra was a key figure who articulated the software crisis and proposed solutions like structured programming. His influential 1968 paper 'Go To Statement Considered Harmful' advocated for clearer, more manageable code structures, moving away from chaotic 'goto' statements.
Is the ALGOL programming language still used today?
ALGOL is largely historical today, though it was highly influential in the development of many modern programming languages like Pascal, C, and Java. While not in widespread active use, some specialized systems, like the Unisys Clearpath MCP operating system, still use ALGOL dialects.
What is the relevance of Dijkstra's ideas in 2026?
In 2026, Dijkstra's emphasis on foundational computer science principles, mathematical rigor, and writing correct, understandable code remains highly relevant. These principles are crucial for navigating new complexities introduced by AI-driven development, cybersecurity threats, and the increasing scale of modern software systems.
Are we experiencing a 'modern software crisis' in 2026?
Many experts argue that the software industry faces a 'modern software crisis' in 2026. This is driven by new challenges such as managing AI integration, persistent skills gaps, cybersecurity vulnerabilities, and the sheer complexity of cloud-native and distributed systems, echoing the difficulties of the original crisis.