The guys over at 37signals are spot on again; Getting Real, Step 1: No Functional Spec (Signal vs. Noise).
The “specs are really hard to make until you’re sort of halfway through the project” is a classic, and while the ‘just don’t do it’-idea sounds attractive, I’ve often experienced (as mentioned by others in the comments) that clients often wants some idea of scope (and especially price) pretty early on in the proces. So far I’ve managed to basically just drag the spec-writing by diving straight in to building interfaces and functionality that I know is going to be there anyway, which usually ends up being a far better way to start discussing the final details. On the other hand, not all clients allow this to happen. Either because they’re trigger-happy, basically not smart enough to be in the software-buying-business or whatnot. And while I usually have a pretty good idea of what not to accept with regards to the final pricing, I kind of like getting something down on paper so I don’t end up in the “well, we thought this was included in our agreement”-problem. Most clients accept that at some point, there’s simply not more money — but again, this is quite nice to have on paper…
Part of the problem definately has to do with the fact, that I’m a small player, working with clients more concerned with price and launch than a good, constructive process — and/or working on projects where the actual spec work takes up a substantial part of the total amount of work because of the project size. A good dialogue goes a long way, but what to do when you can’t aim for the ideal solution?
I really like the idea of ‘moving targets’ as mentioned in the comments; it’s the agile approach and often what every project ends up being anyway. Only problem is, how do you structure that process so everyone is happy and understands what’ going on?
I’d like to write more about work-realted issues as a free agent type of business; this is what this communication thing should be all about. And who knows, maybe some day I’ll even suggest solutions instead of just asking questions. What do you say, how about making it a bit more personal, share some of your experiences, see if we can become better at what we do by, well, doing some of tthe other stuff we do?
Also, Whitespace mentions another classic; freelancers tend not to spend any real amount of time on marketing. Which, when I come to think about it, is stupid. And boring. And I don’t like doing it. But I like when I have nice projects. Go figure…