Honestly, I really love design systems. I like creating them, I like using them, I like documenting them, I like maintaining them (ish), I like learning about them, I like talking about them. Every project, no matter how small, can benefit from having one.
Life is chaos on the whole, as I find it. Like you, perhaps, I spend a lot of my personal time and energy practising being OK with the unknown and the unknowable. Even trying to embrace it. Learning to hold things lightly, to be open and non-judgemental about which Tetris pieces come next, to accept the unpredictable nature of the complex systems we live in. To find peace in an increasingly frantic and utterly bonkers world.
But when I open that design system up 👌 Mmm, yeh. Order.
For a brief period of my day, everything is mapped out, naming conventions aligned, all states accounted for. I have all the corner puzzle pieces grouped together, the straight edges in another, the rest by colour. I can design complex products in delicious, gut-biome-friendly, bite-sized components. The world of Brad Frost and his atomic design modus operandi is blissful. Everything makes sense.
Of course, in practise it’s not quite that easy.
Design systems, like all things, are messy because, damn it, the world is messy. Building products is messy.
Do you start designing atoms in isolation, or do you design the holistic whole and then modularise it? Does your system support the changing requirements of the product? Do product changes feed back into the system? How do you handle awkward edge cases? Do you really need another button variant? Do the rest of the team care about your naming convention? WHY DON’T THEY CARE ABOUT THE NAMING CONVENTION! Are you chill enough to handle a release going out quickly for business reasons even if it’s not entirely documented? Does the CEO even understand that the health of the design system directly impacts the quality and speed of designing and building quality modern digital products at any kind of scale and that the business reasons for keeping it tip-top are surely obvious by now?
All that being said, perhaps messiness is where life is. A perfectly neat, unblemished, unsoiled design system tucked away in the corner on its own, unused, unvisited, unevolved isn’t living.
The truth is, dear reader (me), you can’t hide in a Figma component library. Existential angst will find you in Storybook, crouching behind that error state of an input field.
The answer of course is to welcome in the uncomfortable messiness as you would an old friend. Offer them a seat, a cup of tea and a smile.
But, even just for the briefest of moments on a Thursday morning, it sure is nice to imagine that design systems can offer you a clear answer to it all.