&gt; which is an abuse of DRY because it should only apply to concepts, not code<p>As a &#x27;copyista&#x27;, I would change this to &quot;DRY should only apply to production code, not tests.&quot; It wasn&#x27;t clear from your reply if you agree or disagree.<p>A couple of great recent links about this IMO under-discussed topic:<p><a href="http:&#x2F;&#x2F;www.sandimetz.com&#x2F;blog&#x2F;2016&#x2F;1&#x2F;20&#x2F;the-wrong-abstraction" rel="nofollow">http:&#x2F;&#x2F;www.sandimetz.com&#x2F;blog&#x2F;2016&#x2F;1&#x2F;20&#x2F;the-wrong-abstractio...</a><p><a href="http:&#x2F;&#x2F;programmingisterrible.com&#x2F;post&#x2F;139222674273&#x2F;write-code-that-is-easy-to-delete-not-easy-to" rel="nofollow">http:&#x2F;&#x2F;programmingisterrible.com&#x2F;post&#x2F;139222674273&#x2F;write-cod...</a><p><a href="http:&#x2F;&#x2F;bravenewgeek.com&#x2F;abstraction-considered-harmful" rel="nofollow">http:&#x2F;&#x2F;bravenewgeek.com&#x2F;abstraction-considered-harmful</a>