Loading
Loading
… Please Wait…
… Please Wait…
Michał Szymerski
Rafał Staszewski
Quality in IT project
What is quality?
What is quality?
Quality (according to ISO 9000:2000) is the ability of the
product and all its integral parts to satisfy demands of
the customer or any other entity that commisioned the
project (conformance to specifications)
Essential subjects related to quality are:
•
Satisfaction of the customer is the main criteria of
quality
•
Prevention is more crucial than inspection
•
Management responsibility
• Although teamwork is important and essential to
completion of the project, the main entity responsible for
the project is the management
Quality Management
Quality Management
Quality assurance:
Set of functions that are carried out throughout the
process of the project creation, that aims at providing
overall quality in the project
Quality inspection:
Inspecting each and every product of the project in
order to assess their compatibility with the project
requirements
Quality planning:
Assurance of quality must be planned in order to fully
satisfy customer’s demand
Quality Planning
Quality Planning
Quality planning – should start in the early phase of software creation
The basis to quality planning in a project is the overall quality policy of the
company(what is the managements idea twoards quality related problems). It is
important to note that that this „policy” should not be strict but rather customized
twoards individual projects.
The main factors that should be concidered in quality policy:
The projects scope
The products description
Standards and regulaitons well adjusted twoards the scope of the project.
Standards are orders describing the workflow and characteristics of the product.
Regulations are the non flexible , law requirements, organization requirements.
While planning the quality it is important to take into concideration the results of other
forms of planning.
One of the elemetns of Q.P. is working with the user in order to verify if the way the
project is being developed, satisfies him. (For software developement that would
be using prototypes)
Quality management -
Quality management -
standards
standards
ISO (International Standards
Organization)
• Established in 1987
• Recognized worldwide
• International set of five related standards for qualification
of global quality assurance and quality control standards
• Adherence is accomplished through an application
process for ISO 9000 certification in company standards
for inspecting production processes, updating records,
maintaining equipment, training employees and handling
customer relations
• Procedures must be documented in company’s quality
manual that defines the quality ensurance process.
Standards continued
Standards continued
•
ISO 9001 – most general standard of the ISO 9000
•
Applies to companies that develop and create products
•
ISO 9000-3 – auxilary document that describes software
development
ISO 9000
Company’s quality
manual
Quality ensurance
plan 2
Quality
ensurance plan 3
Quality ensurance
plan 1
Company’s quality
processes
Venture quality
management
Used in development of
documents
Its entity is
Quality management plan
Quality management plan
•
Result of quality planning
•
Specifies desired product quality
•
Specifies quality criterias
•
Specifies company standards that are to be used in
project
•
Should be kept short
•
Defines most important quality attributes
Quality management plan
Quality management plan
- ctd
- ctd
Security
Adaptability
Protection
Clearness
Modularity
Fitness to testing
Reliability
Immunity
Solidity
Complexity
Learning curve
Efectiveness
Reusability
Ease of use
Portability
Quality assurance
Quality assurance
The process of quality assurance is a set of functions that is needed in
order for the project to meet its standards.
We may specify 2 types of standards, that are part of quality assurance
process:
1)Product standards – they relate to the project. They incorporate
document standards that need to be created, such as requirements
documentation hierarchy/structure , documenting standards ( expl.
Commentary in the objects header), coding standards.
2)Process standards – they define the processes that need to be obeyed
durring software developement. This includes defining specification
processes as well as document descriptions (that should be created
durring developement).
There is a strict bond between quality and process standards.
Product standards relate to the results of software developement process.
In many cases process standards include specific process tasks, whos goal
is to provide compliance with the product standards.
Quality Assurance ctd.
Quality Assurance ctd.
Quality assurance in projects is mostly done by an outside,
project independant quality assurance branch/team, but can
also be done by a team inside the project , specificly
designated for this task, or by the client himself.
Q.A. teams that develop standards should base them upon
national and international standards such as:
Progamming languages
Notations
Software enginering terminology
Defining and writing requirements for software.
Quality assurance processes and verification and aproval
processes
Quality assurance team should develop a "standards manual”, in
which standards apropriate for the company should be
defined.
Process and Product Quality
Process and Product Quality
The main assumption of quality management is that the quality of the
creation process has a direct influence on the quality of the
delivered product and thus it has a very important influence on
software quality
Contrary to mass production systems (in which achieving an
acceptable level of process quality guarantees a sustainable
product quality), quality management in software development
must be ensured in each and every development project or cycle
Quality management process incorporates:
1)
Defining processes’ standards
(such as the way we make our audits, their time, precision etc)
2)
Monitoring the creation process in order to assure that
standards are being obeyed
3)
Informing the management and the client about our software
developement process
The basic technique of quality assurance are audits of the quality
(systematic checks aimed at finding eventual incompatibilities
with the used standards)
Standards creation
Standards creation
Create product
Define process
Proper
Quality
Improve Process
Measure Quality
Develop standard
No
Yes
Quality control:
Quality control:
Quality control handles products, half-products and
management work results
The basic technique of quality control is inspection. This
is checking and testing products in order to state if
they comply with their requirements. Inspections are
the basis for management decisions regarding the
acceptance of a product
Frequent occurences of similar problems should be a
basis for modification of the work processes leading to
them
Software quality standards are important for quality
assurance because they are a set of „best guidlines”.
Following these guidelines makes our project better
Software quality measures:
Software quality measures:
Quality needs to be measurable. For every project, a set of
measurements, which will be calculated durring the project’s
life, must be prepared. The most simple types of quality
measures for software developement projects are the number
of errors encountered during the process of system usage and
the time between their encounters
Other types of measures are:
-
The amount of code in lines
-
Fog index (the measure of the readability of a certain
fragment of text)
S.Q.M. are especially very useful when it comes to detecting
anomalous components, in which we have quality problems.
Those components need to be thouroughly examined later
There are no standard or universal measures. Companies must
themselves pick their measures and analize the results based
on local knowledge and conditions
Quality evaluation
Quality evaluation
Inspection of production process is the most commonly
used quality evaluation method
Software measurements are used to accumulate
quantitative data about programming and software
development techniques. Acquired data can be used to
make conclusions about quality of the product and
process used
Quality management is an important part of the project,
however – it must accompany the project budget; the
lower the budget for quality management – the lower
quality of the project
Quality improvement process
Quality improvement process
The fundamental assumption of quality
improvement process is that product development
process is most crucial to the overall quality of
the project
Improving the production process in order to avoid
defects leads to better products
In case of innovative products, people are often
more important than actual production process
used
Factors that impact quality
Factors that impact quality
In
In
f
f
luence of any of these factors depends on the
luence of any of these factors depends on the
scale and type of venture
scale and type of venture
Product Quality
Technology used
Team
quality
Process
quality
Expenses, time,
schedule
Factors that impact quality
Factors that impact quality
Large ventures*
The main problems:
Integration
Management
Communication
* large - complicated systems that are composed of
many separate subsystems built by many different
teams, in which product development can take
many years
Factors that impact quality
Factors that impact quality
Small ventures
In case of small ventures, quality of the project team
members is much more important than development
process used.
Good team should deliver a good project
Inexperienced and incompetent team will, in most
cases, not produce product of desired quality
regardless of development technique used
Development technique especially important in case
of small teams
Paperwork should never hold back the project
Since team members spend a lot of time on planning
and programming, adequate tools will greatly
increase their productivity
Factors that impact quality
Factors that impact quality
Regardless of project size, too little budget and
unrealistic expectations of project completion
date will greatly affect or ruin the overall quality
of the project
Fierce competition often casues companies to
unnaturaly lower project costs in order to win
contracts. This often leads to grave results as the
project fails to have a suitable budget.
Literature
Literature
Ian Sommerville- „Inżynieria oprogramowania”
WNT 2003
Wikipedia
Internet sources