Ruzora
Software Factory

How to Pay for Custom Software in Milestones

How to structure payments so you are never far ahead of what has been delivered.

RE

Roberto Espinoza

CEO, Ruzora

September 14, 20267 min read

The way you pay for software decides how much a bad outcome costs you. Structured well, the worst case is that you lose one stage. Structured badly, you are holding a receipt for half a project and no way to finish it.

Key Takeaways

  • Pay by stage, never half up front for the whole thing.
  • Every milestone needs something you can open and look at.
  • Three or four stages is right. Ten is admin, one is a deposit.
  • Own the accounts and the code from the first day, not at the end.

What a Milestone Is

A milestone is not "week four." It is a thing you can look at, use and form an opinion about. "The booking screen works end to end on a phone" is a milestone. "Backend development complete" is not, because you cannot check it and you will not know whether it is true.

If you cannot tell from the outside whether a milestone is done, it is not a milestone, it is a date with an invoice attached.

A Shape That Works

StageWhat you getShare
One: the planWritten scope, screens sketched, the price fixed against it10 to 20%
Two: the spineThe main thing works end to end, roughly styled30%
Three: the restRemaining screens, payments, the connections30%
Four: liveDeployed, your accounts, handover, a fix window20 to 30%

The most important line is the first. Paying separately for the plan means you can stop after it with something valuable in hand, which is the cheapest possible exit from a project that turns out to be wrong.

Milestone stages sketched on paper
Milestone stages sketched on paper

Rules Worth Holding

Never be more than one stage ahead. If you have paid for two and seen one, stop and resolve it.

Accounts in your name from day one. Hosting, domain, database, card processor. Give access to the developer. Do not receive access from the developer later, because "later" is exactly when the relationship is worst.

The code goes to your account as it is written, not at the end. Weekly is fine. At the end is how people end up with nothing.

A change is a priced change. Not a favour, not a fight. Expect a few. A firm that says yes to everything without a number is remembering them somewhere.

A Concrete Version

A retail owner paid sixty percent up front for a custom ordering system, on the strength of a good meeting. Eleven weeks later there were screens that did not connect to anything and a developer who had taken other work. She had no code, because it lived in his account, and no hosting in her name.

What she recovered was nothing, and what it cost to restart was the full price again. Had the same project been staged, the first payment would have bought a written plan, the second would not have been made, and the loss would have been one stage. The developer was not a fraud. He was overcommitted, which is far more common and does the same damage when the payment schedule runs ahead of the work.

The Honest Counterpoint

Milestones cost something. They add review points, and a developer waiting for your sign-off is a developer not working. Some good small firms will decline heavily staged terms for a small project because the overhead is real, and that is not a red flag by itself. The balance for a small build is three stages and quick reviews, rather than a gate every week.

Frequently Asked Questions

Is a deposit normal?

Paying for the first stage is normal. Fifty percent of the total before anything exists is not, and it is the single most expensive habit in small business software.

What if they will not stage it?

Ask why. A reasonable answer is that the project is too small for four stages, in which case do two. An unwillingness to tie any payment to anything visible is the answer to your question.

Who owns the code?

You should, in plain language, in the agreement, with no carve-outs. See staff augmentation contracts and what to check.

What happens if we disagree about whether a milestone is done?

This is why a milestone has to be something you can look at. If it is defined as a thing that works on your phone, the disagreement resolves itself in a minute. If it is defined as a phase of work, you are arguing about someone else's internal progress, and you will lose that argument or pay to end it.

The Bottom Line

Pay for stages you can see, keep the accounts in your name, and never run more than one payment ahead of the work. Then the worst case is one stage rather than the whole project. For a free written plan you can price stage one against, try the honest read. See also what a good software quote looks like.

Roberto Espinoza is CEO of Ruzora, which builds custom software for business owners at a fixed price and places pre-vetted senior LATAM engineers with US teams. Get a free honest read on your idea.

RE

Roberto Espinoza

CEO, Ruzora

Roberto is the founder and CEO of Ruzora. He works directly with US startup founders and CTOs on staff-augmentation and software-factory engagements, and personally reviews senior engineer placements.

AI-vetted engineers, ready now

Your next senior engineer is already vetted and waiting.

It starts with a single call. 72 hours later, you're reviewing scored candidates who already match your stack and culture.