Splitting a project into stages with a defined deliverable, a review, and a payment attached to each, instead of one handover at the end.
Stages give you exit points. If the first milestone shows the vendor cannot deliver, you have lost one stage, not the whole budget — and you have working software to take elsewhere.
We size milestones so each produces something demonstrable, write acceptance criteria before the stage starts, and keep the deployed result available to the client throughout, not only at the end.