We try to deal with our clients very efficiently in order to save both our and their time.
As a development team, our focus is only on the development work, not to teach a client how to do business. Unfortunately most of the clients approach us with no solid business plan and no money either, just an idea. This problem is apparently the same all across the world.
Our process requires that client has a solid plan about what he/she wants to get developed and then we talk to him/her what is involved on its development, and the cost and time line of the development.
Once both of us agree on these terms, we ask for 33% advance payment, and setup milestones of product delivery. Each milestone has a certain cost associated to it.
As the project completes, it goes under some heavy duty testing, which can last from a few days to a couple of weeks. Testing is critical before the project is declared as completed.