R
Roedy Green
What would you call a flaw in a program that had no effect on the
results, but needlessly made the program slower or confusing?
results, but needlessly made the program slower or confusing?
Roedy Green said:What would you call a flaw in a program that had no effect on the
results, but needlessly made the program slower or confusing?
What would you call a flaw in a program that had no effect on the
results, but needlessly made the program slower or confusing?
What would you call a flaw in a program that had no effect on the
results, but needlessly made the program slower or confusing?
Call them "bugs." Sub-classification as "venial bugs" and
"mortal bugs" just reveals the classifier's lack of imagination.
True. But until this slow or confusing behaviour violated a business orCall them "bugs." Sub-classification as "venial bugs" and
"mortal bugs" just reveals the classifier's lack of imagination.
glen said:In health-care systems the difference might be more significant.
Eric said:(The software purveyors' pusillanimous retreat behing "Not
warrantied for any particular use whatsoever" is beneath contempt.)
IMHO it's a mistake to classify such bugs as "lower order". Rather, they
are simply a different subset of the broader classification of "bug":
* "correctness bug" -- affects the actual result
* "performance bug" -- affects the efficiency/speed of the code
* "maintenance bug" -- affects the readability of the code (makes it more
confusing)
I don't think there's any need for a whole new term. It's just a matter of
applying the appropriate qualifier to the existing term of "bug".
Pete
Roedy Green said:What would you call a flaw in a program that had no effect on the
results, but needlessly made the program slower or confusing?
IMHO it's a mistake to classify such bugs as "lower order". Rather, they
are simply a different subset of the broader classification of "bug":
* "correctness bug" -- affects the actual result
* "performance bug" -- affects the efficiency/speed of the code
* "maintenance bug" -- affects the readability of the code (makes it more
confusing)
I don't think there's any need for a whole new term. It's just a matter of
applying the appropriate qualifier to the existing term of "bug".
What about one that makes it more confusing and needlessly faster?
What about one that makes it more confusing and needlessly faster?
Technically a "bug" is where the implementation deviates from the
specification. Correctness bugs exist and performance bugs exist
assuming there is a requirement for a certain level of performance ...
"as fast as possible" isn't a specification.
I no longer have the reference at hand, but aeons ago I recall reading a
paper that used basically the same qualifiers as Peter but applied them
to the word "flaw" instead of "bug;"
The fact that the program is being called slow and confusing
demonstrates that it is neither "fast enough" nor "clear enough."
If the program were satisfactory, nobody would be complaining --
but they are complaining, ergo the program does not meet expectations.
Note that some bugs are addressed by means other than changing
the code. We might, for example, relabel the program as "Only for
use on big honkin' screamerboxen" or "Not for use by addlepated
nitwits." That is, sometimes the failure to fulfill expectations
is remedied by better control of the expectations. Nonetheless, it's
a bug until and unless *something* is done.
I agree. But I don't think we're talking about that here. I know I'm not.(The software purveyors' pusillanimous retreat behing "Not
warrantied for any particular use whatsoever" is beneath contempt.)
Other terms might be "issue" (like, "I have an issue with the way this
code works), or "undesirable feature."
In a bug-base, these are sometimes referred to as RFEs (Request for
Enhancement) as opposed to bugs or RFCs (Request for Change).
Who's "they"? I run into this situation often enough, particularly with
You know said:respect to application performance. 9 times out of 10 the people who
complain about slowness haven't measured the current performance,
haven't any baseline data for the performance of any previous versions,
and there are zero business/technical requirements that define target
performance. In the absence of all that the complaint is entirely
subjective, and there is no defect.
I'd be surprised if _you_ set out to "improve" performance without a
specified, agreed target at a minimum.
Quite.
As for "confusing", if it's a trained user of the program who's
complaining, for some common-sense value of "trained", then maybe I'll
take the complaint seriously. "Trained" to me means that the program
_documentation_ is adequate or better, that the user is familiar with
it, and that if proper operation of the program also requires other
knowledge (like that of business processes, or of some subject, or of
some professional occupation) that the user possesses that knowledge.
I've seen way too many people complain that something is "confusing"
about an application where they lack any of these prerequisites. I'm
sorry, but they can go suck eggs until they do their bit first.
In a more active way you take care of "confusing" by getting user
interfaces (command line, graphical etc) and use cases and storylines
out in front of the user community as soon as possible. This should
happen in requirements at the latest. That's where the prospective users
have their opportunity to eliminate the "confusing" bits.
I'll agree that it could be viewed as a requirements defect, sure. OTOH,
if the business signed off on the requirements documents, it's really a
change request.
Yes.
I agree. But I don't think we're talking about that here. I know I'm not.
Actually, trying to read between Roedy's lines, I think I might know what he
means by "lower order." "Lower" as in further down the list of things that
must be done. Stuff that totally breaks your code must be dealt with promptly,
stuff that's just a little slow can wait and is lower on the list of stuff to do.
However, I'd call that a "priority," and I'd usually associate it with the
RFC/RFE that describes the bug. That is, priority is something that's
determined by the organization, and isn't always inherent in the type of bug
itself. Slow performance might actually be a very important bug, high on the
to-do list, depending on the organization's over-all goals.
RFC priorities I'm used to seeing:
Critical - Test inhibitors. These must be fixed NOW.
High - Customer defects for which there is no work-around. These must be fixed
before release.
Medium - Customer defects which have a work-around. These may be no-fixed and
forwarded to customer support. These bugs may also be forwarded to maintenance
or to the follow up project ("version 2.0").
Low - Noise. These bugs will not be fixed or forwarded.
"Needlessly faster" as in the customer didn't need a speed improvement in that
feature? I'd say that's Gold Plating.
<http://en.wikipedia.org/wiki/Gold_plating_(software_engineering)>
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.