Quality Concepts
by Ronni Kahalani, Copenhagen School of Design & Technology.
With inspiration from the book Software Engineering - A Practitioner's Approach.
Principles, concepts, and techniques that are applied
to manage and control software quality.
Who am I?
Thank you for stopping by.
I’m Ronni. I hope you’re well and wish you a safe and worthy journey.
This presentation is part of the Software Engineering Series, from my lectures at Copenhagen School of Design & Technology.
You can view the Introducing Myself, if you want to know a little more about who I am.
All my presentations and materials are free and available at my blog post: Software Engineering.
Don’t let me uphold you,
continue your journey, go to next slide.
2
Agenda
Intro
Learn about the principles, concepts, and techniques that are applied to manage and control software quality.
Intro
By the 1990s, major corporations recognized that billions of dollars each year were being wasted on software that didn't deliver the features and functionality that were promised.
Intro
Experts say…
Get the picture?
Intro
Who is to blame?
Who's right?
Both -and that's the problem ☹
Quick Look
Quick Look
What Is Quality?
You know what it is, yet you don't know what it is…
What Is Quality?
But for all practical purposes it really does exist!
“Quality is a complex and multifaceted concept" �which can be described from 5 different points of view.
- by David Garvin of the Harvard Business School
What Is Quality? - David Garvin’s 5 Views
What Is Quality? - David Garvin’s 5 Views
Transcendental view
User view
Manufacturer's view
Product view
Value-based view
What Is Quality?
In reality, quality encompasses all of these views and more…
“Quality is important, but if the user isn't satisfied, nothing else really matters.”
Argues that a more "intuitive" relationship is in order:
user satisfaction =
compliant product + good quality + delivery within budget and schedule
"A product's quality is a function of how much it changes the world for the better.“
- by DeMarco
Software Quality
How do we define software quality?
Software Quality
How do we define software quality?
In the most general sense:
”An effective software process applied in a manner�that creates a useful product that provides�measurable value for those who produce it �and those who use it”
Could be modified or extended and debated endlessly…
Software Quality
3 important points:
Garvin's Quality Dimensions
Although Garvin's 8 dimensions of quality were not developed specifically for software, they can be applied when software quality is considered.
Garvin's quality dimensions provide you with a "soft" look at software quality.
You also need a set of "hard" quality factors:
Garvin's Quality Dimensions
Garvin's 8 dimensions of quality:
McCall’s Quality Factors
McCall, Richards, and Walters propose a useful categorization of factors that affect software quality.
Focus on 3 important aspects of a software product:
Many of the metrics can be measured only indirectly.
McCall’s Quality Factors
ISO 9126 Quality Factors
The standard identifies 6 key quality attributes developed in an attempt to identify the key quality attributes for computer software:
Provides a worthwhile basis for indirect measures and an excellent checklist for assessing the quality of a system.
ISO 25010 - Systems and software engineering
https://www.iso.org/standard/78175.html
Targeted Quality Factors
To conduct your assessment, you’ll need to address specific, measurable (or at least, recognizable) attributes of the interface.
Intuitiveness–Efficiency–
Robustness–Richness
Intuitiveness – Efficiency – Robustness – Richness
Intuitiveness. The degree to which the interface follows expected usage patterns so that even a novice can use it without significant training.
Intuitiveness – Efficiency – Robustness – Richness
Efficiency. The degree to which operations and information can be located or initiated.
Intuitiveness – Efficiency – Robustness – Richness
Robustness. The degree to which the software handles bad input data or inappropriate user interaction.
Intuitiveness – Efficiency – Robustness – Richness
Richness. The degree to which the interface provides a rich feature set.
The Software Quality Dilemma
What is "good enough"?
The Software Quality Dilemma
Bertrand Meyer discusses what is called the quality dilemma...
…people in industry try to get to that magical middle ground where
the product is good enough not to be rejected right away, such as during evaluation,
but also not the object of so much perfectionism and so much work that it would take too long or cost too much to complete.
"Good Enough" Software
Accept the argument made by Meyer…
“Is it acceptable to produce "good enough" software?”
The answer to this question must be yes.
"Good Enough" Software
What is "good enough"?
It is true that "good enough" may work in some application domains and for a few major software companies.
But how about:
The Cost of Quality
Which cost should we be worried about?
Relative cost of correcting errors and defects
The Cost of Quality
Quality has a cost, but lack of quality also has a cost.
Understand both…
The Cost of Quality
The Cost of Quality
Bad things happen when low-quality software is produced ☹
The Cost of Quality
The relative costs to find and repair an error or defect increase dramatically as we go from prevention to detection to internal failure to external failure costs.
According to industry average data:
Considers a large application that has 200 errors introduced during coding.
Risks
Downside of poorly designed and implemented applications does not always stop with dollars and time…
What caused this tragedy?
Poor quality leads to risks, some of them very serious.
Negligence and Liability
The story is all too common…the system might support:
Work begins with the best of intentions on both sides…, by the time the system is delivered…
Litigation ensures…the “quality of the delivered system” comes into question.
Quality and Security
Stated simply,
“Software that does not exhibit high quality, is easier to hack.”
As a consequence, low-quality software can indirectly increase the security risk with all of its attendant costs and problems.
And there are 2 kinds of software problems:
People pay too much attention to bugs and not enough on flaws.
The Impact of Management Actions
Software quality is often influenced as much by management decisions as it is by technology decisions.
Achieving Software Quality
Software quality doesn't just appear.
Achieving Software Quality
Software quality doesn't just appear.
Software Engineering Methods
You must understand the problem to be solved.
Use concepts and methods that can lead to a reasonably complete understanding of the problem and a comprehensive design that establishes a solid foundation for the construction activity.
“If we can really understand the problem, the answer
will come out of it, because the answer is
not separate from the problem”
- by Jiddu Krishnamurti
Project Management Techniques
In addition, the project plan should include explicit techniques for quality and change management.
Machine Learning and Defect Prediction
Machine Learning / AI
Defect Prediction
A big part of what modern scientists do
Quality Control
Use actions to ensure each work product meets its quality goals:
A combination of measurement and feedback that allows tuning the process.
Quality Assurance
Establish the infrastructure that supports:
The goal of quality assurance: To provide management and technical staff with the data necessary to be informed about product quality.
If problems are identified: It is management's responsibility to address the problems and apply the necessary resources.
Summary
Every software organization is faced with the software quality dilemma.
Regardless of the approach that is chosen, quality does have a cost that can be discussed in terms of:
Summary
Software quality is achieved through the application of:
All supported by a software quality assurance infrastructure.
Questions?
Anything? What’s on your mind? Come on ask me anything…
Feedback?
Thank you for your precious time.
I hope it was worth it and would love to get your feedback.