No Silver Bullet is a classic paper of software engineering written by Frederick P. Brooks Jr. in 1987. Brooks argues that there will be no more silver bullets: no more technologies or practices that will create a 10-fold improvement in software engineering productivity over 10 years.

The central argument has been interpreted to mean that there will be no more easy answers to software engineering problems.

Table of contents
1 Accidental versus essential complexity
2 To Quality
3 External links

Accidental versus essential complexity

At the heart of the argument is the distinction between accidental and essential complexity. Accidental complexity is problems that we create on our own and can be fixed. For example, the complexity of writing and optimizing assembly code is accidental and can be eliminated by programming in Java. Essential complexity is caused by the problem to be solved, and nothing can remove it. If users want a program to do 30 different things, then those 30 things are essential and the program must do those 30 different things.

The problems with software engineering, is that we have cleaned up much of the intensional complexity, and the rest cannot be changed.

Perhaps the one technology to make a most improvement was high-level languages, such as Fortran and Java.

To Quality

While the article was originally written in terms of productivity, the same arguments have been applied to quality and control.

Today, everyone seems well aware that there will probably never be any more silver bullet technologies or practices, yet hope remains. Many advocates of specific technologies and practices hype their benefits and new silver bullets are born.

External links

No Silver Bullet