Agile Software Development and ISO/IEC Software Quality Standards: Measuring Economic Benefits and

advertisement
Agile Software Development and
ISO/IEC Software Quality Standards:
Measuring Economic Benefits and
Calculating Quantitative Yields
Anca-Juliana Stoica, Margus Nael
Royal Institute of Technology, KTH-ITC, Sweden
25th International Forum on Systems, Software, and COCOMO Cost
Modeling
University of Southern California, Los Angeles, CA
November 2-5, 2010
Outline
–
Research Background
• Agility vs. Discipline in Software Development
• ISO/IEC Software Quality Standards
–
–
–
Research Objectives
Research Design
Case Studies
•
•
•
•
•
–
–
Techniques and Features Used
Framework for assessing a project
Metrics and Characteristics
Quality Metrics
Integrated Models for Measuring Economic Benefits and
Calculating Quantitative Yields
Results
Conclusions
The Spectrum of Software
Engineering Methods
Examples of Software Engineering
Methods
• Agile methods:
–
–
–
–
Increased customer satisfaction
Lower defect rates
Faster development times
Solution to rapidly changing
requirements
Examples: XP(Extreme
Programming), Cristal
Methods, ASD(Adaptive
Software Development),
DSDM, FDD, Scrum
• Plan-driven methods:
– Predictability
– Stability
– High assurance
Examples: Cleanroom, PSP,
TSP, CMM methods (Capability
Maturity Models: Software
CMM, Integrated
CMM(CMMI)), ISO/IEC
Software Quality Standards
(9001 and the recent SQuaRE
standards)
Agility vs Discipline
Agility vs. Discipline
Challenge
Balance the two approaches to take
advantage of their strengths in a given
situation while compensating for their
weaknesses
Two suggested solutions
•
•
Software risk management approach
Software quality management
approach,
for structuring projects to incorporate
both agile and plan-driven features in
proportion to project’s needs.
Trends for the 21st Century
Software Systems
• For large – to very large scale software intensive
systems, the Emerging Scalable Spiral process
model
• For small – to medium scale software systems,
hybrid methods, using some other concepts in
addition to software risk management, like:
software quality management.
Our focus here is on small – to medium scale
software systems that need to balance agility
and quality assurance.
ISO/IEC SQuaRE Series
– Software product Quality Requirements and
Evaluation
– SQuaRE series of International Standards is
based on 2 predecessors:
•
•
ISO/IEC 9126 (Software product quality)
ISO/IEC 14598 (Software product evaluation)
– New general reference model consisting of 5
quality divisions:
•
•
•
•
•
Quality Management Division
Quality Model Division
Quality Measurement Division
Quality Requirements Division
Quality Evaluation Division.
Organisation of SQuaRE series of
standards
SQuaRE Common Models
–
SQuaRE general reference model - navigation guide
as a function of user’s task(s)
– Software product LC model – views of internal,
external software quality and software quality in use
during software LC
– Quality model structure –categorisation of software
quality attributes into characteristics, sub-characteristics,
and quality attributes.
Remarks
– Measuring and evaluating characteristics will assure
quality
– Organization must support the project with necessary
equipment and knowledge
– Create Quality Evaluation Project Plan
ISO/IEC SQuaRE
Software Product Quality Views
Research Objectives
– Study if there are any conflicts between the
application of agility principles and the
ISO/IEC SQuaRE series of software quality
standards
– Guidelines on how to apply SQuaRE to agile
(hybrid) software development
– Real-life case studies for proving major
benefits:
• Software quality
• Economic benefits.
Research Design
–
Data collection
•
•
–
Guidelines for applying ISO/IEC SQuaRE
•
•
•
–
Principles
How they apply to a specific project/development
environment
Use of inductive approach
Real-life case studies with/without using SQuaRE
•
•
–
Software project assessment framework based on
agile/plan-driven characteristics
Experience base
Software quality improvements
Economic benefits and other quantitative yields
Data analysis
Real-Life Case Studies
Focus on two separate but similar real-life
software development projects:
1. Project A -project without ISO/IEC SQuaRE
2. Project B -project with ISO/IEC SQuaRE
Applied comparative analysis of projects and
software metrics
Real-Life Case Studies
Projects’ characteristics:
• Modern Web-based small- sized software
business systems
• Stakeholder committment based on Theory W
principles
• Incremental development and delivery
• Balancing agility and discipline
• Software quality management done through the
whole life-cycle
• Use of a tailored software engineering method.
ProjectA/Project B
• To publish fresh
publications, e.g. news
articles from news
providers, via WAP or
GPRS to the customers
of a tecommunication
company
• Publications are delivered
to application by RSS and
server creates pages that
are suitable for mobile
stations to read.
•To publish Web Logs
(Blogs) via WAP or GPRS
to the custommers of a
telecommunication
company
•Publications are
delivered to application by
RSS and server creates
pages that are suitable for
mobile stations to read.
Company vision
–
–
by
–
–
capture a larger market share
become more attractive to customers
developing better software quality products
managing better software development
processes.
Project A
Used techniques:
–
–
–
–
–
–
–
–
–
–
–
–
Feature Driven Development
Small team
Osmotic communication
Spiking, Walking skeleton
Information radiators
Simple design
Access to expert user
Estimation using comparison and
analogy
Frequent delivery
Documentation is not so important
Kick-off meeting
Status reporting
Project A
Home ground polar chart
Project A
Framework
for
project
assessment
Included in the
experience
base
Project B
Used techniques:
–
–
–
–
–
Feature Driven
Development
Small team
Osmotic communication
Spiking, Walking
skeleton
Information radiators
(cont.)
Project B
Used techniques:
–
–
–
–
–
–
–
–
–
Simple design
Acess to expert user
Estimation using
comparison and analogy
Frequent delivery
Kick-off meeting
Status reporting
Code reviews
Measurements of quality
characteristics
Burn charts
Project B
Home ground polar chart
Project B
Framework
for
project
assessment:
Project A Quality Model
Dark colors
mm represent quality
n
characteristics
of the project
Project B Quality Model
Remark: We have two quality models, Project A and Project B. We just have to find a way
to measure it and prove that Project B is better.
Metrics and Characteristics
–
–
–
–
–
Project metrics: Personnel.
Product metrics: Lifetime, Downtime, Number of defects,
Complexity.
Product quality metrics: Mean time to failure, Defect density,
Customer satisfaction.
Other metrics: Lost amount of money to customer, Lost amount
of money to developer.
Quantitative economic yields of improving software quality
Remarks
1. Software quality metrics measured with Research Standard
Metrics (RSM) tool
2. Quantitative economic yields of improving software quality are
calculated (estimated) using a value-based framework.
RSM quality report
Project basic data
(RSM Reports)
Software quality report (1):
Total quality notices
Software quality report (2):
Maintainability(Readability)
Software quality report (3):
Quality notices
Software quality notices
Quantitative yields of improving
software engineering methods
Stoica, A.J. (2007). Exploring Quantitative Yields of Software
Engineering Methods in the Software Life-Cycle. The first IEEE
Computer Society EQUITY International Conference. 19-21
March 2007, Amsterdam, the Netherlands.
Motivation
The problem of exploring quantitative yields of a new
(improved) software engineering method in the software
life-cycle has to be addressed in a systemic manner
– relevant metrics and models have to be selected
– their interrelashionships have to be expressed in a
formal manner to detect possible inconsistencies and/or
incompletenesses.
The Model Systems (MS) concept is applied to
– analyze multiple facets of software development
– derive a value-based framework (VF) for exploring the
quantitative yields of a new (improved) software
engineering method in the software life-cycle.
Value-Based Framework (VF)
Interrelated software system metrics and
models that address:
– Costs (CM)
– Quality (QM)
– Productivity (WM)
– Benefits (BM) from applying better software
project quality management
– Resulting value estimation metrics (VM),
evaluated over the software life-cycle.
Quantitative Models for Estimating
Costs, Benefits, and Value
Applicable for software engineering methods that:
– Improve software quality via structured and facilitated group
reviews
– Certify companies to adhere to regulations for international trade
– Evaluate, qualify, certify suppliers to government agencies
– Perform individual and group-based project management via
technical challenging approaches
– Use sets of criteria designed for supplier selection and
establishment of priorities for internal software process
improvement.
VF Instantiation Example
•
•
•
•
Improving an agile (hybrid) software engineering
method is achieved as a result of applying ISO/IEC
software quality (SQuaRE) standards
Metrics and models are applied to: i) existing, and ii)
new (improved) software development process in order
to calculate all the possible quantitative yields
Improvements to an agile (hybrid) software engineering
process are in similar to applying Software Inspection
Method (SIM)
Guidance of practical use that ISO/IEC SQuaRE quality
standard contains is also quite similar.
Input parameters (Project B)
General metrics
Cost metrics
Benefit metrics
Value metrics
Main results
– The real return on investment is 4700%.
– The real gross benefit is 49701,6 Eur.
– Real net benefit when you apply Software
inspection Method (SIM) 48666,15 Eur.
– Real benefit to cost ratio i.e. the ratio
between benefits and costs is 48.
– Real breakeven point is 24288,90 Eur, or
202,12 hours.
Summary
–
–
–
–
–
–
Our research shows that there are no conflicts between
applying ISO/IEC SQuaRE software quality standards and agile
software development
Economic and quality benefits are demonstrated using a value
framework as well as software metrics and measurements
Simple guide to SQuaRE practical use with real-life example is
presented
Evaluation framework for software system projects to decide on
the balance between agile and plan-driven approaches is
outlined
Experience base for analysing software system projects is
created
Our work is a step forward in reconciling agile approaches and
formal software product quality evaluation that is discussed in
ISO/IEC software quality standards.
Conclusions
–
We showed that creatively using software quality standards in
agile software development is possible for
•
•
•
–
–
combining the best of agility and discipline
creating quality software
generating economic benefits.
During the last years, agile software development has become
a work facet in small and medium software development
organizations, but its lack of theoretical foundations require
practical methods, models, metrics, and/or processes to relate it
to software engineering research and application as well as to
the associated engineering standards.
Our work supports this effort and offers theoretical and practical
support for future advances in educational and software
development organizations.
Download