One of the things I've been trying to do is look for simpler or rules underpinning good or bad design. I think one of the most valuable rules is avoid duplication. 'Once and only once' is the Extreme Programming phrase.
DRY ‐ Don't Repeat Yourself ‐ Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.