Listen to this post
Redundancy can be a good thing if we are referring to a backup for safety, like the systems on a spacecraft. I don’t mean that. I am referring to an element of the system that is repeated needlessly in such a way that altering it will require the same change be performed repeatedly.
A good example of making such a mistake is the Y2K bug. Remediating this was not expensive because changing from a two-digit to a four-digit date is inherently difficult. It was expensive because we had to make that same change millions of times. We knew it would be easy to miss some and so we had to proceed very slowly and methodically. Y2K remediation produced little or no business value, but cost billions of dollars.
This bug was created at a time when the expensive part of automating something was the hardware. Memory, disk space, computing cycles were all very costly and also very limited. The human programmer was seen as a fairly trivial expense.
Today this equation is reversed. Developers are expensive, computer hardware is cheap and getting cheaper all the time. Redundancies cost developer time.
Any change should be able to be made in a single place. The patterns will help us to enforce this in various ways, as we shall see.