How do clients get screwed with fixed fee? Clients should pay for value, not hours sat in a chair.
Now that you have shipped the technically correct but not very useful thing, you collect the fee and then start accepting "change orders" at a punitive rate. At this point switching to another contractor will be even more risky and expensive, so they'll probably just suck it up. Or if you're really good at the game, you then negotiate a whole new fixed-fee contract with a higher price tag, and the deliver what they now think they want.
Bonus points if, as I've seen a big-name global contractor do, you deliver something not even barely working but possibly conforming to specs, and then just walk off the job. Even though the client has contractual obligations that they can't fulfill if the software doesn't work. At that point, the client realizes that a) they still need the software, b) the big-name contractor is the only who can deliver in time, and c) suing is risky, will take years, and anyway the big-name contractor can afford more lawyers. In this case the client signed another multi-million dollar contract with the big-name contractor, easily doubling the "fixed" fee. I lost touch with my contacts there before the thing ever worked, so I don't know how many times the big-name global contractor pulled this off on the same job.
Many large companies absolutely refuse agile delivery and require fixed scope and cost to get anything done.
Yes, waterfall is a bad choice. But no, clients aren't to blame for trusting a vendor to do right by them.
Why use quotation marks for something I didn't say? Nothing I've said means "fuck the clients" unless you are maliciously taking the worst possible interpretation.
A change that takes a massive amount of time and effort isn't something I should do for free.
I'm more than happy to build a backlog, refine it, and build until there's a RC... so few enterprise clients want to subscribe to the perceived risk, they'd rather spend months specifying everything upfront to make some senior person happy whether that delivery methodology has been proven to work or not.
I think the implication is that if one party is capturing the excess value produced disproportionately, that is screwing the other side. Particularly if this occurs because of information that is asymmetric in negotiation.
If my SAP implementation is going to save over 1 million per year in increased manufacturing efficiency, how should I price my services? The floor is set by the cheapest contractors in my market, the ceiling is how ever high I can negotiate.
The client will capture far more value than me over the lifetime of the product. I also don’t want to charge by the hour because there’s a conflict of interest and I want to detach hours worked from fees charged otherwise I’m just slaving away.
Hourly is for blue collar work, it’s not professional at my and your level.
Hourly is a good choice for contracts where they are looking to buy labor. Which is a common model, because they often see contract labor as a substitute for employee labor.
The other models you mention can be much better, but also require the contractor to have both particular skills and enough relationship power to make them work. I have seen well-meaning developers absolutely get screwed on fixed scope contracts. And I've also seen less-well-meaning developers absolutely screw their clients on fixed price contracts. This is an area where blanket statements are harmful.