Coding Horror: That's Not a Bug, It's a Feature Request
codinghorror.com
codinghorror.com
A bug is something that should be working according to the specification (or, if the specification is missing, according to common sense), but is not working. If you have a button labelled "print" and it doesn't print, that's not a feature request, it's a bug.
Feature requests are made up of enhancements and requirements.
An enhancement is an small, incremental and obvious improvement to an existing function/element that doesn't change the fundamental functioning of that function/element. If the print button is there and is working fine according to the spec but a user requests that it also prints the date at the top of the document, that's an enhancement.
A requirement is a wholly new piece of functionality that didn't exist before. If the print button is there, and it works fine, and the user requests that it should allow the user to select which pages to print before actually printing, that's a new requirement.
It's really not rocket science...
"Work items" (whatever kind they are) should be implemented based on the value they add to the product, the company, the customers, etc. Bugs can be minor and requirements can be critical.
In the case Jeff discusses, yes, it's a bug, because it should match the requirements, which presumably include providing customers with the tools to build quality Windows applications. Is it a critical bug? Depends on the point of view. From a developer point of view it's not critical, and they are right to ignore it from that narrow perspective. "Critical bug", in developer-speak, means "The sky will fall when someone clicks that button". However, it should be critical to the windows UI guidelines team and they should be the stakeholder pushing to get it implemented, on the basis that it makes them look like dunces.
So the problem there is not about what you call the bug, it's about the fact that the windows UI guidelines team don't care enough (a fact more than obvious whenever I stare at a vista screenshot).
Exactly, however "Feature requests" are always considered optional and "Bugs" are always pushed through triage. This distinction causes moderately important feature requests to be ignored while moderately important bugs are fixed.
Jeff's point is that the distinction between bugs and feature requests has the unintended consequence of weakening the sorted order of the priorities of this middle range of work items. Additionally, I would argue that identifying something as a either a bug or feature request doesn't provide any value. Spend that energy identifying customer impact.
If it doesn't provide any value and actually requires some effort, stop doing it.
MS is in a different situation really because they have no contractual obligations. Nobody is really pushing against their products for quality, so their upgrades are driven by marketability or something.
The irony is that quality is the best marketing. The product that aims at marketability at the expense of quality will achieve neither, the product that aims at quality at the expense of marketing will achieve both.
My employer (who works in a highly regulated industry) works the same way. If a core product must be modified, we issue a change control memo. The items in the memo either have to be tied to bugs in our bug-base or, in the case of enhancements, a specification.
Because of the high volume of paperwork that surrounds software releases (specifications, documentation, test matrices, test reports), enhancements are typically put into a stack until there are enough to justify the load of paperwork that must accompany such a release. Bug fixes still require paperwork, but specs don't need to be written, only test reports.
More often, our enhancements get rolled into a new contract. If they are peripheral enough, we might not even do requirements for the new contract. Just using the old change requests is as specific as it gets.
It'd be nice if it'd be true. But look no further than the example at hand and its relatives.
This whole post is such a disguised discussion. He never picks a precise definition of "bug" or "feature request". If he did, it would be immediately obvious were each case lies - but then it would be also obvious the post is content-free...
At any case, it would be nice if there was some way of telling HackerNews "I don't want to see any posts coming from codinghorror"...
Make your software do the right thing.
If not, that's the real problem. Anything where you have to change every property setting manually to get a new font is a non-starter, IMHO.
In the waterfall model, if it isn't in the requirements/specifications doc, it isn't a bug. It's put in as feature request and if you're lucky maybe some day years later it will be addressed in a redesign project or a "phase 2", but most of the time it will never happen.
In agile, if it's not a story, you put it in the backlog and it will eventually make it into an iteration. For example, as testers, we bring it up to the PM/PO so that he can write a story for it. They'll prioritize and put it in an iteration because the developer will not do anything about it unless it's a story and his time accounted for it.
Why is this VS customer pissed? Because VS uses a default font that doesn't match the system theme.
Why is that font used? Because it's always been that way? Or did the VS team change it around the time Vista was released?
Why didn't the default font change to match the new OS theme? Lack of communication? Did the VS team disagree with the HIG team at Microsoft while Vista was under develoment? While we're at it, why doesn't the application just take the window manager's default fonts unless specified otherwise?
This would be an interesting rabbit hole to follow down if I cared about Visual Studio and Windows development.
Just sayin'.