Most of our rework wasn’t bugs.
Months of QA data showed me where design actually slows a team down.
Our QA engineer presented months of data to the whole team. I expected a talk about code quality. It turned out to be a talk about requirements, and that means it was also a talk about design.
The good news first
Most tickets passed QA with no bugs. Very few bugs leaked past QA into staging, well under the industry average he cited. Blockers were rare. And most of the bugs sat in a handful of huge tickets.
So the code was fine. Then he showed the timeline.
Where the days went
- A clean ticket moved from development to staging in a few days.
- A ticket with a code bug took a little longer.
- A ticket with a requirement gap took much longer, several times the delay of a bug.
A requirement gap is a requirement that was missing, conflicting, or changed while the code was being written. Gaps grew from one quarter to the next, mostly in big bundled tickets.
And the worst part: most of the gaps were found by QA, after the code was done. Developers found some. Product found the rest.
What that means for design
A gap found in QA is a decision that was made too late, or made in a meeting and never reached the ticket. A lot of those decisions are design decisions: what happens when the partner field is “no”, what the empty state says, which screen is the source of truth.
So we are changing two things.
A UX prototype ticket comes before the development ticket. Design opens a ticket to prototype the flow. Product reviews it. Only then does development get a ticket. It sounds slower. It is the cheapest place to find a gap.
The Figma link in the ticket is the contract. QA compares the build against that link. If the design changes and the link does not, we just created a bug on purpose. Keeping it current has to be part of done.
The trade-off we kept
We did not stop moving fast. A startup chooses speed over complete specs, and that is a legitimate choice. The data just told us what speed costs: days of rework every time a decision arrives late. Now we can choose it with our eyes open.