Assume you have five products, and all of them use one or more of the company\'s internal libraries, written by individual developers.
It sounds simple but in practice,
You have a competing set of goals here. First, a library of reusable components must be open enough that people from the other projects can easily add to it (or submit components to it). If it's too difficult for them to do that, they'll build their own libraries, and ignore the common one, leading to a lot of duplicate code and wasted effort. On the other hand, you want to control the development of the library enough that you can ensure its quality.
I've been in this position. There's no easy answer. However, there are some heuristics that can help.
In short, model the development and maintenance of your internal library after a successful open source library project.