A recently completed project inspired me to write this article. As in any other project, there were mistakes (including when assessing the software cost estimate), as well as problems, interesting solutions, and, in spite of everything, the fighting spirit of the team made it possible to finish the project on time and get a long-awaited vacation. All this is worth a separate article. But the main thing is that we gained an invaluable experience on the basis of which this article was created.
Very often we make mistakes when it comes to the costs of developing software. It seems like it happens because of the little things that appear during the development of the project, but in fact, we could have discovered and taken them into account in advance.
The article contains simple and, at the same time, useful recommendations as well as a method for calculating software costs. This will come in handy to a project manager, architect, system analyst, IT solution seller, and everyone else involved in estimating software development cost of fixed format.
We will only focus on how to calculate software development cost, estimating the duration is a completely different story.
I am going to describe my personal experience of how to estimate the cost of a software project, and, of course, you can have other situations and your own methods.
The vast majority of projects on the market are projects completed based on a fixed price cooperation (when the budget and terms are planned in advance, at the stage of sealing the deal). When evaluating a project, the team, besides standard risks and problems, must take into account the “modern and effective” approach of customers who want to combine:
But, despite the misunderstanding of what and how should be implemented, clients mercilessly “cut” the tasks of the project plan (in order to reduce the cost), including the functions that the team will still have to perform.
In case of unsuccessful project management (if the team follows the client’s lead), the team easily passes the deadlines and budget, because the contract is signed and the budget is agreed upon, thus they just work at a loss.
It is clear that the client is the only one to blame. The matter is that the estimated software project cost is often figured out without sufficient analysis of requirements, tasks are insufficiently and incorrectly scheduled, and very often, only programming is included in the estimate, while testing and management don’t get proper attention.
When signing a contract, the sellers meet the client halfway by lowering the price and the team, represented by the project manager, doesn’t defend its position firmly enough. At the same time, all participants are focused on the result – each participant sees/foresees the problem and informs the manager.
There is also another factor – the variety of projects, systems and technologies, and the lack of qualified specialists. This means that when planning a project, the architect or project manager may not take into account that they can get a specialist on the team who has not previously performed such tasks or somebody with insufficient qualifications. Surely, in this case, the performance will be lower than expected.
First, look at the problems and try to find a solution.
The client wants to know the exact figures for the cost and deadline of the project before signing the contract.
The client wants to see a more or less detailed list of works so that when agreeing on the cost of the project, he/she cuts in the most inappropriate things.
In the workflow plan, it is important to highlight all tasks, not just the “visible” ones. For instance, there are user requirements for viewing certain data. The team identified what tasks needed to be completed and estimated the total amount of work at 56 hours, breaking them down as follows:
But as the matter of fact, these tasks have basic functionality – creating tables in the database, storing procedures or views for selection, creating business objects, connecting them to the security module, connecting to the logging module, configuration, and so on.
What happens if the customer says: no, it’s taking too long. Let’s reduce and remove the grouping and sorting tasks (minus 32 hours). At the same time, the seller, who is discussing the work on the project, has nothing to say. On the other hand, the entire volume cannot be reached in 24 hours.
How to calculate software costs in such a situation? I recommend highlighting the basic functionality. In this case, this “Fetch data from the database” task takes, say, 28 hours, and the other tasks take 4 hours.
This will allow the seller to behave more correctly. By removing unnecessary features, there will still be sufficient development time.
A detailed analysis of the requirements, the composition of a technical task, and a more or less clear area of work on the project occur after the signing of the contract.
Almost until the middle of the project, the customer does not know what he/she wants (not to mention the stage of collecting requirements).
Demonstrations should be carried out not only for business clients but also for employees of other customer departments potentially involved in the project (system administrators, key users, security service, etc.)
This will allow receiving comments in the early stages, discuss problems, and allow the user to get used to the interface and functionality.
The client wants the team to be flexible about his/her wishes (changes, additions) and implement them within the project, and not within the framework of subsequent improvements. At the same time, the client absolutely doesn’t want to hear anything about the changes in the budget.
The client wants to see a lot of documentation on the system.
Solution: we include the cost of creating documentation in the software development cost calculator.
If the project team is formed anew, there is a risk that the qualifications of one or another specialist may be lower than expected.
Solution: when calculating how much does it cost to have software developed, planning tasks, and time for their implementation, it is necessary to focus on specialists at a level lower than expected to be involved in the project
IT technologies and tasks are becoming more and more complex, which makes it more difficult to identify the pitfalls of the selected technologies at the early project stages.
IT technologies and tasks are becoming more complex. Identifying the pitfalls of selected technologies is not an easy task. How to estimate software cost, where to start? In short:
To correctly estimate software costs, follow these rules:
Don`t forget to consider the following tasks:
At Diceus, we prefer employing well-tried-and-tested approaches – Work (or Project) Breakdown Structure (WBS) for dividing projects into milestones and elements and Critical Path Analysis (CPA) for sequencing tasks and activities. The convenience and efficiency of these approaches lies in breaking a big picture of the project down into smaller parts and components. Thus, you get to cover the whole project scope detail by detail, step by step, without missing any little things.
A CPA planning is based on WBS, meaning that the known project scope (terms, team composition, budget, etc.) must first be broken down into tasks, each with the respective number of hours required for completion. Everything should stay sorted.
First, use Work Breakdown structuring to put everything into shape:
Critical Path Analysis should take place based on the sorted out tasks. Basically, you need to go through each task and work hours attached to it and build the most critical sequence (the longest path of completion.
Based on that, you can make adjustments – prioritize some tasks over others, move some activities in front of others, and see where possible downtime would bring least harm. With such planning in hand, you’ll easily calculate the most realistic deadlines and project frames, including the earliest and latest, most optimal dates of project start and finish, healthy downtime, and deadlines.
Here’s how we do things when it comes to in-house handling of projects by DICEUS. Suppose, we need to create a new software feature that requires two specialists – Developer and QA Expert – to handle full-on frontend-backend development of an asset. Each specialist has the underlying stages to complete, including development, testing, deployment, review, etc.
We take our two specialists, assign the basic tasks to them, and define how many hours each would take to complete:
|Developer tasks||Hours||QA Expert tasks||Hours|
|Tech task breakdown||0,5 hrs||Specification review||1 hrs|
|Frontend||12 hrs||Test cases preparation||1 hrs|
|Backend||6 hrs||Test cases execution||6 hrs|
|Unit & integration testing||2 hrs||–|
|Code review||0,5 hrs||–|
|Code deployment||1 hrs||–|
|Total||22,5 hrs||Total||8 hrs|
All in all, we can see that the whole scope of work involving these two specialists would take approximately 30,5 hours. Always count the longest outcome possible to have back-up hours for unexpected situations. With this number of hours in hand, you can now easily calculate the cost of implementing an asset based on the rates you offer.
If you need to analyze a much more complex and multi-sided project with many features to be implemented, use the same scheme for every separate feature and activity.
Here you got an absolutely honest algorithm for calculating the costs of developing software. As you can see, we are not hiding anything and are not trying to make money where our competitors see the main source of income.
At DICEUS, everything is 100 percent honest and transparent. If you want to know how much does it cost to have software developed – write to chat, email or call us. Our manager is always ready to answer all questions and offer the most profitable solutions to any problems.