Design systems are All The Rage these days. Quite a few job ads are for teams that work on design systems. The systems are fawned over on Medium and in Sidebar. At the same time, critique is starting to pop up. Now I want to add some rants to that critique. But I also suggest a bunch of better solutions.
What’s a design system supposed to do?
Design systems have raisons d’être such as documenting best practices. And yeah, we clearly should never design a credit card payment form ever again, and rather just use what has already been proven to work.
But, the main purposes of a design system often seem to be to unify the visuals, interactions, motions and sounds of a set of digital products.
A second purpose is to make it possible for those designers who create visuals, motions, sounds and interactions to do more meaningful work by having common use cases already covered by the design system.
Developers should also use the pre-cooked code in the design systems to build their interfaces.
All of these amount to centralization, under the guise of efficiency and “making it easier for the user to understand the interface”.
To centralize or not?
Centralization is really at odds with contemporary product development. Marty Cagan et al prescribe empowered product teams as the gold standard for innovative product creation. In such teams the important choices are made by the team.
At the same time it can feel important for a central team to get each product team to follow guidelines, to do some things in a certain way. That might be good for the company for various reasons.
How might we resolve this conflict?
As a person who subscribe to the philosophy of design I always recommend coming up with many ways to create change, and to then choose the best option(s).
If the change a group want to enable is to get product teams to do things in certain ways, we can get that to happen in maaany ways:
- A design system
- A set of design systems
- A style guide
- A set of principles
- A set of policies/rules
- Hire people who already want to do things that way
- Train people in the teams to do the things that way
- Create a platform team that has little own agenda on the solution level, but who codify requested solutions
- Have an evangelist who work with the teams to get the teams to want to do things that way
- Et cetera
So, don’t create a design system. At least not until you have done your design work and actually evaluated the alternatives.