Operator interfaces
Designing operator consoles that behave like the real system
An operator console is judged on one thing: whether the person in front of it knows the true state of the system without having to work it out. That is harder than it sounds, because the console's job is to be accurate about a world it only sees through a link that drops, lags and lies by omission.
Looking like the real thing is the easy half
A console that reproduces the real layout but updates instantly, never loses a value and never contradicts itself is training people for a system that does not exist. The behaviours worth rehearsing are the awkward ones: the reading that stops updating, the command that is accepted but not acted on, the two panels that briefly disagree.
So the specification I care about is not the screen layout. It is what the console does when the thing it is watching goes quiet.
One interface, two sources behind it
The most useful structural decision is to define the state the console displays as a contract, and let either a simulation or the live system satisfy it. The console does not know, and must not care, which one is behind it.
That single decision buys three things. The trainer and the operational tool are the same software, so what is learned transfers exactly. The live console can be developed and demonstrated before the field hardware exists. And the operational system gains a training mode for free, which is usually the cheapest way for an organisation to keep operators current.
Show what you do not know
The most dangerous console is the one that keeps displaying the last good value as though it were current. Every piece of state on screen should carry how old it is, and anything that has stopped arriving should be visibly stale rather than silently frozen.
In practice that means a last-seen time on every asset, an unmistakable difference between live, stale and offline, and a rule that absence of data is drawn as absence, never as zero. The live command system in my case studies is built this way, and it is the first thing I would carry into any console.
Consequential actions need two acknowledgements
There is a difference between the interface accepting a command and the system confirming it acted. An operator who has only seen the first will believe something happened that did not.
So consequential actions get a deliberate confirmation on the way out — one that cannot be dismissed by reflex — and a visible acknowledgement coming back from the system, with a clear state for 'sent, not yet confirmed'. That middle state is where real incidents happen, and it is the state most interfaces forget to draw.
Mode legibility
- The current mode is readable from across a room, not from a label in a corner.
- Normal and degraded states differ in more than colour, so the difference survives poor light and colour-blind viewers.
- A mode change the operator did not ask for announces itself, because an automatic transition is exactly what people miss.
- There is one place that is authoritative for state, so two panels can never disagree about it.
Maps and video, under field conditions
Field sites generally have poor connectivity or none, so map tiles have to be cached ahead of time and the console has to work from them without complaint. A console that degrades to a blank grey grid when the network drops is not a field tool.
Where there is a video feed, latency matters more than resolution, because the operator is making decisions on it. A sharp picture a few seconds late is worse than a softer one that is current, and the interface should make the delay visible rather than hide it.
How I test one
Recorded sessions are the most useful test material there is: replay a real or simulated feed into the console and assert on what it displayed, including through the link dropping and recovering. That turns 'does it handle loss of signal' from an opinion into a test that runs on every change.
I have built this twice over — a delivered ground control station training simulator, driven entirely by a simulated feed, and a live command system driven by real positions. The case studies for both are linked alongside.
Have a project in this area? Tell me what you're building; I reply within two working days.
Start a project