Why do massive IT projects fail while teenagers build million-dollar apps?
In short: Large-scale government and commercial software projects frequently overrun, get cancelled, or deliver inadequate results. Despite the vast resources of international firms, the industry struggles with a staggering defect rate. Understanding why complexity makes software so difficult to master is the first step toward building reliable systems.
The difficulty of software engineering often stems from two primary drivers of complexity. First, developers frequently move complexity from hardware into software because specialized hardware is prohibit to build and general-purpose hardware can be unreliable. Second, there is a persistent temptation to include 'nice to have' features. Because these additions are easy to include in an initial specification, their long-term consequences for the system's architecture often remain hidden until much later in the development cycle.
This complexity creates a cascading effect of errors. As requirements grow more intricate, they become prone to omissions, conflicts, and contradictions. When these requirements inevitably change, the impact on the existing project becomes much harder to analyze. This makes it increasingly difficult to accommodate updates without introducing new bugs or necessitating expensive, extensive rewrites of completed work.
The stakes for getting this right are high, particularly regarding non-functional requirements like safety, security, usability, and legality. Professor Martyn Thomas notes that software is typically deployed with more than ten defects for every thousand lines of program source code (KLoC). To combat this, developers must do more than just write code; they must provide convincing evidence of correctness. As the computer scientist Dijkstra famously argued, the programmer's responsibility extends beyond producing a correct program to demonstrating its correctness in a convincing manner.
Ultimately, achieving high confidence in a system requires planning for evidence collection from the very start of a project. Without a strategy to prove that essential requirements have been met, companies cannot safely put critical software into service.
Opens the Intellect+ feed with this card first. Swipe up for the next one.
Sources
- Summary by Intellect · source: How Can Software Be So Hard? - Professor Martyn Thomas CBE
- Also: How Can Software Be So Hard?
To cite this card, link to https://intellectplus.co.uk/app/ideas-how-can-software-be-so-hard-professor-martyn-thomas-cbe.
How we source, check and correct cards: Editorial standards.
General information, not professional advice. Spotted an error? Flag the card or see corrections and complaints.
Intellect Plus is a visual educational discovery platform for exploring fascinating facts and ideas. Brain Food, Not Brain Rot. What is Intellect Plus?