You are on page 1of 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:

(latest _ size _ estimate) − ( Initial _ Size _ Estimate)


CG =
( 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:

units_ through_ activity _ i


Pi =
total _ number _ of _ units_ required
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
Appendix D - Metrics Formulas 2

p
∑ CiPi
OPC = i = 1
p
∑ Ci
i =1
where i represents an activity from activities 1 through p, and Ci is
the labour rate (PH/SLOC) for activity i.
Once you have calculated OPC, calculate earned values as

 p 
EV = Size • ∑ Ci •OPC
 
i = 1 
where size is the estimated size in SLOC. Use this formula to
measure the earned value of each estimated code module or function
block (or software component), or to sum the EVs for each code
module to get a total EV.

Estimate at Completion
The estimate at completion (EAC) is an estimate of the completed
cost of the project. Initially the EAC is equal to the initial estimated
cost (IEC). Once the project has started, the EAC is equal to the cost
to 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

 p 
ETC = S • Ci •(1 − OPC )

 
i = 1 
where S is the estimated size, OPC is the Overall Percentage
Complete, and Ci is the labour rate (PH/SLOC) for activity i.
The final ETC will be given in the units of effort used in the
calculations.
Appendix D - Metrics Formulas 3

Labour Rate
The labour rate is the cost (measured as effort) to put one unit of
product size through an activity. Each activity will be characterized
by its own labour rate. In this document, the labour rate is presented
as PH/SLOC (person hours per line of source code). PH/SLOC or
PM/KSLOC (person months per thousand lines of source code) are
the most common ratios used.

Overall Proportion of Work Complete


Overall Proportion of work Complete (OPC) illustrates the degree of
completeness of a project. It requires 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:

units_ through_ activity _ i


Pi =
total _ number _ of _ units_ required
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
p
∑ CiPi
OPC = i = 1
p
∑ Ci
i =1
where i represents an activity from activities 1 through p, and Ci is
the labour rate (PH/SLOC) for activity i.
Appendix D - Metrics Formulas 4

Productivity
Productivity is the inverse of the labour rate, or rather, the number of
size units that can be put through an activity with a given effort. In
this document, productivity is measured as SLOC/PH (lines of source
code per person hour).
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 as
code.
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 being
developed. Examples could be embedded software, user interface software or
database application software. Each software category is assigned a weight
indicating its relative complexity.
CMM The Capability Maturity Model (CMM) is a process maturity framework
developed by the SEI to help organizations improve their software process. It
was initially created to provide the U.S. government with a method for assessing
the 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 the
project.
defect A defect is a problem detected in the output from an activity, such as a bug in
software 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. You
should specify valid defect types in the software development process
description.
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 the
procedures of the development process are not followed.
earned value Earned value (EV) is a tracking metric which measures the actual amount of
work 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 staff
member’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 a
sequence of horizontal time bars.
I/O transaction An I/O transaction typically refers to one bundle of data which is accepted and
processed by the system. You should define I/O transactions explicitly for the
system being developed.
inspected code Inspected code is code which has been subjected to a visual verification or
walkthrough by a group of impartial designers.
KLOD KLOD is one thousand lines of documentation. This refers to non-executable
text that is placed in a program source file to explain details of the operation of
the program.
KSLOC KSLOC is one thousand source lines of code, and is a measurement of program
size.
LOD LOD is lines of documentation. This refers to non-executable text that is placed
in 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 size
through an activity. Each activity will be characterized by its own labour rate. In
this document, the labour rate is presented as PH/KSLOC.
Glossary 7

Term Definition
manager Manager is a classification of a staff member. Typically, a manager is a person
who performs management tasks.
milestone Milestones are check points in the development process. A milestone is
associated with a rigid set of criteria. When these criteria are met, the milestone
is said to have been reached.
person hours A person hour is a measurement of effort. One person who works for one hour
will have performed one person hour worth of work. This measure is often
abbreviated 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 convert
initial project requirements into a final system. The process typically consists of
a 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 to
report deviate from the documented software development process.
product Product complexity is defined as the relative difficulty in
complexity creating the product compared to other software products.
productivity Productivity is the inverse of the labour rate, or rather, the number of size units
that 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. The
first activity in most software processes is one which identifies and documents
the requirements. You should specify and number requirements individually for
reference during development.
rework Rework refers to any work that is performed to correct defects.
Glossary 8

Term Definition
SEI The Software Engineering Institute (SEI) is a federally funded (U.S.) research
and development centre sponsored by the U.S. Department of Defense. The SEI
and its founder, Watts Humphrey, created the CMM.
SLOC SLOC is source lines of code (or lines of source code), and is a measurement of
program size.
staff The staff is the group of people who are contributing time to a project. Staff can
be 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 are
those 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 classified
according to the type of work being performed. Typical classifications are
management, development, and support.
tests Tests are the individual tests specified in a test plan document. Each test is
typically described by 1) an initial system state, 2) a set of actions to be
performed, and 3) the expected results of the test.
tests executed Tests are said to have been executed if the described set of actions have been
performed.
tests passed Tests are said to have passed if they have been executed, and the output from the
tests 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 of
code.
WBS WBS is Work Breakdown Structure. WBS is a standard software project
management technique of breaking the project down into a hierarchy of work
tasks which represent the work to be done.

You might also like