Attempt A
Sync Visual QA
- Live screen-share: Inspect Element ↔ Figma
- High integrity within one feature story
- Related fixes shipped together
- Broke developer deep work
- Many finds = DS consistency — low eng priority
How we redesigned remote Visual QA — not as a checklist, but as a negotiation system between design, QA, engineering, and product.
Situation
On a remote product team, Visual QA couldn't mean sitting next to a developer. Design-system consistency across markets mattered — but quality depended on who cared that week. We needed a process that protected product integrity without burning design capacity or developer flow.
"This wasn't a Figma problem. It was a negotiation problem."
Two experiments
We tried two approaches. Each solved one side of the conflict and broke the other.
Attempt A
Attempt B
Live screen-share: high integrity per feature, but broke developer deep work and couldn’t scale beyond one story.
Fit eng culture, but design drowned writing tickets. Priority killed consistency fixes. Surface integrity fragmented.
Two extremes. One hybrid that kept the best of each.
Hidden actor
QA engineers already ran functional testing — and often caught coarse visual bugs the same way they file functional defects. Developers were used to that ticket stream. The mountain of tickets wasn't only a design burden — it was a habit we could redirect.
The conflict
Design wanted coherent surfaces and design-system fidelity. Engineering wanted protected focus and clear batchable work. QA needed coverage without inventing a new religion.
We sat down with QA, developers, and the Product Owner — and redesigned the sequence, not the tool.
Coherent surface per story. Design-system fidelity.
Protected deep work. Clear, batchable tickets.
Functional pass + coarse visual — without a new ritual.
Three forces. One negotiated pipeline.
The hybrid
Default mode is lean and async. Live Visual QA with developers becomes a premium mode — justified by product, not designer preference.
QA territory — including gross visual issues. Tickets in the format engineering already trusts.
Triage what's left. Cheaper than pulling every developer into a live review.
Only fine-grained design-system issues. AI drafts the tickets — designers still own severity and accuracy.
Only when the Product Owner marks the story: must look right for product consistency. Same story, related fixes, justified interruption.
Mental model
QA ticket habit = first filter · Designer–QA sync = second filter · Designer tickets = residual · Dev live sync = premium mode, PO-gated · AI = writing acceleration, not judgment.
Result
Design ticket volume dropped because QA absorbed the coarse layer. Engineering interruption dropped because live sessions became rare and justified. Quality didn't collapse into «QA only» — designers still owned fine design-system judgment.
The process became shared know-how: design, QA, engineering, and product agreed on the sequence — not a design decree.
What I learned