2. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 22
A Good Manager MeasuresA Good Manager Measures
measurementmeasurement
What do weWhat do we
use as ause as a
basis?basis?
•• size?size?
•• function?function?
project metricsproject metrics
process metricsprocess metrics
processprocess
productproduct
product metricsproduct metrics
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
3. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 33
Why Do We Measure?Why Do We Measure?
assess the status of an ongoing project
track potential risks
uncover problem areas before they go “critical,”
adjust work flow or tasks,
evaluate the project team’s ability to control
quality of software work products.
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
4. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 44
Process Measurement
We measure the efficacy of a software processWe measure the efficacy of a software process
indirectly.indirectly.
–– That is, we derive a set of metrics based on the outcomes thatThat is, we derive a set of metrics based on the outcomes that
can be derived from the process.can be derived from the process.
–– Outcomes includeOutcomes include
measures of errors uncovered before release of the softwaremeasures of errors uncovered before release of the software
defects delivered to and reported by enddefects delivered to and reported by end--usersusers
work products delivered (productivity)work products delivered (productivity)
human effort expendedhuman effort expended
calendar time expendedcalendar time expended
schedule conformanceschedule conformance
other measures.other measures.
We also derive process metrics by measuring theWe also derive process metrics by measuring the
characteristics of specific software engineering tasks.characteristics of specific software engineering tasks.
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
5. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 55
Process Metrics Guidelines
Use common sense and organizational sensitivity whenUse common sense and organizational sensitivity when
interpreting metrics data.interpreting metrics data.
Provide regular feedback to the individuals and teams whoProvide regular feedback to the individuals and teams who
collect measures and metrics.collect measures and metrics.
DonDon’’t use metrics to appraise individuals.t use metrics to appraise individuals.
Work with practitioners and teams to set clear goals andWork with practitioners and teams to set clear goals and
metrics that will be used to achieve them.metrics that will be used to achieve them.
Never use metrics to threaten individuals or teams.Never use metrics to threaten individuals or teams.
Metrics data that indicate a problem area should not beMetrics data that indicate a problem area should not be
consideredconsidered ““negative.negative.”” These data are merely an indicatorThese data are merely an indicator
for process improvement.for process improvement.
DonDon’’t obsess on a single metric to the exclusion of othert obsess on a single metric to the exclusion of other
important metrics.important metrics.
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
6. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 66
Software Process Improvement
SPI
Process model
Improvement goals
Process metrics
Process improvement
recommendations
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
7. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 77
Process MetricsProcess Metrics
QualityQuality--relatedrelated
–– focus on quality of work products and deliverablesfocus on quality of work products and deliverables
ProductivityProductivity--relatedrelated
–– Production of workProduction of work--products related to effort expendedproducts related to effort expended
Statistical SQA dataStatistical SQA data
–– error categorization & analysiserror categorization & analysis
Defect removal efficiencyDefect removal efficiency
–– propagation of errors from process activity to activitypropagation of errors from process activity to activity
Reuse dataReuse data
–– The number of components produced and their degree ofThe number of components produced and their degree of
reusabilityreusability
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
8. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 88
Project Metrics
used to minimize the development schedule by making theused to minimize the development schedule by making the
adjustments necessary to avoid delays and mitigate potential proadjustments necessary to avoid delays and mitigate potential problemsblems
and risksand risks
used to assess product quality on an ongoing basis and, whenused to assess product quality on an ongoing basis and, when
necessary, modify the technical approach to improve quality.necessary, modify the technical approach to improve quality.
every project should measure:every project should measure:
–– inputsinputs——measures of the resources (e.g., people, tools) required to do tmeasures of the resources (e.g., people, tools) required to do thehe
work.work.
–– outputsoutputs——measures of the deliverables or work products created during themeasures of the deliverables or work products created during the
software engineering process.software engineering process.
–– resultsresults——measures that indicate the effectiveness of the deliverables.measures that indicate the effectiveness of the deliverables.
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
9. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 99
Typical Project MetricsTypical Project Metrics
Effort/time per software engineering taskEffort/time per software engineering task
Errors uncovered per review hourErrors uncovered per review hour
Scheduled vs. actual milestone datesScheduled vs. actual milestone dates
Changes (number) and their characteristicsChanges (number) and their characteristics
Distribution of effort on software engineeringDistribution of effort on software engineering
taskstasks
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
10. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1010
Metrics GuidelinesMetrics Guidelines
Use common sense and organizational sensitivity whenUse common sense and organizational sensitivity when
interpreting metrics data.interpreting metrics data.
Provide regular feedback to the individuals and teams whoProvide regular feedback to the individuals and teams who
have worked to collect measures and metrics.have worked to collect measures and metrics.
DonDon’’t use metrics to appraise individuals.t use metrics to appraise individuals.
Work with practitioners and teams to set clear goals andWork with practitioners and teams to set clear goals and
metrics that will be used to achieve them.metrics that will be used to achieve them.
Never use metrics to threaten individuals or teams.Never use metrics to threaten individuals or teams.
Metrics data that indicate a problem area should not beMetrics data that indicate a problem area should not be
consideredconsidered ““negative.negative.”” These data are merely an indicatorThese data are merely an indicator
for process improvement.for process improvement.
DonDon’’t obsess on a single metric to the exclusion of othert obsess on a single metric to the exclusion of other
important metrics.important metrics.
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
11. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1111
Typical SizeTypical Size--Oriented MetricsOriented Metrics
errors per KLOC (thousand lines of code)errors per KLOC (thousand lines of code)
defects per KLOCdefects per KLOC
$ per LOC$ per LOC
pages of documentation per KLOCpages of documentation per KLOC
errors per personerrors per person--monthmonth
Errors per review hourErrors per review hour
LOC per personLOC per person--monthmonth
$ per page of documentation$ per page of documentation
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
12. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1212
Typical FunctionTypical Function--Oriented MetricsOriented Metrics
errors per FP (thousand lines oferrors per FP (thousand lines of
code)code)
defects per FPdefects per FP
$ per FP$ per FP
pages of documentation per FPpages of documentation per FP
FP per personFP per person--monthmonth
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
13. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1313
Comparing LOC and FPComparing LOC and FP
Programming LOC per Function point
Language avg. median low high
Ada 154 - 104 205
Assembler 337 315 91 694
C 162 109 33 704
C++ 66 53 29 178
COBOL 77 77 14 400
Java 63 53 77 -
JavaScript 58 63 42 75
Perl 60 - - -
PL/1 78 67 22 263
Powerbuilder 32 31 11 105
SAS 40 41 33 49
Smalltalk 26 19 10 55
SQL 40 37 7 110
Visual Basic 47 42 16 158
Representative values developed by QSM
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
14. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1414
Why Opt for FP?Why Opt for FP?
Programming language independentProgramming language independent
Used readily countable characteristics thatUsed readily countable characteristics that
are determined early in the software processare determined early in the software process
Does notDoes not ““penalizepenalize”” inventive (short)inventive (short)
implementations that use fewer LOC thatimplementations that use fewer LOC that
other more clumsy versionsother more clumsy versions
Makes it easier to measure the impact ofMakes it easier to measure the impact of
reusable componentsreusable components
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
15. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1515
ObjectObject--Oriented MetricsOriented Metrics
Number ofNumber of scenario scriptsscenario scripts (use(use--cases)cases)
Number ofNumber of support classessupport classes ((required to
implement the system but are not
immediately related to the problem domain)
Average number of support classes per key
class (analysis class)
Number of subsystems (an aggregation of
classes that support a function that is visible
to the end-user of a system)
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
16. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1616
WebE Project MetricsWebE Project Metrics
Number of static Web pages (the end-user has no control
over the content displayed on the page)
Number of dynamic Web pages (end-user actions result in
customized content displayed on the page)
Number of internal page links (internal page links are
pointers that provide a hyperlink to some other Web page
within the WebApp)
Number of persistent data objects
Number of external systems interfaced
Number of static content objects
Number of dynamic content objects
Number of executable functions
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
17. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1717
Measuring QualityMeasuring Quality
CorrectnessCorrectness —— the degree to which athe degree to which a
program operates according to specificationprogram operates according to specification
MaintainabilityMaintainability——the degree to which athe degree to which a
program is amenable to changeprogram is amenable to change
IntegrityIntegrity——the degree to which a program isthe degree to which a program is
impervious to outside attackimpervious to outside attack
UsabilityUsability——the degree to which a program isthe degree to which a program is
easy to useeasy to use
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
18. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1818
Defect Removal EfficiencyDefect Removal Efficiency
DRE = E /(E + D)
E is the number of errors found before delivery of
the software to the end-user
D is the number of defects found after delivery.
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
19. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 1919
Metrics for Small OrganizationsMetrics for Small Organizations
time (hours or days) elapsed from the time a request is
made until evaluation is complete, tqueue.
effort (person-hours) to perform the evaluation, Weval.
time (hours or days) elapsed from completion of evaluation
to assignment of change order to personnel, teval.
effort (person-hours) required to make the change, Wchange.
time required (hours or days) to make the change, tchange.
errors uncovered during work to make change, Echange.
defects uncovered after change is released to the
customer base, Dchange.
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net
20. 3/18/20093/18/2009 S.Sreenivasa RaoS.Sreenivasa Rao 2020
Establishing a Metrics ProgramEstablishing a Metrics Program
Identify your business goals.
Identify what you want to know or learn.
Identify your subgoals.
Identify the entities and attributes related to your subgoals.
Formalize your measurement goals.
Identify quantifiable questions and the related indicators that
you will use to help you achieve your measurement goals.
Identify the data elements that you will collect to construct the
indicators that help answer your questions.
Define the measures to be used, and make these definitions
operational.
Identify the actions that you will take to implement the
measures.
Prepare a plan for implementing the measures.
www.jntuworld.com
www.jntuworld.com
www.jwjobs.net