Why fixed price is a big no-no
60% of organizations turn to outsourcing for app development 
Let me act as a prophet here 🔮, you might be either:
- a representative (rep) of a company that is looking for someone to develop an app;
- a rep of a company similar to us, trying to figure out what contracts to offer to customers;
- a freelance developer also trying to figure out what contract is the best for app development;
- just wandering around the internet, cause contracts are your passion.
You’ve come to the right place. Before offering or signing the contract you need to learn about two major types of contracts in software development: fixed price and time & material. There are more sub-types and hybrids of these two contracts, but we’ll mainly focus on the two general ones.
How to initiate a software development project?
In the case of both contract types, the customer has the chance to be involved in the process as much as one or a company prefers. Depending on the size of the project, there’s a team assembled for it. Together with a software house the customer determines what experts are necessary.
For example, the customer can order a full-scope project, meaning the project is developed from scratch. In detail, the backend, frontend, UX/UI, project manager, and quality assurance (QA) are all done by the software house. On the other hand, the customer can initiate the project with parts developed beforehand, in most cases – with a written backend. The customer also has an option to take leadership for the project, in most cases a project manager. Every project is unique.
What is a fixed-price contract?
Let’s look at it from a neutral standpoint. This type of contract is more of a classic one. It’s the type “I need this! Take my money and make it for me!” contract.
The customer has to know the project thoroughly because once the contract is signed, no changes are possible. In the contract, budget, deadline, and assembly of the team are precisely defined.
It better suits more experienced customers who have gone through the process of developing an app in the past, therefore, they know and are objectively confident that all the features can be defined before the project starts. However, this type of customer (experienced) usually goes for the time & material type of project – and I will tell you why shortly.
To initiate the project, everything has to be precisely defined, thus delaying the whole process. The project can be started only after the whole contract is agreed upon which is not the case with time & material.
On the other hand, this type of contract is good for quickly developing the prototype or the MVP of an app.
How does the fixed-price contract work in practice?
Often projects get over- or underestimated. Both of these scenarios involve issues. Respectively, an overestimated project adds expenses for the customer. An underestimated project might sound appealing to the customer, but in reality, this makes the developer team rush the whole development process, as a result – reducing the quality of the code.
Disadvantages of the fixed-price contract
It might sound biased, but in Codigee we do not recommend the fixed-price agreement. Speaking from experience, it’s nearly impossible to define all features of an app before the start of the project, especially in the ever-changing era we live in. Usually, when the contract is ready to be signed, the app idea and solutions are already outdated.
Everybody has a plan until they get punched in the face.– Mike Tyson
What is the time & material contract?
In the case of a time & material contract, the project can be defined completely before it is initiated, but it is NOT necessary. A project can be started as soon as the first or a few first features of the project have been figured out. Then, the next features can be thought out in the process.
NB! For time & material contracts, the developer team can constantly participate in brainstorming and suggest or come up with new features and solutions.
How does the time & material contract work in practice?
A study concluded that 25% of the reasons for outsourced project failures are due to poor communication (16%) and cross-cultural problems (9%). 
During the software development process, customers can be involved in it as frequently as preferred. In practice, it means daily or weekly meetings, during which the finished tasks and features are checked and the next ones are discussed. In case any changes in the project are necessary, it’s easy to steer in the new direction with this type of contract.
Let’s say the costs have to be cut – the customer, together with the development team, weighs out which features can be excluded from the app or which functionalities can be reduced in complexity, and there we go! Costs are reduced.
Let’s say the team has to be expanded – on the next daily/weekly meeting with the project manager, the customer weighs out which experts have to be added to the team. This will increase the hourly rate, but decrease the likelihood of a poor-quality outcome.
Advantages of the time & material contract
Again, in Codigee we recommend the time & material agreement. It’s less risky and from our experience, we can confidently say that this type of agreement means fewer tripping stones along the way and more satisfied customers.
Of course, this type of agreement requires trust – but isn’t the world now based on it?
If we do not trust one another, we are already defeated.– Allison Croggon
|Fixed Price||Time & Material|
|Pay rate ⏰||Whole project estimation||For a period of time (rate)|
|Scope 🔭||Constant, no changes possible. Only with an extra agreement which is paid additionally||Fully flexible, change anything and whenever is possible|
|Schedule 🗓️||Fixed||Fully flexible, depends on the project scope|
|Customer engagement 🫂||No engagement, only at the beginning and at the end. Only from the observer’s standpoint||Consistent participation in the whole process|
|Project start 🔫||A fully detailed description of the customer’s needs, so the whole project initiation is delayed||A project can be initiated immediately|
|Documentation and code 💼||Provided after the end of the project, after the payment||Available in real time|
|Payment in advance 🏦||30% of the whole project||For one month, which is much less than in a fixed budget|
Alternative situation (new version)
Let’s digress a bit. Fixed-price and time & material are just fancy names. These types of contracts are hidden in our daily lives, it’s just a matter of looking more closely to notice them!
We operate from Poland, where food catering is quite a common service. Two of my colleagues use it, let’s call them Jack and Lisa. It’s a real-life example, but let’s spice it up a little so that it is more relatable to this article.
Jack has agreed upon a contract with the catering company Delicious Catering (DC) that he’ll receive 5 packages adjusted to his diet every day, 5 times a week, resulting in 2000 calories consumed daily. Let’s assume Jack in this case opts in for a fixed-price contract.
Lisa also orders from the same company 5 packages 5 times a week, resulting in 2000 calories consumed daily, but with slightly different rules. Every evening Lisa can choose from 3 options for each meal that she wants to receive the next day. Let’s assume Lisa in this case opts in for a time & material contract.
For DC it’s easier to just plan the meals that Jack is going to receive and not adjust them every day to his requests, as it is in Lisa’s case. This makes the service for Lisa more expensive. At first sight, it might seem that Lisa’s option is more expensive, which is true, but let’s play out a few scenarios of how this can turn out.
In the second week, Jack realizes that he doesn’t enjoy his meals. On Wednesday he heads down to the nearest kebab store and grabs a durum kebab. The kebab costs 1/2 of what Jack would pay for a whole day of DC service. Which gives us a 50% increase in costs for a given day.
Being able to choose her meal for the next day every evening, Lisa never stumbles over this issue.
Jack decides to change his diet and calls up DC. They say that there’s no problem to change it, but the new diet will start only next month as they’ve planned all the meals, made orders from suppliers, compiled work schedules for cooks and financial plans till the end of the month.
Jack on the phone call:
He agrees to change the diet, but till the end of the month, he has to push himself to eat the meals he doesn’t enjoy or buy something else every day, increasing costs as mentioned before.
Lisa changes her meals every day, so there’s no defined time frame that she cannot change her meals.
After a few months, Jack starts noticing some digestive problems. He books a visit to his gastrologist, who tells Jack that he needs to make an endoscopy examination. Afterward, it turns out that Jack cannot have gluten in his diet. We already know what happens next. What to do with all the meals containing gluten?
Let’s say, after a few months Lisa discovers that she’s lactose intolerant. As soon as she exits the doctor’s office, she opens up the DC app and chooses meals for the next day that don’t include dairy products.
The Jack and Lisa comparison
Just to sum up these little stories – both Jack and Lisa get the food they paid for. In practice, Jack’s contract might include less risk for him. He pays less, but quantitatively receives the same outcome as Lisa – 2000 calories per day. Though, the issue here is that DC knows the most important thing is to achieve the number of calories each day. Doesn’t matter what they put in the meals, only follow the restrictions of the diet.
Lisa’s contract in turn requires more effort from her side. She also pays more every month, but Lisa chooses the meals so that DC must deliver exactly what she’s asking for. As a result, Lisa is more satisfied with the service.
In Latvia, my homeland, we love this quote that perfectly suits this situation:
The poor man pays twice.– Some Latvian guy long time ago
Conclusion | TL;DR
If you are okay with a little risk, have experience from other projects, know all the features precisely, or the project is simple, a prototype or an MVP – choose fixed price!
If you’re not sure about all the features, the project has a big scope, and you don’t want to risk too much – choose time & material!
My personal number: +48 534 767 301
Chat with us in the box in the bottom-right corner! I’ll tell you a little secret – most likely I will be the one answering you.
Let's make something together.
If you have any questions about a new project or other inquiries, feel free to contact us. We will get back to you as soon as possible.
We await your application.
At Codigee, we are looking for technology enthusiasts who like to work in a unique atmosphere and derive pure satisfaction from new challenges. Don't wait and join the ranks of Flutter leaders now!