It is difficult for a Sales Manager (for example) to understand that whatever he or she asks for from a CRM tool will be built exactly as they specified. On the surface, this sounds positive, but the truth is that anything that is left out of the description will not exist at all, and anything even somewhat loosely defined will end up a complete mess. The Developers will, of course, make modifications - all during billable hours, and typically at rates much higher than their original proposal, because this is all 'extra work' that you did not originally specify.
The fault, of course, is yours.
Think of it this way: If you say to your teenager, "Please take the wet clothes out of the washing machine and put them into the dryer", what are the odds that they will start the dryer? With a Developer, the odds may be 0%. Bear in mind, this is not the Developer's fault. Their job is to build exactly what they are asked to build - no imagination, no guessing, no assumptions. They are not rewarded for thinking outside the box - they are the box. To be good Developers, they have to be the box.
So when a Developer gets your laundry request, they have several questions, because they want to get it right and any mistakes they make come out of their pocket:
- In which room is the washing machine?
- In which room is the dryer?
- If the washing machine and the dryer are in different rooms, by which route should the clothing be transported?
- Which machine is the washing machine?
- Which machine is the dryer?
- At what time of day do you wish this task to occur?
- Should the clothing be removed from the washing machine immediately after it becomes wet, or at some later time? If at some later time, exactly what time?
- Should all of the clothing be removed, or only some of the clothing? If only some of the clothing, please specify which clothing is to be removed.
- Should all of the clothing be transported to the dryer, or only some? If only some of the clothing, please specify which clothing is to be transported.
- Should clothing be immediately transported after removal from the washing machine, or at some later time?
- If at some later time, exactly what time?
- Should clothing be transported from the washing machine to the dryer one article at a time, in groups, or all at once? If one article at a time, please specify the order of articles. If in groups, please specify which articles should be in which groups, and in which order the groups should be removed.
- Do you wish to have some type of confirmation when the clothing has been removed from the washing machine? Do you also wish confirmation when the clothing has been transported to the dryer?
Here's the real problem:
- Developers assume that you know what you want. (And that you will spell it out.)
- You assume that the Developers know what you want. (And that they will build it without being told to.)
Successful Development takes time and work on everyone's part. But more than that, it takes understanding of how the Development process actually works - how it has to work.
This is the reason that large organizations have Project Managers, Business Analysts, QA's, etc.: their real, unspoken job is translator. And - even if you are in a large organization, with the benefit of all of those folks - it will save you months (if not years) of frustration dealing with budget overruns, late launches, bugs, unworkable interfaces, unmet priorities and lack of sleep if you learn to look at every Development project from the Developer's point of view, and give them exactly what they need to give you exactly what you need:
A good night's sleep!
A good night's sleep!