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 what to expect. We always make a raw estimation, but in reality, initial estimations are 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 pricing model 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, Milestone model.
- The fixed price model has a predefined scope of work and budget. After the agreement, 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 frame 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 whole project is divided into milestones and client makes payments based on time spent on every piece of work.
Often customers prefer fixed price model over other considering it cheaper. In fact, 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, fixed price model suits best for 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 be beneficial for contractor and client who have a good relationship.
How the price is calculated
The price of software development forms based on time spent on development. Therefore you won’t pay the price for a product but for every hour company spend on building it. The time includes not only coding but also testing, analyzing, designing, and managing the process. 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. Please note, that price estimation techniques may vary, but the majority of software companies apply this approach.
After coming up with the idea, the customer makes a list of the specification describing main features of the project: how the application will look like, how many modules it will consist, 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 analyse the project scope and 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:
(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 time of development will exceed our initial expectation. And the company will have to cover the difference between the initial and final cost on its own.
Factors affecting the price
We slightly moved to the factors that determine the price of the project. As you could notice, time is a vital element in the development, but let’s dive deeper and learn what factors affect the development time.
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 for the project. Functional requirements are those that form the behaviour of the product. It can be “displaying the image, data manipulation, calculations”. This is a generic set of software characteristics that can be the same for many projects. Such versatility means less development time and respectively, lower price.
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 availability of the server, security, performance of the software, usability. Development time will greatly depend on the complexity of quality attributes (non-functional requirements), so the development cost.
Let’s look at the real example.
When we start building commercial products like CRM, often clients 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 the 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 near 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.
Web application cost estimation is not a one-day job and requires your active participation to make the estimates more accurate. In order 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.