# Bugs and change management

Even after a defect is found, it stays managed in one continuous line from the original requirement. What you fixed remains as material for the next improvement.

Bugs do not get a separate dedicated screen: they sit on **the same board as tasks**, as cards of the 'bug' kind. Estimates, sprints and pull request links all work the same way as for an ordinary task.

![PM on Rails board with bugs. Defects move in the same columns. Before: bugs escaped to another tool. After: they can return to the affected scenario and requirement.](https://pmonrails.com/docs-img/kanban.png)

## Bugs

- **A bug is handled as a task** — A bug is not a separate species but a task of the 'bug' kind, so it runs through the board, estimates and sprints alongside everything else ([task management](https://pmonrails.com/en/docs/tasks.md)).
- **Standalone bugs and linked bugs** — You can raise both **standalone bugs** that belong to no story (cross-cutting incidents, infrastructure defects and so on) and **bugs linked to a specific story or scenario**. Standalone bugs sit in their own group on the board (directly under the project), while linked bugs appear under their story.
- **Severity** — Record how serious it is.
- **Record the impact scope (a separate axis from parent and child)** — Independently of what the bug hangs off, you can record **which scenarios and requirements it affects**, specifying more than one (useful for impact analysis).
- **Resolution record** — Record the outcome, 'fixed / won't fix / duplicate / not reproducible', along with the reason.

## Turning prevention into a requirement

For a bug that 'should be fixed in the spec', you can propose and raise **a new requirement card or requirement** off the back of that bug. Instead of stopping at an ad-hoc fix, it goes into the spec and prevents a repeat.

## Change requests (changing a spec safely)

When you want to change a spec that is already in flight, use a change request. From 'Fix proposal' on a bug you can produce the proposed change (a proposed diff) and carry it through approval and application in one flow.

![PM on Rails change request. Under 'Fix proposal' on a bug, the proposed diff sits above Reject and Approve. Before: the reason for a change vanished in chat. After: why it changed stays as history.](https://pmonrails.com/docs-img/change-request.png)

- You **propose a change to a requirement or a scenario and reflect it after approval** (as in the image above, Reject and Approve sit below the proposed diff).
- When it is approved and you press **"Start implementation (apply)"**, a new version is created and the change request becomes "implementing".
- **Record the regression test results** ("Record regression test" on the change request). **A pass needs grounds** — the observed behaviour, a test reference (test name or CI run URL), or evidence (screenshot / video). A fail or skip needs a reason. The first record moves it to "verifying".
- When **every** recorded regression test passes, "Confirm merge" takes it in and **the related bugs are closed automatically**. It cannot be confirmed while any failure remains.
- "Implementing", "verifying" and "merged" are reached only through apply, recording regression results and confirming the merge (the status cannot be edited directly to skip regression checks). Sending a change back from verifying to implementing is allowed.

## Switching versions (never overwriting)

When you change a spec you do not overwrite it: a **new version** is created and the old one is kept as history (the same applies to requirement cards, requirements, stories, scenarios and tasks). When something changed, what changed and why stays available afterwards. A task that changed after work started is marked as 'needs re-checking' when its pull request is merged ([change tracking and diff checks](https://pmonrails.com/en/docs/change-tracking.md)).

## Next steps

- [Change tracking and diff checks](https://pmonrails.com/en/docs/change-tracking.md) / [Task management](https://pmonrails.com/en/docs/tasks.md) / [Testing](https://pmonrails.com/en/docs/test-results.md)

---

https://pmonrails.com/en/docs/bugs-changes
