Why Remove Duplication
We remove duplication first “merely” to avoid divergent behavior in similar parts of the system, such as happens by the copy-paste-modify loop. More significantly, over time removing duplication helps us identify higher-level patterns in the code that emerge as potential abstractions which will help us reason more easily about a part of the system without having to understand all the details of the entire system at once!