Software developers often get a bad rap — and at times we deserve it. Even simple defects can ruin an otherwise good application. Here’s a real world example. It’s a true story.
I received an email message from a retailer that I purchase from regularly. They are in the pet supplies business though I won’t mention their name. I’m not out to embarrass them. The email asked me to participate in an online survey.
Sure, why not! I clicked on the link and was taken to a webpage telling me that the survey quota had been reached. That seemed odd to me. Quota for a survey? But what do I know?
A week later I received another email message from this retailer telling me that there was an error in the survey and asking me to participate again. Sure, I’m easy.
I clicked on the link and responded to far-too-many questions — the survey seemed to drag on endlessly. Anyway, I got through the survey and the last question asked me for my 5-digit zip (postal) code. I entered my zip code and got a message telling me that it was invalid. The zip code had to be in the range 10000 – 99999. Well, okay, but my zip code begins with a zero. It’s outside the range shown. So I lied to get passed this last question.
Hidden complexity is the worst kind.
What I find interesting about this battle with buggy software is that I was dealing with a large corporation that runs a major retail chain as well as having a thriving online presence. How could they mess up a simple survey — not once but twice!
Well, I don’t have any inside information so I’ll never know what really happened. I’d guess that too many company insiders viewed the development effort as a simple survey. What could possibly go wrong?
Clearly, there was insufficient testing but let’s not pile the blame on the test group (assuming there was any formal testing at all). It’s also not simply the fault of the software developer(s) or the primary stakeholders.
A concept that some people seem to have trouble grasping is that there are many factors that make software complex. In this case, the number of users, potentially tens of thousands, and their geographic distribution, nationwide, made a seemingly simple problem much more complex. Someone failed to grasp that.
Collaboration is the cure.
Enterprise software development is a collaborative effort. Multiple people have to make mistakes for an enterprise application to make it to all the way to production and then fail. That’s why teamwork is so important and is emphasized so heavily by agile software development teams. If teamwork is lacking, failure is assured.
I’ll continue to do business with this supplier but I may not respond to survey requests in the future. Software defects bug me.