Skip to main content

The Limits of Software

Grady Booch ( IBM Fellow )
Software development has been, is, and will likely remain fundamentally hard. Building quality systems involves an essential and irreducible complexity, which is why the entire history of software engineering can be characterized as one of rising levels of abstraction. As such, the task of the software development team is to engineer the illusion of simplicity. Nonetheless, software-intensive systems can amplify human intelligence, but they cannot replace human judgement; software-intensive systems can fuse, co-ordinate, classify, and analyze information, but they cannot create knowledge. In other words, not everything we want to build can be built: there exist pragmatic theoretical and technical limits that make software development hard if not impossible. Furthermore, not everything we want to build should be built: there exist moral, economic, social, and political limits that govern human industry. From fundamental to human, these are the factors that define the limits of software.

Share this: