3 ms·
I've worked as an engineering consultant for 10 years. Here's the best algorithm I've come up with. 1. Guess how many hours you think the project will take to
by pingswept 15y ago
I've worked as an engineering consultant for 10 years. Here's the best algorithm I've come up with.
1. Guess how many hours you think the project will take to complete. (This is hard.)
2. Guess the highest number the client will agree pay for the project. (This is also hard. I find that saying things like, "Do you see this as a small $5000 project or a more substantial $50,000 effort?" is useful.)
3. If that results in an acceptable hourly rate for you, propose this as a flat fee to the client. Otherwise, figure out how to make the project smaller or leave.
4. Do the project and bill the client with an invoice that makes your hourly rate clear. (If the project takes longer than you expected, give the client those hours for free. If the client tries to add more stuff to the project, refuse to do those things under this contract.)
5. Now you've established an hourly rate with that client. If you did a good job and the client is reasonable, you can now do future projects on an hourly basis.
Eventually, you will want to raise your rates, which is hard to do. I've found it easier to just make higher flat estimates, and then finish them faster, making my effective hourly rate higher. The key here is that people balk at $XXX per hour, but they'll often pay $XX,XXX at that rate if it's for something they need.
There's definitely the risk with this algorithm that you will charge too little and work too long. I think the hard truth is that even "hourly" projects are usually charged a flat fee, plus or minus a few percent, because most clients aren't lying about their budgets. If you estimate a project at 100 hours at $150 per hour, they will expect you to complete the project for something very close to $15,000. If you end up saying, "Well, that was just an estimate. It actually took 200 hours, so you owe me $30,000," they might pay, but they won't hire you again, which makes your hourly rate terrible because you have to spend free hours finding a new client.
I think the right knob to tweak in doing work on a project basis is often quality. If you've agreed to do X for $XX,XXX, the price is defined with great precision. The project is not. You should strive to deliver the best results you can, but you can omit the engineering polish you'd like to put in-- finishing on time and on budget is its own kind of polish, and one that people who hire consultants particularly appreciate.
Edit: I should add that putting free polish on a project is often the best sales work you can do.
- pingswept 15y agoI should also add that I think this algorithm doesn't solve the problem mentioned in the blog post-- the situation of a seasoned designer working on long, open-ended projects. I think that requires an excellent record of desired results and a trusting client.
- T-hawk 15y ago> If you end up saying, "Well, that was just an estimate. It actually took 200 hours, so you owe me $30,000," they might pay, but they won't hire you again This bears repeating. Has anyone else noticed how the business world has redefined "estimate" into exactly the opposite meaning? Now it means, more often than not, an exact number etched in concrete for the beancounters to lock in their costs. In my previous job at a financial software consulting company, we developers learned to fear any call for an estimate. We even frequently had conversations from management that went "give me an estimate for this development, and the client has already approved a ten day work order so your estimate needs to be exactly ten days."
- dan_manges 15y agoIt's helpful if you let people know as early as possible if you're going to go over the estimate by a substantial amount. In the example in the grandparent comment, I can understand why the client would be unhappy paying $30,000 for a project that was estimated at $15,000 if they didn't find out until the very end. Imagine if you had to get your car fixed and when you went to pay the bill it was twice as much as the estimate, and compare that to the experience of getting a call part way through to inform you that the fixes will be more expensive than originally estimated.
- tptacek 15y agoI agree with most of this, but caution against bidding more hours than you think the project needs in order to raise your "effective" rate. In addition to being slightly skeezy and potentially queering expectations on future projects, doing this also has the practical risk of putting you on the hook for additional work if your client starts aggressively project managing you; after all, they bought the time. Another way (also skeezy, I think) firms play this game is to double-book and have teams juggle multiple projects, thus genuinely spreading the hours on the project out while keeping effort constant. I really think the thing to do is to be upfront; if your rates are raising, they're raising. If your customers want to mitigate that risk, they can pay for it: pre-buy time commitments at a discount from your current rate. I think advanced purchase is a more effective (and more professional) lever to use than rustproofed hourly quotes.
- pingswept 15y agoI should be clear-- I'm not saying you should make up fake hours or pad your estimates to conceal a higher rate-- you should work on the basis of flat fees. If the client thinks you're not worth the money, they can choose someone else to do the work. If the project takes longer than you expected, you lose, and the client wins. I think that's different than the "they bought the time" approach you were (sort of) attributing to me.
- tptacek 15y agoWe're definitely on the same page on flat fees!