One day, we faced a problem. In January 2019, we were supposed to launch a new version of a SaaS solution, or more accurately, PaaS, i.e., platform-as-a-service, but the work schedule for our clients didn't allow the project to be carried out by our programmers. We became aware of this in November 2018, 2-3 months before the launch date of the online platform.
The new version of the product was supposed to allow us to double our revenues because it was thoroughly tested and tailored to the needs of its customers.
We could potentially start recruiting members for a team, but we've noticed some disadvantages:
- The risk of recruitment failure and loss of valuable time
- Introduction of new team members takes time
- Recruitment takes time and costs and doesn't guarantee success.
We had to hire a web development company, agency, or programming team to become our software development partner. Initially, we wanted to ask for an offer from two or three companies, but we got so caught up in the process that we received offers from more than 40 companies.
We want to present a summary we've created and dispel some myths about choosing a web/software development company. We're convinced that the time we devoted gave us valuable knowledge. It's worth being equipped with it when negotiating with a web development company.
We also decided that the conclusions we reached should be implemented in our company when we offer programming services to our clients.
![Fairy tale illustration with a tree and a platform clock which is painted by a man on a swing](/en/media/uploads/2020/07/28/fixed2-1.jpg)
Billing models for programming work
Currently, two billing methods for programming work are commonly used in the market.
- Fixed price, i.e., a settlement with an IT company with a price established in advance for completing a part or an entire project.
- Time and materials, i.e., a settlement with an IT company according to the actual number of hours spent on work and the materials used.
Two extreme points of view—that of a client and the provider—must be reconciled for the transaction to occur.
The customer's point of view:
I've been paying a fixed price since the start. Why should I pay for the working hours? From the client's point of view, this is a risk. Developers can enter any number and any amount into the hourly report.
What is the IT company's point of view?
The commissioned software isn't a closed product—it's not a car, home, or kettle. The software can be changed, updated, or further developed anytime. During work, clients sometimes even change assumptions and the purpose of the created application.
How did the situation look in the case of our project? In most cases, the fixed price billing model is more favorable for the client in terms of price. But it requires a lot of work on the IT specification. At the same time, both parties benefit greatly from its development. Therefore, while working on our SaaS, we emphasized preparing a detailed specification to reduce the programming costs of an external company as much as possible.
How do you get both the customer and the company to agree to cooperate for a fixed price? Develop the technical specifications of the software to precisely determine what the web application should look like as a result of the web development company's work.
The client gains:
- A product that meets their requirements
- Confidence that they will get what they want
- Specification that can be attached to the contract with the IT company
- A tool for controlling and accounting for the provider's work
An IT company gains:
- An action plan
- An understanding of the beginning and end of the product that it must create
![A man in headphones working at a computer](/en/media/uploads/2020/07/29/time-and-material-1024x576.jpg)
When to use the fixed price billing model and when to opt for time & materials?
We use the fixed-price contracts when we have the following:
- Clear requirements and deadlines
- A limited or fixed budget
- To create an MVP
- Small projects with limited scope
We use time & materials contracts when:
- The scope of the project is not fully known
- We're running a long-term project with dynamic requirements
- We need flexibility to modify the scope of work
What are the advantages of the fixed-price model?
Predictability
Every entrepreneur wants predictability in business. A company's strategy usually requires clear deadlines and numbers that fit in the budget. Knowing the cost of software development in advance makes planning far more straightforward. The price can be divided into parts so the company's finances can easily absorb it.
Transparency
With specific requirements, a fixed budget, and predetermined dates — there are no surprises.
Easy management
Payments for the web development company depend mainly on the percentage of work done. A fixed price allows the customer to review small amounts of work regularly because the scope of work is transparent and predictable.
Disadvantages of the fixed-price contract
The lack of flexibility
It's the weakest point of working on fixed-price projects. As a customer, you are responsible for any changes that occur or that go beyond the provider's competence. The IT company may not agree to changes during the work's implementation.
A lot of planning
A fixed-price project requires you to create a detailed plan that contains the project's scope, requirements, and all possible risks. Discussing all the details of a project takes time and may cause you to miss the window of opportunity for your app.
Advantages of using the time & materials pricing model
Flexibility
Along with the time & materials contract, the customer can modify the project's assumptions and change the amount of work during its implementation. Dynamic changes are part of larger projects.
There is a general goal that should be achieved, but knowing how it will be achieved is not so important at the very beginning. This suits startups and medium and large companies. Decision-making during the process is a feature of agile project management methodology.
Acquiring competencies
If the client doesn't have the right specialists on the team, the time & materials agreement allows them to recruit and start a programming project.
Start right away
The client can start the project immediately—they have no specification or design and usually only have the goal they want to achieve.
![Young man working at a desk on a laptop](/en/media/uploads/2024/05/16/fixed_price_time_and_materials_1024x682.webp)
Disadvantages of the time & materials model
Budget control and client involvement
The main disadvantage of the time and materials contract is the problem of budget control. The total cost may significantly exceed the assumed budget.
The client's time-consuming involvement is necessary to ensure the team operates within the approved range and the correct number of working hours.
Other pricing models
We've mentioned that fixed price and time and materials are the most commonly used pricing models. This doesn't mean they're the only ones. While we have experience working with the two mentioned ones, I think it's important to say at least a few words about other options.
Milestone-based model
The milestone-based model compromises between fixed price and time and materials contracts, which is why it is also known as a "mixed model."
This software development pricing model relies on setting deadlines and leaving enough room for changes. Companies use it when they have a drawn-up timeline for releasing a product, but the specification requirements aren't detailed yet.
The milestone-based model allows a software development team to work on a project while remaining flexible enough to incorporate any changes a client suggests. A client pays when a software development company completes a particular stage of a software development process (a milestone). The price is calculated based on the time spent and the amount of completed work. This can be measured by introducing sprints into the development process.
Advantages of the milestone-based model
Payment upon delivery
A client pays in this software development pricing model when specific milestones are completed and delivered. The customer can see precisely how much time it took to complete a given leg of work and how much was accomplished.
Control over the results
The customer supervises the work and approves the completion of a milestone or introduces changes to the ongoing one. This allows them to control and track the results while ensuring that the product has all the functionalities it is meant to have.
Specifying criteria
The client and software development company specify the criteria used to approve each milestone. At the end of each stage of a software project, these criteria are compared against the current state of work, and if everything is in order, the development team can start working on the following milestones.
Disadvantages of the milestone-based model
Different costs for functionalities
The first con of working with a milestone-based model is that each feature/functionality will cost a different amount, and the development team will spend varying amounts of time developing them. Naturally, you can make a cost estimate, but it's impossible to predict the total cost when adjusting a software project on the go.
Risk of disputes
A client might find something that doesn't correlate with the agreed-upon checklist or has other issues. This can lead to prolonged disputes that slow down the software development process, which might cause the software development project not to be completed within an estimated time window.
Lack of rigid timeframe
While sprints can be used to determine the time spent on each milestone, it's still challenging to estimate when precisely the project development process will end. It's hard to set a precise date when problems such as disputes can appear and disrupt work.
The milestone-based model works best when a company and a client have an excellent, long-standing relationship. It eliminates the potential distrust and reduces the possibility of disputes that will affect the completion of a software project. Otherwise, software development companies might be reluctant to work with such a pricing model.
Dedicated team model
The dedicated team pricing model involves using the knowledge and experience of the software development team. Instead of hiring and training people yourself, the software development company lends you its employees. You can choose the team composition and adapt it to your needs by looking at the provided resumes.
The cost of such a pricing model is estimated based on the employees' salaries, which makes it easier to predict the monthly cost of a software project.
Advantages of the dedicated team pricing model
Full control
The dedicated team model enables the client to have complete control over the composition of the development team. They have access to all necessary information, can personally interview the candidates, and decide who will be perfect for developing the functionalities they need and how large or small the team will be.
Lighter administrative workload
Having a dedicated team is like having an in-house team, except you don't have to be responsible for finding or onboarding employees. You also don't need to worry about sick leaves or scheduling vacation days since that happens on the provider's side.
Increased dedication
As the name suggests, the development team is fully dedicated to your project. They can work quickly and efficiently because they spend more time understanding it.
Disadvantages of the dedicated team pricing model
Increased management time
Although your administrative workload is smaller, the management time depends on your project management experience and skills. You are leading the team, and thus, you're responsible for the budget, workflow, dedication, and motivation of team members and, to some degree, for the project completion timeframe.
Moreover, you must pay special attention to each team member's working time to estimate the project's cost accurately.
Possible high cost
Since the cost estimates of projects carried out under the dedicated team model are based on the salaries of development teams and the providers' fees, the price can get pretty high, especially if the team is big. So, it's worth keeping this in mind when you assemble your team.
Costs of a software development project
Since we're writing about all the different methods of billing software development projects, it's fitting to touch upon the aspects comprising the cost of developing digital products.
What do you need to consider when you receive or create cost estimates?
The project size is one of the most apparent factors influencing the development costs. The pricing will be different depending on the scope of a project and the number of tasks that will need to be done. You will pay less for smaller software development projects like small changes in existing design. Medium-sized projects will cost more since they involve more work, such as creating a simple landing page to advertise your business. Large-scale projects will be the most expensive, such as developing a complex web or mobile application from scratch or creating an e-commerce platform.
The project's complexity also plays a significant role in software development. If you want to create a complex application with many functionalities or add some new features to your website, you'll probably need the help of more experienced developers. This raises the overall cost. In short, the more sophisticated software, the more time, effort, and money you'll need to invest.
Cross-platform software development is another factor impacting the price you'll pay. Do you want your software to work on desktop or mobile devices? If mobile devices, then Android or iOS? You need to remember that Android and iOS have different requirements and work with different technologies, which is why the development cost will differ on these platforms. Additionally, if you would like to release an app on all three platforms, then the time and cost will be appropriately high. Keep that in mind.
The security level offered by your software is also crucial. The more resources you spend to improve cybersecurity, the higher the software development cost. Different countries put different emphasis on data protection, so it's crucial for you and the company you choose to include these requirements in a software requirements specification.
Last but not least—deadline. The faster you need to create an app, the more you'll pay. If you want a company to work on a short deadline, then it shouldn't be surprising that they want to be properly compensated for it.
Billing models in Poland
We have the most experience in the Polish market, and the collected data presented here is based on it. However, it's not a wild assumption that the worldwide situation regarding pricing models looks similar, especially in the case of a fixed price and time and material model.
According to our experience, fewer and fewer Polish web development companies are interested in projects based on the fixed price model. We rejected all expensive companies employing more than 50 programmers and chose only those employing 5 to 49. Less than half of them wanted to talk about the fixed price model despite the very detailed software requirements specification we provided. Other companies emphasized that they work only based on the time and materials model.
Our company offers development services and still uses the fixed price model. For customers who order only a design stage (product design, UX design, and web design), we'll help prepare a technical specification, allowing the project to be carried out using the fixed price model.
How to choose a suitable software development pricing model?
As you can see, quite a few options are on the market. How do you choose the right one? The simple advice is to carefully consider how your project will look and what requirements it will need to meet. It would be best to make a well-thought-out decision based on the project's size, complexity, platform, security level, and deadline.
Consider all the available pricing models and make an informed choice to ensure you'll have as few issues during the development process as possible.