views:

400

answers:

8

I'm trying to transition into some programming consulting work. A friend of my former employer is interested in having me "develop a spec," which I take to mean come up with some technology requirements and time estimates (e.g. milestones).

Do developers normally charge for this? I'm imagining it's basically the same kind of workload that creating a bid for a project would take. On one hand, consultants don't get paid for the time they put into the legwork of a bid. On the other hand, this is probably go to be more than a couple hours of work, and my time is valuable.

Any advice? Any sites besides SO I could go to get advice with this kind of stuff? (Sorry if this isn't programming-related enough for StackOverflow! I don't know where else to get advice!)

+5  A: 

Consultants sometimes change for developing a bid. Clients can occasionally solicit bids just to beat their preferred supplier down - so ask to be "paid to play".

As to whether you should charge, you might want to consider whether the spec you're being asked to produce feels like something that could be passed to someone else, or whether the details required would only really be relevant to your "bid".

If it feels like you are being asked for a relatively detailed design, then I'd suggested asking about payment - you may even discount it over your normal rate.

However, if they are just asked for hours/cost then you'll probably need to eat the cost.

If you have more details, I could probably give you a more specific answer.

dommer
+1 for offering the cost back as a discount when the bid is awarded.
MSalters
+13  A: 

In custom software work, I no longer give design work away "for free" as part of a "bid" (rarely ever did, actually) -- I usually charge for it hourly, and sell it as a mini-project. Good clients understand the value of well thought-out architecture / design. Most folks honestly don't know what they want; the good clients KNOW they don't know, and value the work. You may have to explain the Cone of Uncertainty to them a few times along the way, though. ;-)

So yeah, charge them. Straight hourly works fine, with a range estimate for how much time the spec will take you.

Also, I'd clarify whether you are creating a FUNCTIONAL spec, or a TECHNICAL spec. I'd bet it's more the former they want, and if so, I can't recommend doing UI/screen mockups strongly enough. (ScreenMockups.com makes my current fav).

Best of luck to you!

Jamo
+3  A: 

It is customary on consulting engagements to charge for any design and requirements work. I think you may be making a false comparison with the bid/quote model. It is true that many types of service companies give free quotes as a loss leader to get business, but you will also find that in almost all cases they only do this for work that has a fairly predictable scope, for example install an HVAC system, replace the brakes on a car, install a toilet, etc.

The real risk here is that when you give something valuable away for free, then it loses its perceived value. Also they are going to expect a lot of other extras for free.

Bottom line: Software development is 80% design and 20% coding (and that's being generous), if you give away anything give away the coding time!

If they insist that bids should be free. Agree and tell them your bid is $X/hour for however many hours the project takes.

JohnFx
"...if you give away anything give away the coding time!" -- loved that line. :-)
Jamo
+2  A: 

If you are a consultant, you charge for your time regardless of what you do.

Yakov Fain
A: 

Obviously it depends on the complexity of the project and where you are at in the cylce.

If it's an initial bid to get the contract you might consider:

  • A flat rate for initial bids (risky if you aren't good at estimating or asking lots of questions up front)
  • A lower rate initially (with rates specified clearly up front)
  • Selling your time in mini blocks (half day/day) rather than per hour.

It's also important to find out how often they do contract bids and if there are others submitting bids on the project. What are the employers expectations/goals/needs from the bid?

Ultimately, it boils down to asking questions, asking more questions, asking even more questions. Good questions with attention to detail reassures the customer of quality work and minimizes long-term maintenance/redos/changes.

jasonk
A: 

Absolutely charge for your time developing the spec. Any good programmer and/or customer knows that a well-defined spec shortens development time and makes for cleaner code.

PaulG
A: 

I'd charge for it, there's nothing to say they won't take the spec that you've toiled away on for free and hand it to someone else to do the actual work.

What we tend to do with this type of Spec is to knock the cost off the final project total if we win the bid, that way if they do decide to go somewhere else with it our costs are covered

Katy
A: 

The general answer here (Yes, you charge) is correct but I would put a couple of small exceptions we've found work well:

1) Where we have an existing relationship we've been known to do things for "free" knowing that we can hide the costs in future work. The key thing here is that we have an existing relationship and are certain that future work is there to allow us to recoup.

In these instances I'd actually suggest that the client knows what's happening but what we're doing makes it easier for them as it's one less business case / budget request they have to complete.

2) In rare instances we will do work for free in an attempt to land a new contract. The criteria I'd use to assess these are:

  • Is this a real bit of work or is someone just kicking the tires? You've got to do standard sales screening - is there a budget for this work with the client? Are you talking to the person who can get it signed off? Ask yourself what are they committing to the deal at this point - it's not money so are they investing time in working with you? Are there business cases they've developed which show a real interest? If the answer is no then walk away, they're kicking the tires.

  • What sort of chance do you have of winning it? I wouldn't even think about it unless it's 50% or better - and remember to include the chance that not only might it go to someone else, but it might not happen at all (even real opportunities get killed part way through).

  • Is the contract really that big? If you do two of these and win one (50% chance or better remember) will you have made up for the "free" work you put into both of them? If the resulting piece of work is small and/or has crappy rates and margins associated it's not worth it.

  • What other work do you have on? If you're not busy then the actual cost to you is minimal as the time might otherwise be dead, if you are then think seriously about just focusing on what pays.

You mention that consultants don't get paid for the time they put into bids, but I promise you that they're going through a reasoning process very similar to the above to make sure that over all the work they do, they're being paid for their time.

Jon Hopkins