Calculation of the terms and cost of projects: how is this done and is it possible to simplify the process?

If you have ever been involved in custom application development, you are probably familiar with the rather routine process of calculating the cost and timing of a project. And it’s okay if the project calculation was carried out only once, but often potential customers can not meet the budget, and begin to change product requirements on the go:
- Is it too expensive, what if we do without function X?
- * make a calculation * So much.
- It's still expensive, but how much will it cost to develop only for platform Y?
- * do recalculation * So much.
- Wow, that is, if we abandon platform Y, then we can make not only X, but also Z?
- * another recalculation * Alas, no.
- Sorry, then let's do it without Z, how much will it cost us?
Standard ways to simplify calculations, such as setting a fixed cost per day for an employee or company, usually lead to a loss of accuracy of the results and still do not save us from manual calculations.
But, like any other process characterized by the words “routine”, “accuracy” and “calculations”, such calculations are most likely to be automated. Let's check if this is true.
Settlement process
First of all, we should decide how the deadlines and the cost of projects are generally formed.
Step 1: Assessing Tasks
The first thing that needs to be done after studying the customer's requirements is to divide the project into functional parts (tasks) independent of each other. For example, if we are evaluating a mobile application for a standard online store, then the division may look something like this:
- Catalog
- Cart and payment of orders
- Store News
- Contacts
After that, the development team determines the time labor involved in the implementation of all these tasks:
| Task | UI / UX | Back end | Android | iOS |
|---|---|---|---|---|
| Catalog | 4 days | 2 days | 3 days | 4 days |
| Cart and payment of orders | 3 days | 5 days | 4 days | 5 days |
| Store News | 2 days | 2 days | 1 day | 2 days |
| Contacts | 1 day | 2 days | 2 days | 3 days |
Step 2: Calculation of project development timelines
No matter how hard the developers tried, but their estimate of the terms is extremely rarely true. So, first of all, starting from the complexity of the project and the experience of the team, we determine the insurance: the amount of extra time needed to resolve various unforeseen circumstances. Usually insurance looks like a certain factor (percentage), by which the total development period is extended.
Next, we should determine the sequence of stages of the work (workflow). Regardless of the methodology used (agile or waterfall), we need to know in which order our team performs various types of work. In the mobile application example we are considering, the order might look like this:

That is, first the back-end and the user interface are developed independently from each other, and when they are completed, parallel application programming for different platforms begins. After all stages are completed, the project will be considered completed.
Now we have all the necessary information and can start calculating the deadlines:
In the case of Waterfall: add up the amount of time for each type of work (UI / UX, Back-end, etc.), add insurance to them, and, given their priority, we find the longest work sequence, which, in fact, represents the total amount of time required for the implementation of the project.
In the case of Agile: Considering the order of work, we determine the time to implement each of the tasks (product catalog, news, etc.), after which, by summing them up and adding insurance, we get the deadline for the project.
Step 3: Calculate the cost of project development
The next thing we should get is the cost of the project, which is usually made up of two types of costs: the total monthly expenses (office rental, server fees, software licenses, etc.) and the salaries of the direct project executors. As for management salaries, they are more suitable for the first category, as they are a more “passive” expense item, and in some cases they can be optional (for example, if we are talking about a small team of freelancers).
“Total monthly expenses” are calculated very simply: divide their amount by the average number of days in a month and multiply by the number of calendar days required for the implementation of the project.
The calculation of expenses for the salaries of performers depends on the development methodology used:
In the case of Waterfall:for each employee we divide the monthly salary by the average number of working days in a month and multiply the result by the number of working days necessary to implement the work phase for which he is responsible; at the end we summarize all payments.
In the case of Agile: for each employee we divide the salary by the average number of working days in a month and multiply it by the number of working days necessary for the implementation of the entire project, at the end we summarize the results.
Now, knowing the cost of the project (payments to contractors + total costs), we can get the final cost by adding a couple more things to it:
1. Profit:everything is quite simple here, we either add the desired percentage of the cost of the project, or add the appropriate item to the “total costs” (if we want to receive a fixed monthly income).
2. Taxes: everyone considers them a little in their own way in connection with the variety of tax systems
3. Commission of the sales manager: depends on your terms of cooperation, if you pay a percentage of the transaction, then this is a percentage of the total cost, profits and taxes, and if you pay a percentage of profits, then, obviously, consider it as a percentage of the pledged profit obtained in the first paragraph.
So, now we have the final cost of the project. But what if the client, upon hearing the result, asks us: “What if we do it without X?”.
Automation Computing
Is it possible to develop an application that would perform such calculations automatically? Having familiarized ourselves with the calculation process, we can now say that yes, it is possible, but not without a couple of nuances. And the first of them is the calculation of the tax part.
Taking into account all possible taxation options in the calculations requires not only significant labor costs for development, but also for constant support of the formulas in the current state. There are several options for solving the problem: either we sacrifice the accuracy of the calculations and consider taxes as a percentage of the project cost, or we significantly complicate the calculation system, adding the possibility of manual modification.
The next nuance is a way to safely store information about all expenses, salaries and projects of the company. There are also several possible options:
- We store data on third-party application servers (SaaS). Quick and convenient, but requires trust in the owners of the service.
- We deploy the application on our own servers. This option requires labor to configure and maintain the application, but allows you to independently control data security. Additionally, you can make the application accessible only from your own infrastructure, but this deprives certain amenities, such as the ability to access calculations from a personal phone outside the office.
- The implementation of the program for calculations in the form of an independent desktop application that stores all the data in a local file. This case does not imply any configuration of the environment and allows you to independently control data security, sacrificing the ability to share data.
Nevertheless, despite the above problems, automation of the settlement process is still possible, and it brings with it a number of advantages:
- The life of an employee engaged in calculations will become a little easier
- Clients will be able to receive recalculations in a matter of seconds
- The development cost will become a bit more fair and competitive
Today, there are very few solutions for this type of calculation, and all of them have a fairly high entry threshold due to their monstrosity. In this regard, I would like to ask a question to the Habr audience: how are the calculations performed in your company?
Only registered users can participate in the survey. Please come in.
What do you use to calculate the timing and cost of projects?
- 33.3% Pen, notebook and calculator 17
- 41.1% Google Sheets, Microsoft Excel 21
- 13.7% Own decision 7
- 11.7% Specialized application or service 6