Comparing bugs and features
It can be difficult to distinguish between bugs and feature requests in software applications. Despite your best efforts to clarify the feature specification (see Chapter 2, Writing Great Feature Specifications), it is easy for ambiguity to creep in. Within those gray areas, your assumptions about what functionality should work may differ from the implementation.
For instance, sometimes new features aren’t initially available in all situations. Maybe you can create users on your system, and you have recently added an API to your system, but for now, the API is read-only, and you haven’t yet added an API command to add a user. APIs usually have a precise specification to say which calls have been implemented, but other interactions between features are less clear.
Other problematic areas are what should happen under degraded performance. On poor networks, what quality of service is acceptable? On low-resolution screens, how should the...