Brad Frost

Don't put crap in the design system

A Storybook UI with a bunch of poop emojis in the main window One of my favorite Josh lines that's really stood the test of time and cuts through a lot of noise in a conversation:

Don't put crap in the design system. Josh Clark

What is crap? Crap is rushed work, low-quality work, shortcuts, experiments, first drafts, one-offs, and other unvetted/untested/unverified work. Let's be clear: crap is inevitable. Urgent product deadlines, limited perspective, lack of time to vet/validate approaches, "move fast and break things" cultures, uneven skills, partners with limited perspective, too many cooks, and more contribute to the creation of crap. While some of these reasons are unfortunate, many of the reasons are quite understandable. We all wish we could produce more perfect work, but the realities of time, money, and energy require us all to fall short of perfect. A deadline-strapped developer tasked with creating an accordion component for a specific product feature likely won't produce the most scalable, holistic, sturdy accordion the world has ever seen. While crap is an unavoidable part of product design and development, it has no place in a design system. A design system is critical frontend infrastructure, therefore it needs to be sturdy, reliable, and dependable. Design systems contain boring, tried-and-true, vetted, high-quality solutions to common problems encountered at an organization. When consuming teams encounter crap when working with the design system, trust is broken and the integrity of the system erodes. Those experiences can very much impact the long-term success of the system. For those reasons, a design system needs to be protected from crap. So how should we handle crap? How to deal with crap

Crap is inevitable, but implementing these tactics can help organizations manage it in a controlled and thoughtful way. At Big Medium, we help teams sturdy up their foundations: bolstering design and code quality, fixing crucial accessibility bugs, filling in missing unit tests, creating desperately-needed documentation, separating product-specific recipes out from the core design system, establishing sound token architecture, creating codemods, establishing collaborative governance models, improving cross-disciplinary collaboration, and many other dirty jobs that come with enterprise software design & development. In short, we're experts in helping teams take care of crap! If your team would welcome help address some crap, get in touch!