Skip to content


The cost of software development: what you need to know in 2021 + FAQ

The cost of software development: what you need to know in 2021 + FAQ

You are involved in a software project and want to know how much it costs to develop a software product. It can usually be difficult to be sure of the cost without knowing the exact requirements. Nevertheless, you can take into account some factors to get a rough estimate of the cost, which we will discuss in this article.

The cost of software development: what you need to know in 2021 

From this article you will learn several factors that determine the cost of a software product and the typical steps for estimating the cost of software development.


Cost factors for software development in 2021


Software size

The size of software plays an important role in determining software development costs. It is usually the number of screens, pages, or modules available in the software. Typically, a small sized application has no more than 20 screens, a medium sized application has 21 to 40 screens, and a large sized application has more than 40 screens.


There is no doubt that optimization and testing processes for an application with around 40 screens and many complex features require more time and effort than those for a small application. Thus, the more screens/modules you want your software to have, the higher the cost you have to pay.


Complexity is one of the main factors that determines the cost of a software product. It refers to the level of complexity of the software logic. Below are three elements that make up the complexity of software logic.


Function Set Complexity: software requires a set of complex functions driven by complex business rules.


Technological complexity: software is technologically complex and can be developed without the use of traditional technologies.


Design complexity: software must have customizable fonts, icons, images, etc. However, don't pass up the opportunity to design because UX/UI linearly affects the usability of your software product.


In fact, the higher the complexity of the app, the more difficult it will be to develop, test and deploy.

Calculating the cost of software development is a difficult topic for both software buyers and developers. Difficult times, about the onset of which we have been hearing more and more lately, are not a reason for developers to work at a loss. And it's not about greed: the business must bring profit.


The company we are going to use as an example to demonstrate the procedure for calculating the cost of software development is an ordinary Russian developer of video communications software. The product is not the cheapest, but it is not superexpensive either: it is easy to integrate with most hardware solutions, flexible, easily adapts to the cloud. In general - it is a quality, stable, marketable solution.


More recently, it has become apparent that the company's commercial proposal clearly lacks a chapter on the financial feasibility of the product price. It turned out that most customers do not understand how much a qualified developer with a regular market salary costs. People look at the price lists of freelancers, compare them, make conclusions. However, not everyone has an understanding of the differences between the work of a staff specialist and a freelancer.

List of software development stages:


  • requirements analysis, feature design;

  • architecture design, interfaces;

  • development of documentation and integration plan;

  • coding and assembly;

  • testing activities;

  • installation, qualification;

  • maintenance (refactoring, code corrections, version support) - 30% of capacity.

A little bit about 30% capacity. Most companies do not include support in the list of project works and, consequently, in the final cost of the product. As a result, the customer pays extra for every bug and every code fix.


The credo of the company from the article - "turnkey product" and full technical support, since the creation of complex software in the framework of outsourcing - at least not serious, at most irresponsible. According to the experience of the company, the customer is more likely to pay extra for support beyond the agreed upon price, than to undertake to solve the issues of code maintenance by itself.

Again to the methodology. Payroll is:


  • salary, including income tax;

  • Bonuses if your work is done on time and you are satisfied;

  • payment of contributions to the pension fund and 14% of social insurance (in the case of software development social tax - preferential);

  • 1% of my salary - health insurance;

  • 2% of salary - compensation for meals (optional).

  • The number of days per year is taken from the production calendar, 20 vacation days are subtracted, and the remainder is divided by the number of months.


The result: (247-20)/12 = 18.9. That's how many days the employee works on average per month.


Based on the fact that the standard working day of 8 hours. Here we need to understand how much money is spent to pay the staff for one hour of product development. In addition to developers, the process involves testers, designers, implementation department.


The ratio of specialists' salaries:


  • testers get 50% of developers' salaries;

  • the implementation department gets the same as the developers;

  • the designers get 75% of the developers' salaries.

  • The developers' efforts are distributed as follows: 2.4 hours (on average) - code maintenance, 5.6 hours - development. The testers spend the same 5.6 hours on development. Designers and implementation department spend a full working day - 8 hours - on start and finish development.

System integration

Data integration and migration requirements also drive software development costs. Currently, most applications have integration features to connect to third-party systems, including cards, ERP / CRM, payment gateway, etc. Which are not always easy to develop. etc., which are not always easy to develop. Consequently, software development costs can increase.


Similarly, some software products or applications require data transfer functions to transfer information. Meeting this requirement can take a lot of time and effort, especially if it involves integrating a lot of existing data into the new system or making some significant adjustments.


Development team

The cost of software development is also affected by the number of people working on your project. It's relatively easy to understand that the time and effort of each project manager, developer, UI / UX designer, and others involved costs money.


When it comes to the cost of software development, you should also consider the type of team you have. Regardless of which software development methods you choose: in-house, offshoring, or outsourcing, it will affect the project costs. For example, outsourcing may be more expensive, but it ensures the quality of the software product.


Tips for estimating software development costs

Having figured out some of the factors that affect the price of a mobile app or web site, you need to know how to estimate it. With this in mind, we will give you some tips to have an accurate software development cost estimate.


#1 To start with, you can have a face-to-face meeting where everyone responsible, including clients, should discuss the purpose of the software and its main features at a high level. Your team can then decipher these high-level customer requirements and break them down into core functions.


#2 The next step is to provide your customer with an implementation plan to review. When he/she agrees, you can break down the requirements into smaller steps, each with a list of specific functions and timelines. After this detailed analysis, you can provide your client with a fixed estimate of time and cost.


You must remember to make sure that your team meets the deadlines and that the cost of software development does not exceed what you have too calculated. In addition, you, as the customer, should keep track of the project stage, know how a particular software product will be delivered and what features it will have.


Template for estimating the cost of software development

Having a lot of practical experience in software development projects, we think that you will find it easier to refer to software development cost estimation templates if you are not sure what cost factors to consider. Let's take a close look at our pie chart below.


Cost allocation for software development


As you can see from the diagram, there are four main cost components in software development projects. Each of them is critical to the success of any software project, but they account for a different proportion of total costs. Here's a rough breakdown of the costs of these factors:


Total cost of software development = 63% development + 15% project management + 15% quality assurance + 7% UI / UX design


Now you must remember that these simple estimates are not always true for every project. The actual cost of a software development project can be very different from this cost breakdown, depending on the nature of each project and its specific requirements.


The cost of software development: frequently asked questions

Q: Is custom software development expensive?


A: In general, it's not cheap when it comes to a custom software development project. Many factors affect the cost of custom software development, such as platforms, features needed, time spent, complexity, etc. 


Q: Do I have to have the full amount all at once?


A: No, of course not. As for payment terms, you can usually pay according to certain phases of your project, such as upfront payment, further payments during the product development cycle, etc. For a medium-sized software development project, you should usually pay for 4-5 stages.


Q: Which company should I choose for software development?


A: If you have an original software development project in mind, you can contact ERP solutions. But otherwise, this choice depends on many conditions. I would advise you to read more about it in this article.

Bottom line on software development costs

In a nutshell, you can consider factors such as type of software, level of complexity, hiring options, etc., Refer to our tips above or contact us for free support to determine how much more accurate software development costs. Hopefully, this post will help you better estimate the cost of software development to keep your project running smoothly.


I would also like to mention the service ERP solutions, because for each incoming client a personalized quote and "mini" terms of reference are prepared to estimate the cost of software development within one day. From this document you can get a maximum preliminary understanding of your project and also a personal manager who will explain and advise you on all questions. You can fill out an application form here


Ways to reduce the cost of the project

The first and easiest is to reduce the volume. You don't have to do all the modules on the project at once. Make the most important ones and run the system. This will speed up the implementation process and definitely reduce the budget for the first version of the project. Next, when things are better with the budget, you can invest in the project again.


The next thing is to reduce entropy. In simple terms, you need to detail the project's terms of reference as much as possible. To do this, you usually use terms of reference (TOR). The less uncertainty in the project, the more accurately you can calculate the budget. Understand the developers, if something is fuzzy for them, they estimate with a margin, so as not to miss and not to work to their disadvantage. So if you give developers a more accurate job, you will get a more accurate estimate. It is very likely that it will be lower than the original estimate.


Another way to optimize the budget is to increase the time frame. The fewer people involved in a project, the fewer resources are spent on interaction. Your project can be written by 2 people in 6 months, or 6 people in 3.5 months. I'm not confused here - 6*2 <> 2*6. The more people, the more complicated the management, interaction, etc. And project timelines are not reduced in direct proportion. If you agree to wait, then the cost of the project is reduced by reducing the number of people on the project.


The easiest way to reduce project costs is to use off-the-shelf solutions. Always consider using an off-the-shelf solution first. If there is one and it suits you, feel free to try it. It is faster, cheaper and of higher quality. The only problem with this approach is that off-the-shelf solutions are difficult or impossible to develop. If you're not planning any special changes, that's fine. Or you can initially do the project on a template (a ready-made solution), and later try custom development of your portal.


"Gray" way to lower the cost of a project is to pressure, to squeeze a contractor. In the long run, this probably won't lead to anything good. However, it's important to understand vendor pricing. If you have given your vendor a very specific TOR, and he gives you a general budget figure without detailing, it makes sense to ask what is the basis for such a budget estimate. If there is no intelligible explanation, you pass.


How do we make a budget estimate?

First, we give an overall rough estimate of the project based on historical data (essentially an expert estimate of the project). If it suits the client, then we make a terms of reference (its cost is negotiated separately). Based on the terms of reference, count hours for all-all the work that covers the written terms of reference in the format of the minimum and maximum estimate in hours ("fork" project). Multiply by the standard hour, and we get a reasonable detailed estimate.


I think you already have enough knowledge how to reduce the cost of the project and actually reduce development costs. If you have not yet formalized your business idea in writing, we recommend creating a web project concept. This will help you and your contractors to present the future Internet project and its nuances more clearly.


6 Techniques for Estimating Project Time and Cost

In this short article, I want to put together examples of the most popular techniques to help estimate the scope of a project, make an upper-level estimate of time, and roughly calculate the budget. This will be an indicative rather than precise estimate, often needed when discussing a new initiative, the general framework of a project, and there are no formalized requirements yet.


So, below I will list 6 methods of timing and budget estimation, a combination of which will allow you to quickly weigh up a "new" project:


1. Expert Judgement.

This is actually the formation of an estimate with experts in a given required field. This can be a single guru, or you can bring in a group of several expert speakers.

The experts make their assumptions about the evaluation (timing or cost). After that, it is possible to average out all the suggestions, or it is possible to try to come to a unified decision in a discussion. Involving experts in the discussion of options, of course, is more effective and will give a more accurate, reasoned and tested estimate.

2. Three Point Estimation Method

One of the most common and simple methods. It first defines an optimistic (O = Optimistic), pessimistic (P = Pessimistic) and realistic/middle (M = Middle) estimate.

The values of P, M and O are determined expertly (in hours, days, $), for example, during the discussion within the project team. This is done by asking questions such as: "how long will the project take if everything goes well and there are no risks or problems?", "what could be the worst scenario and how much time/ effort will it take?", etc.

Then the P, M, and O values obtained are substituted into the formula: (O + 4 M + P) / 6

The result of the calculation gives an average estimate. This formula, on the one hand, allows taking into account possible positive and negative scenarios, and on the other hand, it "smoothes" their influence and obtains a more realistic assessment value.

3. Cost of Quality

Quite an interesting technique where you first estimate the time or budget only for the development of functionality, without taking into account errors and problems, as if you have an ideal software without defects. And then we estimate how much additional time and budget will be needed to deal with bugs and problems in reality, to bring the software closer to that very "ideal" state.

When estimating software quality assurance costs, such areas can be analyzed and taken into account:

  • Costs of defect prevention activities

  • Testing costs

  • Internal bug fixes

  • Repairing external integration issues

  • Software installation and customization costs based on real environment and data

4. Analogous Estimation

In this approach we can rely on past experience in solving similar tasks or projects. The main step here is to find possible analogies, to identify similar problems.

In order to find tasks which are familiar or similar to previous experience, we can decompose them. In my article Agile in IT: 8 methods of task decomposition, I gave examples of techniques which allow you to break a large project into constituent parts.

5. Parametric estimation and modeling (Parametric Model)

This is one of the most accurate and flexible methods of estimation. Its essence is to build parametric model-forecast based on past experience, available data and metrics, statistics.

In fact, a special mathematical model is built, which allows you to track how the final score changes depending on the initial parameters. This dependence can even be visualized. It will help to analyze the borders of deviation of a score from the average and see what can affect it.

6. Bottom-up Estimation

This method is similar to expert estimation only in this case the forecast is made not for the project as a whole but separately for its constituent tasks. How it looks: we gather expert opinion, for example, from experts in analysis, development, testing, support software. We sum up their estimates together, add the time spent on interaction, and generate a general forecast.

In other words, we gather the estimates piece by piece by figuring out how much time each of the participants of the software development process needs and bring everything together taking into account the additional risks.