Overview
I have utilized design systems from the beginning of my career, including at my current company and the previous one. I am proud that I created a design system for my company in my current role. While I referred to them by other names over time, they all share a common root: a systematic approach to design. Systems thinking steps back from a local solution to a problem to enact a larger, global approach to the challenge. Swim upstream. Design systems take a similar approach. At my previous job at Exponential, instead of creating custom bespoke solutions for each need, my team and I used design systems to write once and read many, a concept our engineering colleagues are familiar with. At Oracle, I was part of the team creating the Redwood Design System.
Benefits
Design plays an ever more essential role in the software development process. While this is certainly a welcome development, it also poses additional challenges. Design systems are tools that allow me to move forward and solve those challenges successfully. One of the key challenges concerns consistency. As a designer, ensuring a similar user interface across all user journeys is my job. Another challenge my teams face revolves around getting to market quickly. With so much software being created and designed, I rely on this essential tool to iterate quickly. More so, creating custom, bespoke designs for every challenge does not scale. This is especially true for large organizations that are making lots of software, and it is a common challenge for anyone who has worked in large enterprises.
Design systems empower us to build products faster and more efficiently, two important software development principles. We define common components, including colors, iconography, typography, widgets and controls, elements organized into larger patterns, layouts, spacing rules, and a host of supporting atomic units. These become standardized, defined, and well documented to simplify their future use.
They also allow for improved communication between designers, product managers, and software developers. Creating software is a team effort. When we utilize design systems, we have a common source of truth that improves our relations. What is more, development teams create reusable code components to implement elements in the design system. Thereby, their jobs are greatly simplified and expedited. Design and code have become operationalized.

Challenges
Design systems also have challenges that can be accounted for if correctly addressed. In some instances, they may limit your solutions. Creating great design requires dynamic and creative thinking. Relying upon pre-existing solutions does not always match existing needs. One must carefully navigate any possible limitations imposed by one's design system. The easiest solution to this challenge is to consider one's design system a living document. As new challenges are solved, the design system must be amended to include those solutions.
When I design new features, I follow the guidelines my instructors taught me in college. I begin with a sketchbook and pencil. I do not open my computer or look at the design system to find solutions. I address the problem with rapid iteration of design concepts until I find a solution worth investing in. Once I have reached that conclusion, I look at the design system to find ways to utilize its benefits to meet my needs. In this manner, I overcome any possible limitations the design system could impose on my creative process.
Another challenge with these systems is that they require continual maintenance. Our design system assets are updated as our software development libraries advance and technology changes. I sometimes use an open-source design system from IBM called Carbon and have enjoyed contributing to it. One must update templates and documents when IBM rolls out new releases. This can require a fair amount of time and occasionally break some elements in one's work. Truly, the massive time saving that design systems offer is not without its cost. In this case, I allocate recurring time and cycles to tend to my design system, a price that is well worth paying in the long run. With this perspective, I am able to move forward successfully.
Conclusion
If there is one thing for certain, design systems are here to stay. I am also certain they will evolve and progress as our profession and industry do. I love design systems. They offer an opportunity to dive into purely aesthetic issues in their creation and execution while being hyper-utilitarian and practical. What an amazing combination of contradictory characteristics.
