Quality Concepts and Principles

Quality management ensures that an organization, product or service is consistent. It has four main components: quality planning, quality control, quality assurance and quality improvement. Quality management is focused not only on product and service quality, but also the means to achieve it. Quality management therefore uses quality assurance and control of processes as well as products to achieve more consistent quality.

Various quality related terms are discussed.

Quality Defined

It is defined as characteristic or attribute of a product or service. Refers to measurable characteristics that we can compare to known standards, in software it involves such measures as cyclomatic complexity, cohesion, coupling, function points, and source lines of code. It includes variation control

  • A software development organization should strive to minimize the variation between the predicted and the actual values for cost, schedule, and resources
  • They should make sure their testing program covers a known percentage of the software from one release to another
  • One goal is to ensure that the variance in the number of bugs is also minimized from one release to another

There are two major types of quality

  • Quality of Design: Design quality refers to the level of characteristics that the designers specify for a product.
  • Quality of Conformance: The degree to which the design specifications are followed during manufacturing, this focuses on how well the implementation follows the design and how well the resulting system meets its requirements

Quality Control

It involves a series of inspections, reviews, and tests used throughout the software process, ensures that each work product meets the requirements placed on it. Also, includes a feedback loop to the process that created the work product which is essential in minimizing the errors produced.

Combines measurement and feedback in order to adjust the process when product specifications are not met; requires all work products to have defined, measurable specifications to which practitioners may compare to the output of each process.

Quality Management

It serves as an umbrella activity that is applied throughout the software process, involves doing the software development correctly versus doing it over again, it reduces the amount of rework which results in lower costs and improved time to market. It encompasses

  • A software quality assurance process
  • Specific quality assurance and quality control tasks (including formal technical reviews and a multi-tiered testing strategy)
  • Effective software engineering practices (methods and tools)
  • Control of all software work products and the changes made to them
  • A procedure to ensure compliance with software development standards
  • Measurement and reporting mechanisms

Quality Assurance Functions

It consists of a set of auditing and reporting functions that assess the effectiveness and completeness of quality control activities; provides management personnel with data that provides insight into the quality of the products; alerts management personnel to quality problems so that they can apply the necessary resources to resolve quality issues.

Product

A product as any tangible output or service that is a result of a process. A product itself may include hardware, software, documentation, or a combination of these; also note that a service is included in the definition.

Process

A process is a set of activities performed for a given purpose, for example, a software acquisition process. The quality of a product or service is dependent on the quality of the process used to create it.

Requirement

A requirement is a needed capability, condition, or a property that must be possessed by an entity to satisfy a contract, standard, specification, or other formally imposed documents. A requirement is a way of characterizing a user’s need in a way that allows a development team to implement that need in the product in a concrete way. The achievement of the requirement is the yardstick by which we measure the quality of a product or a service.

User

A user is either the customer or the end user. The user is either the customer (either internal or external) or represented by a buyer or the user community.

Evaluation

It is defined as the process of determining satisfaction of requirements. As defined by Kenett is defines evaluation as “a process to evaluate the quality of products and to evaluate associated documentation, processes, and activities that impact the quality of the products”. Evaluation includes methods such as analyses, inspections, reviews, and tests.

Measure and Measurement

Measure is to ascertain the characteristics or features (extent, dimension, quantity, capacity, and capability) of something, especially by comparing with a standard. Measurement is a dimension, capacity, quantity, or amount of something (e.g., 300 source lines of code or seven document pages of design). Measurement is the process by which numbers or symbols are assigned to attributes of entities in the real world in such a way as to characterize the attributes by clearly defined rules.

Failure

A failure is said to occur whenever the external behavior of a system does not conform to that prescribed in the system specification.

Error

An error is a state of the system. In the absence of any corrective action by the system, an error state could lead to a failure which would not be attributed to any event subsequent to the error.

Fault

A fault is the adjudged cause of an error.

Cost of Quality

The “cost of quality” isn’t the price of creating a quality product or service. It’s the cost of not creating a quality product or service. Every time work is redone, the cost of quality increases. Cost of quality is the sum of various costs as that of appraisal costs, prevention costs, external failure costs, and internal failure costs. It is generally believed that investing in prevention of failure will decrease the cost of quality as failure costs and appraisal costs will be reduced. Understanding cost of quality helps organizations to develop quality conformance as a useful strategic business tool that improves their product, services & brand image. This is vital in achieving the objectives of a successful organization.

COQ is primarily used to understand, analyze & improve the quality performance. COQ can be used by shop floor personnel as well as a management measure. It can also be used as a standard measure to study an organization’s performance vis-à-vis another similar organisation and can be used as a benchmarking indices.

Various types of Quality Costs are

Appraisal Costs: The costs associated with measuring, evaluating or auditing products or services to assure conformance to quality standards and performance requirements. These include the costs of

  • Inspection of software requirements
  • In-process and final inspection
  • Product and process audits

Prevention costs: Prevention Costs are any costs that are incurred in an effort to minimize appraisal and failure costs. This category is where most quality professionals want to live. They say an ounce of prevention is worth a pound of cure and they are what this category is all about. This includes the activities that contribute to creation of the overall quality plan and the numerous specialized plans. Examples are costs associated with Quality planning, formal technical reviews, test equipment, training.

Failure costs: The costs resulting from products or services not conforming to requirements or customer/user needs. Failure costs are divided into internal and external failure categories.

  • Internal failure costs: Incurred when an error is detected in a product prior to shipment; Include rework, repair, and failure mode analysis
  • External failure costs: Involves defects found after the product has been shipped
  • Include complaint resolution, product return and replacement, help line support, and warranty work.

Examples of the various costs are

  • Prevention – Training Programme, Preventive Maintenance
  • Appraisal – Depreciation of Test/ Measuring Equipment, Inspection Contracts
  • Internal Failure – Scrap, Rework, Downtime, Overtime
  • External Failure – Warranty, Allowances, Customer Returns, Customer Complaints, Product Liability, Lawsuits, Lost Sales

Identifying COQ can have several benefits, as

  • It provides a standard measure across the organisation & also inter-organisation
  • It builds awareness of the importance of quality
  • It identifies improvement opportunities
Quality Concepts

Factors for Poor Quality

Some of the factors which result in poor quality software are

  • Lack of domain knowledge: Most developers are not experts in the business domain served by their applications, be it telecommunications, banking, energy, supply chain, retail, or others. The best way to mitigate this is to provide access to domain experts from the business, proactively train developers in the business domain, and conduct peer reviews with those possessing more domain experience.
  • Lack of technology knowledge: Most developers are proficient in several computer languages and technologies. However, modern multi-tier business applications are a complex tangle of many computer languages and different software platforms. These tiers include user interface, business logic, and data management, and they may interact through middleware with enterprise resource systems and legacy applications written in archaic languages. Few developers know all of these languages and technologies, and their incorrect assumptions about how other technologies work is a prime source of the non-functional defects that cause damaging outages, data corruption, and security breaches during operation. The best way to mitigate this cause is to cross-train developers in different application technologies, conduct peer reviews with developers working in other application tiers, and perform static and dynamic analyses of the code.
  • Badly engineered software: Two-thirds or more of most software development activity involves changing or enhancing existing code. Unnecessarily complex code is often impenetrable and modifying it leads to numerous mistakes and unanticipated negative side effects. These newly injected defects cause expensive rework and delayed releases. The best way to mitigate this cause is to re-factor critical portions of the code guided by information from architectural and static code analyses.
  • Unrealistic schedules: When working at breakneck pace, stressed developers make more mistakes and have less time to find them. The only way to mitigate these death march travesties is through enforcing strong project management practices. Controlling commitments through planning, tracking progress to identify problems, and controlling endless requirements changes are critical practices for providing a professional environment for software development.

Customer View of Quality

From the customer’s perspective, satisfaction after the delivering of the product is the ultimate validation of the product quality. It is clear that the concept of quality must involve customers or, simply put, quality is conformance to customers’ expectations and requirements

Customer views the software as a quality product if it satisfies the below mentioned criteria

  • The product received is able to perform the task for which is was purchased
  • All the requirements and the needs are being met by the product
  • During the transaction they received a treatment which maintained their integrity and respect.

Principles

The International Standard for Quality management (ISO 9001:2008) adopts a number of management principles that can be used by top management to guide their organizations towards improved performance.

Customer focus
Since the organizations depend on their customers, they should understand current and future customer needs, should meet customer requirements and should try to exceed the expectations of customers. An organization attains customer focus when all people in the organization know both the internal and external customers and also what customer requirements must be met to ensure that both the internal and external customers are satisfied.

Leadership
Leaders of an organization establish unity of purpose and direction of it. They should go for creation and maintenance of such an internal environment, in which people can become fully involved in achieving the organization’s quality objective.

Involvement of people
People at all levels of an organization are the essence of it. Their complete involvement enables their abilities to be used for the benefit of the organization; however, the ultimate key decisions are made by the project manager.

Process approach
The desired result can be achieved when activities and related resources are managed in an organization as a process.

System approach to management
An organization’s effectiveness and efficiency in achieving its quality objectives are contributed by identifying, understanding and managing all interrelated processes as a system. Quality Control involves checking transformed and transforming resources in all stages of production process.

Continual improvement
One of the permanent quality objectives of an organization should be the continual improvement of its overall performance, leveraging clear and concise PPMs (Process Performance Measures).

Factual approach to decision making
Effective decisions are always based on the data analysis and information.

Mutually beneficial supplier relationships
Since an organization and its suppliers are interdependent, therefore a mutually beneficial relationship between them increases the ability of both to add value.

These eight principles form the basis for the quality management system standard ISO 9001:2008.

Get industry recognized certification – Contact us

Menu