I'm really dubious about componenents shared between products. The notion of a universal reusable component is really a failed one. Those sorts of things are usually vastly more complex than necessary in order to support flexibilty that no product might need. 1/4
They create lots of unnecessary dependencies. Shared components/libraries may make sense in some, limited, contexts, e.g. a UI libarary that gives a uniform look and feel across product lines. Those are the exception, though, not the rule. 2/4
You don't want to be in a situation where a product is broken becuase you've made a change to a shared component/libary that doesn't actually impact that product. 3/4
For that reason, a lot of organizations are more and more accepting duplication here and there instead of using shared libraries. You particularly see that in an microservice environment. DRY is not a law of nature. It's a rule of thumb, and it doesn't apply universally. 4/4
You can follow @allenholub.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: