How each model handles change and risk, and a simple way to pick.
The contract model shapes how a software project behaves once it starts. It decides who carries the risk of change, how much planning is needed up front and how easy it is to adjust course. There are three common choices, and each suits a different kind of work.
Fixed price
The scope, timeline and cost are agreed before work begins. This gives budget certainty and works well when requirements are stable and well understood, such as a clearly defined integration or a small website.
The cost is flexibility. Every change goes through a formal change request, and the supplier builds a buffer into the price to cover risk. If the scope is still being discovered, a fixed price tends to produce disputes.
Time and materials
You pay for the time spent, usually at a day or hourly rate, with an agreed team and a regular cap or forecast. It suits products that will change as you learn from users, since priorities can shift each sprint without renegotiating.
The cost is predictability. It only works when you can see progress often and when someone on your side manages the backlog actively.
Monthly retainer or dedicated team
You pay a fixed monthly amount for a team or a block of capacity. It suits ongoing products, long migrations and support work, where continuity matters more than a single deliverable. The team learns your system and gets faster over time.
It needs clear goals and a review each quarter. Without them it can drift into maintaining the status quo.
How to choose
Ask three things. How well can you describe the finished product today? How likely is it to change? How long will the work continue? Stable and short suggests fixed price. Changing and uncertain suggests time and materials. Long and continuous suggests a retainer.
A hybrid is often the best answer
Many projects use a fixed-price discovery phase to define scope, then move to time and materials or a retainer for delivery. You get certainty where it is cheap to give and flexibility where it is needed.


