
I read an article recently called Duplication Is Not the Enemy by Matheus Lima and it really pinned down the level of damage that introducing abstraction too early can cause.
I’m presenting a talk soon on continously shipping – using CI/CD – and the more that I look at the whole software engineering world, the more I think the two are connected.
If your systems for getting stuff shipped are slow, you try and do more than you need to because “while I’m here” rather than what is strictly needed.
There is a talk by Dan Abramov called The WET Codebase which goes into this problem in a lot of detail, and shows a realastic case for practicing not being DRY.
(I found this article via Cassidy Williams’ newsletter, which I highly recommend subscribing to.)