Parkinson's Law Eats Silver Bullets

Silver Bullet: From http://www.tejasthumpcycles.com/Parts/LeversGripsctrls/Silver_Bullet/Silver_Bullet_Shift_Brake.jpg In his essay No Silver Bullet: Essence and Accidents of Software Engineering, Fred Brooks makes the following postulate:

There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity.

This “law” was recently invoked by Joel Spolsky in his post Lego Blocks, which prompted an interesting rebuttal by Wesner Moise.

That assertion turns out to be pure nonsense, amply disproven by numerous advances in IDEs, languages, frameworks, componentization over the past few decades. Our expectations of software and our ability have risen. A year of work takes a month or a month of work takes a day.

Whether you agree with Wesner’s position or not comes down to how you define a single development.  It could be argued that the order of magnitude improvement we have now is a cumulative result of multiple improvements.

Regardless, perhaps a more lasting way to rephrase this assertion is to state that no single technology, development, or management technique will produce by itself an order-of magnitude improvement in meeting current business needs.

In other words, sure we can produce an order-of-magnitude more productivity now than we could before, but changing business climates and consumer needs have also increased by an order-of-magnitude. Just compare a modern game like Oblivion to an older game like Ultima I.

Oblivion Screenshot Ultima Screenshot

In a way, this is Parkinson’s Law at work:

work expands so as to fill the time available for its completion.

I’ll restate it to apply to software engineering:

Business needs and feature requirements increase to fill in the productivity gains due to silver bullets.

What do you think, is that sufficiently original to call it Haack’s Law? Wink

In any case, I think Joel’s original point still stands. Building software to meet current needs, will always be hard.  When you think about it, the dreams of building software with lego-like blocks has been realized. But only for those who need to write software that meets the needs of users in the 1960s.  For modern needs, it remains challenging.

What others have said

Requesting Gravatar... Rob Conery Dec 05, 2006 2:00 PM
# re: Parkinson's Law Eats Silver Bullets
I think there's also an equal, if not more evident, expansion of code to fill these vacuums as well. Seems like the same stuff takes twice as long to code up. Or maybe it's me being grumpy...
Requesting Gravatar... Willie Tilton Dec 05, 2006 4:19 PM
# re: Parkinson's Law Eats Silver Bullets
I think it's relational to the skill of the developer and the tools he or she is using. I like VS2k5's code completion and it certainly feels a bit faster. It's the same with code generators. In the past I dealt with agonizing data access code, and now I chunk it out. So I agree with Wesner.

You could put it to an easy test. Have two developers of equal skill use two different applications. Have one use InterDev and ASP to create a complex form, and allow the other to use VS 2k5 and ASP.NET. See who completes it faster. My bet is on the latter simply because of the lego blocks. The latter app could fill more development time because it would be a more rebust framework.
Requesting Gravatar... Sunil Tanna Dec 05, 2006 8:49 PM
# re: Parkinson's Law Eats Silver Bullets
"Software will be mostly made by putting together small units (components)" is only half the Lego Programming Idea in these kinds of press articles.

If the articles just said that, they (a) wouldn't be wrong, and (b) would predicting what's already long-ago happened, ever since function calls were first invented.


The full Lego Programming Idea goes something like this: "Software will be mostly made by putting together small units (components), AND AS A RESULT, will become simple enough for non-programmers to create"

The reason this is stupid, is because, of course, everything after the "AND AS A RESULT". Putting together small units, inorder to solve a problem, is itself a hard-task, that non-programmers generally can't do.
Requesting Gravatar... vern Dec 05, 2006 8:59 PM
# re: Parkinson's Law Eats Silver Bullets
Dude! Googlemark it!
Requesting Gravatar... LaptopHeaven's Blog Dec 06, 2006 5:58 AM
# Joel on Software: Lego Programming
Requesting Gravatar... Ryan Smith Dec 06, 2006 2:22 PM
# re: Parkinson's Law Eats Silver Bullets
I think it's impossible to argue against Haack's Law. Coming up with a good way to solve a difficult business problem is never going to get any easier. You will always need to have someone who knows the modern technologies at a deep level to define the best course of action to achieve the desired solution.

I guess that's the reason I like the term "Solution Architect" better than "Programmer" or "Developer"

So here is RyanSmith's Law:
"No matter how much a person makes, they will always find a way to live right up to their means - thus an individual will always be broke"
Requesting Gravatar... lb Dec 06, 2006 4:10 PM
# re: Parkinson's Law Eats Silver Bullets
yep, you've nailed it Phil.

What do you have to say?

(will show your gravatar)
Please add 2 and 2 and type the answer here: