# Effort Estimation and Scheduling

## Presentation on theme: "Effort Estimation and Scheduling"— Presentation transcript:

Effort Estimation and Scheduling

Introduction A proper effort estimation method is a requirement for the software project planning KPA of CMM level 2 Effort estimation usually takes place during the early stages of project It relies on a gut feeling or on previous experience The desired approach is to use some estimation model for obtaining effort estimates

Effort Estimation Models
The basic activity of estimation is to get the input in the form of some values of software and using these input values, estimate the effort of the project A software estimation model defines which values it needs and how these values are used to compute the effort Effort estimation model is a function that takes some inputs and outputs the effort estimate With the estimate of size, an estimate of the effort can be obtained, frequently by using some equations One approach for estimating the size is to decompose the system into smaller parts and estimate the size of the system based on the size of the parts

Estimation Model Effort Estimate Extract Estimation Model
Knowledge about s/w project Effort Estimate Extract Estimation Model Values of some characteristics

Top-Down & Bottom-Up Approaches
A common approach is to use some simple equation to obtain an estimate of the overall effort from the size Once the overall effort for the project is known, then the effort for the different phases or activities are determined as percentages of total effort. This approach is called top-down approach for estimation. In this strategy, the overall effort is first estimated from size, then broke down for the activities and the phases in the project. Some top-down models have been proposed. They are COCOMO model In bottom-up approach, the estimates are first obtained for the parts of the project, then the overall estimate is obtained

Building Estimation Models
Top-down estimation models are built from data taken from completed projects. For the completed projects, the actual size of the software and the actual effort expended are known These values are then used to build a size-based effort model that best fits the data When using these models to estimate effort for a project, the size of the software must initially be estimated from whatever information is available at that time

Bottom-Up Estimation At infosys, estimation takes place after analysis
For a projects that are well defined and that may follow different types of processes for which a little past data may be available, a bottom up approach is a better choice

Estimation Approach In infosys’s bottom-up approach, the software under development is first divided into major programs This steps occurs during requirement analysis or HLD of the system Each program unit is then classified as simple, medium or complex based on some criteria For each classification unit, some standard effort for coding the unit and self testing is identified Once the number of units in three categories of complexity are known, and the estimated build effort for each program of selected, then the total effort for the build phase of the project is known This method estimates how much time it will take to code the programs Once the effort for coding is known, the effort required for the other phases and activities of the project is determined as a percentage of the coding effort

Continue… From the PCB or PDB, the distribution of effort in a project is known This distribution is used to determine the effort for the other phases and activities From these estimates, total effort for the project is obtained The procedure for estimation includes the following steps: Identify the programs and classify them as simple, medium or complex If a project specific baseline exists, get the average build effort for S/M/C programs from the baseline If a project specific baseline does not exist, use project type, technology, language, and other attributes to look for similar projects in PDB, use data from these projects to define the build effort of S/M/C programs. If no similar project exists in PDB and no project specific baseline exists, use average build effort for S/M/C programs from PCB

Continue… Use project specific factors to further refine the build effort for S/M/C programs Get the total build effort using the build effort of S/M/C programs and counts for them Use the effort distribution data in PCB or similar projects in PDB to estimate the effort for other tasks and the total effort Refine the estimates based on project specific factors

Criteria for classification of program units
The basic scheme of classifying units is simple, medium and complex

Effectiveness of the Approach
The common way to analyze the effectiveness of an estimation approach is to see how the estimated effort compares with the actual effort Use of bottom-up method requires a way to capture accurate effort data from projects For completed projects, the PDB includes information on the be estimated effort as well as actual effort.

Top-Down Estimation Although many projects use the bottom-up estimation method, a project can also use a top-down approach for estimation This approach is frequently used for conversion projects in which the size of the existing system to be converted is known precisely An approach starts with an estimated size An overall approach for top down estimation involves the following steps: Get the estimate of the total size of software in function points Use the productivity data in PCB for similar process type or the productivity data in PDB for similar projects to fix the productivity level for the project Obtain the overall effort estimate from productivity and size estimates Use effort distribution data from PCB to estimate the effort for different phases

Continue… Refine the estimates
This approach also allows the estimates to be refined This acknowledges that each project is unique and may have some characteristics that do not exists other projects

Scheduling Scheduling can be broken down into two activities:
determining the overall schedule with major milestones Deciding the detailed schedule of various tasks

Overall scheduling Developing guidelines for scheduling is somewhat difficult than building guidelines for effort estimation Once the effort is known various schedules are possible depending upon the number of resources of the project Generally there are fewer people in the starting and ending phases with the maximum people during build phase During the build phase, the peak time size (PTS) for the project is usually achieved

Continue… Peak team size Manpower buildup design build test

Effectiveness of the approach
One way of checking the schedule estimates is to plot the actual schedule against the estimated schedule and see how close the points are to the 45-degree line If they all fall very close to 45 degree line then the scheduling approach is very “effective”

Detailed Scheduling Once the high level schedule is fixed, then the overall project duration and the major milestones are known As the effort required for the various phases is also known, the resource requirements for the various phases can be determined easily Once the milestones and the resources are fixed, then the detailed scheduling is set In setting the detailed schedule, the tasks in the overall schedule are broken down into small schedulable activities in a hierarchical manner For detailed scheduling features of MSP are used