
Shipping fast without breaking the design system
Speed and consistency fight because the fastest route through any screen is a one-off. You need a card that is almost the card, so you copy the card, change four values and ship. Nothing is broken that afternoon. It breaks a quarter later, when the same component exists in five slightly different spellings and nobody can change the padding without opening every page.
A few rules keep both intact.
Decide once, in tokens. If a value shows up twice and someone could reasonably argue about it, it belongs in the token layer: spacing, radius, the type ramp, the two greys that look identical until they sit next to each other. A one-off colour is fine. A one-off colour with no name is a future argument.
Give the escape hatch a name. There will be a screen the system does not cover. Rather than pretend otherwise, allow the exception, mark it, and keep exceptions in one place. An exception you can grep is a decision. An exception you cannot is drift.
Review the system, not the screen. In a hurry everyone reviews the thing they can see. The useful question in review is narrower: did this change reuse a pattern or add one? Adding one is allowed. It just has to be on purpose, and it has to be written down while the reason is still fresh.
Build the thin version of the hard states first. Tight timelines tend to break a system at the same place, the states nobody designed: empty, loading, error, the name that runs to three lines, the price with no discount. Sketch those early, cheaply, before the pretty screens. Then the last two days stop being the days you invent new components under pressure.
None of this makes week one faster. It makes week six survivable, and week six is where the timeline actually goes missing.