The Difference Between a Bug and a New Feature
One of the most common points of friction in client relationships is the question of whether something is a bug (no charge) or a new feature (chargeable). This article clarifies the distinction.
What Is a Bug?
A bug is behaviour that differs from the agreed specification or acceptance criteria. Examples:
- A button does nothing when clicked, but the spec says it should submit a form
- A report shows incorrect data because of a calculation error in our code
- The system crashes when a user performs a specific action
- A feature works correctly on desktop but not on mobile, and the spec required mobile support
What Is a New Feature (or Change Request)?
A new feature is something that was not in the original specification — even if you feel it should have been, or you assumed it was included. Examples:
- "Can we add an export to CSV button?" (not in the original spec)
- "The form works, but can we add validation to prevent duplicate entries?" (not specified)
- "The dashboard shows sales data, but can we add a comparison with last year?" (new requirement)
- "The mobile version works but can it look more like the desktop?" (design change beyond spec)
The Key Test
Ask: "Is this in the agreed specification or acceptance criteria?" If yes — it is a bug. If no — it is a change request.
When It Is Unclear
Your Project Manager will assess ambiguous cases. We apply a "reasonable expectations" standard — if a user would reasonably expect the system to behave a certain way and we did not explicitly exclude it, we will discuss and often treat it as a bug. We will always be transparent about our reasoning.