Wednesday, August 31, 2011

The Story of a Bug

The 7 different "Save" buttons on the main Foxhound Options page didn't actually "save all the changes" like it now says in the Help for Foxhound 1.2, they just saved the values in each of the 7 local sections of the page.

But wait, it gets worse

The separate Monitor Options page has 6 different "Save" buttons, and they did in fact "save all the changes"... and the developer was the same.

Much worse

If this was a movie, the scenes above would be one of those annoying "flash forwards"; here's how the story starts:

Following the practice described in Docs Finds Bugs the developer made the following change to the Help to make the descriptions of all 13 Save buttons complete and consistent across both pages, from this

to this

but did not, in fact, actually check both options pages to make sure they agreed with the Help... just the one that did agree (of course!)

Much, much worse

How much worse can it get? Try this: The earlier version of the Help for the Foxhound Options page was explicit about how each Save button saved only the options local to each section of the page... it agreed with the code, and the change to the Help required a corresponding change to the code, which did ... not ... get ... done ... by the person who changed the Help, who was the same person responsible for the code.

Discovery! Redemption!

Later in the "Fix Bugs" step which followed the initial "Update the Help", the developer happened to notice the discrepancy between the way the Save buttons worked on the two pages.

Of course, if the developer hadn't changed the docs, they wouldn't have been changed at all; technical writers don't typically initiate spec changes.

So... was it actually a bug?

Welcome to Moot Point!

No, it wasn't a bug at first, it was an enhancement. It became a bug when the enhancement described in the Help wasn't implemented in the code.

Oops. Which is Management Speak for "moot".

Would this bug have been caught during Acceptance Testing? Maybe, maybe not... but Acceptance Testing is not supposed to be a "bug hunt". When a bug is discovered during Acceptance Testing the whole boring ... endless ... process ... pretty much has to start over again.

What about the specs? Was this bug a violation of the specifications? Sure... the specs said "make the Foxhound options pages work like Google Settings pages, only better"... there's nothing like a [cough] impossible challenging goal to spur innovation!
For what it's worth, separate Save buttons exist in Foxhound so the user
  • can find all the options in one place rather than dealing with labyrinthine dialogs and wizards

  • but doesn't have to scroll down three miles to get to the steenking Save button

  • or worse, doesn't forget to click Save, like what happens now with Google Settings since they removed the duplicate Save buttons.
But that's not the point. The point is that the enhancement got made and the bug got found as a direct result of the docs: Docs Finds Bugs.

No comments: