Quality

A good performing organization spends 80% of its effort in preventing problems, while a low performing organization spends most of its effort correcting symptoms instead of the cause of problems.

What is Software Quality

Quality improvement must be focused on processes, not people; It is the responsibility of everyone involved.

A process of quality will lead to a product of quality.

The degree to which the software has a combination of desired attributes.

The degree to which the customer or user realizes that the software meets their expectations

Attributes of the software that affect perceived values, for example, reliability, maintainability, portability …

Benefits

The use of techniques to improve the quality of software can result in benefits (for the company), such as:

  • Reduced software development costs
  • Increased productivity
  • Reduced time to ship new features (time to Market)
  • Reduced in software maintenance costs
  • Delivering high quality software and consequently reducing customer cost

Quality Perspectives

  • User based perspective: Degree to which a product meets user expectations.

    • Identifies which product attributes, factors and characteristics are important for the user.
    • Covers all subjective elements that go beyond the functionality expected for user’s satisfaction
    • Examples: usability,
  • Product based perspective: Explores the causal relationships between internal and external properties

    • Products developed with good internal quality will have good external quality.
    • The quality of the product can be assessed objectively by defect count which reflects the quality of the work produced and rework cost.
    • Examples: churn, retention, upgrade/downgrade ratio.
  • Value based Perspective: It represents the association between two independent concepts - excellence and value

    • Quality is a measure of excellence
    • Value is a measure of cost
    • It is based on the idea that value is how much a customer is willing to pay for a given level of quality, thus representing a compromise between cost and quality.

Measurements

Measurement helps us to Understand, Control, Improve

It encourage us to IMPROVE processes and products.

Measurements help us to CONTROL what is happening in the project and to UNDERSTAND what’s going on during software development and maintenance phase.

Measurements must meet the information needs of those who will make decisions based on the data acquired.

What to measure

You should know what needs to be measured.

Ideally: Attributes of

  • People: Team Experience
  • Processes: Productivity
  • Products: Quality
  • Environments: Availability, stability

Scope of software quality metrics

Software quality is a term that encompasses many activities:

  • Effort and cost estimates
  • Productivity measures;
  • Data collection;
  • Structure and complexity metrics;
  • Capacity-maturity assessment;

Quality factors - McCALL’S

  • INTELLIGIBILITY: The process must be defined and intelligible

  • VISIBILITY: The progress of the process must be visible externally

  • SUPPORT: The process must be supported by tools

  • ROBUSTNESS: The process must be able to continue despite unexpected problems.

  • VELOCITY: System production speed

  • ACCEPTABILITY: The process must be accepted by everyone involved

  • RELIABILITY: Process errors must be discovered before they result in product errors

  • MAINTENANCE: The process must be able to evolve to meet changing organizational needs

  • CORRECTINESS: Do what the customer wants?

  • CONFIDENCE: Do it accurately all the time?

  • EFFICIENCY: Do it quickly and solve the problem you want?

  • INTEGRITY: Is it safe?

  • USABILITY: Can I use it?

  • MAINTENABILITY: Can it be fixed?

  • TESTABILITY: Can be tested?

  • FLEXIBILITY: Can be changed?

  • PORTABILITY: Can be used in another environment?

  • REUSE: Do you have parts that can be reused?

  • INTEROPERABILITY: Can you interface with another system?


How To Apply This

The work is to identify a problem that can be clarified through the use of metrics. In this sense, the work should explain and define:

  1. The problem under analysis
  2. The measurement objective, according to the template
  3. Using the abstraction sheet to identify issues and metrics
  4. Issues associated with the measurement objective
  5. Metrics (according to their classifications: internal, external - direct, indirect - objective, subjective). Thus, name, form of calculation, scale used, who collects it, where it keeps it, how it collects data, must be defined for each selected metric.
  6. A procedure for applying the metrics in line with a product development cycle.
  7. Some practical application inπside the product management process.