Tip #6 Separate Reusable assets from the rest of your application code
The simplest way to ensure that you can leverage reusable assets across projects and applications is to separate what is reusable into its own repository. Physically separate the source code and version control it as an independent entity. As with everything else this needs to be done iteratively and isn’t a must have for the initial release of the product. As assets evolve and become reusable they can be refactored out into their own repository for you to manage them better. Key thing is when they do become reusable you move them out.