Re: Template open/save behavior



Hi Beth:

Let me be clear on this :-) *I* do not argue this, the "Software Industry"
argues this. You're not arguing with "me", you're arguing with the
International Standards Organization and Carnegie Mellon University :-)

What I am espousing is not *my* opinion, it's the software industry's
current best practice.

The term "Bug" is simply slang for "Defect". The software industry has now
discovered that all the really expensive problems happen in places OTHER
than at the coder's workstation.

This is partly because modern Integrated Development Environments, such as
Visual Studio 2005, now have developed to the point where it's actually
quite easy to avoid the old-fashioned "code that produces an error" kind of
bug. In testing, we now see almost none of those, because the "compiler"
will find them before the code even runs for the first time.

Modern software development tools also make it increasingly less likely that
the code "does not do what the specification said it should do". Again, the
development tools tie the specification database directly to the source
code, so during the code review the specification is on one half of the
screen and the code intended to implement that specification appears beside
it.

The defects that the industry finds these days are almost always in a part
of the software development activity known generically as the "Design"
phase. This begins with Requirements Analysis and continues through ten
stages to Coding Specification. These usually occur before the first line
of code has even been written.

This phase of software development is almost entirely manual: there are no
good tools available yet that have the ability to validate or test what is
being done. So this is where the errors occur. In modern software
development practice, there are ten Software Quality Assurance phases that
occur in parallel with the ten design phases.

For example, a certain bank I know quite well just spent seven million
dollars on a new Internet Banking application that gives users the ability
to automatically pay a bill with a single click. If they happen to be using
Internet Explorer 6.n on Windows XP SP2. If you are using ANY other browser
or operating system, it doesn't work at all: it doesn't even issue a helpful
error message.

What happened? The Feature Specification was written five years ago. It
depends on the user's computer uploading a Windows dynamic link library
module. The project DID remember to revisit the design of the .dll to
ensure it would run on Windows XP SP 2. But they never recorded their
dependency on a particular browser in their Feature Specification, so
browser choice was never revisited, and when the software went live last
month they discovered that 40 per cent of their customers can't use it.

Not a coding error: the code works great, I used it yesterday on the PC.
Not a "Design" error: the design is great. Not a "Functional specification"
error: the functions in the requirements were specified just fine. Not an
"Application design" error: the application works great. This defect
occurred in the first design document that was produced on the project: the
Requirements Analysis.

But it has produced a bug. A bug that will cost the shareholders of this
bank another seven million dollars to fix. Worse: It will cost them maybe a
thousand million dollars in lost business (it's a VERY big bank...) over the
next five years, due to diminished reputation in the market place.

And guess what? Software Test did NOT find this bug. Why? Because they
tested against the Specifications: and the need to run in other browsers did
not appear there, so they never tested that.

They should have. A certain Executive Manager of Software Process and
Methods who I know rather well is going to ruin a couple of people's days
tomorrow about this. The words "Static Testing" may be used once or twice
in that conversation.

The word "Bug!" has already appeared more than once: used by the head of
Retail Banking. It was his seven million dollars. It will be his billion
dollars. A billion dollar loss can produce a lot of unhappiness. He has a
lot of unhappiness, and he is spreading it fairly liberally throughout the
corporation :-)

But he calls it a "bug".

Cheers


On 12/2/06 6:29 AM, in article C0137AFF.27B6D%bethrosengard@xxxxxxxxxxxxx,
"Beth Rosengard" <bethrosengard@xxxxxxxxxxxxx> wrote:

Hi Jeff,

Bravo! I completely agree with you. McGhie and I have argued at length
about what constitutes a bug and he insists vociferously that it's anything
that 'doesn't work the way the user expects it to work'. In my opinion,
that's a misleading and not useful definition.

Your statement that "All bugs are flaws but not all flaws are bugs" is the
key, and maybe you can get John to accept this reasoning; obviously *I've*
never succeeded <bg>.

Cheers,

Beth


On 2/11/06 11:04 AM, in article uk#YN4zLGHA.3408@xxxxxxxxxxxxxxxxxxxx, "Jeff
Wiseman" <throwawayacct223@xxxxxxxxxxxxxxxxxxxxxxx> wrote:

I'm one who prefers to call a spade a spade, a bug a bug, and a
"stupid, screwed up, poorly thought out, highly misguided, and
very bad DESIGN DECISION" just that :-)

The connotation of a bug is a flaw that was not intended. An
unintentional side effect or deviation from what was intended
analagous to fumbling something or tripping, or accidentally
breaking something. Since it is a fumble due to either
misunderstanding or usually a coding error, it's magnitude
typically tends to be limited.

The altered "feature" being discussed was totally premeditated
and spec'ed as such. That puts it into one of the "stupid,
screwed up, poorly thought out, highly misguided, and very bad
DESIGN DECISION" catagories IMHO. Let's give credit where credit
is due :-)

Also, the term "bug" is kind of cutesy which downplays its
reality as a flaw. All bugs are flaws but not all flaws are bugs.
The exact nature of a flaw can usually be ascertained by what
level of the company you need to go to to get it corrected. If
you go to the programmer that wrote the code, show it to them,
and they say "Shoot! I gotta fix that!" and they scurry away to
their terminal, then it is likely a bug. If they say, "Oh, Im
sorry but you'll have to submit an ECN to the VP of marketing,
have it approved, submitted to the change control board, and
written in for release in two years, then it was likely a stupid,
screwed up..., oh well you get the picture! :-)

Thanks to one and all for letting me get that pet peeve out, I
have a low tolerance for poorly spec'ed and designed software
regardless of who does it (myself included).


--

Please reply to the newsgroup to maintain the thread. Please do not email
me unless I ask you to.

John McGhie <john@xxxxxxxxxxx>
Microsoft MVP, Word and Word for Macintosh. Consultant Technical Writer
Sydney, Australia +61 (0) 4 1209 1410

.



Relevant Pages

  • Re: Template open/save behavior
    ... ISO standards or Carnegie Mellon University publications "bug" is defined as ... unintentional flaws and design flaws (or, if you prefer, Design, Coding and ... is interchangeable with "defect" does not make it so. ...
    (microsoft.public.mac.office.word)
  • Re: OT: Exchange (Was Re: OpenVMS - When downtime is not an option)
    ... application bug to provide access to protected data and/or provides ... the bugs *only* affected Exchange Server. ... Server* design flaw, not a Windows flaw. ... Microsoft product and those same designers and programmers have probably ...
    (comp.os.vms)
  • Re: pppd crashes, was: kde-freebsd
    ... User PPP is very easy to use, Kernel PPP is not. ... It appears to me that PPP is the more normal way on FreeBSD, whereas, in my own experience Linux, prefer PPPD. ... Over time FreeBSD and Linux drifted apart on this design issue, and it became something of a characteristic of BSD, perhaps that is why Kernel PPP became less well maintained ... Regarding the various comments by Michael Nottebrock, Firstly: The bug you mentioned I have not experienced. ...
    (freebsd-stable)
  • Re: Off switch blues
    ... it's not a feature it's a bug. ... like, consider a design bug. ... sleep, close the lid, and unplug the keyboard, it's because I intend to ... I don't intend for it to wake back up until I open the ...
    (comp.sys.mac.system)
  • Re: What Happened to Grundig?
    ... improve the original Sony design. ... Regarding how Grundig came to use the Sony design, ... Correcting the bug only realizes what the design ...
    (rec.radio.shortwave)