What this industry has taught me:
1. DRY initially when your organization is afraid of refactoring because they'll never let you touch it a second time if "it works".
2. DRY later when it's clear the code will not change into genuinely separate branching workflows.
3. DRY it initially when mid-level management uses duplication as a metric to evaluate "good" engineers, especially when your salary is impacted by that perception.
1 and 3 have been a symptom of micro-management from the business side. Only 2 is valid.