The authors propose an organizational approach to product development using a separate Product Assurance group. This Product Assurance group is independent of the functional departments (systems, programming) and the project managers. This separation actually extends the typical two-dimensional matrix organization (development, management) to a three-dimensional involvement with the interplay of the following disciplines:
The development discipline is responsible for creating and maintaining software during the software life cycle, i.e., analysis, design, coding, implementation, and maintenance. Functionally, the development effort is carried out by system analysts and software engineers.
Product Assurance provides management with checks and balances to assure product integrity: (1) the product meets the users’ expectations, (2) the product is implemented on time, (3) and the product is delivered within the budget. These checks and balances are in the form of reviews conducted at critical points during the development process: (1) at the end of the Functional Design to assure that user requirements have been translated into a functional approach, (2) at the end of the Detail Design to assure that the functional approach has been translated into specific software modules, and (3) at the end of the Testing phase to assure that the system meets the users’ original specifications.
Project Management, through feedback from Development and Product Assurance, provides overall direction to the project.