Quality :: Introduction/Overview

Troubleshooting quality in software development, both product and process quality, is an established discipline today, yet if we compare the software industry with other engineering fields such as building construction, car manufacturing, or consumer electronics, we will find an embarrassing picture. None of us is prepared to accept to live in a building, to drive a car, or to use a TV set with as many quality failures as our best commercial software products tend to have. At the same time in the software development industry we are living with unacceptable levels of costs and delivery time incertitude. A very high percentage of our software projects are abandoned before their finalization and product delivery.

Of course there are historical and technological reasons to explain this situation, but these only help justify the lack of quality, and do not offer a solution to our quality problems.

So what should be our approach to a solution? As in any other problem solving activity we will:

  1. Identify the event as a suspected problem
  2. Verify and validate/certify the event as a real problem by comparison with the ideal (or desired) situation
  3. Analyze the problem and determine:
    1. its attributes in terms of repeatability, frequency, severity, priority, applicability, limits, scope (range, extent), etc.
    2. current and potential consequences in terms of direct costs, risks, collateral damages, etc.
    3. whether it is a primary problem or consequence of other reported problem(s)
  4. Find a pattern and study the conditions of occurrence: initial conditions, triggering event, results/consequences, and attenuating or alleviating conditions, if any
  5. Find the causes of occurrence
  6. Find a solution to the problem, meaning: eliminate, or at least, mitigate problem occurrence, or if not possible, remove or reduce the negative impact of its consequences
  7. Implement the solution
  8. Verify if the solution resolved the problem; if the problem is solved – continue with (9), if the problem persists go to (4)
  9. Verify if the solution did not generate some new problem(s) – if the answer is no – continue with (10); if yes then repeat (1) to (10) for each recurrent problem
  10. Document and publish the problem description and its solution for further reference

Of course, our life is greatly simplified and the costs of troubleshooting quality are diminished a lot, if we can use previous experience related to the solving of the same type of problems – our own experiences or, even better (i.e. quicker, cheaper), the experience of other professionals in analyzing and solving quality problems.

careers | contact | dallya