← Back

Lido Flight 4D

2018 – 2019 · Senior UX Designer, Nagarro × Lufthansa Systems

Redesigned a 25-year-old flight dispatch platform so dispatchers can inspect one flight in full detail without losing sight of the thirty-nine others they are responsible for. Slice 1 shipped to production, powering 25% of global commercial flights.

Background

Watch a dispatcher for an hour and you see the same thing dozens of times. They open a flight to check its weather, and the moment they do, the list of the other thirty-nine flights disappears. When they close it, they rebuild that picture from memory before they can move on.

Lido is Lufthansa Systems’ flight planning platform. I joined Nagarro’s team as Senior UX Designer on the rebuild for web. We set up research alongside design rather than ahead of it, and resolved the information architecture, layout and dispatcher workflows to ship the production web MVP.

25%of global commercial flights, 1 in 4
125+airline operators: full-service, low-cost and cargo
7,700+aircraft under active planning

The same screens serve a low-cost carrier optimising turnaround, a long-haul operator managing codeshares, and cargo operators working around payload constraints. A default that suits one of those is a quiet claim about whose work counts as typical.

My role

I was Senior UX Designer on a team with one other designer, two PMs and around a dozen engineers in India, working alongside the Lufthansa Systems product team in Gdańsk. The product had no research function when I arrived, so establishing one became part of the design job. I owned how the key questions got answered (the evidence, the options and the argument) without owning the decision about what we would build first.

Reframing the brief

We were handed a modernisation brief. The problem was situational awareness.

We were asked to make the app look newer. But a dispatcher watches 20 to 40 flights at once, and the old app could only show one flight at a time. Checking one flight’s weather made every other flight disappear, so dispatchers held everything in memory, over and over, all shift long. A fresh coat of paint would not have fixed that.

20–40flights a dispatcher manages at once
25 yrsof desktop paradigm, seven separate products
0usability sessions ever run on this product

Every decision is audited later, so mistakes are costly. Airlines need different things. And dispatchers already knew the old app by heart, so a new one could slow them down at first. The project came down to one question:

How might a dispatcher inspect one flight in full detail without losing awareness of the thirty-nine others they are still accountable for?

Which broke into three product questions, each being settled by opinion when I arrived:

The workspace

What stays on screen while a dispatcher works inside one flight?

The structure

Should a flight’s data be organised around the system, or around the decision being made?

The control

Who decides which flights matter: the product, or the dispatcher?

Research set up to settle decisions

No one had researched this product with its own users, so there was no backlog of findings to design from. I ran the research alongside the design work: we couldn’t afford to spend the first quarter learning before we produced anything.

Workshops first

Workshops with project owners, PMs and requirement engineers aligned us on product architecture, business goals and team structure. The output was a six-slice MVP plan. Slicing by dispatcher task rather than system boundary meant we could ship one slice and learn, instead of designing all of it and shipping none. Slice 1, flight planning and monitoring, was agreed as the MVP because it is the part of the job a dispatcher is in continuously.

Workshop output: sitemap structuring the IA across all six delivery slices
Workshop output: sitemap structuring the IA across all six delivery slices

Three parallel research tracks

Stakeholders described a modernisation problem: the product looked dated. Dispatchers described a working problem: they kept losing their place. The two groups were describing different products. Running the tracks in parallel surfaced that gap in the first weeks, early enough to design from what we watched dispatchers do.

Ecosystem mapping

The roles around the dispatcher: pre-planner, ATC, ground

User interviews

5 airlines: EasyJet, Wizz Air, BA, Air France, Thomas Cook

Observation

Dispatchers during live shifts, on multiple monitors

Stakeholder ecosystem map, with the dispatcher at the centre
Stakeholder ecosystem map, with the dispatcher at the centre
Empathy map: what dispatchers hear, see, say and think during a typical shift
Empathy map: what dispatchers hear, see, say and think during a typical shift

The flight list was not navigation. It was situational awareness.

Three observations came out of the interviews and shift observation:

Parallel attention

They hold 20 to 40 flights at once. Any layout that shows one flight at a time works against the job.

Spatial memory

They found things by where they sat on screen, not by reading labels. Position had to stay stable.

Modals cost the overview

Opening a flight hid the list they were monitoring. This became the thing the redesign had to solve.

Put together, the flight list was doing more work than a navigation menu. It was where a dispatcher held their picture of the shift, and anything that covered it made them rebuild that picture by hand. That reframing turned a visual modernisation brief into a structural one, and it became a product constraint: the workspace has to be built around the list staying.

The legacy desktop: one window per task, no persistent context
The legacy desktop: one window per task, no persistent context

The prototype that failed

Our first prototype kept the legacy mental model and gave it a modern surface: one flight at a time, opened in a modal. It was the cheapest version of the answer the team already assumed was correct, which made it worth building first. It went into the first usability session and did not survive it.

Opening any flight covered the list, and dispatchers lost sight of everything else they were accountable for, exactly as on the desktop tool. The surface was never the problem. A modern-looking modal fails for the same reason an old one does. Catching this in session one, rather than after build, is the reason the three-panel layout exists at all.

The prototype as tested: the modal sits over the flight list
The prototype as tested: the modal sits over the flight list

Design iterations

Three ways to hold detail and overview at once

With the modal ruled out by evidence rather than opinion, three structures were viable: full-screen drill-down, inline expansion, and a three-panel persistent layout. We sketched all three in Design Studio sessions and argued them on paper, where changing direction is free. The three-panel layout was the only one that kept the flight list on screen while a dispatcher works inside a single flight.

Wireframe progression: hand sketches → Landing → Inline expansion → 3-panel
Wireframe progression: hand sketches → Landing → Inline expansion → 3-panel

1. The workspace: list, detail and route map on screen at once

Decision. The flight list stays visible no matter what a dispatcher is doing, instead of opening a flight in a modal or full-screen view.

Why. Dispatchers track status by where things sit on screen. Any pattern that replaces the list with a detail view asks them to hold that picture in their head. Our own modal prototype failed for exactly that reason.

What happened. It shipped in the MVP and tested well across all three participant groups. It cost list width: some dispatchers asked for a larger list, and that density trade-off was still open when Slice 1 closed.

The alternative we turned down. Full-screen drill-down. Visually cleaner and simpler to build, but it buys screen space by taking away context, which is what dispatchers could least afford to lose.

2. The structure: tabs by decision, not by database

Decision. Flight detail is split into tabs by decision domain (Flight info, Route, NOTAMs, Weather, Remarks, MEL/CDL, Positions, Event log).

Why. The legacy product exposed data roughly as the database held it. In interviews, dispatchers described their work as a sequence of questions: is the route fine, what’s the weather doing, is anything on the aircraft deferred. The tabs follow that sequence.

What happened. It shipped as the detail structure in Slice 1, and it is extensible: a new data domain in a later slice becomes a new tab, not a renegotiation of the layout.

The alternative we turned down. One long scrolling page with anchors. Easier to build, but expert users don’t browse, they jump, and a scroll turns a known destination back into a search.

3. The control: dispatchers choose their own columns

Decision. Dispatchers pick their columns, with quick filter chips above the list and urgency carried in colour through a “time to react” column.

Why. A short-haul and a long-haul dispatcher watch genuinely different columns, because their operations put pressure in different places. With 125+ operators, no single default would survive the range.

What happened. This was the strongest result in testing. Column customisation was the most positively cited feature across the six sessions, and dispatchers described feeling more in control.

The alternative we turned down. Saved views and role-based presets. More powerful, but we observed dispatchers setting columns at the start of a shift and leaving them, so the lighter mechanism covered the real behaviour at a fraction of the cost.

Testing with three kinds of participant

Access to real dispatchers was limited, so we recruited across three groups for six remote sessions on InVision prototypes: EasyJet for high-frequency short-haul pressure, Lufthansa Systems consultants for depth on the system, and the Lido Help Desk for day-to-day dispatching context. It still wasn’t the full range of operators, which is the main caveat on everything the sessions told us.

One of six remote usability sessions, testing the Calculations flow
One of six remote usability sessions, testing the Calculations flow

Halfway through, engineering moved the timeline and fuel management came off the plan while we had design work in flight. Because scope was already sliced, we dropped that slice and picked up the dashboard redesign at a sprint boundary instead of renegotiating the roadmap.

What shipped: Slice 1, in production

Flight planning and monitoring, chosen as the MVP because it is the slice a dispatcher is inside continuously, not because it was the easiest to build. Nothing covers the list, and the dispatcher moves to the next flight directly.

Flight Overview: filter chips narrow the list without leaving it, status carries in colour, and “time to react” puts urgent flights in front of the dispatcher
Flight Overview: filter chips narrow the list without leaving it, status carries in colour, and “time to react” puts urgent flights in front of the dispatcher
Flight Detail, Flight info tab, with the route map and vertical profile alongside the list
Flight Detail, Flight info tab, with the route map and vertical profile alongside the list
Calculations: computed flight plan scenarios side by side, with the preferred plan marked
Calculations: computed flight plan scenarios side by side, with the preferred plan marked
Slice 1 as shipped: overview list, flight detail, route map
Slice 1 as shipped: overview list, flight detail, route map

A design system for seven products

Seven products had grown up separately, so the same control could look and behave differently depending on which one a dispatcher was in. We defined the shared pieces (tables, status colour, tabs, toasts) so designers in two offices building the remaining slices would land in the same place. Built with the Gdańsk designers.

The first version of the design system
The first version of the design system

Outcome

Slice 1 shipped in 2019 and went into production. Slice 2 continued on the same research process, component library and delivery rhythm rather than starting over.

6moderated sessions across 3 participant groups
8tabs, organised by decision domain
7 → 1products covered by the shared component library

The persistent-context approach tested well in all three groups, column customisation was the most positively cited feature, and filter chips were called out for making the list faster to work through. The modal prototype failed in session one and changed the design.

What I can’t tell you. We shipped without analytics, so I have no production behaviour data, task-time, error-rate or adoption measurement. Participants covered three groups, not the full operator range: long-haul and cargo dispatchers were never tested. The list-density trade-off was still open when Slice 1 closed. I’d rather hand you that list than a number I can’t back up.

The sessions sent three things into the next iteration: a larger flight list view, recalculation directly from the flight list, and more granular control over notifications.

What outlasted the slice

What I’d do differently

What I learned

In summary: the brief was to modernise a 25-year-old interface. The work turned out to be defining what the product was for: what a dispatcher should be able to hold in view, how a flight should be structured, and who decides what matters.