- CMMI Institute

Transcription

- CMMI Institute
Quantification: a driver for
cultural change
C. C. Shelley
OXFORD SOFTWARE ENGINEERING Ltd
”Take away number in all things and all things perish. Take
calculation from the world and all is enveloped in dark ignorance,
nor can he who does not know the way to reckon be distinguished
from the rest of the animals.”
St. Isidore of Seville (c. 600)
Objective
•To persuade you that:
– quantification, and measurement, are primary indicators and enablers of
mature software development
– that CMMI requires and expects quantification
– and contains some of the tools you will need
...Status of Software Measurement
•
•
•
Emerged as a new practice in 1976
•
very popular for a while...
•
...it explored many aspects of software and software development...
•
...but failed to deliver on promise
Currently unfashionable and unpopular
•
perceived as a stick for management to beat developers with...
•
...or a low value bureaucratic burden...
•
...frequently dysfunctional *
Current 'state of practice'
'Mediæval'
– Schoolmen exploring and
analysing surviving IP from
the ancient world
– Emergence of first
universities
– An extraordinary flowering
of reason and logic
– But reasoning is almost
totally qualitative
Craftsmen & Artisans...
– Construct some of the
most memorable artefacts,
ever
– Using empirical 'know
how',
– 'Sub euclidian' geometry
– And rule of (calloused)
thumb
•
Also almost entirely
qualitative*
however...
•Quantification starts to
emerge...
– improbably, time is
quantized - hours
– Publicly
– (and the calendar
under intense scrutiny
and eventually
reformed)
The Appraisal
•As is music...
– Remembered
– Shared
– Standard
– And (critically)
visual *
Measurement in CMMI®...
•(See:
– www.osel.co.uk/presentations/cmmiandmetrics.pdf )
– CMMI introduced powerful tool in M&A PA
• 'Policy' is an opportunity for cultural change
• Basili's Goal Question (I) Metric
• Which is often misinterpreted
– One shot deal – put 'metrics' in place
– Presumed to be 'systemic' reporting (admittedly its original use) –
no local or tactical measurement
– Requirement for pervasive process measurement somewhat eroded –
M&A 'common feature' now only a generic vestige
– 'High maturity' measurement is severely limited for design intensive
environments
...Measurement in CMMI®
•Mature organizations tend to have a culture conducive to good measurement
•Characteristics:
– Simple
– Pervasive
– Competent
– Local
– Trusted
– Low visibility (!)
– Seems obvious
– ...and more than GQM
•Chicken or Egg?
( In passing...
•Hint for quick PA evaluation
– Credible measurement is the last characteristic to emerge as a PA
becomes institutionalized
• Process data
– ...useful,
– ...usable...
– ...used (Ed Weller)
• Someone cares )
Three quantification and measurement tools (in
order)
•'What are you doing?'
– Binary (ish)
•Empirical Analysis Framework
– For exploratory analysis of data
•GQ(I)M
– For specifying and designing measures
'What are you doing?'...
•There are two fundamental types of analysis:
Enumerative
Analytic
“How Many?”
“Why?”
Tactical / Operational
Strategic / SPI
Provoke / Direct Change
Understand
Supervised
Delegated
Public
Private
...'What are you doing?'...
•Decide what you're doing – before anything else
– Or it will default to 'enumerative'
– And it can suggest which types of tools are used
• GQM or EAF (or both, or elements of both, or either...)
…'What are you doing?'...
•How long until testing is finished?
•Have we found all the defects?
•How many defects have we found?
•Why do we keep getting this defect?
•What other defects of this type are we getting?
•How many times has this occurred?
•Could we prevent this defect from occurring again?
•Why is it taking so long?
•How long will it take to fix
•What's the backlog?
•What's the acceptable number of defects
•How do we compare to other organizations?
•How much is this costing us?
…'What are you doing?'...
•How long until testing is finished?
•Have we found all the defects?
•How many defects have we found?
•Why do we keep getting this defect?
•What other defects of this type are we getting?
•How many times has this occurred?
•Could we prevent this defect from occurring again?
•Why is it taking so long?
•How long will it take to fix?
•What's the backlog?
•What's the acceptable number of defects?
•How do we compare to other organizations?
•How much is this costing us?
…'What are you doing?'
Empirical Analysis Framework...
…Empirical Analysis Framework...
•Mostly for analytic work (for gaining insights, growing understanding, 'doing
science')
•(undocumented, tacit, progressive, scalable)
Prerequisites (a need for information, understanding of context, models)
(optional, but can be valuable – read the data)
1. Show the data: Graphics (and then stop, probably)
2. Summarize the data: Arithmetic (and stop...)
3. Verify the data Hypothesis testing, statistical significance, statistical
modelling – if you absolutely have to – very rarely required)
•
Iterate and adapt as required
•“Graphs are friendly
•“Arithmetic often exists to make graphics possible
•“Graphs force us to notice the unexpected; nothing
could be more important.”
John Tukey, EDA, p157
GQ (I) M (Goal Question Metric)
•For defining or selecting measures to meet information needs
– Designing measures and analyses
– Originally for specifying and designing metrics (and collection mechs –
then collect data...)
– ...but now more likely to be used for identifying and selecting from
software development's extant 'pervasive data', now
GQM (Goal Question Metric)
…Setting Measurement Goals...
•Explore, refine and formalize the Measurement Goal
Begin with the informal statement (or a revision, if prompted by later
steps in the process) and place into the format:
“ The measurement goal is to:
<analyse> (characterize, predict, monitor…)
the
<object> (process, product, model…)
In order to
<purpose> (understand, manage, control, improve…)
the
<quality focus> (cost, resources, timeliness….)
from the viewpoint of the
<viewpoint> (developer, tester, user, manager…)
In the context of the
<context> (test env, team, department, supplier…)”
… Refining Measurement Goals - Asking
Questions...
Begin by documenting the measurement goal (as a focus and aide memoire)
then:
1.Draft the quality focus – what matters to me/us?
2.Draft the baseline hypothesis – how are things at present?
–Then, when these are reasonable:
1.Identify the variation factors – what influences have an impact on the current
situation?
2.Identify the impact of variation factors – how do the variation factors influence
the current situation?
… Refining Measurement Goals - Asking Questions...
•Next, develop the questions:
–Primed by understanding developed by completion of the abstraction sheets
–Not ‘what?’, ‘why?’, ‘how?’ – this should already be known from process model
–Ask quantitative questions:
•How much?
•When?
•How many?
•How many more?
Refer to the process model for prompts
…Identifying and Defining Software Measures…
Why?
•“An operational definition puts communicable meaning into a concept… …without
operational definition, a specification is meaningless.”
— W. Edwards Deming, Out of the Crisis, Chapter Nine.
•Operational software definitions tell people how to collect the data. They:
1.are the data ‘counting rules’
2.enable others to know what has been measured, and how it was measured – they
are communicable
3.enable others to repeat the measurement and get the same results – repeatability
•“…if there is no criterion for determining whether a given numeral should or should
not be assigned, it is not measurement”
–Stevens, S. S. "Measurement, Psychophysics, and Utility," 18–63. Measurement:
Definitions and Theories, C. West Churchman & Philburn Ratoosh, ed. New York, N.Y.:
John Wiley & Sons, Inc., 1959.
…Identifying and Defining Software Measures…
Operational definitions are important because…
1.There are no ‘true’ or ‘exact’ measures’.
•Measurements ( of speed of light, population of Manchester, GDP… all depend for
their result on the method used - i.e. operational definition. Even apparent
‘absolutes’ will be found to be subject to this. (try defining the criteria of any
measure to see how things can quickly become specific)
1.Measurement practice in industry is more exacting than in pure science or
teaching.
•Pure science works to the best precision and accuracy affordable - regardless of
how poor these may be - and reports estimates of errors.
•Industry is required to work to satisfy commercial or contractual needs. Failure to
measure to specification may lead to misunderstanding, financial loss or legal action
…Identifying and Defining Software Measures…
How?
•The software measurement, and measurement, literature is remarkably limited
•Kan describes operational (metrics) definitions as ‘definitions that actually spell out the
metrics to be used and the procedures used to obtain the data… …an operational definition
of software product defect rate would indicate the formula for defect rate, what defect is to
be measured [ ], what denominator [ ], how to measure, and so forth…”
…Identifying and Defining Software Measures…
How?
•The best method for defining measures is that of Park et al (CMU/SEI-96-HB002):
•It is checklist based
•The procedure has three parts:
1.Build a structured checklist
2.Build a matching ‘usage matrix’
3.‘Check’ the items on the checklist
NB – this is a technical activity and should be treated with care
Putting it in place...
“ It should be borne in mind that there is nothing
more difficult to handle, more doubtful of success,
and more dangerous to carry through than
initiating changes in a state’s constitution. The
innovator makes enemies of all those who
prospered under the old order, and only lukewarm
support is forthcoming from those that would
prosper under the new. Their support is lukewarm
partly from fear of their adversaries, who have the
existing laws on their side, and partly because men
are generally incredulous, never really trusting new
things unless they have tested them by experience.
In consequence, whenever those who oppose the
changes can do so they attack vigorously, and the
defence made by the others only lukewarm. So
both the innovator and his friends come to grief. ”
Machiavelli: The Prince, Part VI
Two steps to good measurement (one easy, one
hard)
1.Recognize poor or dysfunctional measurement *
2.Eliminate it
1. Recognizing dysfunctional measurement…
•Investigate
•Keep the specifics confidential
•Work with developers, testers, team leads, PMs, line managers and board to
find answers * to the following questions:
1. Recognizing dysfunctional measurement…
1.What measurement data do you collect?
2.Why?
3.How do you use it?
4.What decisions or actions do you take based on your analysis of the data?
1. Recognizing dysfunctional measurement…
And some technical questions:
1.What are the <data type or count> definitions
2.How accurate does the data need to be?
3.How accurate is it?
2. Eliminating dysfunctional measurement…
Note: This is difficult
1.Establish, and monitor the move to and adherence to ‘policies’ for good,
functional measurement, e.g....
•that establish local ownership of data
•and recognize and value data privacy (I.e. reduce ‘visibility’ to enable
informational measurement and acknowledge the ‘information horizon’)
•and/or support aggregation (to avoid focusing on the specific, and to avoid suboptimization)
…2. Eliminating dysfunctional measurement…
1.Support technical correctness *
•GQM
•‘M’ definition, and access to definitions by collectors and user
•Simple analyses (good graphics and minimal arithmetic, esp. division – 'the
devil's operator')
•V&V
…2. Eliminating dysfunctional measurement…
1.Periodically evaluate the information need and value delivered by
measurements
•At all levels
•Assess the degree of dysfunction (see previous questions)
•Attempt * to stop collecting dysfunctional (and low value) data
Related material
•Cultural Change:
– Methods and tools for evaluation and change
– www.osel.co.uk/presentations/ccp.pdf
– www.osel.co.uk/papers/changingculture.pdf
– www.osel.co.uk/papers/listofattributes.pdf
•Process Improvement
– Hunting for Anti-patterns
– www.osel.co.uk/presentations/HAP.pdf
– Getting the best from CMMI
– www.osel.co.uk/papers/energizingcmmi.pdf
If Software Metrics leads to something like Taylorian “scientific
management” in software development, I for one, will bow my head in
shame.’
Gerald M. Weinberg
writing in the foreword of Toms Gilb’s ‘Software Metrics’, the first s/w metrics
book
‘The good news is that you can succeed in producing a culture conducive
to measurement. There are organizations in which people have given
themselves completely to the pursuit of organizational goals…
…organizations in which members hunger for measurement as a tool
that helps get the job done… …To use measurement inappropriately
would betray a sacred trust, and no one would consider such a
betrayal.’
Robert D. Austin
OXFORD
SOFTWARE ENGINEERING
LIMITED
9 Spinners Court, 53 West End,
Witney,
Oxfordshire
OX28 1NH
www.osel.co.uk
[email protected]
Tel. +44 (0) 1993 700878