“No Silver Bullet—Essence and Accident in Software Engineering” is a widely discussed paper on software engineering written by Turing Award winner Fred Brooks in 1986.
Brooks argues that “there is no single development, in either technology or management technique, which by itself promises even one order of magnitude [tenfold] improvement within a decade in productivity, in reliability, in simplicity.” He also states that “we cannot expect ever to see two-fold gains every two years” in software development, as there is in hardware development (Moore’s law).
More recently, James Bennett spends some time in a post laying out thoughts on “No Silver Bullet”, and exploring some things that — even if they might not be true silver bullets in the Brooks-ian sense — are silvery enough to be worth bringing up and talking about.
But before I say anything else, and before you read any more of this post, I want to urge you to pause here, and go read it for yourself. Don’t just read the Wikipedia summary of it, or someone else’s summary of it, don’t ask some half-baked “AI” to make up lies about it for you. Go get a copy of it and read the whole thing. It’s not terribly long. The 1995 “twentieth anniversary” edition of The Mythical Man-Month includes both it and the “Refired” followup, and is worth spending a few dollars on to have in your personal library. Once you’ve read it, you can come back to this post.
In closing, Bennett says:
Software development is hard. It’s been hard for a long time. It’s going to stay that way for the foreseeable future. Yes, even with your favorite “AI” code assistant, because even if it actually does by some chance spit out reasonable code, that’s not and never was the hard part of software development.
“No Silver Bullet” gives us a useful framework for thinking about how and why it’s hard, and for understanding where and how we can achieve gains in productivity.
And despite the number of people who’ve spent literal decades arguing Brooks was wrong, we still have not seen the kinds of consistent huge gains in software productivity that we’ve seen in hardware, which is a strong indicator he was right about there being some essential difficulty that’s much harder to reduce away.
Read the full analysis here.