As humans we identify patterns far to readily and as developers we try to reduce duplication far too prematurely.