Sunday, September 10, 2006
Software Sucks - But Why?
One of those thought-invoking posts has been haunting me for over a day now. He visited Seagate and blogged about it. What really grabbed me was this offhand comment:
You rarely think about drives or storage media until they fail.
And you don't, do you? But what's the implication therein? Think about it . . . ok, had some thinking time? Right! What about the things you worry about that haven't entirely crapped out? Things like software?
Why does software suck?
As a tester, this question is dear to me. I am constantly surrounded by software that sucks. A lot. I have no idea why. It is my own personal hell. Welcome to my world: software.
Software sucks because people expect it to. Why code to a higher standard when everyone knows that the UX is gonna be crap? People expect it. Give them the status quo.
Software sucks because (good?) developers are lazy. Make more with less. That's what they do. And the "with less" means it's gonna suck.
Software sucks because testers don't bother to find the bugs. Ok, so I'm guilty of letting a few bugs ship, but not out of laziness or ennui. It happens.
Are any of those good answers? I don't think so.
In the case of something like Windows or Office, software sucks because 1) it has all kinds of compatibility problems and 2) because they're both expected to ship with *known* bugs (let alone the unknown ones), but more so because 3) they're not stable long-term. Those hard drives from Seagate are pretty stable technology. Seagate might make them larger. Or faster. But they aren't always trying to rearchitect the HDD with every release to make it "exciting". Hardware (once it is fairly venerable) is interested only in *working*. Software is far too experimental.
Ok, so to build on that, why is software so pliable when hardware isn't? By its very nature, it's easier to change software than hardware. Even firmware updates are really software. Once the beige box is in someone's home it's going to be years untl that person buys a new beige box. Software is highly available as download from any number of sources.
Let's try this from another angle. Software "engineers" aren't really engineers. They're hackers (in the older, less pergorative sense of the word). And worse, they're almost always playing with their code. They want to keep producing as much as possible. This is almost entirely antithetical to the hardware folks (measure a bunch of times; build once).
Then again, maybe software sucks because the market bears it.
I'm sure I can come up with more. I've really only started to rant on the topic recently.