Here's is how I do it with most of my apps I build.
1> Get some basic idea of what the client wants, as in DB type, Graphics and so on.
2> Start designing a rough draft of the GUI (Window, Buttons, EditFields, etc.) and then allowing the client to check it to see if it to there liking.
3> Once GUI has been setup, then hard coding begins (which is the fun part).
4> Let Client test out the rough app, and make any mods if so needed.
5> Finish coding of all parts (DB, Graphics, etc.), then let client test it out. If any issues, then it can be fixed quickly.
6> When app is 99% complete, start working on the Help file as doing so before is just a waste of time as you set one thing in the help file then if it changes, you have to change not only the code but now the help file.
7> Beta Stage - Let the client test out the app that is now 99.99% completed with help file and all DB parts working.
8> If client likes it then finish the software, if not then fix the issues that need to be addressed.
9> Completed Application - Give client the software and recieve payment (but in my case I give most of my software away.)
10> On to the next application project!
Not sure if would help anyone but this is how I do it.