Quality assurance in projects is mostly done by an outside, project

advertisement
Loading… Please Wait…
Quality in IT project
Michał Szymerski
Rafał Staszewski
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 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 – 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 - 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
•
•
•
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
documents
Used in development of
Quality ensurance
plan 1
Quality ensurance
plan 2
Company’s quality
processes
Its entity is
Quality
ensurance plan 3
Venture quality
management
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 - ctd
Security
Clearness
Portability
Protection
Fitness to testing
Ease of use
Reliability
Adaptability
Reusability
Immunity
Modularity
Efectiveness
Solidity
Complexity
Learning curve
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 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
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)
3)
Monitoring the creation process in order to assure that standards are being
obeyed
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
Define process
Create product
Improve Process
Measure Quality
No
Proper
Quality
Yes
Develop standard
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:
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
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
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
Technology used
Process
quality
Product Quality
Team
quality
Expenses, time,
schedule
Influence of any of these factors depends on the
scale and type of venture
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
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
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



Ian Sommerville- „Inżynieria oprogramowania” WNT 2003
Wikipedia
Internet sources
Download