Software‌ ‌Estimations‌: The Best Techniques

Every project, regardless of its scope, should be analyzed carefully in order to get a head around general ideas and the pitfalls of some approaches. Software estimation is a prediction of how long a project will take and how much it will cost. However, this prediction cannot be 100% accurate, and the process of estimation isn’t taught in YouTube tutorials or Stack Overflow threads. Actually, making accurate predictions is pretty hard. Therefore, we’ve rounded up a list of the best estimation methods you can use.

Why Software Estimates Are so Hard?

Oftentimes, software estimates are too optimistic in terms of time and budget, that is why they don’t stand up to unexpected disruptions and scope changes. Thus, they are not accurate. But what makes software estimates so hard? Back-end and front-end developers have shed light on this question and come up with a list of reasons.

  • Availability of only design layouts.

  • There is no animation description.

  • There are no specifications for different devices and screen sizes.

  • The client does not have a clear understanding of the final look of the product he wants.

  • The client does not understand the entire development process and mistakenly assumes that it is quick and easy to implement.

  • Idealistic views of developers’ capabilities.

  • An insufficiently detailed description of the task.

  • Lack of experience and business logic.

  • The project uses third-party services or technologies that the developers are not familiar with.

  • Project requirements change as it develops.

Software Development Life Cycle (SDLC)

Every year, software systems become more complex, therefore, it became necessary to formalize the software development process and create a unified model for its management. The software development life cycle was the first formal project management structure used to define milestones and tasks in the software development process. Usually, the software development life cycle can be divided into six stages, namely:

  • Planning

At this stage, business analysts, customer team, and sales representatives work in sync to perform a throughout research, define project scope, create a project roadmap, and make technical recommendations.

  • Analysis

Business analysts, project managers (PMs), technical experts, and the customer team set up project objectives, define project functional and design functionality, and find solutions. Besides, an approximate estimate is determined.

  • Design

UX and UI designers together with architects and PMs create a draft of system architecture and a product design (UX and UI). At this stage, the revaluation also takes place.

  • Implementation

Software engineers and project managers are engaged in a software process to create a fully functioning software product.

  • Testing

The development team works on a quality assurance process to ensure the final product meets all the requirements.

  • Maintenance

Software engineers and PMs deploy a product and make sure it is up-to-date.

Software Development Estimation Techniques

It’s extremely important to use various estimation techniques to ensure accurate estimation of the project. Klaus Nielsen in his article “Software Estimation using a Combination of Techniques” offers the following classification of the most common software engineering assessment techniques. We will focus on the main ones.

Analogy

This method is based on analogies with the previous projects. The cost of analogous projects is analyzed and compared with the current project, and the main differences (complexity, scale, inflation, etc.) are highlighted.

Pros
  • Accuracy is 50%

  • Used in the early stages of the project development

  • Doesn’t require specific knowledge

  • Makes it easy to collect data
Cons
  • Inaccurate estimates of the previous projects negatively affect the evaluation of the current project

  • A base of the estimated previous projects is needed

Expert Judgment

This technique means that experts who successfully completed similar projects share their knowledge, experience, and give a piece of advice to the current team.

Pros
  • Might be very accurate

  • Easy to organize
Cons
  • The level of experts’ experience and skills affects the quality of estimation

  • Opinions of different experts can vary greatly

Work Breakdown Structure (WBS)

This method involves dividing the project requirements into a list of features and outputs.

Pros
  • Allows you to determine the relationship between certain stages and results

  • Provides transparency and convenient monitoring

  • One of the best methods for estimating project time and costs
Cons
  • Poorly built WBS can lead to negative project outcomes

Constructive Cost Model (CoCoMo)

The key parameters of this model are efforts and schedule. The effort is the labor required to complete a specific task. The unit of measurement is person-months. The schedule is the amount of time it takes to complete the job. Time is proportional to the effort applied and is measured in months or weeks. This model fits into three classes of software projects:

  • Organic

A software project is organic if the team size is relatively small, and team members have enough experience in solving the outlined problem.

  • Semi-detached

A project is considered semi-detached if the size of an experienced team is medium, however, team members are less familiar with different software environments, and the project is more difficult to develop compared to organic projects.

  • Embedded

These projects are complex, they are developed with a set of strict constraints, they require the highest level of knowledge and experience from the developers. On top of that, such software requires a large team with high creativity.

Pros
  • Provides accurate details

  • Makes it easy to estimate the total cost of the project

  • Easy to implement with various factors
Cons
  • It doesn’t take various aspects into consideration, e.g. hardware issues, documentation, the personal turnover level, customer skills, and knowledge

Project Evaluation and Review Technique

This method implies the use of three ranges of estimates from three data points provided: “the best scenario”, “the worst scenario”, “the most likely scenario”.

Pros
  • Reduces the chance of an inflated estimate

  • Simple yet accurate
Cons
  • Should be carried out by different people for better precision

Wideband Delphi

This consensus-based estimation technique offers a high level of interaction between participants. The evaluation team consists of a project manager, a moderator, experts, and representatives of the development team (about 3-7 people). This team holds two meetings: a kickoff meeting and an estimation meeting. The team makes a list of tasks, discusses any doubts or problems they have, each team member revises their list of tasks and makes changes if necessary. Team members then combine the changes to the task estimates to obtain an overall project evaluation.

Pros
  • Effective for estimating time for implementing the task

  • Delivers reliable results

  • Simple and easy to implement

  • All assumptions are documented and agreed
Cons
  • Management support is needed

Planning poker

All team members take part in this process. Participants sit in a circle and assign values (from 0 to 100) to various tasks. In this case, 0 is given to the easiest task and 100 to the hardest. Team members brainstorm, decide together the value of each task, and accept the final evaluation of the project. The debate continues until consensus is reached.

Pros
  • Very accurate method
Cons
  • Slow

  • Requires participation from all team members

  • Works providing that the entire team shares a common vision of the project

How we approach it at Yojji

Yojji experts use agile techniques to estimate your project. Our team carefully analyzes your project taking your budget and timeline into consideration to understand the objectives, the scope of work, and find potential pain points. With the help of an analogy technique and statistical data, we predict the required effort based on the data of analogous projects. Besides, expert judgment is required if an in-house team isn’t experienced enough or isn’t familiar with the cutting-edge technologies used in the project.

We offer detailed research that gives you a better understanding of your software product and its final release. We use different approaches to ensure that our estimates are as accurate as possible.

Conclusion

Software estimations aren’t easy, and it may take you some time to determine the best practices and techniques for you. However, the more projects you complete, the more intuitive the process becomes, and over time you will learn to make accurate estimates. However, the right decision is to seek professional advice. Yojji experts will be happy to offer their services in estimating your project.

Have an idea?
Let’s work together
Download presentation
Contact person
Yevhen Piotrovskyi
info@yojji.io + 380 99 343 1041
Recent articles
All blog articles
Moving text Moving text Moving text Moving text
Moving text Moving text Moving text Moving text