Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've been working for a contractor who brings in some good projects, but they are all fixed-price and often fixed-time.

As a result he always has me making a quote over loose requirements, which never fails to bring a lot of tension due to feature creep.

He claims he'd never get a contract if he couldn't agree on a price with his clients first, but as far as I'm concerned I don't wanna go through another project under these terms.

Is there any argument I could make to have him pay me by the hour, or should I just suck less at estimating ?

share|improve this question
add comment

9 Answers

up vote 8 down vote accepted

The problem here is not the fixed price of project - it's the loose requirements. If you can pressure him to give you a more firmly defined spec, your time estimation will get better.

share|improve this answer
    
I doubt his ability to do proper requirements gathering, but sound advice indeed. –  julien Dec 23 '10 at 22:43
1  
@julien - Try asking them to be involved in the process of negotiating the spec with the actual CUSTOMER. That way you can do some of the requirements gathering yourself - this way everyone benefits, because any time spent on specs will compensate with less time required for the actual coding . –  Jas Dec 23 '10 at 23:07
3  
the trick is to make him carry the risk of underestimation. Bill him hourly, if the estimate is under its his problem. –  karmajunkie Dec 24 '10 at 0:21
1  
@Martin - What is the solution then, agile? There is a reasonable number of research papers showing that total cost of project implementation with agile ends up about 10-20% higher when compared to proper waterfall. –  Jas Dec 24 '10 at 16:26
1  
@Martin - No, I don't "like" waterfall per se, I was just pointing out to evidence that agile isn't the silver bullet which is how it's being sold by it's proponents. –  Jas Dec 25 '10 at 15:45
show 8 more comments

I refuse to work on a fixed-bid project, for most of the reasons you listed. It ain't just you — fixed-bid work is antithetical to an agile process (which is also the way I work.) If the contractor you work for insists on bidding out his projects as fixed-bid, then let him take on the risk. If you're good at what you do, there are plenty of other places to go work.

Basically everyone sucks at estimating. Unless you've done a project that was substantially similar at least a couple of times, you're not estimating, you're guessing.

also, he's wrong about not getting a contract without a fixed bid. If he can't, the problem isn't the fixed-bid vs hourly, its the salesman. I've worked for a roster of clients on an hourly basis. The key is to give them frequent communications about what you're doing and what its costing them, and make them understand that the tradeoffs are budget vs features— you can hit a budget, but they have to give on features sometimes.

share|improve this answer
    
And here is option #2 ! –  julien Dec 28 '10 at 12:23
add comment

When working alone you really can't win in a fixed-price + fixed-time project. You have no ability to increase capacity apart from working late nights and weekends.

In my experience "loose requirements" based estimates only become larger and larger when you add detail, never smaller. Keep asking for details until you feel safe.

Discussions about high level requirements and what's included and what's not are easily won when push comes to shove, client is usually drawing the short end of the stick here. Your business relationship may suffer though.

Sad thing about this construct is that everything you build tends to be the lowest possible quality needed to satisfy the high level requirements.

(yeah so you can logon with a password, you never said you wanted a separate logon for each user...)

With fixed-price I would just waterfall, big-design-upfront, the thing. Have the contractor sign based on a full detail stack of papers, then build.

To improve your estimates you could just double or triple whatever you think you need, this might be more realistic but may price you out of the market.

Scrum's velocity tracking may prove to be useful to get a grip on your own estimates and how they pan out compared to actual time needed.

Unless you want to speculate on the fixed-price looking for a healthy profit I would really prefer to just get payed by the hour. This keeps risk at the contractors side.

Estimates are a guess not a promise.

share|improve this answer
add comment

This is one of the major reasons for the emergence of the agile movement. Using the Scrum + XP combination is one way to present a fair alternative to this relatively common - fixed time or fixed price with variable requirements situation.

share|improve this answer
add comment

Could you just ask if you could be paid by the hour? All my consulting contracts were hourly wage, no matter what the terms with the client were.

Alternately, firm up the requirements yourself and present that to the client as part of the agreement. That way, you get to bill additional for feature creep. Any contract that says you'll get paid $X for an amount of work the client gets to increase more or less arbitrarily is a disaster waiting to happen.

share|improve this answer
    
I like the first suggestion, KISS. –  julien Dec 23 '10 at 22:45
    
I must add I'm not sure how he'll react to that though. I suspect he's already agreed on a price by the time he's asking for an estimate, and just pressuring me to fit in that budget. But this would be kind of ideal, as he'd then be solely be responsible for dealing with his client's feature creep. –  julien Dec 23 '10 at 22:56
    
@julien: If he's running the business, he can accept most of the risk. –  David Thornley Dec 28 '10 at 17:19
add comment

If you can show that what you did falls under the "loose requirements" under any (preferably your) interpretation then any clarification becomes a change request, subject to new estimates and new effort and new payments. Then it falls over your client's shoulder the responsibility to come up with crispier requirements.

share|improve this answer
add comment

I have no problem working either fixed price or on an hourly basis - assuming the price is right.

Based on a set of requrements, however loosely defined, come up with an hourly estimate and state the assumptions you make in order to achieve that estimate.

Then also make a fixed price estimate, that is scaled up from the hourly figure by a factor depending on the vagueness of the requirements, likelyhood of change, prior experience with the technology, prior experience with the client etc. Therefore, if the everything is pretty straight forward then my quote for fixed price is typically 50% more than then hourly. If there are more and more unknowns, then a fixed price may be as much as 2 and a half times the hourly estimate. However, and fixed price quote is backed up with a very clear statement of work.

The aim is to make a good profit out of doing fixed price by delivering well under the estimate and pocketing the extra profit.

share|improve this answer
add comment

Here's what I have done in the past. I have written up a VERY rigorous spec that I deliver with my time/cost projection, and I have made all stakeholders in the project physically sign it. I require that before I'll work on a fixed-price fixed-time project.

If it's a big enough project and spec-writing is enough work, I'll actually charge for that time too.

How to sell that is: Yes, there are competitors out there who will shake your hand and start coding. The difference is, in a few months you'll have a finished product from us, whereas from them you'll only have grief. You wouldn't start building a house without a complete blueprint put together by a professional, would you? Be suspicious of anybody who will start building a software project without similar certainty up front.

share|improve this answer
add comment

Assuming you're the full time employee of this contractor. Show him how much money he's losing by not accounting for scope-creep.

If the contractor is sub-contracting you, tell him you can only work by the hour, and be honest with why. (That is, the requirements are not well defined, you might not be paid for all of the work you might end up doing. Also you might save the contractor money if it goes faster than expected.)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.