User Journey, User Flow

About three weeks ago, as I was about to book a flight, I saw that I had a credit in one of my airlines' wallets - and it was about to expire. “Must be used for travel commencing no later than 31 December 2023,” it said.

Well, I thought, that’s handy - let me use it on this flight. So I did. But about three hours later, I received word that the trip I’d planned wouldn’t be needed, so I cancelled the ticket.

And the credit was returned to my wallet. And lo! it now read, “Must be used for travel commencing no later than 31 December 2024.” I’m positive that the airline didn’t intend it to be that easy to extend the life of a credit by a year. They were betrayed by their own IT.

Along with my friend and podcasting partner Chris Swan, I’ve been spending a lot of time thinking about aviation technology recently. Like, how is it possible that that situation I just described could happen?

The answer, it seems, is technical debt. Every airline has it but some experience it more than others. Sometimes the tech debt makes planning, changing, or getting information about a flight more complex than it should be. And sometimes it’s just irritating, because the tech was clearly implemented by a team that never had to use it.

Take Lufthansa, for example. I’m taking a quick jaunt to London with a stop in Frankfurt, and returning the same way. When you check in online these days, most airlines provide the opportunity to view your boarding passes in an app or on their website - not LH. The options are PDF or email. OK.

But then they send one email per boarding pass. On a journey like mine, this means four emails, each with its own QR-encoded boarding pass. And because the emails are sent in the chronological order that the flights will be taken, the last leg of the return flight is the top mail in my inbox, and the first journey I will take is the fourth row down in my inbox.

repeated boarding pass emails, one for each leg of a flight.

Whether in mobile or on desktop, this is a craptastic experience

My Odyssey

Other airlines have solved this by emailing one single message containing a link to the boarding passes. When you click that link you’re presented with the boarding pass and the Add To Wallet (Apple and Google) logos directly beneath it.

From the user perspective, it means that for each leg, I have four choices, and the flow I need to follow for both is unspoken, and it’s unintuitive, but it’s also unfriendly.

Mobile Email Client

I can open my email app in the airport at boarding time, then open each individual email message and view the pass for that flight leg (hoping that there’s connectivity in the airport as I struggle to get the damned code to appear on my screen and be legible enough to be read by the planeside boarding scanner while everyone behind me seethes with anger).


I can take a screenshot of each boarding pass and store those screenshots in my photos. If I generously give “user experience planning” credit to the airline IT people, one might charitably infer that this might have been the expected behavior - again, that because the emails arrive in my inbox in reverse chronological order of how the flights will be taken, opening the latest message received (the fourth leg) and screenshotting it, then the second to last, then the third to last, etc., the screenshots of boarding passes in my photos would then be in chronological order of the flights.

Come to think of it, they clearly didn’t plan this - and if they had, they’d have fucked it up.

Apple or Google Wallet

Finally, I can open each individual message, scroll four full screens down from the boarding pass to the link to “Add To Apple Wallet” and then click it.

Printing Out The Boarding Passes

I suppose people still do this, though I rarely see people with paper anymore unless it comes from the airport ticket printing machines. So now, I can print out the multi-page PDF (when all one needs to board is the QR code) and consume my paper and ink at home, or I can queue up at the airport and take three to four minutes to get my passes from the kiosk, or take up to 15 minutes in Business Class or up to 40 minutes in Economy to wait through the evil line to speak with a check-in agent.


Golly, but this whole experience is stupid.

Say … While We’re At It

Come to think of it, there’s no reason why we would even need more than one boarding pass for the entire trip, regardless of the number of legs. Why can’t one QR code simply point to the reservation record, and let the airlines handle all the “did-he-check-in-for-this-flight-yet” nonsense on their backend, out of my grill?

Again, the answer is, tech debt. Aviation systems almost entirely are more aged than those benchmark oldie-fan-boy industries, banking and law enforcement. Aviation are basically on the same tech refresh cycle as your local department of motor vehicles. As Chris says, “They already have the record locator, which handles the trip end to end - so why not make the QR code just point at the record locator on their back end and be done with it?”

Why not, indeed.

Doing It Right

Smithers and Mr. Burns.
When planning an online app, one should consider what the user is trying to accomplish - what the flacks call “user journey”. This helps you not emulate Smithers speaking to Mr. Burns about how “the people” will behave.

Then map out the path through your application that the users must take, literally, ‘first I click this, then I scroll here, then I click this,’ etc., to accomplish that mission - what the marketing numpty with the Medieval English literature degree calls, “User Flow”.

Now, actually try doing it, and see what portions of your application get in your way or make it more difficult to accomplish your journey with your actual flow. Keep doing this until it’s flawless for you, then run it on a focus group and see what problems they experience.

Millions of Hours Of Wasted Time

Of course, this is just a few minutes of inconvenience to the passenger. But that’s a few minutes of every single Lufthansa passenger’s time. In the third quarter of 2023 Lufthansa airlines welcomed over 38 million travelers, which is up from 33 million passengers in the same period in 2022.

Assuming this super-dumb user flow wastes just four minutes of the time of each passenger who doesn’t use the Lufthansa app, and let’s generously say that half the passengers using Lufthansa use the app, that’s 1.1 million hours of wasted time per quarter, or 4.4 million hours of wasted time per year.

Instead, might I humbly suggest that Lufthansa use, say, 80 hours of engineering time to solve this stupid problem for us all, forever?