How to Calculate Man-Hours for The Software Project
Costs estimation is at the heart of the software development process. It is important for every business to have the ability to have an estimate for each project they have.
There is a long process that leads to cost estimation. Besides costs, there is another important aspect that needs to be taken into account:
how long would it take to deliver the product? When answering these questions, there are few things we need to understand: how do you calculate software?
How Does Software Development Project Estimation Work?
In order to make an accurate estimation and get how to provide estimates for software development, it is important to understand the scope of work. We have already explained this in a previous blog post. Let’s just sum up the main steps in few bullet points when going through estimation process.
- Understanding the scope of work.
- Understanding the overall complexity of the project
- Divide the whole complex projects into simple manageable tasks and therefore easy to estimate
- Based on experience, familiarity with the task and expertise; estimate these tasks one by one
Most of the project estimation processes start with these steps. The most important point is to break the project into small units, which are simpler to estimate.
How to Estimate a Software Project
It is much simpler to estimate how long would it take for an intermediate developer to develop an API to perform LDAP authentication for instance than to estimate time to secure an application.
Now that we have gained more understanding on man-hour at what it represents, we are going to see how to estimate a software project and especially how to estimate a software project in man-hours.
When implementing a software project, there are several methodologies and good practices that development team adopts.
Agile encourages the involvement of the development team at its design stage and during the estimation of the loads.
Before we browse some software development project estimation techniques, let’s define some concepts we need to better understand these techniques.
- Backlog: A backlog is a group of tasks that need to be completed in order to complete a project.
- User story: A user story is a simple unit of tasks, it defines what needs to be done in order to achieve a specific goal.
- Story points: A story point is a unit of measure that translates the amount of work needed to complete a user story.
With these definitions in mind, we are going to see how to provide estimates for software development.
Planning Poker or Scrum Poker
A planning poker is a practice introduced by Agile methodology. During a planning poker, when the project is broken down into stories and everything is put in the backlog, the development team comes together to discuss the time needed to complete the project based on stories in backlog.
The term poker may suggest gambling or a random estimation of a task. Actually, during a planning poker, those who are going to realize the project will give their input on every task and discuss when estimations are very divergent.
Cards contain the value: 1, 2, 3, 5, 8, 13, as they are akin to the Fibonacci suites, only we will have 20, 40 and 100 instead of 21, 34, 55, and three extra cards containing non-numeric value: the coffee card, the question mark card, and the infinity card.
Developers will first agree on the simplest user story in the backlog, which will serve as a reference and will be affected a story point value 1. Numbers that are closer to the value 1 express user stories that are simple and those that move away from 1 have a higher complexity. Infinity defines a very complex user story that has a complexity higher than 100.
Another approach consists of doing the estimation based on similar projects, the actual man-hours needed to complete them and adapt to the context of the software project to estimate.
At this point, it is important to evaluate the complexity compared to the past projects taken as references.
If the person who is trying to do the estimation has not the required background or knowledge to perform the estimation or is not familiar to how to estimate hours for a project, he can ask an external team, since it is important to have an accurate estimation.
Tools for the Estimation
Now that we are aware of how to estimate a software project in man-hours, we are going to browse some tools used during software development project estimation.
Even though, developing an accurate time estimates is time-consuming. It is an important ingredient for the success of software development so it is important to understand how to calculate software development cost.
Developers may be frustrated because they may have to do lots of overtime in order to deliver the software at the date agreed with the client.
On the other hand, the client may be frustrated as well if the delivery date is constantly postponed or late, or there is a constant need to review the budget after the implementation has started.