Every time someone asks me to build something, the first real negotiation isn't about features. It's about the contract. Specifically: fixed-price or time-and-materials.
People usually have a strong opinion before we've even discussed the work. "We only do fixed-price" or "we won't touch anything that isn't T&M." Both camps think they're being smart about protecting themselves.
The honest answer is that neither contract protects you on its own. The protection comes from what's underneath: scope, trust, and the incentives baked into how you're paying.
Here's how each one actually works in practice, and what I've learned about when to use which.
Fixed-price — you agree on a scope, the developer gives you a number, and that's what you pay. Whatever happens, the price stays. Theoretically.
Time-and-materials — you agree on an hourly or daily rate and pay for the actual time spent. Scope can flex, but so can the final bill.
Both sound reasonable in isolation. Both have failure modes you don't see until you're three months in.
When you're the buyer, fixed-price feels like the responsible choice. You know what you're paying. Your finance team is happy. No nasty surprises.
Except there often are.
Here's what's hiding inside a fixed-price contract:
Fixed-price works beautifully for well-defined projects with stable requirements. It quietly degrades the work when requirements are still being figured out, which is most of them.
T&M sounds dangerous because there's no ceiling. The developer bills, you pay, and nothing on paper stops the project from doubling.
In practice, T&M usually fails for one of two reasons:
But T&M done well is the most honest contract structure I've seen. You pay for what's done. Scope can evolve as you learn. The developer isn't incentivized to cut corners because their reward isn't tied to finishing fast. It's tied to keeping you happy enough to keep working together.
The catch is that "done well" requires actual discipline on both sides.
This is the part nobody talks about openly.
Both incentives can work against you if you're not paying attention. Both can work for you if the developer cares more about reputation than the next invoice.
The contract is a tool. The relationship is what makes it work.
Honestly, almost every project we run is a hybrid.
The pattern that works for me is:
This protects the client (they see what's being spent every week and can stop any time) and protects me (I'm not eating the cost of every change request that wasn't in the original brief).
For very small projects (under $10,000), I'll still take fixed-price. The risk margin is small, the scope is tight, and the overhead of weekly check-ins isn't worth it.
For anything bigger, I won't quote pure fixed-price anymore. I've been burned by it on both sides: once as the developer, once as the client years ago. The lesson stuck.
Don't pick the contract first. Pick the relationship first.
If you trust the team and you've seen their work, T&M with a cap is almost always the right structure. You'll spend less in total and the work will be better.
If you don't trust them yet, start with a small fixed-price discovery phase. Treat it as a paid tryout. If they're good, you'll know. Then you can move to T&M for the real work.
And if someone refuses to work T&M under any circumstances, ask yourself why. Usually it's because they don't want you to see how they actually spend their time.
That alone tells you something.