By Shmuel Gershon
Last month I visited the STAR East conference. It was over two weeks ago, which on the internet age makes it old news.
I follow my own clock, however, and will start posting about STAR East only now. Scott Rosenberg would call this type of blogging ‘history’ instead of ‘journalism’ (link), and it sounds just as fine.
In next blog posts, I’ll write about what happened at STAR. What happens in Orlando doesn’t stay there.
But on this one, it’s a bit about what happened in the way there.
For some time before travelling, I’ve been thinking about physical problems that resemble computer bugs. “Spirits in the material world”. For example:
In this picture you can (barely) see a water bottle that was forgotten by a worker on my neighbors’ roof. Just like a programmer would forget a temporary variable she invented to get some refreshment from the code inherent limitations, a worker will forget his own refreshment once it isn’t needed anymore.
This other picture is of a bathroom urinal row. I bet the urinals looked beautiful in the catalog, with their slim form that doesn’t stand out of the wall too much. But when “implementing” the bathroom, not only the beauty is lost when you build the necessary dividers, but the very same low-footprint of the urinals makes the rest of the environment unclean.
How many times a company/developer makes a bad decision of, say, a coding library, just to discover that the very ‘flexible’ API promised by it is the part that gives them most trouble? How many times they decide to retrocede the and change the library?
Ok, ok, tasteless example.
It seems that the same thinking process that makes a programmer/tester miss a detail when coding/testing happens in any other aspect of real life. I’m reading “Why we make mistakes” by Joe Hallinan and this idea seems to be congruent with many examples.
Well, with that mindset, it’s a sure thing that I would find bugs on my trip. Not because the trip was bad — au contraire, it was a mostly pleasant journey. But analyzing things and trying to assess their value is a good exercise for testers.
To make the exercise better, I decided to categorize the bugs and problems into the 8 parts of the HICCUPPS mnemonic consistency heuristic for analyzing a bug. It is a great way of building yourself an oracle to assess a potential problem, and I learned about it first from Michael Bolton‘s “Testing without a Map” article, highly recommended.
A quick explanation of the heuristic: One method of assessing any phenomenon is by comparing its consistency to a different (but comparable) source. The 8 aspects this mnemonic suggests are:
Is the phenomenon consistent with a comparable idea in:
History (e.g. the same function in the past)
Image (e.g. what the company would like customers to think of it)
Comparable products (e.g. the competitor’s )
Claims (e.g. a user manual statement)
Users’ expectations (e.g. what users have become used to)
Product itself (e.g. the same function elsewhere)
Purpose (e.g. the aim of this very function)
Statutes (e.g. a certification check)
To illustrate better the method and to share the fun of travelling, here goes a list of interesting events encountered on the trip:
[H – History] Airlines/Airports are stingier than in the past
It’s been a long time since I last travelled. So my recollection on how it works left me with some expectations, like having free carts at the airport, or having free peanuts during short flights, or having free headphones in the long ones.
Surprise: A cart costs US$4.00, a headphone costs US$5.00, and peanuts only if you brought from home! I was lucky I had my headphones in the carry-on case, but would be disappointed if I had to pay for airline ones.
This is interesting: Is that a problem? Is it a bug? Well, certainly it is inconsistent with the (far) history of tourist aviation, but it may be a good business decision. And fixing a bug (or deciding something is one) is a business decision.
[I – Image] Airlines seem to content with poor software
US Airways have a personal in-flight video system for each passenger (on long flights). It is great, has a touch-screen and showcases movies, music, even TV shows.
But the system is slow. It’s so slow that you often get confused by what it is doing — Is it stuck? Should I press again? Which of my last clicks is he processing now?
A funny thing is that at the beginning of the flight, the attendant announces: “please expect a delay after pressing the buttons on screen, it is part of the normal operation of the system”. What? In the age of iPad and other rapid touch-screens, is it really part of normal operation? I observed the other travellers, and saw at least two that were frantically pressing the screen waiting for answer.
We all also hope that the cockpit controls respond faster…
This one has two interesting points:
– I had a glimpse of the system rebooting when the aircraft landed. It is a Linux based system, and has a quote in its boot sequence that would make any software tester laugh (I laughed): “All bugs added by David S. Miller” :), which turns out to be a real line in the Linux Kernel (David is a programmer for RedHat). Great attitude, Dave!
– US Airways have, apparently, tested a different in-flight system, that is not available on A330 aircrafts. According to this review, it is much faster.
[C – Comparable Products] Top storage is smaller in international flights?
The overhead storage in the transatlantic trip was only deep enough to have the luggagge stored sideways. Good? Bad? Well, we don’t know (yet).
The storage (called overhead bin in the lingo) is made by a company called C&D Zodiac, and they look very professional and thorough. So the storage space is good? We still don’t know.
One thing we can do, is to try to learn from comparison: The domestic flight had an overhead bin too, but in this case the carry-on luggage fit on its length too, almost twice the depth of the other.
How come? International flights have much longer duration, and it is normal that people will bring larger/more carry-on (sandwiches? Games? Stuff for the kids?). So why is storage room smaller in international flights? A bug?
OTOH, on domestic flights more people are expected to bring only a carry-on (they stay less time at their destination), so maybe there are more/bigger carry-on on these flights. So what? No bug?
And that is exactly the point of interest here:
The mnemonics/heuristics don’t tell you a definite answer, but they help you to think.
[C – Claims] Where’s the Kosher food?
US Airways cancelled my flight back, but I will not complain about that.
However, they did claim that there would be an acceptable solution, and that the airport hotel would be able to provide Kosher meals. And none of these claims stood to the truth.
The airport hotel had no Kosher preparation, and US Airways made it very difficult to find an acceptable solution. It took three hours of phone calling and walking between their offices until they agreed to provide suitable meals from outside.
A claim, even a verbal one, is a claim that your customer will expect you to fulfill.
[U – User Expectations] What’s with the default volume settings?
The aforementioned in-flight entertainment system had many settings. One of these was the volume setting, controlling how loud the movie you are seeing is.
However, this setting was re-set for every movie, which means that every time you moved to a different TV show, it will be at a loud volume again!
And I think (I did not ask for tools to verify it at the time) that every time the attendant/pilot talked on the announcement system, even when it was during a movie, the volume was at the loud volume – again.
My expectation, as a user of the system, is that once I set a volume level for one show, it stays on that level for other shows. I got startled by loudness once and again.
[P – Product Itself] Now, where can I change the diapers?
This is my favorite one.
Bathroom stalls at airplanes have this platform that you can detach from the wall and use it horizontally to change the diapers of your little kid.
Bathroom stalls at airplanes also have this new foamy liquid soap, strongly attached to the
But, as you can see on the picture, the soap was installed right in the place where the platform should be based on. There is no way to use the support in order to lay the platform down.
So this is a perfect example of two parts of a system that are inconsistent with themselves — or, in this case, not only inconsistent, but the feature added later, practically nullifies the original feature.
[P – Purpose] Is your seatbelt fastened? Is it? Not?
I noticed during the flight that the flight attendants had to check if passengers had their seatbelts fastened. So they went from passenger to passenger, trying to discern if the seatbelt is locked or not. Not always an easy task, as passengers are usually holding things or use a blanket.
But if this “check seatbelts” function exists, why isn’t the automatic system of the aircraft aiding? Why isn’t there a little row of LED lights that show which seatbelt is fastened and which isn’t? Attendants would (maybe) have it all much easier.
It appears to me that without this simple system (hey, cars have it) the aircraft system is not serving its purpose in every way it could.
[S – Statutes] This page intentionally left blank
This one is missing. Because:
I don’t think I noticed anything that was against a statute or law.
It would be irresponsible to suggest things that are against the law in this (or other) industry — especially as I am not a domain expert.
As you see, a 12 hours flight is a lot of time… These are my notes from trip to (and back from) Orlando.
I am interested in learning about other methods you use to analyze bugs/value in the physical world. Share in the comments!
Now let me start that post about the actual STAR East lectures and networking…