What is a Bug Fix, and how are prioritisation and documentation done?
Elimination of software errors
The removal of software bugs is called bugfixing. A bug fix is the result of debugging. What sounds relatively easy in theory is often a challenge in software development practice.
Before a bug fix can be implemented, a bug must be identified and located. Bug identification is often done by users, while localisation is usually done by support and/or development teams. What are the effects and severity of a bug? When does the bug occur, in which use cases or scenarios, in what frequency and with what consequences?
The prioritisation of bug fixes
Ideally, the answers to these questions are recorded in writing for each identified defect – another common word for bug – so that they can be used to prioritise bug fixing:
- Low: The bug is merely documented and only brought up for discussion again when its frequency or severity increases.
- Medium: The elimination of the error is discussed in the course of the next planning round – e.g. in sprint planning, iteration or release planning – and, if necessary, scheduled.
- High: Error correction is included directly in the current iteration or sprint.
- Very high: The error is so elementary that the elimination cannot wait for the end of the current development interval. A direct, immediate solution is necessary. The provision of troubleshooting can take place as a hot fix.
In the course of refactoring, so-called code smells are often discovered, i.e. constructs in the code that work but could be better structured. The removal of such code-smells is not considered bugfixing. However, if actual errors in the code are discovered during refactoring and then corrected, this is a bugfix.
The documentation of bug fixes
It is common practice that bug fixes are documented not only internally, but also for users. This can happen in a separate bugfix log or in a change log. Most documentation also contains information on how to put the bug fixes provided as patches, hotfixes, updates or upgrades into operation.
How bugfixing and the further development of a software can succeed in parallel, is described in the blog post The SWAT team in Scrum.