Middle of the project
During the middle phases of the project, there isn't much for the client to do. You will receive occasional preview versions of your app, both to show progress and to verify that everything's on the right track. While you may want to consider better ways to do a particular part of your app -- and you definitely want to report any problems or bugs to the developer -- avoid the trap of "feature creep", wherein the client is constantly changing or adding to the scope of the project, preventing it from ever getting any closer to being done.
One way to avoid this sort of thing is to divide your new ideas into three categories:
- Problems, bugs, things that are necessary to make v1.0 a worthwhile, high-quality, competitive product.
- Additional functionality that would truly enhance the product, but are beyond the scope of initial development.
- These items might go into a version 2.0 or, perhaps, as v1.0 nears a close, you may make the decision to postpone release until this new functionality is added. The important bit is: software development is a focus-oriented task and, if you change focus too frequently, progress can grind to a near halt. Your developer's mind is a bit like a locomotive: it can haul very heavy loads a long ways but, every time you make him stop (or back up!) so you can change the track switch, it takes him a long time to get back up to full speed again. Hey, I like this analogy! Another thing that's true: if you can foresee a track-change coming early enough, the switch can be done long ahead of time, BEFORE work (the locomotive) arrives at that spot. Then the train just has to slow down a little for the delicate track-change, but needn't stop, completely.
- "Maybe some day" ideas that may or may not make it into v2.0, but seem like they might be good ideas, once developed a bit further.
If you find it difficult to resist interrupting the flow of development, there are plenty of things you can do to prepare for the end of the project.