On this page
Dated evidence
Bounded change
One reviewable unit.
Launch review
Review each early change.
Technical owner
Keeps merge and release.
Is the handoff ready?
Use these checks before access expands or the first ticket begins.
Scope
Ready: One bounded change
Needs work: Open-ended request
Evidence
Ready: Reproduction, test, review, rollback
Needs work: Green check screenshot
Access
Ready: Named least privilege
Needs work: Shared credential
Review
Ready: Named reviewer and criteria
Needs work: Silent merge
The operational risk around QA evidence
The risk around QA evidence is not that staff forget a task; it is that the record can look complete even when the rollback plan was never checked against the incident channel. When the record cannot show what changed, engineering managers cannot separate a process problem from a person problem, so coaching becomes guesswork. Write the QA evidence control around exceptions, not only the happy path, because the exceptions are where missing rollback becomes expensive. The operator should be able to point to the exact field in the incident channel that will change, not only to the message that requested the change.
The QA evidence queue rarely fails in a dramatic way; it usually drifts when a familiar request arrives and the operator copies the previous outcome instead of reopening the issue tracker. Without a visible owner, the request can sit in a shared inbox while everyone assumes someone else has checked the issue tracker. Write the QA evidence control around exceptions, not only the happy path, because the exceptions are where excess repository access becomes expensive. The operator should be able to point to the exact field in the issue tracker that will change, not only to the message that requested the change.
Evidence map for QA evidence
Record the QA evidence and the time it was observed, because a later screenshot cannot prove what the record said when the first action was taken. The reviewer should be able to open the QA evidence from the case without searching a personal drive or asking for a screenshot. A conflict is not a reason to rewrite history; it is a reason to show the reviewer exactly where the QA evidence record stopped agreeing with itself. Record the source identifier and the extraction time when the value comes from the issue tracker.
The evidence map should show the minimum needed for a reviewer to answer who asked, what source was used, who approved, and what changed. Attach the ticket to the case, label its version or date, and record the field in the code repository that it supports. Keep an exception note that explains which value was used, which was rejected, and why; a later reviewer should not have to infer the choice from the final number. Record the source identifier and the extraction time when the value comes from the code repository.
If developer supplies the instruction, keep the instruction and the underlying pull request together rather than replacing one with a summary of the other. For recurring QA evidence work, use the same pull request type and the same field labels so a sample can be compared across owners. After the conflict is resolved, add a short correction entry to the QA evidence log and link it to both source versions. When the requester supplies a correction, keep the original request and the corrected value in the same QA evidence history.
Decision rights for QA evidence
Security reviewer may prepare, compare, label, and route the QA evidence, while developer keeps the decision that changes the destination record in the code repository. A decision right is not the same as system access; the operator may be able to edit a field without being authorized to decide its value. When approval is conditional, write the condition and the person responsible for checking it; a conditional yes is not a clean yes. For high-risk QA evidence work, require a second reviewer who is not the person who prepared the packet.
The operator can make the pull request usable, but should not invent the rationale for an approval that QA lead never gave. The boundary should be visible to the requester as well, so a request for QA evidence does not become a promise the operator cannot keep. Review a sample of approvals each month to confirm that the named role still matches the current offshore software development process. If QA lead delegates approval, record the delegate, the scope, the start time, and the end time.
Daily workflow for QA evidence
Start the QA evidence review by opening the CI pipeline, sorting the oldest unresolved item, and checking the pull request before reading the latest summary. Use the escaped defect rate field to flag a possible exception, but do not let the flag replace the evidence review. If a handoff is pending, name the receiving role and the time by which acknowledgment is expected. Use a queue view that shows owner, age, next action, and missing evidence in one screen.
A short morning pass should identify missing code review, stale approvals, and items that crossed a time zone without acknowledgment. When the next step belongs to engineering manager, write the request and the due time instead of leaving the case in a waiting state. Close the day by checking that each completed QA evidence has a destination update in the deployment console and a confirmation for the requester. If the queue is too large to review, split it by risk or channel rather than sampling only the newest items.
Open the QA evidence queue in the dependency scanner and mark every item with the current owner, the next action, and the time it is due. A status update should describe a verifiable event, not a feeling about progress; link the event to the dependency scanner or the deployment window. Close the day by checking that each completed QA evidence has a destination update in the dependency scanner and a confirmation for the requester. Record the time zone of the owner and the requester when a due time crosses regions.
Exception handling for QA evidence
A missing code review and an unreadable code review are different exceptions and should not share the same reason code. An escalation packet should include the QA evidence link, verified facts, the unresolved decision, the deadline, actions already taken, and the safest next step. A stop-work rule should name the trigger, the person who can release the work, and the evidence needed to restart. Do not close an exception because the customer stopped replying; record the last contact and the next attempt.
When stale dependency is involved, use the highest escalation path even if the QA evidence request looks routine. Keep the escalation in the QA evidence case so the response is visible to the next reviewer. When the source is unavailable, do not substitute a familiar value from an earlier QA evidence; stop and record the gap. The escalation packet should be short enough to read on a phone and complete enough to decide without a meeting.
Use separate reason codes for missing rollback plan, conflicting source, wrong QA evidence, expired approval, unavailable product owner, and an outage in the incident channel. The packet should state what the operator did not do and why, so the owner can see the boundary that was preserved. If access is wrong or unexplained, stop the QA evidence work before opening the incident channel with borrowed credentials. Keep a separate escalation log for items that required product owner, so response time can be reviewed.
Close and verify QA evidence
The close note should be short: what changed, where it changed, who approved it, and how it was confirmed. When the deployment window is sensitive, record the approved reference and the access location rather than copying the content into the queue. A reopened case should show what changed, who noticed it, and which earlier decision is now in question. If the destination is a downstream team, keep the QA evidence open until that team acknowledges receipt.
If the destination is another team, the QA evidence is not closed until that team acknowledges the handoff. Use a second reviewer for high-risk QA evidence closures, and record the review even when the result is accepted. A reopened case should show what changed, who noticed it, and which earlier decision is now in question. A quality reviewer should be able to reproduce the close from the source and the approval without reading the operator's inbox.
Review cadence for QA evidence
A useful sample includes a routine close, a reopened case, a missing rollback plan, and a handoff that crossed a shift. Use the correction log to estimate rework, and separate corrections caused by source errors from those caused by judgment. Assign one owner and one due date to each review action, and check the action at the next sample. If a high-risk gap is found, pause the affected QA evidence work while the action is implemented.
Keep the sample small enough to finish and large enough to expose a repeated gap. Pair speed measures with evidence measures so a faster QA evidence queue does not hide missing QA evidence or weak approvals. Escalate a repeated high-risk QA evidence gap to engineering managers with the case evidence, not only a summary count. Choose the sample from the queue export before the meeting so the discussion cannot drift to memorable cases.
Copy-ready brief
Put the operating agreement in writing.
Prepare and review QA evidence inside one ticket.
Attach reproduction, test result, review note, changed files.
The technical owner keeps merge, release, secrets, and commercial decisions.
Frequently asked questions
What can the programmer own?
Implementation, tests, review preparation, and a written handoff.
What is reviewed first?
Source, reproduction, acceptance evidence, and rollback.
When stop?
When scope, data handling, authority, or recovery is unclear.
Sources
- CISA — cybersecurity best practices
Public guidance used to bound the review.
- Microsoft Learn — security
Public guidance used to bound the review.
- SANS Institute
Public guidance used to bound the review.
