> More specifically, don't do fixed cost contracts.

Strongly disagree. I've been doing fixed cost contracts for a very long time with great success. You just need to know what you're doing.

> They misalign all the incentives, and encourages you to do a worse quality job.

Billing hourly does that. It encourages you to "fit" yourself within the estimate that you had to provide. That's fine if you overshot, but if you were way under, now you're under a ton of pressure to get things done quick and you end up doing a quick hatchet job. All because you want to avoid explaining how you were wrong on the estimate. If you keep missing the target, which can happen even with the best of us, the entire project can turn into a pile of excrement.

With fixed price, there's no timer on the side of your table. You take the time to do it right. If you're off by a day or two, the client will take that delay a lot easier than a bill that's twice what they expected AND took twice as long.

Do you lose out since you worked time that you didn't get paid for? Sure. You also win when you get the work done faster than what you estimated. It will even out, but the client will be happier since the experience is less volatile for them.

Which is the point. Clients much prefer a fixed price, since it lets them budget accordingly.

Think of it this way, if you were hiring a plumber, would you want the guy to show up and say his rate is 300 an hour or would you prefer him to show up and say this is going to cost you 150. Which is less stressful? What are you more likely to say "yes" to?

> And it encourages them to take up your time with meetings and support and new "quick" features to add.

No. I set the meetings at the beginning of the project. We meet on a regular basis. There are no surprise meetings. All communication outside of those meetings is via slack/email.

Also a "quick" feature in my book is something that takes me 15 minutes. I do those at no additional cost since it would take me longer to bill for those. I get less than a dozen per project, which works out to a few hours of work which is already expected and added to the budget. Anything over 15 minutes will get a fixed price cost and additional time added to deadline. I've never had a client push back on this way of doing things.

> Best is a fixed hourly rate, providing them an estimate, and setting it up so that you won't exceed a maximum (after which you can reevaluate with them whether to continue).

Clients hate this, since they have no idea what it'll cost. Even if your way of doing things will cost them less. They hate uncertainty. They already have enough of that.

The maximum you're setting is my fixed price, which I simply get paid every time and the client is happy because they know what's coming their way.

On top of that, you're stressing on your end when you start to approach that maximum and start cutting back on the quality of work. I just focus on getting the job done.

> This lets you be flexible on the spec and respond quickly to changes they may want

I can do the same with fixed price. You still need to provide an hourly estimate for any changes. It's really the same thing as approving a fixed price change.

> it lets you get compensated for all those little things that you don't plan for like meetings

Again, meetings suck, they should be kept to a minimum and should be 100% controlled by you. They should be a highly predictable part of the equation or you're wasting time.

> and you no longer have to give your time estimate a padding to ensure you meet the deadline.

Yes, you do. A deadline is a deadline, regardless of how you charge the client. Estimate what it'll take you and then multiply by 2. If your estimate is still off after that, you need to work on your estimation skills.

I've never had a client get pissed at me for finishing early. Hell, you can just finish the work early and then do something else for a week, then deliver on time. But don't be LATE. People HATE that.

Always pad your time. By as much as possible!

> Although they pay less on average, I think you also make more on average.

No =) I tried both ways, for years at a time. You make more when you're not a commodity and when you're hourly, you'll be seen as a commodity.

> Consider, for a fixed cost project you need to create rigorous specs that take weeks to develop

You need a clear SOW (statement of work) regardless of how you bill. If you're not doing that, you're in for a world of hurt.

> then negotiate over how hard different things are.

No? Just price all the options and let the client choose.

> And god forbid they want to add a new feature or change a spec

When they ask for changes, I just price them out over email. It's literally one sentence. This will cost X and will take X extra days. That's it. You need to do that if you're working hourly as well?

> necessitating either you just doing it for free

Never work for free.

> negotiating a whole new add-on project.

Love additional work.

> I'd way rather take on two clients and not spend my time negotiating and doing paperwork.

I'd rather take on three =)

Look, I think you're conflating some bad business practices with how you bill. How you bill does NOT force you to engage in those business practices. It's just how you bill.

I prefer to bill in a way that makes my clients less stressed out which makes me less stressed out in turn. I also have an easier time divorcing PRICE from TIME. This is REALLY important if you want to make more money.

I've done lots of work where I've been paid $1000 per hour when I break it down by time. Can you say the same?