introduction to process improvement & software quality assurance
TRANSCRIPT
INTRODUCTION TO PROCESS IMPROVEMENT AND SOFTWARE QUALITY ASSURANCEBy Ariful H Bhuiyan
m ariful h bhuiyan ©
2011 /
People forget how fast you did a job – but they always remember how well you did it
by Howard Newton
http://www.linkedin.com/in/arifbd111http://thinkinginprocess.wordpress.com/
2
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
Introduction to Process Improvement.
Symptoms… Why focus on
process? The Importance of
process Process Improvement
& Quality Assurance
Introduction to SQA Two Views of QA QA vs QC Cost of Quality Quality Attributes QA Activity Quality Model Quality Tools Quality Guru
Content
ariful h bhuiyan © 2011 / [email protected]
3
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
Missed Communication Spiraling Cost Late delivery to market Last-minute crunches
Inadequate management visibility Too many surprises
Quality Problem Customer complain Too many rework Functions not working correctly
Poor Morals Burned-out people Inadequate control of project results
1.1 Introduction to Process Improvement… Have these Symptoms?
ariful h bhuiyan © 2011 / [email protected]
4
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
It complements your focus on technology Technology by itself will mostly likely not to be used
effectively. Technology in the context of an appropriate process
roadmap can provide the most benefit.
It complements your focus on people The experience and training of your work force is not
always enough. Working harder is not the answer. A well-defined process can provide the means to work
smarter. It shifts the “blame” for problems from the people to
process.
1.2 Why Focus on Process?
ariful h bhuiyan © 2011 / [email protected]
5
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE1.3 The importance of Process
- Explain to employee how to perform a task- Transfer knowledge from more experienced employee to less experienced employee- Assure predictability of work activities so that approximately the same deliverables will be produced with the same resource each time the process is followed.- Establish a basic set of work task that can be improved continuously- Free management from their activities associated with “expediting work products” to spend more time on activities such as planning, customer satisfaction & vendor interaction.
- Increase provability that the deliverables produced will be the desired deliverables.- Enable employee to devote their creativity to improve the business instead of having to develop work process to build product- Enable employee to better plan their workday because of the predictability resulting from work processes. ariful h bhuiyan © 2011 / [email protected]
6
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
1.4 Process Improvement and Quality Assurance
Process Improvement is a concept Quality Assurance is a
ariful h bhuiyan © 2011 / [email protected]
7
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.1 Introduction to Quality Assurance
What is Software Quality? Software Quality is the degree to which a software
product conforms to a set of specified requirements. “The degree of excellence required and maintained at
an acceptable price.” What is Software Quality Assurance?
Framework for Independent assessment & insight into S/W development
processes & products Ensures conformance to
Functional & performance requirements Development standards S/W Quality Factors
ariful h bhuiyan © 2011 / [email protected]
8
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.1 Introduction to Quality Assurance
Quality Assurance is catalytic function that attempts to make quality happen
It is not responsible for quality because that is a management responsibility
It is not responsible for quality control because it is line management responsibility
QA is responsible for the management of Quality
ariful h bhuiyan © 2011 / [email protected]
9
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.2 Two views of Quality
Producers ViewFitness for user
Customers ViewMeeting Requirements
- Conformance to the requirements by Crosby
- Fitness for use by Juran
ariful h bhuiyan © 2011 / [email protected]
10
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.3 Quality Assurance (QA) vs Quality Control (QC)
Quality Assurance Quality ControlProcess ProductProactive ReactiveStaff Function Line FunctionPrevent defects Find defects
Quality Audit WalkthroughDefining Process TestingSection of Tools InspectionTraining Checkpoint review
ariful h bhuiyan © 2011 / [email protected]
11
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.4 Cost of Quality
Failure Costs Project Rework Overtime Maintenance costs Lost credibility Providing alternative
service Lost management time Complaints, rebates &
damage claims Lost assets,
opportunity Unrealized savings
Prevention Costs Planning quality
improvement Statistical Process
Control Quality audits Quality Training
Appraisal Costs Reviews Inspections Testing
ariful h bhuiyan © 2011 / [email protected]
12
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.5 Activities of Quality Assurance
Quality Management System development Quality Planning Measuring Quality Reviews, Walkthroughs, Inspections Quality Audits Continuous Improvement
ariful h bhuiyan © 2011 / [email protected]
13
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.6 Quality Attributes
Reliability Reliability of a software system derives fromCorrectness, and Availability.
User friendliness
Adequacy, Learn-ability, Robustness
Maintainability
Maintainability = suitability for debugging (localization and correction of errors) and for modification and extension of functionality.The maintainability of a software system depends on its: Readability, Extensibility, Testability
Extensibility Extensibility allows required modifications at the appropriate locations to be made without undesirable side effects.Extensibility of a software system depends on its:• Structuredness (modularity) of the software system• Possibilities that the implementation language provides for
this purpose• Readability (to find the appropriate location) of the code• Availability of comprehensible program documentation
Efficiency Efficiency: ability of a software system to fulfill its purpose with the best possible utilization of all necessary resources (time, storage, transmission channels, and peripherals).
ariful h bhuiyan © 2011 / [email protected]
14
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.6 Quality Attributes
Robustness Robustness reduces the impact of operational mistakes, erroneous input data, and hardware errors.A software system is robust if the consequences of an error in its operation, in the input, or in the hardware, in relation to a given application, are inversely proportional to the probability of the occurrence of this error in the given application.
• Frequent errors (e.g. erroneous commands, typing errors) must be handled with particular care
• Less frequent errors (e.g. power failure) can be handled more laxly, but still must not lead to irreversible consequences.
Understandability
Clarity of purpose. This goes further than just a statement of purpose; all of the design and user documentation must be clearly written so that it is easily understandable. This is obviously subjective in that the user context must be taken into account: for instance, if the software product is to be used by software engineers it is not required to be understandable to the layman.
Completeness Presence of all constituent parts, with each part fully developed. This means that if the code calls a subroutine from an external library, the software package must provide reference to that library and all required parameters must be passed. All required input data must also be available.
ariful h bhuiyan © 2011 / [email protected]
15
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.8 Quality Models
ISO 9000 by ISOThe ISO 9000 family of standards relate to quality management systems and are designed to help organizations ensure they meet the needs of customers and other stakeholders. ISO 9000 deals with the fundamentals of quality management systems, including the eight management principles on which the family of standards is based. ISO 9001 deals with the requirements that organizations wishing to meet the standard have to meet. Current version of ISO 9001 is ISO 9001:2008
ISO/IEC 15504: Process Assessment by ISOISO/IEC 15504, also known as SPICE (Software Process Improvement and Capability Determination), is a set of technical standards documents for the computer software development process and related business management functions. It is another joint International Organization for Standardization and International Electro-technical Commission standard.ISO/IEC 15504 initially was derived from process lifecycle standard ISO 12207 and from maturity models like Bootstrap, Trillium and the CMM.
ariful h bhuiyan © 2011 / [email protected]
16
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.8 Quality Models
CMMI by SEI Capability Maturity Model Integration (CMMI) is a process improvement approach that helps
organizations improve their performance. CMMI can be used to guide process improvement across a project, a division, or an entire organization.
CMMI in software engineering and organizational development is a process improvement approach that provides organizations with the essential elements for effective process improvement. CMMI is registered in the U.S. Patent and Trademark Office by Carnegie Mellon University.
According to the Software Engineering Institute (SEI, 2008), CMMI helps "integrate traditionally separate organizational functions, set process improvement goals and priorities, provide guidance for quality processes, and provide a point of reference for appraising current processes."
Six Sigma by Motorola Six Sigma is a business management strategy originally developed by Motorola, USA in
1986. Six Sigma seeks to improve the quality of process outputs by identifying and removing the
causes of defects (errors) and minimizing variability in manufacturing and business processes. It uses a set of quality management methods, including statistical methods, and creates a special infrastructure of people within the organization who are experts in these methods. Each Six Sigma project carried out within an organization follows a defined sequence of steps and has quantified financial targets (cost reduction or profit increase)
ariful h bhuiyan © 2011 / [email protected]
17
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.9 Quality Tools
Tool DetailsTally sheets •Form of Data Collection
•Individual format depending on situation
Run Chart •Plot of values by time sequence•Show trend of process over time•Can be made for individual values / Interval Ratio scale
Scatter Diagram •Plot of observed values showing one variable with respect to another•To explore cause-effect relationship•Often, One variable “dependent” the other “Independent”
Histograms •Display distribution of collected data•Insights into potential causes, trends
Bar Charts •Defined on discrete data•Otherwise similar to histogram•Can be used to display any value
ariful h bhuiyan © 2011 / [email protected]
18
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.9 Quality Tools
Tool DetailsPareto Charts •Frequency counts arranged in descending order
•For identifying “biggest contributor” to problems•Before / after can be used to show impact of attempted improvement
Cause-effect Diagrams(Ishikawa / Fishbone Diagrams)
•Graphical methods used to understand causes for a problem (effect)•Initially subjective, then refined with measurement data•Gives a snapshot of collective knowledge and consensus•Of three types
• Dispersion analysis• Production Process Classification• Cause Enumeration
Control Charts •Concern with measuring process• Stability, Variability, Capability
•Use of limits (pre-set tolerances) to know when “out-of-control”
• Center line, upper control limit, lower control limitariful h bhuiyan © 2011 / [email protected]
19
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
2.10 Quality Guru
Edwards Deming Dr. W. Edwards Deming is known as the father of the Japanese post-war industrial revival
and was regarded by many as the leading quality guru in the United States. He passed on in 1993.
Trained as a statistician, his expertise was used during World War II to assist the United States in its effort to improve the quality of war materials.
Deming is famous for his famous 14 points on Quality Assurance Philip Crosby
Dr. Deming and Dr. Juran were the great brains of the quality revolution. Where Phil Crosby excelled was in finding a terminology for quality that mere mortals could understand. His books, "Quality Without Tears" and "Quality is Free" were easy to read, so people read them. He popularized the idea of the "cost of poor quality", that is, figuring out how much it really costs to do things badly.
Joseph M. Juran Joseph M. Juran made many contributions to the field of quality management in his
70+ active working years. His book, the Quality Control Handbook, is a classic reference for quality engineers. He revolutionized the Japanese philosophy on quality management and in no small way worked to help shape their economy into the industrial leader it is today. Dr. Juran was the first to incorporate the human aspect of quality management which is referred to as Total Quality Management.
ariful h bhuiyan © 2011 / [email protected]
20
INTRODUCTION TO PROCESS IMPROVEMENT ANDSOFTWARE QUALITY ASSURANCE
Thank You
Thank YouAny questions?
Credits www.sei.cmu.com www.wikipedia.org http://csqa.blogspot.com Software Quality Boot Camp slide by QAI
ariful h bhuiyan © 2011 / [email protected]