I was a consultant for nearly a decade and far preferred fixed-price contracts, on the rare occasion we could get them.
When you are paid hourly, you work at the customer’s whim, and are often treated like an employee, or worse. You are essentially just a body for rent.
When you have a fixed price, you retain full autonomy. It’s up to you to decide the schedule, as long as you deliver on-time and within budget. The customer can’t change scope without your agreement. You feel like an actual human being.
Renegotiating a fixed price is generally a much harder conversation to have. You're effectively having to say "I can do this for $12,000...well, I could do that for $12,000 but you just changed the goal, so its $15,000 now."
With hourly it has always been an easier conversation for me. The estimate is pegged to time, and if change requests come up its easier to see what happened. With they said, I'm pretty generous on actual hours worked if the client doesn't ask for anything different and I simply under estimated the work needed for a job. I'll bill fewer hours when its obvious they my estimate was just wrong.
This was the exact opposite, in my experience. Clients that want fixed-price contracts always have ridiculous deadlines and expected me to work 24/7. When I charge hourly, clients think very carefully before I work on something.
The 12 hour days to meet some crazy deadline also disappears pretty quickly when you are paying for all the hours. I won't even accept fixed-price contracts anymore.
Also my experience after 15 years of contracting. The fixed-bid contracts were the worst because they attempting to squeeze as much as they could for that cost. After a few of them I stopped even discussing them as an option.
If someone loses their autonomy as a contractor that's all on them, not the contract. I was always very clear that it was a B2B relationship with my clients.
Hourly rates also meant that if projects went long, or other work became avail, I would usually just continue to work on it, which can become quite lucrative. Fixed-bid contracts always gave the client a reason not to sign another contract. Time and Materials contracts meant a 3 month contract could easily turn into a 9 month contract, no new contract necessary.
I only do fix priced contracts with a lock solid list of tasks. Usually it's smaller in scope and clearly defined. I spell out that any deviations are costs outside of the original pricing.
As another poster mentioned, you very much have to be selective. A lot of time our first contract will be a fixed price with a client to show our ability to deliver, so in that instance we lose a little to gain a client. It's a balance and it's not an easy life for anyone.
Consultants can be beaten and battered on behalf of an internal team and those that are good realize that in many instances that's what you're hired for.
The advice I’ve heard in the general contractor world, is fixed bid only works if you charge appropriately, and are very quick with change orders. As soon as it looks like the scope is changing, be it a request from the client, or some new thing is exposed (often literally). I’d expect the same is necessary for software consulting.
The bigger problem I don’t hear discussed in any of these threads, is that you can only estimate jobs you’ve done before. So, to do fixed bid profitably, it really requires that you are specializing in some set of deliverables. This, actually has some interesting benefits as well, one, is that you can charge a lot more over time, and you can become very efficient as well, which leads to a high profit per effort ratio.
I worked at a company where they'd switched from hourly billing to fixed costs not long before I'd joined. The incentive for the client was that there was no reason for the company to inflate job hours. The incentive for the company was to encourage longterm contracts for ongoing work. Seemed like a win for that particular environment. A bit different from an individual consultant, but an interesting case of comparing two models.
I've found multiple times companies switch back from fixed price as soon as managers realize it is a very easy way to extract a lot of money from their employer via their cronies.
Fixed price sounds like a great idea, but if you can't trust management, even middle management, it will rapidly turn into a disaster.
I'm not a consultant/contractor, I have a fixed salary and have been an employee here for over 20 years.
But wouldn't it better for both consultant and customer to agree regular "gates". Agree on $100k of work for 10 units of work or whatever, but agree that it's paid in instalments of $10k every time each milestone is passed, ensuring that any misunderstandings are understood sooner.
The customer would benefit in that they don't have to wait 3 months to get a waterfall delivery which perhaps meets the spec, but not their requirement
The consultant benefits in that they don't do 3 months of work and don't get a penny until the customer is happy
A smart consultant will include milestones like this in the contract: not just milestones for what they are expected to deliver, but milestones for when the client is expected to pay them, as well as milestones for when third parties (and/or the client) are expected to provide additional input/data/opinions.
The contract should also describe what happens when those milestones are not met, e.g. for every day that milestone X is not met, then milestone Y will be pushed back accordingly, or the cost for Z will go up by some amount.
A well written contract should make it almost irrelevant whether you're getting paid hourly or for a fixed cost, because you (and the client) are covered either way.
I was always extremely wary of clients that wanted a fixed price contract. It seemed the more they pushed for it the more hidden issues there were waiting to bite you.
Having said that sometimes it can work in your favour. I did one project for a pharmaceutical company where I just happened to have several pieces of knowledge that they needed and they were losing a lot of money waiting for a solution. The first thing they said to me when I walked in the door was "we are so glad you are here, we have been looking for a solution for ages and are losing a lot of money every day". Eight days work kept me going for the whole year.
My experience is different. I have full autonomy whether I am paid hourly or a fixed rate for the job. Often I'll prefer hourly if it's hard for me to get an idea how long it will take.
Can also do both (kinda). Hourly and specify budget range. "I think it can get done with this many hours", then charge 30% up front of budget estimate and the rest of the hours on completion.
My experience is funnily enough the opposite. When on fixed-price, it was always an argument about if something was a bug (thus I had to fix for free), ambiguously specified or a change from original requirements (they would have to pay to change for the last two). I felt we always were adversary to each other.
With an hourly contract, we're on the same team and try to use me for the most valuable stuff as long as you have me.
When you are paid hourly, you work at the customer’s whim, and are often treated like an employee, or worse. You are essentially just a body for rent.
When you have a fixed price, you retain full autonomy. It’s up to you to decide the schedule, as long as you deliver on-time and within budget. The customer can’t change scope without your agreement. You feel like an actual human being.