Ensuring product quality.
Context:
The quality of analysis, design, or implementation is to be assessed.
Forces:
The job of QA is to assess quality.
QA usually assesses the quality of the end product, doing only black-box validation and verification.
A group setting brings many insights on product problems and opportunities.
Individuals may not have the insight necessary to discover the bug plaguing the system (this may be an issue of objectivity).
Solution:
Members of a validation team can also work with QA to fix root causes attributable to common classes of software faults.
Resulting Context:
A process where the quality of the system is constantly brought into focus before the whole team. In the resulting context, problems will be resolved sooner. The cost of this pattern is the time expended in group design/code debugging sessions.
Design Rationale:
The CRC design technique has been found to be a great team-builder, and an ideal way to socialize designs. Studies of GBCS projects have found group debugging sessions to be unusually productive.
Bringing the customer into these sessions can be particularly helpful. The project must be careful to temper interactions between Customer and Developer, using the patterns mentioned in the Resulting Context.
There is an empirical research foundation for this pattern. See "An implementation of structured walk-throughs in teaching COBOL programming," CACM, Vol. 22, No. 6, June, 1979, which found that team debugging contributes to team learning and effectiveness. A contrary position can be found in G. J. Meyers, "A controlled experiment in program testing and code walk-throughs/inspections," CACM, Vol. 21, No. 9, September, 1978, though this study was limited to fault detection rates and did not evaluate the advantages of team learning.
Compare with Developing in Pairs.
Next: Scenarios Define Problem
Last updated
Thu Mar 23 09:00:44 CST 1995
Copyright © 1995 AT&T