© Gary Swift

Inventing the Future with Structured Planning
Systems Design Methodology for Software Products

Version 2.1, June 6, 1995


2.1 The Competitive Design Factor

After listening to American quality gurus like Deming and Juran in the 50s and 60s, Japanese industry stole the lead in automobiles and consumer electronics in the 70s and 80s. They are fierce competitors in basic computer technology, and threaten a strong presence in the software marketplace. For the last several years the US has been trying to catch up with national quality institutes and councils, the Malcolm Baldridge awards, and processes like life cycle management, Total Quality Management (TQM), and Quality Functional Deployment (QFD). Indeed, quality improvement has become an industry all its own. Meanwhile the Japanese have gone beyond notions of quality control, customer satisfaction, and continuous improvement by focusing on design itself as a quality measure.
The market is no longer buying because the technology is getting smaller and faster by orders of magnitude.
The computer industry is beginning to recognize that good design sells and provides a good return on investment. While most desktop products are clay colored boxes whose sole function is to be a neutral if bland backdrop for the software, there is some pretty hot competition in nomadic notebooks and other emerging technologies. The market is no longer buying because the technology is getting smaller and faster by orders of magnitude; nor is it continuing to tolerate bad quality and poor service. Increasingly the new market will expect traditional measures of quality as a given and it will be buying good design -- products that respond to real-world needs.

2.2 Going Beyond Defect Correction

Many software companies have quality improvement programs and engineering procedures aimed at building in quality as products are developed. Companies throw a lot of resources at improving raw performance, Quality Assurance, unit testing and system testing. But for the most part quality improvement efforts still focus on defect correction, aiming to make software products as bug-free as possible. Minor design flaws are noted as "misfeatures" but fundamental design mistakes are often ignored. They are too expensive, too scary, to address.
A good design process is an ounce of prevention.
For such nightmares a good design process is an ounce of prevention. Providing systems that have small mean times between core dumps or memory protection faults should be among the most rudimentary and fundamental of quality goals. Beyond bugs are issues of fit and finish, and beyond those are factors of customer satisfaction that are central to the very design of the system.

Quality improvement is not monatomic or linear. As producers add major new capabilities, it has the characteristics of a step function, sometimes with intermittent retrogrades at the beginning of new release cycles. The game is to provide customers with consistency and reliability while evolving competitive new functionality. New features do tend to destabilize the system, but companies that produce products that are not innovative cannot expect to remain dominant players in the marketplace.

The quality goals in software must move beyond bug fixing. For a software company to remain competitive, it needs to recognize the full scope of design requirements as measures of quality, and it needs a methodology to translate them effectively and systematically into design specs for its product stream.