GQM – an example from Fjellanger - Widerøe

advertisement
GQM – an example from
Fjellanger - Widerøe
Hans J. Lied
Tor Stålhane
IDI / NTNU
Environment
• Medium sized company making tailor-made software
systems
• Fixed price projects with little room for rework
caused by introduction of errors
• Two development projects, same project team and
process model.
– Project 1: standard with a given requirements specification
– Project 2: prototyping without requirements specification
The projects
• Project 1 had
– structure given from the start
– customer defined quality assurance requirements
– requirements specification from the customer
• Project 2
– depended on prototyping.
– started with an idea from the customer
– the requirements specification was a coproduction between customer and developers.
Methods
We used a combination of three methods:
• GQM, to decide what and how to
measure
• Pareto with a robustness analysis, to
analyse and assess collected data
• RCA: brainstorming and Ishikawa
diagrams to identify root causes
GQM method – 1
GQM abstraction sheet without the lower part
Analyse
for the
purpose of
Focus
Q1:
Q2:
What do we believe
Q1:
Q2:
with respect to as seen from
in the context of
Environment
Qa:
Qb:
Qc:
How does the environment influence
focus
Increased Qa values will reduce Q1
Low Qb values will increase Q2
Comments
Interesting info that surfaces during the GQM process but is not directly relevant for
the current GQM goal
.
GQM method – 2
The GQM abstraction sheet was used to:
• manage and structure the brainstorming
sessions
• identify problem areas for the RCA
• benefit from its strong focus on developer
participation to get a set of basic root causes
to analyse
GQM method – 3
The GQM method helps us to obtain:
• reliable data. The developers are more
interested in obtaining correct data if they felt
that they had ownership to the goal and
purpose of the data collection
• more interest in the results. One of the factors
that can kill an SPI initiative is lack of interest.
By involving the developers from day one, we
hoped to create interest and keep the
improvement program alive.
GQM - process
• Two hour workshop to introduce the method
• Establishing the GQM goal:
– Analyse the reported failures in order to
understand causes for failures seen from the
developers in the X project.
• Produced a GQM abstraction sheet, which was
converted to a data collection form
GQM - Data collection form
WPnr.:
One report pr. failure
Please specify:
Data collection form for failure causes in project 1/ project 2
Focus
Main cause:
Variation factors
Cross:
1 Incorrect use of cut-and-paste from old code
2 Incorrect reuse of old code
3 Incorrect use of language features:
3,1 -pointers
3,2 -char '0' terminating strings og var.
3,3 -other
4 Incorrect use of library components
5 Incorrect attempts to make the code general
6 Attempted reuse by introducing global variables
7 High component complexity
7,1 -module
7,2 -application
7,3 -design
8 Large, unanticipated variation in input data
9 Incomplete or bad test data
10 Too large code components
11 Missing or incomplete configuration management
12 Incorrect component integration
13 Insufficintly detailed requirements specification
14 Wrong code logic
15 Errors in hardware - software communication
Secondary cause:
Cross:
1 Time pressure during development
2 Missing competence in use of
2,1 -language
2,2 -development tools
3 Uncontrollable, external disturbances 3,1 -noise
3,2 -fire fighting old systems
3,3 -support on other products
4 Errors in development tools
5 Errors in libraries and subsystems supplied by subcontractors
6 Lack of user interaction
7 Lacking or missing motivation
7,1 -salary
7,2 -time off
8 Incomplete project model, for instance too few check points
Failure consequence:
Degree of seriousness: ( 1 is not serious, 5 is very serious )
1
2
3
Amount of person-hours spent correcting the failure:
4
5
Pareto – 1
• The 20/80 distribution, known as Pareto’s Law,
is applicable in software development
• Pareto diagrams is a way of visualising the
main problem areas
• We used Pareto analysis on our collection of
data to identify areas of improvement
Pareto – 2
Rework
Rework
16
14
25
20
15
A
10
5
Person hours
Person hours
30
12
10
A
8
6
4
2
0
0
3
4
14
7
2
1
6
13
13
15
14
1
Focus cause
Focus cause
Pareto identified the following main problem areas:
Project1 – standard project:
Project2 – prototyping :
• Incorrect use of language
features (3)
• Incorrect use of library
components (4)
• Wrong code logic (14)
• Incomplete or insufficiently
detailed req. spec. (13)
• Errors in HW-SW
communication (15)
• Wrong code logic (14)
RCA - Brainstorm
We presented the development team with the
results from the Pareto analysis and introduced
them to RCA.
We made an Ishikawa diagram, using the categories
from the data collection form as a starting point.
The strong point of a brain-storming session is that
it maximises the use of available knowledge
The RCA diagram
Incomplete
environment
description
Incomplete QA
activities
Incomplete functional
requirements
Time pressure
Lack of
knowledge
Lack of
overview
Routines not
followed
Missing
routines
Other
misunderstandings
Incomplete
understanding of
customer needs
Incomplete
requirements
Insufficient
customer contact
Too complex
description
Incomplete
functiona
nonlrequirement
s
RCA - Results
Improvement actions identified from this session:
• The need for sharing competence internally
• Checklist on Intranet
• Common routines/solutions for standard tasks
(best practice experience)
• Common dynamic document templates
• Start the planning, design and development of an
experience database
Conclusions
• Individual experience for the team members
• Measurements gave knowledge of how things
really are in the company
• Common understanding of what we learned
from this knowledge
• Explicit shared knowledge about the process
that the company can reuse
Download