A person’s title can say a lot about them. If they’re married, have a PhD, are a medical Doctor, or if they’re King of a country. What it can’t tell you, is their weight.
That’s what TUI realised when they were caught using women’s title to work out if they’re a child or not.
For those who don’t know how airlines work out how heavy the plane is going to be, you won’t enjoy this. Airlines assign a weight per passenger based on if the passenger is an adult or a child. You’d think they would work this out by age, but TUI did it by a person’s title. I say person, that’s not entirely accurate, they worked it out based on a woman’s title.
Every adult woman checking into flights using the title “Miss” was assigned the average weight of a child (38Kg). This caused a flight departing Majorca for Birmingam to be 1244Kg heavier than estimated. If you want more on the actual incident, the Guardian have a good write up of it and the actual incident report can be found here (PDF).
How many failures down the line…
The reason TUI are giving is that the country where the software they use was developed use ‘Miss’ to denote a female child. You could argue, therefore, that this is a “lost in translation” issue, or is down to cultural differences. However, I’d argue that it is instead a systematic failure in software design and development. At no point should someone have been ok with assigning someone a ‘child’ status based on something as varied (and mostly meaningless) as their title.
The “Little Lord”
It leads me to wonder if a male child of age 7, with the title of Lord, would be assigned the weight of an adult. Children are able to hold heriditary titles like Lord, Prince, Princess, Baroness, Vicount, and a host of others. But a child holding that title doesn’t suddenly level up to being an adult. If this software is using title to denote if a passenger is an adult or a child, how many other errors are there buiried within it?
As it stands, there are a number of issues which lead to this serious incident. It wasn’t just one error which lead to this, it was a failure of the software development process.
Controls and Checks
If you’re working with a cross country team, or any team where the thing you’re building is going to be translated into multiple languages, you *need* language controls and checks. You can’t rely on a development team to know the intricacies of a language they don’t use daily. A field like title, which is so nuanced, should never have been used in this way. Not without stringent checks that their interpretation of how the titles are used, and if they are even suitable being made during development and testing.
Numerical Fields for Calculations
It seems very obvious, but if you’re making calculations, you should use numerical fields. Like the age field which is already gathered by the airline. Using any text entry to make calculations is always going to end in problems.
During the design phase, it should have been discussed how the weight calculations were going to be done. The designers on this project could have easily decided that the title field is no longer required and therefore not included in the UI at all. The testing phase should have also included testing the expected weights of aircraft vs the actual weight. Since the airline would have had access to historical records, this would be easy to test.
The “sniff test”
No one likes to admit it, but an awful lot of product development comes down to a sniff test. Product Owners ask “does this seem right?” or “are we sure this is the best way to do this?”. Taking a closer look at whatever doesn’t pass the sniff test can avoid a development team from going too far down a rabbit hole into something that won’t actually work.
No one, not a single person apparently, highlighted that maybe, just maybe, they should be looking at a person’s age to determine their status as an adult or child rather than using something as banal as their title. That shouldn’t have gotten past anyone’s sniff test.
No software is released perfect. There are always bugs, snags, and issues. But effective monitoring of what you’ve built can aid you not only avoid those bugs in the future but also is how you nip them in the bud.
After release, why was no one checking that the calculated weights matched the actuals? It will never be perfect, but surely it was monitored? This story might be the worst or most obvious example of the problem but no one would believe its the first time it ever happened.