Stop Calling Everything a “Bug”

Logging requirement changes as bugs trains developers to stop starting early. Two questions and three labels that keep parallel delivery fast.

Episode 4 of the AI-Augmented Parallel SDLC series. The pillar article laid out the blueprint: discover once, run three workstreams in parallel, converge at one gate. Episode 3 covered what each stream does on day one. This one is about that gate, and the one word in the issue tracker that decides whether the model survives it.


A chef is asked to start cooking while the table is still choosing. To save time, she preps a garlic-butter sauce from the first order. Ten minutes later the table switches to lemon-herb. At the pass, the head waiter tastes the plate and writes it up: “Chef ruined the sauce.”

Nobody argues. The sauce gets remade. But at the next service the chef doesn’t start early. She folds her arms, waits for the order in writing, signed, and dinner arrives two hours late.

I’ve watched this exact scene play out in software teams far more often than in kitchens.

A four-word ticket

In a Parallel Delivery model, analysts, developers and testers don’t queue for handoffs. Everyone starts on Day One, and that is where most of the speed comes from.

On one recent project, that model nearly came apart over four words.

A few weeks into the build, the client adjusted a business rule. It was a reasonable change, the kind good discovery always surfaces. Our analyst logged it. But the developer had already built the feature on Day One against the original rule, exactly as we’d asked him to. When it reached testing, QA spotted the mismatch and filed the standard ticket:

BUG · Incorrect rule behavior · #0412 · QA

He fixed it in a few hours. Nobody complained.

A month later, the same developer had stopped starting early. He was “waiting for the stories to settle” and “cleaning up the environment first.” When we asked why, the answer was short: he was tired of building things twice and having it counted against him.

We hadn’t punished bad code. We had punished speed.

Why “bug” carries so much weight

In sequential delivery, requirements are frozen before anyone writes code. If the software doesn’t match the document, someone made a mistake, and “defect” is the right word for it.

Parallel delivery runs on a different assumption: requirements are meant to evolve while the code is being written. Healthy teams plan for 15–20% of the work to shift as everyone learns, and they carry that buffer in both the schedule and the budget.

Label those planned shifts as bugs and the tracker turns into a permanent record of blame:

  • Dashboards don’t read comments. Reports and performance reviews count tickets. The note explaining that the client changed direction on Tuesday never makes it onto the chart.
  • People protect themselves. Engineers notice fast when starting early earns them defects. So they stop, and quietly go back to waiting for full sign-off.

The blame loop, a five-step cycle: the dev starts on Day One, the client tweaks a rule, QA logs it as a bug, it is counted against the dev, and the dev waits for sign-off. Each lap, the team starts later.

How a mislabelled requirement change trains a team to stop starting early. Nobody decides to slow down; the tracker teaches it.

You don’t lose speed to bad code. You lose it to a tracker that penalises initiative.

The Sync Checkpoint: two questions, three labels

After kickoff, the parallel streams run independently until they converge at a single quality gate, the Sync Checkpoint. That’s where working code, finalised business rules and the automated test suite meet for the first time.

When a test fails there, we don’t default to “bug.” We ask two questions, in order.

Question 1 — Did the rule change after the code was written?

If the feature was committed on Monday and the client updated the rule on Wednesday, it’s a Scope Shift (requirement gap). The fix happens just as fast, but the time comes out of the planned change buffer, not the developer’s track record.

Question 2 — If the rule came first, was the developer actually told?

Sometimes the analyst and client agree a change in a meeting and record it in the decision log, but nobody announces it in the team channel or updates the developer’s ticket. The developer builds on old information. That isn’t a moving requirement, and it isn’t the developer’s fault. It’s a Comms Miss (process gap): our daily broadcast habit broke down.

Only when the rule was locked and clearly communicated before coding began, and the build still doesn’t match, do we call it a True Bug (defect).

The checkpoint triage flowchart. A test fails at the Sync Checkpoint. Question 1: did the rule change after the commit? If yes, it is a Scope Shift, paid from the change buffer. If no, question 2: was the rule shared with the developer first? If yes, it is a True Bug that engineering fixes. If no, it is a Comms Miss, and the broadcast habit gets fixed.

The checkpoint triage. Two questions, asked in order, route every failed test to exactly one label.

True Bug (defect) Scope Shift (requirement gap) Comms Miss (process gap)
What happened The developer had the right rule in time, and the code still broke. The rule changed after the code was already written. A decision was made, but nobody told the developer in time.
Who fixes it The developer who wrote the code. The delivery team, as normal planned work. The team fixes the code; leadership fixes the habit.
Who pays Engineering absorbs the fix. The planned 15–20% change buffer. Engineering absorbs it and logs a process fix.
A spike means Code quality or reviews need attention. Discovery was too shallow, or the client is pivoting. Daily syncs aren’t carrying decisions.
Proof needed Rule shared before the commit. Rule changed after the commit. Decision logged, no record of an announcement.

What each label means, who owns it, and what a rising count is telling you.

Timestamps, not opinions

The first question every manager asks: won’t developers just call everything a Scope Shift to look good?

They can’t, because the label isn’t a judgement call. It’s the order in which three things happened.

Three timelines for the same failed test. True Bug: decision logged, then shared with the developer, then code committed, and it was built wrong anyway. Scope Shift: code committed first, then the decision logged and shared, so the rule moved after the build. Comms Miss: decision logged, then code committed, with no record the decision reached the developer.

Same failed test, three different histories. The sequence of decision, announcement and commit decides the label.

When a mismatch surfaces at the checkpoint, three people take a short call: the Business Analyst (who owns the decision log), the QA Lead (who owns the tests) and the Developer (who owns the commits). They work to two ground rules.

  1. Timestamps beat memory. “I’m pretty sure I mentioned it on Slack” doesn’t count. If the decision is newer than the commit, it’s a Scope Shift. If the decision is older but there’s no written trace that it reached the builder, it’s a Comms Miss.
  2. The 10-minute rule. If the three can’t establish the sequence within ten minutes, it’s logged as a Comms Miss by default. If you can’t trace when a decision was made, your record-keeping failed, and that default gives everyone a standing reason to keep the logs clean.

Where AI fits in, without taking over

AI makes the checkpoint much faster, as long as you hold to one rule: AI does the legwork; people make the call.

  • Faster test runs. AI testing agents can execute thousands of checks in minutes rather than days. A QA engineer still reviews and signs off before any result is official. Waving AI test passes through the final gate is how defects ship.
  • History in seconds. Instead of three people digging through weeks of threads and commits, an assistant reads the decision log and the git history and hands over a receipt. The trio verifies it in about thirty seconds and moves on.

An automated triage receipt for rule 47, discount eligibility: feature committed 10 May at 16:05, decision log updated 14 May at 11:20, announced to the team 14 May at 11:42. The sequence is commit then decision, so the suggested label is Scope Shift. Beside it, the BA, QA and developer each tick their part of the sign-off and the label is confirmed in about thirty seconds.

The AI assembles the evidence and suggests a label. The BA, QA Lead and Developer confirm it. The machine never closes the ticket.

Why clients come to like this

Sorting tickets this way doesn’t only protect morale. It changes the client conversation.

Traditional testing phases tend to turn into a running argument: is this a bug, which is free to the client, or a change request, which is billed? Clear labels settle most of that before it starts, because each bucket maps to an agreement made on Day One.

  • True Bugs and Comms Misses are ours. The client never pays for our mistakes, whether in the code or in how we passed decisions along.
  • Scope Shifts draw down the 15–20% change buffer that was already built into the project plan.

Every week the client sees a simple fuel gauge: the rules they changed this week, and how much buffer is left. Extra budget only comes up once they pass 20%.

A gauge showing 12% of the 20% planned change buffer used. Beside it, the weekly client view lists the rules changed this week (47, 52 and 61), 8% of buffer remaining, and a note that going past 20% triggers a budget conversation agreed in advance.

The change-buffer gauge the client sees each week. Only Scope Shifts move the needle.

Clients rarely mind paying for change when they can watch the meter. What they resent is the surprise invoice.

Reading your team’s health at a glance

Track Scope Shifts alongside True Bugs and you get a quick X-ray of how the team is really working. Either number on its own can mislead you; read them together.

The four combinations each tell a different story. Two deserve a second look. The Illusion of Calm is the one leaders most often celebrate: few bugs, almost no changes, everything green. It usually means the team has gone back to waiting, and the cost is showing up in delivery speed rather than in the tracker. Quality Slip is the newer risk. The labelling is honest, but as AI writes more of the code, review discipline is the first thing to erode.

And if Scope Shifts run well past 20%, don’t tune the checkpoint. The problem is upstream: kickoff discovery isn’t digging deep enough.

A two-by-two grid of Scope Shifts against True Bugs. Scope Shifts at 15 to 20% with low bugs is the Sweet Spot, the target state. Scope Shifts at 15 to 20% with high bugs is Quality Slip: check whether AI-written code is merged unreviewed. Near-zero Scope Shifts with low bugs is the Illusion of Calm, a hidden slowdown. Near-zero Scope Shifts with high bugs is the Blame Trap, a labelling problem. Above the grid: Scope Shifts over 20% means fix discovery, not the checkpoint.

Reading True Bugs and Scope Shifts together. The healthy team sits top-left; a suspiciously quiet tracker sits bottom-left.

Change the word, keep the speed

It takes months to teach a team to work in parallel, and one afternoon of mislabelled tickets to undo it. Developers who get burned by the tracker rarely raise it in a retro. They just slow down to protect themselves.

Before your next project reaches testing, change the options in your issue tracker. Separate True Bugs from Scope Shifts and Comms Misses, and settle every one of them with timestamps instead of finger-pointing.

Adjusting to new information isn’t a failure. Treating it like one is.


In this series

The AI-Augmented Parallel SDLC — the full blueprint: discovery once, three parallel workstreams, one gate.

Episode 1: The Handoff Chain — Why Your Team Is Mostly Paying Handoff Debt

Episode 2: The Joint Discovery Session — Why Five Perspectives Beat One Requirements Document

Episode 3: The Three Parallel Workstreams — How Design, Build, and Test Start on Day One Without Colliding

Next up — Episode 5: The Attention Budget. When AI makes writing code almost free, human review becomes the new bottleneck. Here’s how to spend human judgement where it counts.


Try this, five minutes: open last month’s bug list. How many of those “bugs” were really requirements that moved along the way?

Want to talk through this for your company?

We work with a small number of startups and scale-ups at a time. If this resonated, let's have a conversation.

Send a message