Project Estimation: Metrics and Measurement
description
Transcript of Project Estimation: Metrics and Measurement
Project Estimation:Metrics and Measurement
Persons and Months Calculated Efforts (in pm) of task/project
= Number of persons X duration in months
The efforts for a task with 2 persons working for 3 months is 3 x 2 = 6 pm
A worker can be full time or part-time Full-Time Equivalent (FTE) number of
workers = Sum (number of part-time x percent) + Number of full time workers
For example: A project with 4 workers at 75%, 3 others at 50%, and 2 full-time. The FTE is: (4X.75)+(3x.5)+2 =6.5 persons
The mythical person-month
Metrics Guidelines Use common sense and organizational sensitivity when
interpreting metrics data. Provide regular feedback to the individuals and teams who
have worked to collect measures and metrics. Work with practitioners and teams to set clear goals and
metrics that will be used to achieve them. Don’t use metrics to appraise individuals and never use
metrics to threaten individuals or teams. Metrics data that indicate a problem area should not be
considered “negative.” These data are merely an indicator for process improvement.
Don’t obsess on a single metric to the exclusion of other important metrics.
Types of Metrics
1. Size oriented metrics: Based on number of lines of code (LOC) to be written.
2. Function oriented metric: Based on number of Function Points (FP) to be completed.
Typical Size-Oriented Metrics errors per KLOC (thousand lines of
code) defects per KLOC $ per LOC page of documentation per KLOC errors / person-month LOC per person-month $ / page of documentation
Typical Function-Oriented Metrics
errors per FP (thousand lines of code) defects per FP $ per FP pages of documentation per FP FP per person-month
Why FP Measures?independent of programming language
uses readily countable characteristics of the "information domain" of the problem does not "penalize" inventive implementations that require fewer LOC than others makes it easier to accommodate reuse and the trend toward object-oriented approaches
Computing Function Points
Analyze information domain of the application and develop counts
Weight each count by assessing complexity
Assess influence of global factors that affect the application
Compute function points
Establish count for input domain and system interfaces
Assign level of complexity or weight to each count
Grade significance of external factors, F such as reuse, concurrency, OS, ...
degree of influence: N = Fi
complexity multiplier: C = (0.65 + 0.01 x N)
function points = (count x weight) x C
where:
i
F P = Count-total x Complexity(Count-total = count x weight, Complexity = ([0.65 + .01 x Fi])
Taking Complexity into AccountFactors are rated on a scale of 0 (not important)
to 5 (very important):
data communications distributed functions heavily used configuration transaction rate on-line data entry end user efficiency
on-line update complex processing installation ease operational ease multiple sites facilitate change
Formula:F P = count-total x [0.65 + .01 x Fi]
ExerciseCompute the Function Point (FP) value ( F P = count-total x [0.65 + .01 x Fi]):
Count Weighting Factor
1. Number of user inputs 10 4
2. Number of user outputs 20 5
3. Number of inquiries 15 4
4. Number of files 3 10
5. Number of external interface 5 8
The complexity adjustments values rating (Fi) are:
1. Critical value of performance: 32. Heavy operational environment: 33. On line: 34. Multiple screen operation: 35. On-line master files update: 36. Complexity of I/O: 37. Complexity of internal processing: 48. Backup and recovery: 49. Data communications: 410. Distributed Processing: 411. Reusable code: 412. Conversion: 413. Multiple installations: 414. Facilitation of changes: 4
Function Point Value Exercise
1. Total-count= (10x4+20x5+15x4+3x10+5x8)=270
2. Fi = 3+3+3+3+3+3+4+4+4+4+4+4+4+4)= 50
3. Function Points = 270 x (.65 + .01x50) =310.5 FPs
Cost Estimation
$$$
... occasionally we actually estimate costs — most of the time we merely validate budgetary constraints ...
project scope must be explicitly defined task and/or functional decomposition is necessary historical measures (metrics) are very helpful at least two different techniques should be used remember that uncertainty is inherent
Conventional Methods
Total Efforts = Estimated efforts required per FP x Size in FPs
Or:
Total efforts = Estimated efforts required per KLOC x Size in KLOCs
KLOC : Thousand Lines of Code
Empirical Estimation ModelsGeneral form:
effort = tuning coefficient * sizeexponent
usually derived as person-months of effort required
either a constant or a number derived based on complexity of project
usually LOC but may also be function point
empirically derived
Example: LOC Approach
Functions
UICF
2DGA
3DGA
DSM
CGDF
PCF
DAM
Totals
estimated LOC $/LOC Cost Effort (months)LOC/pm
2340
5380
6800
3350
4950
2140
8400
33,360
14
20
20
18
22
28
18
315
220
220
240
200
140
300
32,000
107,000
136,000
60,000
109,000
60,000
151,000
655,000
7.4
24.4
30.9
13.9
24.7
15.2
28.0
145.0
Project Staffing Estimation
The unit of measure for project HR efforts is person-months (pm). For a project with two persons who work for one month the total efforts is 2 persons * 1 month = 2 pm.
Efforts in pm= number of full time workers * duration in months
Number of full-time workers = Efforts/ Duration
Empirical Estimation Models
General model: E = A + B (ev)c where:A, B, C: empirically derived constant
ev: estimated variable of size in terms of KLOC or FP
Samples models:
E= 5.2 (KLOC) .091 (Walston-Felix)
E= 5.5 + .73 (KLOC) 1.16 (Bailey-Basili)
E=3.2 (KLOC) 1.047 (Doty)
E= -13.39 + .0545 FP (Albrech and Gaffney)
E= 585.7 + 15.12 FP (Matson, Barnett, and Mellichamp)
COCOMO
Actually three different models:
THE BASIC MODEL — a gross estimator that does not take individual complexity characteristics into account THE INTERMEDIATE MODEL — considers 15 factors that are called "cost driver attributes" THE DETAILED MODEL — introduces "phase sensitive effort multipliers" that enable the estimate to be modified and updated as the project continues
COCOMO: Basic Model
pm = a * KLOC t = c * pm dev
b
d
effort development time
Three different categories of software may be estimated:
category a b c d organic semi-detached embedded
2.4 1.05 2.5 0.38 3.0 1.12 2.5 0.35 3.6 1.20 2.5 0.32
Example: COCOMOThe estimated number of lines of code is:
33.3 KLOC
Project type is: semi-detached Therefore, pm = 3.0 * KLOC
1.12
= 3.0 (33.3)1.12
= 152 person-months
To compute development time: t = 2.5 pmdev
0.35
= 2.5 (152)0.35
= 14.5 months
Recommended number of people: = 152/14.5 = 11 people
COCOMO II
Total Efforts in pm = 3.13 x (KLOC)1.072
Example: for a software module of 8050 LOCsTotal efforts= 3.13 X(8.05) 1.072
= 29.28 pmFor a cost of $10,000/pmTotal cost = $29,280
Estimation Guidelinesdevelop your estimates using at least two techniques
get estimates from at least three independent sources request that estimates be submitted anonomously— you'll avoid over-optimism once you've arrived at an estimate, sleep on it never hesitate to adjust for the people who'll be doing the job—they have the highest impact on productivity keep it simple!
Metric for Software Quality
Correctness Maintainability Integrity = Sum [1 - threat x (1- security)] Usability Number of defects found and
removed
Defect Removal Efficiency = ------------------------------------------------
Total defects that exist at stage
Efforts of a 3 person project is originally estimated at 12 person-months. However, after two months only 40% completed. 1. Compute the remaining efforts in person-months.
Let T = total revised effortsEfforts consumed : 3 p x 2 m = 6 pm6 pm = .40 x TT= 15 pm
2. If you wanted to hire more workers to meet the completion schedule, how many should you hire?
Remaining efforts = 15 – 6 = 9 pm for 2 monthsNumber of new hires = (9/2) – 3 = 1.5 (2 rounded)
3. If each new worker only works at 70% capacity and requires training that reduces the productivity of an experienced worker 20%, can the project meet the deadline in the remaining 2 months?
FTE = 2 x .80 + 1 x 1.0 + 2 x .70 = 4 Full Time workers4 x 2 = 8 pmRequired efforts 9 pm, 1 pm short.
Exercise 1
Exercise #2
Use the Basic COCOMO model to estimate efforts and duration of an embedded software development project with size of 55 KLOC. 1. How many workers should be hired for this project?
Embedded: a=3.6 b=1.2, c= 2.5, d = .32
2. If the project must be completed within 15 months, how many additional workers should be hired?
Solutions
1. How many workers should be hired for this project?Embedded: a=3.6 b=1.2, c= 2.5, d = .32Efforts= 3.6*(55)1.2 = 441.3 pmDuration = 2.5 * (441.3).32 = 17.54 monthsNumber of workers needed: 441.3/17.54 = 25.1
2. If the project must be completed within 15 months, how many additional workers should be hired?Number of workers required for 15 month completion: 441/15=29.4Additional workers: 29.4 – 25.1 = 4.3 rounded to 5
Group Project Meeting
Homework 3: Due Sunday 3/15 @11:59 PMD2L Dropbox
Efforts of a 5 person project is originally estimated at 40 person-months. However, after 3 months only 30% completed. 1. Compute the remaining efforts in person-
months.2. If you wanted to hire more workers to meet the
completion schedule, how many should you hire?
3. If each new worker only works at 70% capacity and requires training that reduces the productivity of an experienced worker 20%, can the project meet the deadline in the remaining 3 months?