We've all been there. You see two pieces of code that look similar, and the voice in our head screams "DRY! Don't Repeat Yourself!" So you extract, abstract, and consolidate until we have a beautiful, reusable piece of code. Six months later, we're d...