CPE 308 Estimation Process


Obtain historical data

Calculate total team hours on first project (from status reports)

Calculate total LOC on first project (suggest JD's LOC tool)

Compute team productivity rate (LOC/hr).  If no historical data is available, use 10 LOC/hr.

Consider adjusting using judgement for different factors in project 2.

Determine resources available for project 2
Multiply by productivity rate to get "LOC capability".

Example:  Productivity rate is 10 LOC/hr.
5 developers @ 10 hours per week * 10 weeks = 500 hours
500 hrs * 10 LOC/hr = 5000 LOC.

Estimate Product Size

As a team, use preliminary features list, decompose the problem and do a quick conceptual design to identify major classes in solution.

If possible, identify similar classes from project 1 (or elsewhere). "proxy".

Create 3 size estimates for each class:  probable, least, & most.
Calculate a weighted estimate:
(least + most + 4 * probable) / 6

Create a table showing estimate for each class. (post this as part of Implementation Plan)
Sum estimates for all classes in design.

Compare total Estimated LOC against LOC capability.

Subtract classes until total estimated LOC < LOC capability.
use this number in budgeting.

  Example Student Calculations (.pdf)

Alternate Process
IF historical data not available about productivity rate, consider feature-based estimation:

FOR each desired feature
   Estimate hours for each activity:  prototype, design, code, unit test, integration test, system test.

Sum these to obtain total estimated hours.

References:
  Cost modeling software: Construx Estimate or COCOMO
  Estimating process group activity

Create Schedule

Use project plan - process & deliverables
to understand what activities you will be engaged in.

Create a WBS (work breakdown statement) shows tasks and durations. View example.

Create a task network to visually represent dependencies, sequences, parallelism. View example.

Create a timeline chart (without calendar dates).

Map onto actual calendar (with weekends, holidays).

Draw Schedule (e.g. ASCII table).  View example 1.   View example 2.

Last 3 steps can be combined if using a tool.  See Project Plan tools section for suggested tools.