RippleEffect

Changes ripple out to affect everything

Description

Ideally, a single change should affect a single piece of code.  However, in the past a single change has been found to affect many pieces of code, the change causes ripples where changes of functionality are needed in many places in the code.

 

Note the distinction between this and refactoring (q.v. ConstantRefactoring ) where a single change may require changes to the structure of the code in other places, but the functionality in those places remains the same.

Discussion

This problem was a constant companion in script and procedural programming, and was one of the drivers in the conversion to Object Oriented Programming.  However, it is important to keep in mind that the cure is OO programming, not merely the use of an OO programming language.  Most OO programming languages can be written in a procedural fashion, and this will not cure the ripple effect. 

 

It is also worth noting that many procedural or script languages can also be written in a relatively object oriented fashion, and can thereby ameliorate the ripple effect.

Prevention, Amelioration, Cure

Use Object Oriented techniques.  Use ObjectOrientedAnalysis to achieve proper separation of problem-space concerns.  Use ObjectOrientedDesign to ensure proper separation of solution-space concerns.