8
Metrics Formulas This appendix lists a number of the metrics that involve more than simple average (mean) or percentage calculations. Code Growth This metric is not actually used in the tables in the document, but has been included for reference purposes. Code growth is defined and calculated as: CG latest size estimate Initial Size Estimate Initial Size Estimate = - ( _ _ ) ( _ _ ) ( _ _ ) Earned Value Earned value (EV) is a very important tracking metric which measures the actual amount of work accomplished (regardless of the effort expended or the time elapsed). Earned value is based on the Overall Proportion Complete (OPC). Both EV and OPC require the following input data: The labour rates (PH/SLOC) for each activity in the development process. The proportion of software that has passed through each activity. The proportion of software that has passed through an activity i is defined as follows: P units through activity i total number of units required i = _ _ _ _ _ _ _ Units can be code modules, SLOC, LOD, function points, or any other measurement of the work to be done. Given these inputs, Overall Proportion Complete is

Metrics Formulas

Embed Size (px)

Citation preview

Page 1: Metrics Formulas

Metrics Formulas

This appendix lists a number of the metrics that involve more than simple average(mean) or percentage calculations.

Code GrowthThis metric is not actually used in the tables in the document, but hasbeen included for reference purposes. Code growth is defined andcalculated as:

CGlatest size estimate Initial Size Estimate

Initial Size Estimate= −( _ _ ) ( _ _ )

( _ _ )

Earned ValueEarned value (EV) is a very important tracking metric whichmeasures the actual amount of work accomplished (regardless of theeffort expended or the time elapsed).

Earned value is based on the Overall Proportion Complete (OPC).Both EV and OPC require the following input data:

• The labour rates (PH/SLOC) for each activity in the developmentprocess.

• The proportion of software that has passed through each activity.The proportion of software that has passed through an activity i isdefined as follows:

Punits through activity i

total number of units requiredi = _ _ _

_ _ _ _

Units can be code modules, SLOC, LOD, function points, or anyother measurement of the work to be done.

Given these inputs, Overall Proportion Complete is

Page 2: Metrics Formulas

Appendix D - Metrics Formulas 2

OPC

C Pi

p

Ci

p

i i

i

= =

=

∑1

1

where i represents an activity from activities 1 through p, and Ci isthe labour rate (PH/SLOC) for activity i.

Once you have calculated OPC, calculate earned values as

EV Size Cii

pOPC= •

=•∑

1

where size is the estimated size in SLOC. Use this formula tomeasure the earned value of each estimated code module or functionblock (or software component), or to sum the EVs for each codemodule to get a total EV.

Estimate at CompletionThe estimate at completion (EAC) is an estimate of the completedcost of the project. Initially the EAC is equal to the initial estimatedcost (IEC). Once the project has started, the EAC is equal to the costto date (CTD) plus the estimated cost to complete (ETC). In effect,

EAC CTD ETC= +State all costs in the units of effort appropriate to the company.

You take the value of CTD directly from the project database.Calculate the ETC as

( )ETC S Ci

pOPCi= •

=• −∑

11

where S is the estimated size, OPC is the Overall PercentageComplete, and Ci is the labour rate (PH/SLOC) for activity i.

The final ETC will be given in the units of effort used in thecalculations.

Page 3: Metrics Formulas

Appendix D - Metrics Formulas 3

Labour RateThe labour rate is the cost (measured as effort) to put one unit ofproduct size through an activity. Each activity will be characterizedby its own labour rate. In this document, the labour rate is presentedas PH/SLOC (person hours per line of source code). PH/SLOC orPM/KSLOC (person months per thousand lines of source code) arethe most common ratios used.

Overall Proportion of Work CompleteOverall Proportion of work Complete (OPC) illustrates the degree ofcompleteness of a project. It requires the following input data:

• The labour rates (PH/SLOC) for each activity in the developmentprocess.

• The proportion of software that has passed through each activity.The proportion of software that has passed through an activity i isdefined as follows:

Punits through activity i

total number of units requiredi = _ _ _

_ _ _ _

Units can be code modules, SLOC, LOD, function points, or anyother measurement of the work to be done.

Given these inputs, Overall Proportion Complete is

OPC

C Pi

p

Ci

p

i i

i

= =

=

∑1

1

where i represents an activity from activities 1 through p, and Ci isthe labour rate (PH/SLOC) for activity i.

Page 4: Metrics Formulas

Appendix D - Metrics Formulas 4

ProductivityProductivity is the inverse of the labour rate, or rather, the number ofsize units that can be put through an activity with a given effort. Inthis document, productivity is measured as SLOC/PH (lines of sourcecode per person hour).

Page 5: Metrics Formulas

Glossary 5

Glossary

Term Definition

activity The phases that make up the software development process are called activities.Examples of activities might be detailed design, system test, or implementation.Activities typically have inputs such as design documents and outputs such ascode.

budget The budget is the amount of money in dollars that is allocated to the project.

category An attribute of the software product which indicates the type of software beingdeveloped. Examples could be embedded software, user interface software ordatabase application software. Each software category is assigned a weightindicating its relative complexity.

CMM The Capability Maturity Model (CMM) is a process maturity frameworkdeveloped by the SEI to help organizations improve their software process. Itwas initially created to provide the U.S. government with a method for assessingthe capability of their software contractors.

code (new) New code is code that is created or modified during the project.

code (reused) Reused code is code that exists and can be used without modification for theproject.

defect A defect is a problem detected in the output from an activity, such as a bug insoftware or a flaw in design.

defect type Defect type is an attribute of a defect used to group defects that are similar.Example defect types are coding error, design flaw, and interface error. Youshould specify valid defect types in the software development processdescription.

Page 6: Metrics Formulas

Glossary 6

Term Definition

development Development staff is a classification of staff members.staff Typically, the development staff is composed of the engineers and programmers

who are developing the core project.

deviation A deviation from the software development process occurs any time theprocedures of the development process are not followed.

earned value Earned value (EV) is a tracking metric which measures the actual amount ofwork accomplished, regardless of the effort expended or the time elapsed.

experience level An experience level is an attribute of a staff member. It indicates a staffmember’s experience (relative to other staff members).

failure A failure is a run-time error which renders the program or system non-operational.

Gantt chart A Gantt chart is a standard scheduling chart that depicts work tasks as asequence of horizontal time bars.

I/O transaction An I/O transaction typically refers to one bundle of data which is accepted andprocessed by the system. You should define I/O transactions explicitly for thesystem being developed.

inspected code Inspected code is code which has been subjected to a visual verification orwalkthrough by a group of impartial designers.

KLOD KLOD is one thousand lines of documentation. This refers to non-executabletext that is placed in a program source file to explain details of the operation ofthe program.

KSLOC KSLOC is one thousand source lines of code, and is a measurement of programsize.

LOD LOD is lines of documentation. This refers to non-executable text that is placedin a program source file to explain details of the operation of the program.

labour rate The labour rate is the cost (measured as effort) to put one unit of product sizethrough an activity. Each activity will be characterized by its own labour rate. Inthis document, the labour rate is presented as PH/KSLOC.

Page 7: Metrics Formulas

Glossary 7

Term Definition

manager Manager is a classification of a staff member. Typically, a manager is a personwho performs management tasks.

milestone Milestones are check points in the development process. A milestone isassociated with a rigid set of criteria. When these criteria are met, the milestoneis said to have been reached.

person hours A person hour is a measurement of effort. One person who works for one hourwill have performed one person hour worth of work. This measure is oftenabbreviated as PH.

PERT chart A PERT chart is a standard scheduling chart that shows work tasks as boxes.Lines between the boxes show the dependencies between tasks.

PH PH is person hours.

process The process, or software development process, is the method used to convertinitial project requirements into a final system. The process typically consists ofa number of phases, called activities.

process A process exception report is a form that must be filled exception out, and approved each time a staff member wishes toreport deviate from the documented software development process.product Product complexity is defined as the relative difficulty incomplexity creating the product compared to other software products.

productivity Productivity is the inverse of the labour rate, or rather, the number of size unitsthat can be put through an activity with a given effort. In this document,productivity is measured as KLSOC/PH.

requirements Requirements are desired characteristics of the software being developed. Thefirst activity in most software processes is one which identifies and documentsthe requirements. You should specify and number requirements individually forreference during development.

rework Rework refers to any work that is performed to correct defects.

Page 8: Metrics Formulas

Glossary 8

Term Definition

SEI The Software Engineering Institute (SEI) is a federally funded (U.S.) researchand development centre sponsored by the U.S. Department of Defense. The SEIand its founder, Watts Humphrey, created the CMM.

SLOC SLOC is source lines of code (or lines of source code), and is a measurement ofprogram size.

staff The staff is the group of people who are contributing time to a project. Staff canbe categorized as management, support, or development.

staff member A staff member is one person from the staff.

support staff Support staff is a classification of staff members. Typically, support staff arethose who perform tasks which assist the development and/or management staff.

tasks Tasks are units of work which are assigned to the staff. Tasks can be classifiedaccording to the type of work being performed. Typical classifications aremanagement, development, and support.

tests Tests are the individual tests specified in a test plan document. Each test istypically described by 1) an initial system state, 2) a set of actions to beperformed, and 3) the expected results of the test.

tests executed Tests are said to have been executed if the described set of actions have beenperformed.

tests passed Tests are said to have passed if they have been executed, and the output from thetests matches the expected results.

units Units are the elements of work required to complete each development activity.Depending on the activity, a unit may be a document, a test, or a module ofcode.

WBS WBS is Work Breakdown Structure. WBS is a standard software projectmanagement technique of breaking the project down into a hierarchy of worktasks which represent the work to be done.