Independence assures no common mode error, dependence allows it to happen


Common Mode Error is made possible where there is only a single communication channel for information during part of the process, where an independent communication and cross check could be made.


One of the more frequent common mode errors is in interpretation of requirements.If the same person interprets the requirements for both analysis and test, then when that requirement is misinterpreted, the test and the code developed from the analysis will both contain the same misinterpretation.The test and the code may agree with each other, but neither agrees with the requirement if it were correctly interpreted.

Prevention, Amelioration, Cure


In general, alternative channels of communication should be introduced, and cross checks between the outputs of the channels should be introduced, where the need to counteract CommonModeError is deemed sufficiently high.Prevention of CommonModeError is important in safety-critical systems.Where the effort is low and risk is high, prevention of common mode error is worthwhile in less critical projects.


There are many techniques tailored to particular situations that follow these lines.One specific pattern worth mentioning as an example is ApplicationDesignIsBoundedByTestDesign whereby test and development are independent interpretations of requirements.The relating of the system requirements to a description of their context, either a BusinessUseCase or an IntentStatement, can reduce misinterpretation of requirements by talking about the same requirement in two different ways.


In general the agile methods prefer closer contact with the customer, both when interpreting requirements and when obtaining feedback on the implementation.Detection and cure of errors are made more efficient.Shorter communications channels reduce the risk of misinterpretation, with the CustomerOnSite clarifications are cheap and the customer is more likely to detect misinterpretations as they happen.Customer-specified AcceptanceTests are an additional interpretation of the customerís needs.