In software development, the price is of great importance. But at the same time, it’s the most uncertain point. Nine leads out of ten contacting us want to know the exact cost for the development after the first contact.
We understand their concerns, they have to be sure of what to expect. We always make a raw estimation, but initial estimations are usually lower than the final price. That is not because we are bad at math but because development cost estimation is a complex process requiring a comprehensive understanding of all project requirements.
Partly software development price will depend on the pricing model the contractor uses. The pricing model is a model that determines how a company charges money for the service. Usually, software companies adopt three pricing models: Time&Material, Fixed Price, and Milestone model.
- The fixed price model has a predefined scope of work and budget. After the agreement, the sides cannot amend the budget, and extra work usually is the subject of an additional agreement. The model ensures that a project will be delivered within a specific time and budget.
- With time&material pricing, the company charges money by the amount of work completed. Hence when a client decides to enrich functionality, the budget will increase. In this approach, the price is approximate. Thus the client doesn’t have a specific understanding of development costs since the time frame is flexible. Depending on the workload, the budget can change.
- The milestone model involves payments when a contractor achieves a predefined milestone. The project is divided into milestones, and the client makes payments based on time spent on every piece of work.
Often customers prefer the fixed price model over others, considering it cheaper. The fixed model might be more costly than, for example, time&material. The reason is that a company will include all possible risks up to 50% in estimation to protect oneself from unexpected costs.
Still pricing model will heavily rely on the project type. For example, the fixed price model best suits smaller projects like MVP with limited features and clear requirements. Time&material model works for long-term projects that have changing requirements. Finally, the milestone model can benefit contractors and clients with good relationships.
How the price is calculated
The price of software development forms is based on the time spent on development. Therefore you won’t pay the price for a product, but for every hour company spends on building it. The time includes coding, testing, analyzing, designing, and managing the process. The amount of time depends on the scope of work. The bigger the project – the higher the price.
We will describe the typical scenario of our cost estimation and try to illustrate all the factors that form a final price. Price estimation techniques may vary, but most software companies apply this approach.
After coming up with the idea, the customer makes a list of the specifications describing the project’s main features: how the application will look, how many modules it will consist of, and which module will be responsible for each function. The list has to be detailed to get an exact price for the work. Hence the more general requirements – the more likely the actual costs will exceed the initial estimate.
From our side, we analyze the project scope, divide it into smaller tasks, and estimate the time for each errand. Now, having the development time, we can calculate the price for the project according to the “Fixed Price” and “Time&Material” models.
Let’s consider a case that the customer requested a moderate CRM that requires 2,800 hours (3.8 months). The blended rate is $27/per hour. With this data, we get the following:
(Amount of hours * development rate per hour)
Here we ignored risks considering the project easy to build.
(Amount of hours * development rate per hour) + risks associated with the project
As was mentioned before, 50% is a buffer for a company to cover the risks. Under the risks, I mean conditions when a development time will exceed our initial expectations. And the company will have to cover the difference between the initial and final costs on its own.
Factors affecting the price
We slightly moved to the factors that determine the price of the project. As you can notice, time is a vital element in development, but let’s dive deeper and learn what factors affect development time.
The product development time depends on the scope of the project. While the scope is determined by functional and non-functional requirements. When you consider creating a project, you create a list of functional requirements. Functional requirements are those that form the behaviour of the product. It can be “displaying the image, data manipulation, calculations”. This generic set of software characteristics can be the same for many projects. Such versatility means less development time and, respectively, lower prices.
Non-functional requirements are implicit expectations from the project. They describe how the system should behave. These are expected features and not specifically documented requirements. In software development, non-functional requirements include the server’s availability, security, the performance of the software, and usability. Development time will greatly depend on the complexity of quality attributes (non-functional requirements), so the development cost.
Let’s look at a real example.
When we start building commercial products like CRM, clients often require software to be available 24/7. This means that server works without interruptions. We understand such requirements, after all, no one wants to lose customers when a server is off. But in reality, the team spends around a month (160h*$27=$4 374) to reach server availability of 99%, which is nearly 8.76 hrs downtime a year. As the Availability Percentage goes up, it sometimes becomes cost prohibitive. Since non-functional requirements need more time, the cost of such a product will also be higher.
The bottom line
Web application cost estimation is not a one-day job and requires your active participation to make the estimates more accurate. To estimate the project company has to involve business analysts, product owners, and developers. Together, they can tell you how much it costs to build a web app.
We emphasize that apart from the technical side, there are processes like communication and a creative process. Which, if not taken into account, may slow the process and, if treated properly, can boost it.