13. December 2023
The Paradox of Design Systems
Design systems - a set of guidelines, principles, and reusable components that enable consistent and efficient design - are often seen as a solution to the challenges faced by designers and engineers. However, it is ironic that while design systems aim to provide structure and consistency, they themselves can become complex and difficult to manage. Designers and engineers encounter similar issues, falling into familiar traps and facing tradeoffs that require careful decision-making.
The Pitfalls of Optimization
Optimizing for flexibility may result in a design system that is too complex, while optimizing for speed can lead to regret in the long run. This delicate balancing act is a common challenge faced by both designers and engineers. Like designing an API, creating a design system requires observing the function and allowing the form to follow it. It’s about understanding the needs and contexts before codifying the components into a system.
Complexity and Languages
The complexity of design systems can be compared to the intricacies of languages. While some languages may be perceived as more difficult, complexity is just moved around. For example, English may seem less complicated because it has fewer inflections compared to languages like Hungarian or Turkish. However, English has its own inconsistencies and irregularities that can be confounding, even for native speakers.
Perception vs. Reality
The perception of language difficulty is subjective and can vary depending on one’s existing knowledge and available learning materials. It’s essential to consider the teaching approach and resources in a language’s perceived difficulty. Similarly, design systems seem challenging to manage, but it’s crucial to differentiate between perceived difficulty and actual difficulty.
Design Systems as Processes
A design system is often considered as an artifact or output. However, it is more accurate to view it as a process - designing systematically. The concept of systematic design extends beyond large teams; it applies even at a smaller scale. In digital applications, designers face the challenge of horizontal design, where elements need to coexist across multiple pages and views with varying contexts. This shift in thinking requires an approach that is systematic and considers the harmonious coexistence of elements in different contexts.
The Historical Context
Design systems are not entirely new. The need for consistency and coherence has been addressed in various fields, such as architecture, book design, and branding. Pantone’s color consistency and fonts are examples of how design systems have long been employed to ensure harmony and recognition of brands. However, with the rise of digital applications and the advent of tools like Figma, the concept of design systems has become more visible and tangible.
The Tension in Design Systems
There is a tension between the output or artifact of design systems and the process or logic behind them. Designers and engineers often struggle with exceptions and variations as they work within the constraints of a design system. The pristine components gradually accumulate switches, settings, and exceptions, resulting in a bulky system that may require refactoring. This tension can lead to a bureaucratic approach to design systems, which goes against the spirit of agility and can hinder creativity.
Rethinking Design Tools
To address the challenges of design systems, there is a need to rethink design tools. The current design tools, including impressive ones like Figma, still operate within the traditional paradigm of design tools. A new approach is required, from first principles, to create a design toolchain that seamlessly integrates the design process with the emergence of the system. The system should be an inherent outcome of the process, rather than an external artifact.
Simplifying Design Systems
Simplicity and adoption are key factors in the success of a design system. Complex design systems may result in lower adoption rates or incorrect usage. Mature design systems, like those of Google and Atlassian, have evolved over time to prioritize simplicity and flatten the structure. Taking inspiration from tools like Tailwind, design systems can become more approachable and user-friendly.
Lessons from the Past
Designers have faced similar system challenges throughout history. Often, designers have observed engineers encountering similar lessons that designers have learned over the years. This shared journey reinforces the interconnectedness and shared experiences of designers and engineers.
In conclusion, design systems offer a solution while also presenting challenges. The key lies in finding the right balance between flexibility and complexity, understanding the parallels with language complexities, and rethinking design tools to integrate the system within the process. By simplifying and prioritizing adoption, design systems can achieve their intended purpose without becoming a burden. Ultimately, design systems should empower, inspire, and facilitate creativity, rather than imposing rigid constraints.