Bugs in Labs and Software

Often times, early in cohorts, students begin to discover two things. The first is that materials they are using are incomplete, vague and contain mistakes or errors that cause confusion. The second thing is that some students discover that these revelations disturb them a great deal.

One of the unfortunate aspects of a life spent coding is that you're most often dealing with incomplete information or data, incomplete or inarticulate (badly written) documentation, tests that are unreliable, specifications which are not specific, requirements that are vague, incomplete or misleading, and sometimes, just sometimes, actually deliberate disinformation meant to disrupt your work.

The best advice we can offer is this: "don't let it bother you". Or as an early ZCW instructor used to say "get over it right now".

State of the Art

Software is still - in spite of decades of global effort by all kinds of computer scientists, engineers, and coders - an art. (Some would argue it is not clear it can be engineered either.) Perhaps the most important software book(s) of the last 50 years is Donald Knuth's The Art of Computer Programming (which is currently at 5 volumes and 9998 pages). And if Prof. Knuth says it's an Art, rest assured it is.

So the precision which many people expect coding/programming to have in creation and maintenance is simply not there. Sure, we can approach some kind of formality of method, with practice, but alas, ours is not precise field. Detailed yes, complex yes, but error-free and "bug free" - no way.

Bugzilla

To handle the "metadata" of bugs, special programs are developed to maange the database aspects of tracking all the brokenness that exists in software.

Bugzilla was an early bug tracking system for large software systems and products. It was used to track issues, features, desires, errors, and of course, bugs. All software has bugs, seeking to reduce the number of bugs in an application is very desirable; but it is a moving target. We need bug trackers like Bugzilla. So much so that Github has issue tracking built into every repository. Many places used Bugzilla for years, some still do. It had this quirk, inserted deliberately, of "zarro boogs"

Zarro Boogs

Bugzilla returns the string "zarro boogs found" instead of "0 bugs found" when a search for bugs returns no results. "Zarro Boogs" is intended as a 'buggy' statement itself (a misspelling of "zero bugs") and is thus a meta-statement about the nature of software debugging, implying that even when no bugs have been identified, some may exist.

The following comment is provided in the Bugzilla source code to developers who may be confused by this behaviour:

Zarro Boogs Found

This is just a goofy way of saying that there were no bugs found matching your query. When asked to explain this message, Terry Weissman (an early Bugzilla developer) had the following to say:
I've been asked to explain this ... way back when, when Netscape released version 4.0 of its browser, we had a release party. Naturally, there had been a big push to try and fix every known bug before the release. Naturally, that hadn't actually happened. (This is not unique to Netscape or to 4.0; the same thing has happened with every software project I've ever seen.) Anyway, at the release party, T-shirts were handed out that said something like "Netscape 4.0: Zarro Boogs". Just like the software, the T-shirt had no known bugs. Uh-huh. So, when you query for a list of bugs, and it gets no results, you can think of this as a friendly reminder. Of course there are bugs matching your query, they just aren't in the bugsystem yet...
— Terry Weissman
From The Bugzilla Guide – 2.16.10 Release: Glossary

So, strive to make software better, but software is never perfect. And it is truly hubris to think you can make it perfect; the nemesis of bugs is the only result. Only three things are certain: death, taxes, software bugs, and off-by-one-bugs.