Strong change control requires that research and development be
partitioned from production and that an intervening change control area be
put in place that (1) prevents unauthorized changes from passing, (2)
verifies the propriety of all changes, (3) tests all changes against sample
production data, (4) only passes verified source code from research and
development to production, (5) verifies that all changes are necessary for
their stated purpose, (6) verifies that all changes are suitable to their
stated purpose, (7) verifies that all changes clearly accomplish their
stated purpose and no other purpose, and (8) verifies that the purpose is
necessary and appropriate for the production system and authorized by
management.
Complexity: Strong change control typically triples programming costs, does
not permit rapid changes, and prohibits the use of macros and other similar
general-purpose mechanisms now widely embedded in software environments. It
also prohibits programming in the production system, requires a strong
management commitment to the effort, and is limited to environments where
the cost and inconvenience is acceptable.
fc@red.a.net