Estimate project

How to Estimate a Software Project? A Detailed Guide from Designveloper

Software Development   -  

April 02, 2019

Table of Contents

To start every project with an outsourcing company, the very first action businesses need to do is to provide initial ideas, and key requirements so that the development company could conduct an estimation for your future products. But do you really know how to estimate a software project, what steps should be done, and how important this document is? Let’s dig into this topic with Designveloper to have a better insight into the estimation process.

Definition of Project Estimation

Project estimation is the activity of predicting core factors that are likely to affect the process such as:

  • Process size
  • The effort in person-month or person-hour
  • The project duration and milestones
  • Budget

The person who is in charge of this work will use all the very first inputs or requirements from his/her client for product estimations for the future project.

The Importance of Estimation When Developing a Product

Project Estimation
“A business needs estimations to plan and prepare its resources such as human, time and money.” Image: LinkedIn.

Do you know that one of the most common causes that make many projects fail is inaccurate estimations? A classic example you may already know is IBM – Queensland deal. In 2007, IBM pitched a crazy bid of $6 million to develop an application to administer payroll for Queensland’s health department. Shortly after that, the company faced a lot of hidden business obstacles and technical challenges. In the end, the application could not work properly and the cost for this project was 200 times higher than the estimation.

This case study has shown you how crucial an estimating activity is to software development companies and their clients.

In other words, a business needs estimations to plan and prepare its resources such as humans, time and money. Thus, when planning estimations, we are able to find risks, opportunities, and hidden obstacle which may happen during the process. The more detailed and insightful your estimations are the more chances that your budget and time plan fit the reality.

Furthermore, you may find it useful that estimations will help your team or you and your partners reach agreements and commitments about requirements, proposed functions, etc. easier.

On the other hand, you and your team are able to check if your soon-to-be outsourcing partner has enough knowledge and experience in technology. The team that is good often comes up with more detailed and comprehensive estimations because they have done numerous projects to master this. Designveloper is one of those experienced companies like that, right now you can try to estimate your idea with Designveloper here.

FURTHER READING:
1. An Overview of Project Management Services
2. 3 Types of Management Products You Should Know
3. 18 Software Project Management Methodologies for Software Development

How to Estimate a Software Project?

But first, let me introduce you to three steps that should be completed before hen starting the estimating process:

Step 1: Establish project estimation scopes and purposes

To run as an estimating process smoothly, not only must there be a baseline to measure all future possibilities but also every misunderstanding and contradiction should be cleared off. And how to achieve these? The answer is that all participants need to understand the scope and purposes of each estimation.

Step 2: Establish technical baselines, ground rules, and assumptions

It is essential to identify the functionality of project estimation. Nevertheless, if the requirement is too vague to define, you have to use your team’s ground rules and estimators’ assumptions to decide what elements are and are not included in the estimation. Furthermore, your team needs to establish assumptions frequently to match the development of the process.

Step 3: Collect data

Estimations always include a lot of uncertainty, that’s this activity happens to ensure a consistent estimation. Furthermore, these pieces of information will allow estimators to develop their own viable initial estimations.

FURTHER READING:
1. 10 Project Management Skills to Succeed at Work
2. The Importance of Scrum to a software product
3. 10 Best Practices in Software Project Management in 2022

There Are Various Methods of Estimation

After collecting and establishing the base, let’s choose one of these approaches to carry out your estimation.

First, we will talk about some common methods:

1. Expert judgment

Expert judgment. Image: rubygarage.org.
Expert judgment. Image: rubygarage.org.

What is it?

A study conducted by ACAPS in 2017 stated: “When experts give their opinions in a context of decision-making, these become expert judgments.” In other words, it is a process of one person or a group of people who have knowledge of the domain making predictions based on their experience or a particular set of criteria. Expert judgment performs its benefit across industries such as financing, marketing, and especially the technology industry.

Upsides

it only takes us just a short while to produce estimations. Moreover, this method requires few resources (time and money, etc.) and can be precise like any other expensive method.

Downsides

There are many benefits resulting from using Expert Judgment to estimate a project. However, lots of disadvantages come along with this one too. Sometimes, experts don’t have clear evidence-based reasons to support their opinions as well as estimations. Nevertheless, their judgments may be affected by bias (personal experience, time pressure, etc.). That’s why expert judgment is also a risky method to use.

A variant of expert judgment is Analogous Estimation

This technique uses historical data from a similar job in the past to estimate analogous parameters for a future project. Some of the parameters used in this method are scope, cost, and duration.

2. COCOMO (Formal estimation model)

What is it?

Constructive Cost Model or CoCoMo is a software estimation model developed by Barry W. Boehm. This is a procedural model used to predict the size, cost, effort, time, and quality of a project. There are three types of CoCoMo models: Basic CoCoMo Model, Intermediate CoCoMo Model, and Detailed CoCoMo Model. You can decide to choose one of these three based on the requirement of your project: how accurate and detailed the estimation must be.

Basic CoCoMo model

People come up with estimations through this model only based on project size (lines of code). Therefore, the basic model is the riskiest method to estimate a project.

Intermediate CoCoMo model

When it comes to this model, estimators will collect data like cost drivers and the size of the project. And of course, the intermediate model will produce more accurate estimations for your project.

Detailed CoCoMo model

Although the intermediate model of CoCoMo can resolve numerous issues compared to the basic one, there are still several limitations coming along as effort estimated inaccurately, and the need for cumbersome calculations when working on big projects. That’s where the detailed model will help you with. Detailed CoCoMo will apply various effort multipliers to each cost driver attribute. Meanwhile, the project is divided into smaller modules. After that, we will estimate the effort used to complete each module and sum them up.

Types of cost driver

This method used in intermediate and detailed models are Required Software Reliability, Database Size, Product Complexity, Execution Time Constraint, Main Storage Constraint, Virtual Machine Volatility, Computer Turnaround Time, Applications Experience, Programmer Capability, Virtual Machine Experience, Programming Language Experience, Modern Programming Practices, Use of Software Tools, Required Development Schedule.

3. Work breakdown structure (Combination-based estimation)

Work breakdown structure.
Work breakdown structure.

What is it?

According to Wikipedia, “A work-breakdown structure in project management and systems engineering, is a deliverable-oriented breakdown of a project into smaller components.” The component units in this method are deliverable, task and subtask. This tool helps you to estimate the detailed costs and time needed for a project. Furthermore, the Work breakdown structure also gives you an outline for schedule development and control.

Why WBS?

When a team starts discussing the estimation, all stakeholders will review and calculate them and come to agreements and commitments altogether. Thus, all team members will understand and be more responsible for the project. Furthermore, your estimations in terms of cost and schedule are more accurate when using the work breakdown structure method.

There are also some other methods to estimate your project:

  • Application of Parkinson’s Law
  • Estimation by complexity level of order
  • Estimation by team
  • Pricing to win

4. Some project estimation tips from Designveloper

Businesses must provide all the existing ideas, and requirements to the outsourcing company so that they will have a better picture of your plan. However, before sharing anything, you should make the outsourcing company sign a non-disclosure agreement, this way your idea won’t be stolen by others.

Project Estimation
Businesses must provide all the existing ideas, and requirements to the outsourcing company so that they will have a better picture of your plan. Image: Harvard.
  • There should be a meeting between the two parties to discuss and define goals as well as commitments beforehand.
  • Estimators have to understand the functional and non-functional requirements.
  • Goal/requirement prioritization is important.
  • All assumptions must be cleared

What Is “Rough Estimation”?

A rough estimation is the very first level of every estimating process. It happens when the client sends out their requirements, most of the time, these requirements are vague and unclear. And then there comes the software development company. This company will use these inputs (ideas, timeframe, budget, etc.) to size and estimate the project.

As stated above, due to the lack of information, companies can only deliver approximate estimations. The accurate level would be from 25% to 75%. And obviously, the estimation will not include detailed insights and obstacles.

On the one hand, the reason for doing this is to help clients understand the scope, length, and range of work. On the other hand, clients will base on this estimation to decide if this company’s vision matches their requirements (budget, duration, and other resources).

Do You Like a Great Estimating Service? Do You Want It? Just Buy It!

Just like any other service, it’s hard to find an expert or a team of experts when it comes to project estimation. Sometimes, a free estimating service would hit you right in the eye. Well, sounds interesting, huh? But you must already know most of the time free equals inaccurate and money-wasted.
Great things take time and effort, and so does the estimation. If you and your team don’t have a good knowledge of technology, then here are some issues that may come across the process such as:

1. Hidden works

Though these issues come along with almost every project, an estimator who is lack experience sometimes cannot point them out or can only discover some of them.

2. Risky features

These requests seem easy but actually, it’s hard to compete with the current budget and timebox.

3. Red flags

Red flags could be some unethical, impractical requirements or requests that users cannot understand and use. Features that go out of technology trends or do not fit in a particular culture of an area may result in such issues too.

And that’s why an expert is highly recommended in this case, and we all know, that experts do not work for free.

Conclusion

In short, estimation is one of the most important things to prepare for your future project. Doing this right, chances are that your product will be on the top, or else, it goes down to hell as a disaster. And if you are looking for an expert to size and estimate your plan, Designveloper is the perfect choice for you. Fill in this form to share your ideas and we will contact you as soon as we conduct the estimation. Cheers to future success!

Also published on

Share post on

Insights worth keeping.
Get them weekly.

body

Subscribe

Enter your email to receive updates!

name name
Got an idea?
Realize it TODAY
body

Subscribe

Enter your email to receive updates!