5
Jan

TWOTS #3: "All Software has Bugs!"

This is the technical version of the more general "Nothing's Perfect" which, as a general TWOT, is similar enough to the previous TWOT "Everything's Possible" not to merit its own little chapter, but which in this specific case does deserve its own treatment.

Apart from the one notorious (in certain circles) example (see here in Wikipedia), it is generally accepted that all software has bugs.

However you cannot paint all software with the same "brush of imperfection". It's not the quantity of bugs that matters either, it's the type.

Type 1: Unknown Bugs

Shipping software, to customers, with known bugs, is like restaurants serving food with known infections. Anyone who starts talking about "ideal worlds", "commercial realities" or "acceptable defect levels" is sticking their head (or yours) in the sand. If nothing else you have to establish the type of the bug (which basically comes down to your understanding of it) and then take some sort of corrective action (which may not necessarily be fixing it).

Unknown Bugs happen because it is generally not possible to fully test software before shipping it. Of course, a company is (I believe) morally obliged to look for bugs as much as possible, much as the aforementioned restaurant should take every reasonable step to ensure food hygiene. However, bugs will slip through the net, and these are the only ones which should be referred to by the platitude "All Software has Bugs".

Type 2: Trivial Bugs

All those kind of numerous things like spelling mistakes and what have you, bugs which shouldn't take very long to sort out. And since they don't take long to sort out, they should be sorted out. If they're taking ages to sort out there's a problem either with your testing or your test-resolution processes (you're writing out two essays and meeting with 20 "stakeholders" every time you fix a typo).

Type 3: Conceptual Bugs

You're asking your software to do something it turns out it was never programmed to do. It's like the Skoda advert where a car is built out of cake, and then someone wants to get in and drive it away. You either change the spec ("this isn't the sort of car you can drive") or you re-write some or all of it.

Type 4: "What on Earth?" Bugs

You have absolutely no idea what is going on or why it is failing. You have tried pinning it down but the bug runs around like a thing possessed. You have tried various fixes, but they've either done nothing, introduced other bugs elsewhere or simply made this bug worse. It is out of control - a woeful situation indicating that you really need to get your engineering act together. Nothing for it now but to evaluate the risk to your business and live with it, and live with the fact that your Unknown Bugs could well be of this kind and have more serious consequences.

So, when someone in a meeting comes up with that little line "All Software has Bugs" just answer that this is only true in the case of Unknown Bugs in the face of extensive testing. Well-written well-tested software does not have any others.

Richard

TWOTS: start previous next

free b2evolution skin

No feedback yet

Leave a comment


Your email address will not be revealed on this site.

Your URL will be displayed.
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)
Free Blog Themes/Templates