There is nothing more annoying than an incomplete specification design, brought to you as a design document. Why does every person that is capable of operating a word processor at a beginner level and operating Visio at a level of a child, believe that they are able to produce a proper design specification or ever a proper requirements document?

I had just received a so-called “specification document” from a prospective customer, that had specified the required system as “a pre-paid IVR system for premium services”, that was accompanied by a half page flow chart that had 4 blocks on it, without any description of what the system does. Now, I called the customer, explaining to him that the document isn’t complete, and I’d like to meet with him in order to write a proper document – the following conversation took place:

Customer: I don’t think a meeting is needed, if you are too stupid to understand what I want – then I don’t think I want to work with you!.

Me: I’m very sorry that you think that I’m not good enough to carry your project, you are welcome to take your business to someone else who is more capable than I am.

Customer: Well, the thing is that you are my last hope, everyone said you can develop anything. I sent this document to a few companies, they all returned price quotes that were too high.

Me: They returned a high price quote because they have no idea what you want, so they gave you a price quote so high, so you would back off and not call them again. I want to help you do the project, but in order to do it, I need you to define your requirements better.

Customer: Are you familiar with the functionality of system X?

Me: Yes, that is a fairly complex system – development time is around 6-8 weeks, at minimum.

Customer: No, I need it working within 10 days, I already lost 6 weeks of getting price quotes.

Me: I’m sorry, but in this case, I can’t really help you, your requirements and time considerations are impractical.

At this point, the customer had started screaming on the phone – which was a point when I had bid the customer farewell and had disconnected the phone call, as I never conduct my business in a manner when people are screaming without listening to what they are shouting.

Now you tell me, was I logical in my response? or maybe the customer is right? why do customers have the impression that building complex systems is a matter of simply installing the computer, slapping a few pieces of code on the machine, test it a few times – and walla, a running system is ready for production?

Call me old fashioned, but I believe that each development should be backed by a proper specification design, a design document, implementation design, regression testing documents and acceptance tests – if you don’t agree, I’d love to hear about it.