Effort Estimation Technique – Part 1

Effort estimation is one of the most important aspects of project implementation irrespective of the methodology in which the project will be implemented. If we have understood the scope in its discrete functionalities and are able to arrive with a good Work-Breakdown Structure [WBS] it would be easy to estimate the time taken to implement requirements. Other factors that would affect a realistic estimation are non-functional requirements such as:

  • Performance
  • Security Related issues
  • Rich UI Requirements (Technical Complexities)
  • Environment
  • Resource availability and so forth

These factors will often creep up at the time of actual implantation of the application design and practice.  Hence it is important to consider these factors along with the actual complexity of the Function Points.

Software industries follow several approaches for effort estimations and among them the most widely used are given below:

Estimation approach

Category

Examples of support of implementation of estimation approach

Analogy-based estimation Formal estimation model ANGEL, Weighted Micro Function Points
WBS based (bottom up) estimation Expert estimation Project Management Software, company specific activity templates
Parametric models Formal estimation model COCOMO, SLIM , True Planning for Software
Size-based estimation models Formal estimation model Function Point Analysis, Use Case Analysis , Story Points –Based estimation (Agile Based Development)

Size-based estimation model has more accuracy while estimating the efforts, while others are very specific to the organization and may not yield accurate results. However, these can be applied at the initial estimations such as ball-park estimations.

USE CASE BASED ESTIMATION IS DISCUSSED BELOW:

A Use-Case is a series of related interactions between a user and a system that enables the user to achieve a goal.

Use-Cases are a way to capture functional requirements of a system. The user of the system is referred to as an ‘Actor’. Use-Cases are fundamentally in text form.

Use-Case Points – Definition

Use-Case Points (UCP) is a software estimation technique used to measure the software size with use cases. The concept of UCP is similar to FPs.

The number of UCPs in a project is based on the following:

  • The number and complexity of the use cases in the system.
  • The number and complexity of the actors on the system.
  • Various non-functional requirements (such as portability, performance, maintainability) that are not written as use cases.
  • The environment in which the project will be developed (such as the language, the team’s motivation, etc.)

Estimation with UCPs requires all use cases to be written with a goal and at approximately the same level, giving the same amount of detail. Hence, before estimation, the project team should ensure they have written their use cases with defined goals and at detailed level. Use case is normally completed within a single session and after the goal is achieved, the user may go on to some other activity.

Don’t miss my next two blogs where I will elaborate more on the topic of `Effort Estimation’.

Author

  • Seshagiri Deshpande works as Technical Manager with Trigent Software. With over 18 years of experience in the software industry, he began his career as an instructor with APTECH Pvt. Ltd. Over the years he has worked with AP State Technology Services, Satyam Computers, Aztec Software, Ideasurge and CrimsonLogic and been continually recognized for his commitment and hard work. In his spare time he listens to music, surfs the internet and keep himself updated with the latest technologies.