A few years ago, I led a design system build that I was genuinely proud of.
Comprehensive. Consistent. Beautifully documented. Every component accounted for. Every pattern justified.
Engineering built their own system in parallel and did not touch ours.
That is the version of the story I do not tell in portfolio presentations. But it is the one worth telling.
We made two mistakes that fed each other.
The first was building in isolation. We treated the design system as a design deliverable. Every decision made in Figma was presented to engineering when it was done. By that point, they had already moved on and made their own calls.
We were not building together. We were building separately and hoping it would connect at the end.
It did not connect.
The second mistake was optimizing for consistency over flexibility. The system was perfect for the product we had. It had no room for the product we were becoming. Every new feature required a conversation with a component. Every edge case broke something.
Engineers stopped asking because the answer was always complicated. So they built around us.
Six months later, we had two systems, twice the debt, and half the credibility.
The fix took three weeks once we admitted what happened. Engineering in the room from day one. Flexibility first. Consistency second. One system. One source of truth. We treated it as a product with real users, and the users were the engineers.
The question is not whether your designers know how to use the new tools. The question is whether your organization is structured to let them.
The teams getting this right today do not fight this battle the same way. Design is moving closer to the frontend than ever before. Designers producing code, publishing directly to a frontend repo, components managed in Storybook. The handoff gap where credibility used to die is closing.
The tooling finally caught up to the principle.
Build with. Not for. And build in the same place.