Posted by Mike on Dec 19th, 2006
Justin Kitch, CEO of Homestead.com has written about problem customers saying, “Maybe you should fire that customer?“.
Unlike some other responses, I’m not going to focus on how this may relate to the way Homestead does business, but would rather focus on a different issue.
Justin writes:
At the time, I was running a software consulting business, and we were constantly running around trying to please our clients by building software that they *thought* they wanted but we actually knew wouldn’t produce the desired result. Sometimes our clients were reasonable, and when we pointed out why their instructions were misguided, they would respect our opinion and rethink their strategy. Other times, however, our clients effectively told us to shut up and do what they were paying us to do, which was build whatever they told us to build.
This turned out to be disastrous for our company. Inevitably, we would build what they wanted, 3/4 of the way through the process they would realize that it wasn’t what they wanted, and then they would yell at us for building something useless. In the mean time, our employees would get demoralized, the customer would want a discount on the remaining work, and the final product would be some half-baked hybrid of what we started building and the new direction.
Yes, the customer was wrong when they started, but the result, this demoralization and half-baked solution, is the symptom. The problem isn’t the customer, the horrible software, etc… it’s the fact that no one sat down and wrote the requirements.
I know, I know, you’re saying that good requirements can produce a horrible product. Yes, that’s very true. And I’m not saying that having requirements set before starting the job would make the product work, but by creating a set of formal requirements at the get go, a few things happen.
First, the customer has to think about what they really want to do with it. You can’t say, “Prompt the user” and be done with it. You say how you prompt the user. You specify if the prompt should have a confirmation response under some set of conditions. You have to specify what the options are, or where they come from if they’re dynamic.
In essence, you force your customer to think, and that just might make them come around to your way of thinking early on. They say they want “A”, but you know “A” doesn’t work, by having them look, in detail, what “A” requires, might make them change their mind then, before you spend hours coding.
And, even if they don’t think. Even if they throw together requirements that can’t possibly work and won’t listen to reason, the requirements specification, signed by both the customer and the project management, is a binding contract. Then, when your customer comes around and throws a fit, says that what you’ve built isn’t what they’ve asked for, or makes unreasonable demands, you simply pull out the requirements and iterate through them.
And, of course, if they say they won’t pay, you simply note that it would be a breach of contract not to, and, of course you’d be open to changing the requirements, but there would have to be a reassessment in the total cost of the project, naturally.
Because software shops don’t do this — create detailed and consistent requirements specifications, as well as design documents and test plans based upon them — the industry as a whole gets a bad rap at not being able to produce quality products.
Well, that, and management’s general assumption that anyone can write software.
Posted in geek
| email this article
If you liked that, try...
- Linux Software on OS X
- Back From the Dead
- BitTorrent Closes Source Code
- Run Your Mac or Windows Fonts on Linux!
- Announcing the Goldskull Project

Podcast RSS



Migo
December 20, 2006 at 5:53 am
I can’t tell you how many times I’ve either had to “ditch” a project or fire a customer because they’d keep wanting to make small changes, or completely change the software either in the middle of the job or once I’d almost finished the entire thing. Makes you wish they’d invented a way to email someone a beat down really.
[Reply]
Mike
December 21, 2006 at 10:50 am
http://qdb.us/4281
‘nuf said.
[Reply]