Attempt A
Sync Visual QA
- Live screen-share: implementation ↔ Figma
- High visual integrity within one feature story
- Related fixes could ship together
- Interrupted developer deep work
- Design-system fixes competed with higher-priority engineering work
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 through the same ticket workflow. Developers trusted that stream. Rather than adding another parallel review ritual, we could build on an existing habit.
The conflict
Design wanted coherent surfaces and design-system fidelity. Engineering wanted protected focus and clear, batchable work. QA needed reliable coverage without a separate visual-testing bureaucracy.
We sat down with QA, developers, and the Product Owner — and redesigned the sequence, not the tool.
Coherent surfaces and design-system fidelity.
Protected focus and clear, batchable work.
Functional and coarse visual checks, using familiar workflows.
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 needs, not designer preference.
QA checks behaviour and obvious visual defects, then files actionable tickets in the format engineering already trusts. Design is kept in the loop rather than starting a separate stream for the same findings.
Review QA findings, remove duplicates, and separate coarse defects from fine design-system issues. Resolve design ambiguity before adding residual tickets; escalate priority decisions to the PO.
Designers inspect the remaining fine-grained issues and document actionable fixes. AI assists with ticket drafts; designers own accuracy and severity, while the PO owns delivery priority. Engineering works from the documented, prioritised ticket stream, and fixes are verified.
Optional escalation, not a mandatory final meeting. When visual consistency materially matters to the story, the PO authorises a live designer-developer review so related fixes can be resolved together.
Ownership stays explicit
QA owns functional coverage and coarse visual findings. Design owns fine visual judgment and design-system fidelity. Engineering owns implementation. The PO prioritises bugs against OKRs and engineering capacity. Findings, decisions, and deferred work remain documented.
Outcome
The hybrid pipeline was adopted as shared team practice. QA handled the coarse layer, designers retained fine design-system judgment, and the PO decided which fixes mattered now — including when a live review was worth the interruption.
Design ticket volume dropped as QA absorbed coarse visual findings. Live designer-developer sessions became the exception rather than the default. These were qualitative process outcomes; the effort estimates below are a separate model, not rollout measurements.
"The goal wasn't fewer quality checks. It was less duplicated effort and clearer decisions."
Making the tradeoffs explicit
Illustrative estimate · not measured resultsI modelled a small dashboard-control story spanning three weeks and delivered across iOS, Android, and web. The scenario uses a team of two designers, two QA engineers, and three platform developers, with one developer per platform.
Hours are summed across the people doing the work — not multiplied by every team member. A one-hour designer-developer call therefore costs two person-hours.
Against the independent async-ticket workflow, the same model estimates approximately 15% less total effort and 21% less engineering time.
| Role | Live review | Independent tickets | Hybrid model |
|---|---|---|---|
| Design | 6.0 | 6.0 | 5.25 |
| Engineering | 18.0 | 15.0 | 11.85 |
| QA | 7.5 | 7.5 | 6.75 |
| POAdditional prioritisation | Not modelled | Not modelled | 0.25 |
| Total modelled effort | 31.5 | 28.5 | 24.1 |
The estimated saving is 7.4 person-hours per story against live review, or 4.4 against independent tickets. It comes from less correction work and shorter follow-up — not from removing designer ownership.
Design: 1 hour initial live review + 1 hour final review = 2 hours. Engineering: 1 hour initial review + 4 hours corrections + 1 hour final review and small fixes = 6 hours.
Design: 1 hour inspection and ticket creation + 1 hour final review = 2 hours. Engineering: 4 hours corrections + 1 hour final review and small fixes = 5 hours.
1 hour technical checks + 30 minutes coarse visual checks + 30 minutes ticket creation and clarification + 30 minutes verification = 2.5 hours.
Design: 15 minutes QA triage + 1 hour deep visual inspection and residual tickets + 30 minutes final review = 1.75 hours.
Engineering: 15 minutes ticket review and clarification + 3.2 hours visual corrections + 30 minutes final review and small fixes = 3.95 hours.
QA: 1 hour technical checks + 30 minutes coarse visual checks + 15 minutes ticket creation + 15 minutes designer triage + 15 minutes verification = 2.25 hours.
PO: 15 additional minutes of prioritisation for the whole story, not per platform.
Correction effort is assumed to fall by 20%: 4 × 0.8 = 3.2 hours per platform. This represents removing duplicate requests, batching related fixes, and agreeing current scope. Ticket creation and QA verification are assumed to shorten, while final review falls from one hour to 30 minutes.
No additional saving is assigned to AI drafting. The designer's deep inspection and residual-ticket work remains one hour per platform.
Live review: (2 + 6 + 2.5) × 3 = 31.5 person-hours. Independent tickets: (2 + 5 + 2.5) × 3 = 28.5 person-hours. Hybrid: (1.75 + 3.95 + 2.25) × 3 + 0.25 = 24.1 person-hours.
Total reduction: (31.5 − 24.1) ÷ 31.5 = 23.5%, rounded to 24%. Engineering reduction: (18 − 11.85) ÷ 18 = 34.2%, rounded to 34%.
Against independent tickets: (28.5 − 24.1) ÷ 28.5 = 15.4% total reduction; (15 − 11.85) ÷ 15 = 21% engineering reduction.
What I learned