Emmanuel Genard

The Advances are still mostly Accidental

In No Silver Bullet, Brooks argued that no breakthrough in software technology would solve the essential complexity of building software. He argued that all the major productivity gains would come from tools that attacked the accidental complexity. I think he was right and is still right. Every developer tool even LLMs tackle the accidental complexity of building software.

In short, the accidental complexity of software is all the problems that come with building the software once you know what to build. The essential complexity is in figuring out what to build.

The technological advances that have come since Brook’s wrote “No Silver Bullet” have all been about the accidental complexity of writing software. Cloud computing, advanced IDEs, software defined networking, infrastructure as code, advanced programming languages, more powerful application frameworks, and the devops movement have all helped to build software once you know what to build. None of these help you reason about your data model, or help you choose what goes in or out of a module. None of these help you come up with the API of a module that works today and is open to tomorrow’s changes. LLMs can only code what you ask them to code.

Most of the tools that software developers build for themselves are so we can type less. We haven’t spent much energy on tools that help us think.

Published: 2024-05-20

Last Edited: 2024-05-20