Insights

What You're Actually Buying When You Sign a Fixed-Price Software Contract

Clients sign fixed-price contracts thinking they're buying certainty. What they're actually buying is defensiveness — and once you see the mechanism, the surprising thing isn't that these engagements often go wrong. It's that anyone still believes they go right.

May 2026 · By Jiwei Zhang, founder of Core70

When clients sign a fixed-price contract for software development, they think they're buying certainty. What they're actually buying is defensiveness.

That's not a rhetorical move. It's the predictable consequence of how fixed-price contracts shape the incentives of the team building the software. Once you understand the mechanism, the surprising thing is not that fixed-price engagements often go wrong. The surprising thing is that anyone still believes they go right.

I've been running a software services company for twenty-four years. I've watched hundreds of engagements unfold across multiple geographies and industries. I want to describe a pattern that the industry rarely names directly — and explain why we structure our engagements differently.

The promise versus the mechanism

The promise of fixed-price is simple: "We agreed on $400K for these features by this date. If something goes wrong, the vendor absorbs the cost."

This framing is intuitive. It mirrors how we buy most things — a car, a house renovation, a translation contract. Pay this, get that. The vendor takes the risk. The client gets predictability.

It's also incompatible with how software actually gets built.

Software is not built once and delivered. It is built in iterations, with the people building it learning more about the problem as they go. Week three reveals that the data model from week one needs to change. Week six surfaces an integration constraint nobody knew about. Week ten shows that a workflow which sounded right in the meeting turns out to be wrong in practice. This isn't a failure of planning. It's the nature of the work.

A fixed-price contract pretends none of this happens. The contract says: here is the scope, here is the price, here is the date. Any change has to be negotiated as a change order. And from the moment the contract is signed, every conversation between the client and the team is filtered through that frame.

What clients are actually buying

What clients are actually buying with a fixed-price contract is a delivery team in defensive mode.

Here is the mechanism. From the moment a fixed-price contract is signed, the delivery team's incentive structure changes. Every potential change to the project — every "hey, can we also add this?" or "actually, the workflow should be different" — becomes a scope dispute. A scope dispute is not a collaboration. It is a negotiation, with each side defending their position.

Once the team is in this mode, three things happen.

First, problems get hidden. When a developer discovers that an architectural choice from week two is causing problems in week ten, what do they do? In a collaborative engagement, they raise it: "we should reconsider this; it'll cost two weeks but save us six." In a fixed-price engagement, raising it means asking the client to accept a delay or a scope reduction — both of which feel like the vendor failing on commitments. The path of least resistance is to work around the problem, accept the technical debt, and hope it doesn't matter. Often it does matter, but not until much later.

Second, account owners absorb signal. When the delivery team flags difficulty, the account owner has to decide whether to escalate it to the client or absorb it internally. Escalating means asking the client to renegotiate scope or budget, which damages the relationship. Absorbing means putting more pressure on the team and hoping they recover. Most account owners absorb, because they are measured on client relationships. The client never learns that the project is structurally in trouble.

Third, the failure surfaces all at once. The accumulated effect of hidden problems and absorbed signals doesn't stay hidden forever. It surfaces at the end — in a missed deadline, a deliverable that doesn't work, a quality crisis, or in the worst cases, litigation. By that point, the trust between client and vendor is so depleted that no productive recovery is possible. The only remaining moves are blame and lawyers.

Every serious software services dispute I have observed has the same underlying structure. Different people, different industries, different kinds of software — same pattern.

The pattern that nobody names

I am being careful here. Every serious software services dispute I have observed in twenty-four years has the same underlying structure. Different people, different industries, different kinds of software — same pattern. Fixed-price contract creates defensive mode. Defensive mode hides problems. Hidden problems compound. Compounded problems explode.

The industry rarely names this directly because naming it would call into question the basic transaction. Vendors don't want to admit that their pricing structure is the source of the problem. Clients don't want to admit that what they asked for is unbuildable. Lawyers don't want to admit that the contracts they write are designed to allocate blame after the fact rather than prevent the problem in the first place.

So the industry continues to sign fixed-price contracts, continues to watch them blow up, and continues to write the same kinds of contracts for the next project.

About "T&M with a not-to-exceed cap"

A subtler version of the same problem hides inside what salespeople sometimes pitch as a compromise: time-and-materials billing, but with a not-to-exceed cap, or a fixed budget estimate, or a "we'll keep you informed if we get close to the ceiling."

This sounds like a better deal for the client. They get the flexibility of T&M with the protection of a cap. What's not to like?

What's not to like is that the cap does the same thing to the delivery team that a fixed-price contract does. The team knows, from day one, that going over the cap means a difficult conversation — often a conversation the vendor will lose. So they enter defensive mode the same way they would on a true fixed-price engagement. The cap is supposed to be the safety net. In practice, it is the trigger for the same defensive dynamics.

I am not saying this to criticize any individual sales approach. I am describing a pattern I have watched our own teams fall into for years, including teams I have personally led. For a long time we offered capped-T&M and called it "client-friendly." It took us longer than it should have to recognize that capped-T&M produces the same defensiveness as fixed-price. The client thinks they have bought flexibility. The team behaves as if they have signed a fixed-price deal.

When we recognized this in our own operations, we took fixed-price and capped-T&M off the table for our overseas business entirely.

What we sign instead

We sign Time-Box engagements. The client buys a block of developer time — a week, a month, a quarter — at an agreed rate. The team commits to using that time well, with full visibility into how it is being used. Priorities are set jointly at the start of each block. If the priorities change midway, they change. If the team discovers a problem that warrants a different direction, they raise it immediately, and the client decides whether to redirect the work.

The key shift is not in the billing mechanics. The key shift is in what the team is told they are doing. In a fixed-price engagement, the team is defending scope. In a Time-Box engagement, the team is collaborating on priority. These are different jobs, and they produce different behavior.

In a fixed-price engagement, the team is defending scope. In a Time-Box engagement, the team is collaborating on priority. These are different jobs.

Most importantly: the team is not in defensive mode. They're collaborating. The information that flows between the team and the client is real — about what is working, what is not, what should change, and what the trade-offs are. The client can make informed decisions because they are seeing actual information, not filtered signal.

Clients sometimes worry that Time-Box gives the vendor too much latitude. In practice, the opposite is true. Because the client controls the priorities and sees the work daily, they have far more control than they would have over a fixed-price engagement, where they see only the deliverable at the end. The vendor's accountability is continuous and visible, not deferred to the final acceptance test.

Which model actually delivers more value

The obvious question: if Time-Box has no fixed scope and no fixed price, how does the client know they are getting value for money?

The honest answer is that this is the same question to ask of fixed-price, just at a different point in the engagement. In a fixed-price engagement, the client locks in a scope at the start and then watches the team defend that scope through the project. In a Time-Box engagement, the client sees the work continuously and adjusts priorities continuously. The information is better, and the decisions are better.

Empirically — based on twenty-four years of running both kinds of engagements — Time-Box delivers more business value per dollar, by a wide margin. Not because Time-Box vendors work harder. Because Time-Box engagements don't pay the hidden cost of defensiveness.

This is one of the reasons our pricing model looks the way it does. We publish the developer's daily rate, and you buy time directly. See how the pricing works →

What this means for buyers

If you are evaluating software services vendors right now, here is what I would suggest.

Ask any vendor offering fixed-price what happens when the team discovers, midway through the engagement, that the original specification has a serious problem. Listen carefully to the answer. If it involves change orders, scope discussions, or escalation processes, the vendor has just described defensiveness. That is the engagement you will be getting.

Ask vendors offering "T&M with a not-to-exceed cap" or "T&M with a budget estimate" the same question. The answer will likely sound similar to fixed-price. It is similar.

Ask vendors offering Time-Box, or any structure where the client buys time rather than features, the same question. The answer should be: "We tell you. We talk through the trade-offs. We adjust priorities together." If the answer is anything else, what they are calling Time-Box probably isn't.

The contract structure is the most important signal of how the engagement will actually run. Choose it accordingly.

Certainty about features turns out to be the wrong thing to optimize for. Visibility into trade-offs is what you actually need.

If you'd rather see this in practice than read about it — start with a 30-minute call.

A short version of this essay was first published on LinkedIn in May 2026.