The best place to start a design system is understanding where you are and deciding where you want to be.
For my colleague and I, the starting line was conducting an interface inventory of all of the UI elements and patterns that existed on all of our systems.
Conducting an Interface Inventory allowed us to better understand all of the different UI elements across our systems. I only recommend this method to teams that can dedicate the time and patience needed to complete this exercise.
We needed a collaborative organization method to determine where each UI element should be placed in our design system catalog. We wrote each element on a post-it note and clustered similar elements into groups create an organized design system by principles, components, and patterns.
We followed the Atomic Design framework as an organizational structure for our design system.
We followed an iterative process in that we added new components or patterns as we tackled new problems. By the end of each project, we had an organized repository of every UI component and pattern in a CMMI system.
I documented the usage guidelines for each element using Google Docs so my teammate could access them for implementation.
And the implementation/development of the system was built using React JS and Sass, including Redux components for advanced state management.