How to estimate a software project in man-hours? It is the first question you need to ask yourself when you start product development. Properly estimated time and budget will result in great relationships between customers and service providers, a positive working environment, and also the transparency that people really appreciate. To perform an accurate man-hours estimation, you need to know what assessment techniques and methodologies there are. If you’re curious to find out answers to these questions, keep reading!
Cost estimation is the basis of any software development process. Estimation can be thrown randomly to advance quickly, but it will most likely appear inaccurate and probably even lead to a project failure in the long run. There is a long process that leads to proper and accurate estimates. Besides costs, another critical aspect you need to take into account is timeframes. So, how long would it take to deliver the product? Discussing how to estimate a software project, we should say that the cost is most often calculated in man-hours, which we will discuss later in detail. So, in this article, we will answer the most essential questions regarding software development project estimation. How to estimate a software project in man-hours? How to perform total man-hours calculation?
List of The Contents
- Main steps of project cost estimation
- What are man-hours and man-days
- How to estimate software project in man-hours
- Top 4 tools for the project estimation
- Software estimation example
HOW TO ESTIMATE A SOFTWARE PROJECT: MAIN STEPS
It is essential to understand the scope of work that the team will need to perform to provide the proper forecasts for software development. We’ll describe the winning methodologies and approaches for a project estimation later in the article. For now, we’ll name the main stages of estimation and describe them shortly. And if you want to remind yourself of some basics of how the estimation works, check the article via the link below.
Want to know more about software project estimation?
What specialists do the software development team consist of? How do their salaries affect the whole project’s cost? How to choose the most appropriate business model? In the article, you’ll find answers to all these questions, and also, see a detailed software estimation example.
For now, let’s just summarize the main steps that the software estimation process usually includes:
- Understanding the scope of work
- Defining the overall project complexity
- Dividing the complex projects into simple, manageable tasks for an easier estimation
- Estimating tasks one by one, based on team’s skills and experience
Of course, there are numerous smaller steps, but these ones are the basis of any software project estimation. The most crucial point is to break the project into small units, which are easier to estimate. For example, you need to name the price for securing an application. Even if you ask developers, and analyze the previous projects, you may fail to name a proper number. However, you can approach it another way and ask yourself “How long would it take for developers to develop an API”, and “How long would they need to perform an LDAP authentication?” Most likely that in the second case, the cost and time estimation will be correct and easily met in the future.
Now, let’s proceed to the main article topic, which is man-hours. When it comes to assessing the project, it is vital to give an estimation in man-hours. It is the most accurate measure that can be provided because it includes the main variables in any project – time and people’s effort. So, how to calculate man-hours for a project? Why is it important to use exactly a “man-hours” model? And what is man-hour? Let’s find out the answers!
UNDERSTANDING MAN-HOURS ESTIMATION
Paying enough attention to the project’s estimation is crucial. It not only ensures good relationships with customers but provides the development team with transparency about the budget and timeframes. So, how can man-hours help us with it? We can easily translate the time estimation into a budget once we know how to calculate man-hour. Then, after analyzing the dependencies of all tasks, we can compute the time it will take to complete the project.
So what is man-hour? A man-hour defines the amount of work done by an average IT specialist during one hour worked without any interruption. There are two concepts in man-hour:
- Man – the specialist that performs a task (developer, tester, etc.)
- Hour – 60 minutes of continuous work
We should also mention that defining and differentiating each team member is essential for making a proper man-hours estimation. As you know, the salary of a senior backend developer and a middle QA engineer differ significantly. That’s why, if we take some average person-hours instead of being specific, the estimation would not be relevant. So, when you decide to calculate man-hours for a project, you should remember that each estimate needs to be related to a particular “man”.
Curious about the average development rates?
In our global software development rates, we’ve described how the specialists’ salaries vary according to world regions and seniority levels. You’ll find very helpful and interesting infographics there that will help you better understand the salary levels.
As for the “hour” part of a man-hours concept, it is crucial to consider the absence of interruption while estimating. So, for example, an hour spread over two days will still be counted as one hour. That’s why resource optimization should be done during planning to avoid discontinuity as much as possible. We will see in the following section how to estimate hours for a project.
Now that we have seen the two critical components of time estimation, which are man and hour, it is important to highlight that having an accurate estimation of both “man” and “hour” parts is essential to perform the proper project estimation. Because making a mistake in one part of the “man-hours” concept may lead to unexpected assessment results.
To use efficiently the hour worked by the specialist involved in software development, it is essential to understand what may prevent him from continuously working on his task. Does he rely on other team members somehow? Does he need to wait for some resources, or features to be completed? A deep understanding of the project’s dependencies and anticipation of resources needed are ingredients of good planning. Good planning means scheduling a task at its favourable moment, defining precisely the precedence constraints, availability of all team members involved in a specific task, etc. For successful planning, you should address the question of how to estimate a software project in man-hours efficiently.
As we’ve already mentioned, the salaries of different team members may considerably differ. However, we should also say that the level of one’s proficiency is also extremely important. A junior developer will need time to figure out how to complete a task. An intermediate specialist will implement it faster. Meanwhile, a senior-level developer will handle the task more effectively. While performing man-hours estimation, it’s essential to refer to an average, middle-level specialist. Taking middle-level developers as the basis of software estimation will help to figure out the team’s average velocity.
Besides, defining intermediate levels can also be difficult. Even intermediate developers can have disparate velocity. This is why sometimes basing estimation on a general team’s velocity can be an excellent idea. In this case, you should know in advance what team members will be involved.
Man-hours in some situations may be changed to man-days, for example. Some companies find it easier to perform calculations in days rather than hours. However, the concept doesn’t change much depending on this. So, now you know the basics of the person-hour concept, and know the man-hours estimation and man-days calculation work.
HOW TO ESTIMATE A SOFTWARE PROJECT IN MAN-HOURS: THE BEST ESTIMATION TECHNIQUES
Now that we have gained more understanding of man-hours estimation and what it represents, we are going to see how to estimate a software project in man-hours step-by-step.
Each project implies that a team follows some methodologies and practices that help them achieve better results. In software development, the Agile methodology has proven itself to be one of the best candidates. Agile encourages the development team’s involvement at its design stage and during the estimation of the loads.
What other methodologies are there?
What is SDLC models? What pros and cons do each of them have? How to choose the most appropriate one exactly for your project? Read to find out.
Before we describe how to estimate hours for a software project, and find out about the winning estimation techniques, let’s define some concepts we need to know:
- Backlog. A backlog is a group of tasks that must be performed to complete a project.
- User story. A user story is a simple unit of tasks. It defines what exactly needs to be done 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 will see how to estimate hours for a software project and perform total man-hours calculations.
Planning Poker, Or Scrum Poker
A planning poker is a practice introduced by the 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 the backlog.
The term poker may suggest gambling or a random estimation of a task. Actually, during planning poker, those who deeply understand the project, will give their input on every task and discuss when assessments are wildly divergent.
Each development team member is given a card to express their perception of the complexity of each task. Cards contain the value: 1, 2, 3, 5, 8, 13. 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 values: the coffee card, the question mark card, and the infinity card.
Developers will first agree on the most straightforward user story in the backlog, which will serve as a reference and will be affected by a story point value 1. Numbers closer to the value one express simple user stories, 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. The question mark is used when the developer doesn’t know how to estimate the user story.
During a planning poker, tasks are not yet measured in man-hour or man-day; it is estimated in terms of story points. Story points are computed using the average estimation given by the developers. At the end of the planning, we will have the assessment of the whole project in terms of story points.
From a story point of view, how to calculate man-hours for a project? The most straightforward user story will be estimated in person-hours so that when all the stories for the whole project will have their story points, man-hours for all the user stories in the backlog will be computed as simple as the multiplication of the total points with the man-hour value of a story point. As a result, a total man-hours calculation will be performed, and the team will be ready to name the accurate time and budget estimates.
Another approach implies performing the assessment based on similar projects. According to this methodology, the team takes the actual man-hours that were required to complete a previous similar project, and adapts them to the context of a new software solution. This way to calculate man-hours for a project is definitely the fastest. However, if you want the estimates to be accurate, you’ll need to put some effort into it. At this point, it is important to evaluate the complexity compared to the past projects taken as references. Once the complexity is defined, the man-hours needed to complete similar projects will be multiplied by the complexity factor. That’s how you’ll get the total man-hours calculation done.
If the person trying to do the assessment has not had the required background or knowledge to perform the analysis or is unfamiliar with how to estimate hours for a project (which happens quite often), he can ask an external team for help. Though it may seem like an unnecessary expenditure, it will likely save you a lot of time, and provide better results. Since it is vital for clients and software service providers to have an accurate estimation, consider reaching out to an external team if you don’t have enough qualifications.
There can be two different phases during which cost estimation is computed: the first happens during the initial discussion with a client as soon as the requirements are gathered. Then, after having a global idea of their needs, we do the first estimate. This estimate is refined at a later stage when the development phase starts, and we have a complete understanding of what will be implemented. The more detailed the requirement is, the more accurate the estimate is. Besides, it leads to a more detailed technical specification.
TOP 4 TOOLS FOR THE PROJECT ESTIMATION
Now that we know how to estimate a software project in man-hours, we’ll provide some tools that you may consider while deciding how to estimate a software project. We have already mentioned that it is important to break the complex project. That’s why it will be the main feature of the tools presented on the list below.
- Jira, or any other Agile/Scrum tool. With Jira, you can do man-days calculation or estimate a software project in man-hours with the planning poker technique in the first place. We first estimate story points and then transform them into man-hours. Since the estimation process in software development is evolutionary, past projects can be used to refine the estimation process. The time tracker is an excellent feature in Jira. Time tracking is made more accessible and accurate since we can start tracking as soon as we start a task and pause whenever we are waiting for resources. Each time the task is affected by another person, the time tracker is paused until the person is acting on the task. Tracking time will help refine future project estimation and help us compare actual time spent and estimation.
- Cost Estimation Module for Easy Redmine. Easy Redmine is one of the most popular and widely used add-ons for the Redmine. Worth to say that many users have never worked with pure Redmine apart from this redesigned version. Easy Redmine has a straightforward yet effective and easy-to-use Cost Estimation feature, which allows users to assign a cost or hourly rate for each task and thus see the final cost of each action performed by the development team.
- Ecosys Projects. it is a highly configurable excel-like solution for man-hours estimation. The most important feature here is the possibility of tracking changes in the estimation tools. Changes are versioned easily. It can help you estimate a software project in man-hours and provide the corresponding cost in other types of measures like currency.
- Microsoft Excel. Excel is widely used for the estimation process in software development. Excel can perform straightforward calculations to a complicated formula. Since the estimation process can be improved based on experience, Excel estimation tools can be updated with lessons learned from past projects. You can start with a very simple sheet with a few columns: one for tasks to estimate and one for each actor involved. You put the estimated man-hours needed by the corresponding actor for each task. You can start with an existing template and adapt it to your needs instead of starting from scratch.
For every tool used to perform estimation, it is vital to remember that these tools will make the estimation process more accessible. They won’t do the estimation for us.
SOFTWARE ESTIMATION EXAMPLE
To illustrate how to estimate a software project, let’s take the login page of Hubspot. Let’s apply the estimation techniques to this simple yet comprehensive use case.
First of all, let’s divide the login page into some smaller sections to define the smaller tasks. To break down this feature, we will identify all use cases, and after, identify the tasks we need to achieve to receive the working functionality. Once we have all the simple tasks required to complete authentication, we will copy and paste these tasks into excel (see table below). Based on previous experience estimating authentication, we are going to perform a man-hours estimation for each of these tasks.
Let’s identify all possible use cases:
- The user clicks on the sign-in button and gets redirected to a login page
- The user has entered valid credentials and gets redirected to another page
- The user has entered invalid credentials and gets redirected to the wrong credential page
- The user can log in using a Gmail account
- The user has forgotten his password and asks to reset his password
From these use cases, we can define the tasks needed to allow users to have access to these features. They are:
- Design the login page so that the user can access it
- Authenticate the user against a database: check that the user has permission to access the page
- Redirect the user according to the authentication result: if the user is authorized to access the page, he is redirected to an authenticated page and an error page
- Authenticate the user using an existing Gmail account
Let’s evaluate these tasks using the man-hour estimation approach.
|Tasks||Project Manager||Developer||QA engineer|
|Design the login page||2||4||–|
|Authenticate the user against a database||–||2||1|
|Handle redirection for successful and failed authentication||–||1||0.5|
|Authenticate using Gmail account||–||1||0.5|
After estimation, this login page will require: 13.25 man-hours: 2 man-hour project manager time, 9 man-hours developers time and 2.25 man-hour QA engineer time.
Even though performing highly accurate estimates may be time-consuming, it’s an essential ingredient for the success of software development. That’s why it is crucial to understand how to estimate a software project in man-hours. When software development time estimation is not done correctly, it can lead to frustration for both clients and the development team. Developers may be frustrated because they may have to do lots of overtime to deliver the software at the date agreed with the client. On the other hand, the client may be frustrated if the delivery date is constantly postponed or late, or there is a need to review the budget after the implementation has started.
Sometimes the amount of work is quite large, so it may be useful to find out how to calculate man-days for a project. In such a case, a man-day represents the amount of work done during a workday. A work day can be defined as cumulative eight hours of uninterrupted work.
Whether the time estimation is measured with man-hour or man-day, it is essential to invest time and adopt the proper method to have a time estimate as accurate as possible. Also, involving the development team during the estimation phase can be very useful since they have a better understanding of how to build software, plus they will be more committed to respecting the agreed deadlines since estimation was done based on their input.
Have additional questions on how to estimate a software project in man-hours?
Leave your questions via clicking the “Contact us” button below and share your opinion on what method you prefer the most? Existek is a professional offshore software development company that has extensive experience in performing man-hours estimations. If you need any help, don’t hesitate to drop us a line, and you’ll get a response shortly.