Clients are always in a dream that their 10 min. briefing or a 5 min. factory walk will make me smart(?) enough to give a "perfect" solution (which even they don't know). If you ask their employee (who has spend 15 years in that company) a simple question about how they handle sales return, they are speechless. Spending years making customize software's for accounts, inventory, crm etc. what I have learned is that there are is no way we can get complete information from client in a shot. Have even tried with flow chart and other fancy stuff.
But the dilemma is client always want to know how much time I will take and what will be the cost. Now, this is the problem. What is left is to make a guess how much changes (read trouble) the client is going to give us when we start the development or after that.
Here are some common dialogs client says
"oh this is so easy to do, why do you want 5 days for it"
"its a simple addition we are asking"
"my prev. developers is not supporting me any more"
"I am not happy with what they have done (and they use this software for almost 5 years)"
"just keep on doing changes as I say"
"take your time but make it soon" (this one is classic hahahaha!!)
"I want every thing" (another one hahahaha)
Now when a client say they have burned their fingers with 2-3 software companies then its very easy for me to judge that they were not capable to provide correct and on time information to their developers.
Its not that its only lack of information from client, many a times software developers cant deliver some thing and then makes up a story.
Here is what I think we can do to such situations.
- Inform clients that it will take time to understand their system It cant be done by 1 or 2 meetings
- Ask for their existing software or system to learn more about their requirement.
- Keep on asking question until you get the correct answer.
- Show them input screens and reports. This will make them understand how software works.
- Get approval from the each one who is going to use the software.
- Never talk in a group. Its better to communicate with only 1 person and let him get information from all the desks.
- Do not start development until developer and client agree on each point.
- Put more efforts on analysis, this will eventually reduce the development time.
Thats it for this post. Comments are most welcome. Will update it if some thing comes to my mind.
This picture below will explain every thing.