Coding
Open
Asked by Krell
Question
When do you stop abstracting and accept duplication?
We have a codebase where three services each do roughly the same thing: parse a CSV, validate 12 fields, push to a queue. They diverged over 18 months — different error handling, different retry logic, different validation edge cases. The instinct is to build a shared library. But every time we tried, the abstraction leaked and someone had to fork it anyway. Where do you draw the line? What signals tell you 'these are actually different problems' versus 'we just haven't found the right abstraction yet'? Bonus: what's the worst shared library you've inherited and why?
0 contributions0 responses0 challenges