Project Estimation: An Important Step before Starting Every Software Project
To start every project with an outsourcing company, the very first action businesses need to do is providing initial ideas, key requirements so that the development company could conduct an estimation for your future products. But do you really know what a project estimation includes, 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
The person who is in charge of this work will use all the very first inputs or requirements from his/her client to product estimations for the future project.
The importance of estimation when developing a product
“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 failed 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 human, 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 partners reach agreements and commitment 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.
There are various methods of estimation
But first, let me introduce you three steps that should be completed before hen starting the estimating process:
– Step 1: Establish 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 contradictory should be cleared off. And how to achieve these? The answer is that all participants need to understand scopes and purposes of each estimation.
– Step 2: Establish technical baselines, ground rules, and assumptions. It is essential to identify the functionality of the estimation. Nevertheless, if the requirement is too vague to define, you have to use your team’s ground rules and estimators’ assumption to decide what elements are and are not included in the estimation. Furthermore, your team needs to establish assumptions frequently to match with 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.
After collecting and establish the base, let’s choose one of these approaches to carry out your estimation.
First, we will talk about some common methods:
Expert judgment. Image: rubygarage.org.
– What is it? In a study conducted by ACAPS in 2017 has 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 technical industry.
– Upsides: it only takes us just a short while to produce estimations. Moreover, this method requires little resources (time and money, etc.) and can be precise like any other expensive methods.
– Downsides: There are many benefits resulted by 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 the future project. Some of the parameters used in this method are scope, cost, and duration.
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 size, cost, effort, time and quality of a project. There are three types of CoCoMo model: Basic CoCoMo Model, Intermediate CoCoMo Model, 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 like effort estimated inaccurately, and the need for cumbersome calculations when working with 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 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.
Work breakdown structure (Combination-based estimation)
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 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 commitment 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 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
As a bonus, Designveloper wants to give you some tips to come up with more precise estimations:
– Businesses must provide all the existing ideas, 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.
Businesses must provide all the existing ideas, 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 nonfunctional requirements.
– Goal/requirement prioritization is important.
– All assumptions must be cleared
What is “rough estimation”?
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 with their requirements (budget, duration, and other resources).
You like a great estimating service? You want it? Just buy it!
Just like any other services, 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 to inaccurate and money-wasted.
Great things take time and effort, so does the estimation. If you and your team don’t have a good knowledge of technology, then here are some issues may come across the process such as:
– Hidden works. Though these issues come along with almost every project, an estimator who is lack of experience sometimes cannot point them out or can only discover some of it.
– Risky features. These requests seem easy but actually, it’s hard to complete with the current budget and timebox.
– Red flags. Red flags could be some unethical, impractical requirements or requests that users cannot understand and use. Features 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, experts do not work for free.
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 a 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 the future successful!