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.
There are designs.
There is all sorts of testing to assure quality.
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.
The Reality
When we try to create software in this way, we resemble Dr. Frankenstein in his laboratory,
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...
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.
Comments