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
| Stage | What you get | Share |
|---|---|---|
| One: the plan | Written scope, screens sketched, the price fixed against it | 10 to 20% |
| Two: the spine | The main thing works end to end, roughly styled | 30% |
| Three: the rest | Remaining screens, payments, the connections | 30% |
| Four: live | Deployed, your accounts, handover, a fix window | 20 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.
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.
