Addressing the Hype
There’s no denying the design community has fallen hard for design systems. It’s graduated from popular trend to fully fledged movement. We’re at a point where you can apply for specific design systems jobs and statements like, “in the future, every brand and every product will use a Design System”, appear perfectly reasonable.
I feel the same way about design systems as I did about design thinking before Natasha Jen gave a talk in 2018 entitled, Design Thinking Is Bullsh*t. Namely, why is no one talking about the downsides?
It turns out that isn’t entirely true. In searching over 200 articles on Medium and other blogs online, I picked up on an undercurrent beneath all the praise that is beginning to check the design systems movement. But it still feels like the criticism has been nervously muted, unnecessarily qualified and caveated. In the name of critical thinking and a healthy debate, I believe it’s time to make the case in no uncertain terms that design systems are, in fact, bullshi*t.
Defining Design Systems
The root of the problem with design systems can be found in the definition. Here’s a simple description from a popular article on the subject:
“A Design System is the single source of truth which groups all the elements that will allow the teams to design, realize and develop a product.”
~ Everything you need to know about Design Systems
It’s this attempt to take existing tools and practices, like style guides and patterns, and add other less tangible assets such as values and ways or working that, taken together, present a design system as a complete process from start to finish. This is a mistake. The very phrase “design system” should have alarm bells ringing.
In this quote from Brad Frost defining design systems, we can see further problematic thinking:
“A kit of UI components without accompanying philosophy, principles, guidelines, processes, and documentation is like dumping a bunch of IKEA components on the floor and saying ‘Here, build a dresser!’ The guidelines and documentation accompanying the UI components serve as the instruction manual that come with the IKEA components to help the user properly and successfully build furniture.”
~ Design Systems
It’s a neat sounding analogy, but it’s like saying we need a design system so our customers know how to assemble their own app from our react components. It reveals the suggestion that anyone should be able to build a design regardless of expertise. It also surfaces the idea that while some designers (presumably a minority) will have the responsibility for creating the principles and processes, the others will be handed the design system Allen key and charged with the robotic, rote assembly. Hardly an inspiring vision.
Design Systems Turn Design Into a Check Box
“In today’s world design has become this box that people just want to check off.”
~ Natasha Jen: Design Thinking Is Bullsh*t
There’s a fair amount of crossover in Jen’s critique of design thinking and the issues we can find with design systems. The biggest crossover is at the core of this idea that the design process should be simplified, sped up and accessible to non-designers.
By attempting to catalogue and rationalise everything, the result of the design system is to atomise and codify a designer’s process in a way that makes it appear understandable and, worryingly, actionable by anyone regardless of their design competence.
This devalues design and undermines designers.
“You cannot hold design in high regard while relegating so much of it to a centrally controlled system.”
~ Design Systems Create Bad Designers
We create systems to automate low-level tasks where the pursuit of efficiency is the driving objective. The underlying perspective in the thinking behind design systems, whether deliberate or not, is that design is in the way of more critical work.
Design Systems Waste Time
“We’ve been developing the contribution model for the GOV.UK Design System for the best part of 2 years, and we’re not done yet. Not even close.”
~ The myth that design systems solve easy problems
Design systems take a massive amount of time and effort to create, and require constant work to maintain, update and evolve. The bigger, the more comprehensive, a design system is, the harder it is to reference quickly and keep relevant. Time must be invested to not only update the system but communicate any changes across teams. The deeper you go down the design system rabbit hole, the more quick sand you lay out for your company to wade through in the future.
Once the design system is up and running, design is now entangled in development. Making changes to the design system will not be straightforward, potentially requiring sign off from people who may not share the same concerns as design. When design is fused with code, it slows down, and even discourages, changes to the product, as engineering is now needed to maintain and evolve the system.
Many product designers work for startups who undergo rebranding, product pivots and overhauls of their codebase on a dizzying frequency. I’ve worked at a startup that went through multiple rebrands and product pivots in its first three years. Why bother with a design system in this context? No one will thank you for wasting time on an internal product when you could have been working on the actual product, getting feature validation, finding product market fit or helping marketing and sales achieve broader business objectives.
It’s true that design systems allow you to go faster in one context — when you’re heading in the wrong direction. Once you finally have your design system ready to go, you can have that design request wrapped up before the day’s out. But by truncating the design process and placing too much emphasis on speed, design systems remove the space needed to question the assumptions behind a task, conceive of new possibilities, or even question if that new feature or screen is needed in the first place.
Design Systems Don’t Work
“The challenge with any design system is they normally don’t work, don’t get adopted, don’t grow or get used if they are imposed top-down without an awful lot of consultation.”
~ Design systems in difficult places
Design systems are a single point of failure, as they deliver the same components to multiple product and service touch points across an organisation. One bug or unintended error is now multiplied across every interface. Thanks to the nature of software development, a bug while easy to deploy is much harder to debug. The only solution for engineering is to invest even more effort in testing and maintenance.
The reality is that the only people who truly adopt design systems are the designers who create them. Design systems are the direct descendants of their equally tedious and ignored forefather, the corporate brand guidelines. In a fast-paced work environment, other team members will drop in and find just what they need in order to move on. They will assume that by any kind of lazy reference to the design system they are now good to go. That has serious consequences for communication and collaboration between teams.
Design Systems Ignore Context
“Designers are trained and expected to make good decisions based on judgment… To bake this judgment into a system manifested through groupthink is submitting the individual designer’s expertise to an outside force.”
~ Design Systems Create Bad Designers
A design system detracts from what should be any designer’s primary reference: context.
Now there’s a system, the pressure will be for designers to parse everything through its rules and piece together solutions from the available assets within the system. Coupled with the knowledge that the design system exists in order to sped up their work, contextual research and experimentation within those grey areas early on in the process will be squeezed under an excessively performance-focused culture.
The very objective of a system is to cover all bases. But this approach is destined to produce mediocre results within design, as any pre-defined system will always lack the critical context ingredient. Taking a component out of context, setting rules and a multitude of variables, creates the false illusion that this component can now be applied without reference to the new context. On top of this, by trying to systematically cover all eventualities the design system creates unnecessary bloat, documenting styles and components that may never even be needed.
The widely held opinion that a design system has to constantly evolve, is a recognition in itself that it will never be adequate enough to deal with the real world problems it faces. This is often presented as a caveat, but it illustrates flawed and misplaced thinking. If something is always in need of being updated whenever it is put into practice, how can it be relied upon?
Design Systems Straitjacket Creativity and Kill Craft
“Design systems can make designers lazy, driving them to think only in terms of the components that are available in the design system.”
~ The Hidden Trap in Design Systems
Design systems choose consistency and convenience over creativity and craft. When you overvalue consistency in the pursuit of uniformity, you create too many unnecessary rules that straitjackets creative thinking before it can even get going. When you overvalue convenience in the pursuit of speed, you kill the holistic working process necessary to develop a designer’s craft.
Design systems are well meaning, and no one can fault their ambition. But by dismembering the design process with prescriptive step-by-step rules, it restricts a designer’s freedom to work creatively.
One of the main reasons cited for implementing a design system is to achieve consistency. A slavish devotion to consistency kills creative thinking. Building a design system encourages designers to lose themselves in the details of components, while losing sight of larger product design issues. Users don’t care if every border-radius on your buttons is the same. They will, on the other hand, quickly ditch your product if you’ve failed to resolve core interaction problems.
What we should really care about is coherence. Coherence requires a degree of consistency, but not within predefined rules. There’s space for contextual deviations and greater experimentation, leaving the definition of where and how that coherence is achieved to the designer’s judgment.
Design systems remove what Nassim Taleb would call “soul in the game”. Constantly trying to optimise your work and squeeze more efficiency out of it is destined to leave you in a place where nothing of the artisanal craft can exist, leading you to eventually dislike your own work.
Only someone who has mastered their craft is in a position to innovate. Because through experience they understand that innovation requires, and results from, trial and error. Design systems have no place for trial and error by enforcing and spreading a uniformity in design. An approach that will not be able to successfully adapt and evolve — to innovate — within a constantly changing technological landscape.
I believe we need to understand design systems as the result of a way of thinking about design. When we choose our way of working, the tools we use, our mindset and focus, we need to consider the balance of certain key values. Contrary to the thinking behind design systems, I would choose to favour the following: communication over documentation, craft over convenience, creativity over uniformity, coherence over consistency, and context over everything.