I was recently asked how I deal with nebulous or otherwise confused projects. Here’s what I told them:
Ill-defined projects have been par for the course during my freelance software development career. If the client had no experience as a programmer, and had not already hired someone to refine their project requirements, they frequently came to me with a proposal too vague to transform into a finished product. The key to refining and focusing a project’s goals is to focus on the client’s original thought process, and possibly the sequence of events which caused them to seek my expertise.
I start by determining how to shape the project so that it is computationally and financially practical, and addresses the client’s most important business needs. Then, I break down the problems into smaller parts, and prioritize individual items with respect to both business need and risk (how hard will this actually be to implement, will that even be possible, etc). This strategy eventually results in requirements that are clear enough for me to feel comfortable coding a solution.