I've been involved in the contracting market for the last couple of years. Lately I've seen a big uptick in large (100+ hour) projects with bad or nonexistent specs that want pricing information. 3-page "outline" specs, specs with ridiculous requirements obviously written by clients (100% uptime), etc. There's grey area too--I often see specs that need a 25% or 50% rewrite, or need a few features reworked to be feasible.
I'm concerned that writing the spec needed to eventually determine the pricing information is a bad ROI vs, say, writing actual code with my time instead, working on paying projects, etc. At the same time, nontechnical clients don't always understand why they need a spec, or don't understand why the spec they have is bad, or why I can't determine pricing information from it, and usually the trust isn't there at that early stage of the pre-relationship to convince them.
What do others in the contracting market do in this situation? Do you just invest the 10-20 hours in speccing all the projects, do you tell them to come back with a spec, do you offer to do it hourly? How does that conversation usually go? Where do you draw the line between free and paid work?
Of course the lack of spec ends in frustration, bugs and unachieved deadlines/features but it seems every customer wanted it that way and has budget reserves for that. This is brilliant for contractors that just do 9-5 coding and very, very bad for passionate folks that are usually lurking/participating here on HN :-(
that's why i lose faith in the IT industry: We have the tools for agile planning, prototyping, mockups to make it good.
But only a fraction of the companies is really doing it and most stick to their hold habbits and just want a contractor "to do his job"