The Dirty Secret of Peace-time Software Development

We use a large number of intimidating words and abstruse concepts to make our software development methods sound like they're highly evolved and refined. But all too often they take way too long to produce software that doesn't work and isn't what we need.

The Propaganda

The normal, "peace-time" process of software development sounds pretty deep. There are requirements.

Req

There are designs.

Design

There is all sorts of testing to assure quality.

Test

That's just for a start — there's loads more.

And on top of it all, there are levels and levels of analysis to assure you've got a repeatable process that is documented, measured, and continuously improved.

CMM

The Reality

When we try to create software in this way, we resemble Dr. Frankenstein in his laboratory,

Lab
with his carefully crafted plans to bring something into being that has never before existed.

And when you've done all that impressive-sounding stuff, what do you have???

This…

Monster
is what you have.

He's late.

He cost way too much.

He doesn't work.

And worst of all…

…he's not what you wanted in the first place!

Conclusion

The reality is all those software methods we argue about amount to pretty much the same thing. They are all "peace-time" software methods. They promise to be careful and deliberate. They promise to deliver safety and predictability. But they can't! Which explains why, in the vast majority of cases, they don't! That's the dirty secret of all those high-minded concepts and abstruse words — they put a high-minded gloss on incompetence and ineptitude.

Links

Recent Posts

Categories