Ghosts in the machine

Ghosts in the machine

Many types of software have fostered devoted online communities, but perhaps none more so than gaming. Although Stack Overflow or Github represent amazing achievements of collective engagement, there aren’t many people who’d sit for hours watching a Twitch-style stream of somebody else programming or using Excel. In particular, the gaming community’s enthusiasm for social learning from expert players is really interesting. This takes unstructured and structured forms. By “unstructured”, I mean activities like watching a game with expert commentary, discussing techniques with other fans, or reading general strategy guides. Whereas by “structured”, I mean sharing and making use of specific, replicable artifacts or approaches.

Examples might include:

  • a StarCraft build order that explicitly identifies when to build certain units and structures, based on a certain strategy;
  • a Cities Skylines district layout that optimises population happiness while minimising traffic;
  • Kerbal Space Program spacecraft design that maximises payload for a given budget;
  • a Mario Kart driving route that is the fastest possible for a given track.

These structured approaches can be thought of ‘expert systems’: ways of domain experts encoding their knowledge into models that can then be implemented and applied more broadly.

Learning from the best

But doing the encoding is only half the battle. For these models to have maximum usefulness, it needs to be easy to consume them. Games could lend themselves neatly to trialling new approaches here.

Take the Mario Kart example. Mario Kart includes a ‘ghost’ driver, a translucent competitor that re-enacts the path you drove during your previous best time on the same track.

What if Mario Kart instead allowed you to select from ghosts generated by experts, so that you could practice following their ideal routes? What if this ghost mode also gave you a preview of what buttons they were about to push as they approached a tight corner or avoided a hazard? This would provide a powerful means of assisted “learning by doing”.

Working through the other examples, imagine:

  • a StarCraft UI that provides real-time building advice based on a professional-level build order, selected by the player from a library;
  • a Cities Skylines UI that ghosts in a faint outline of potential roads, buildings and zones based on a set of expert-created districts;
  • a Kerbal Space Program UI that lets you use another player’s design as a translucent starting point, and provides feedback on how your work in progress differs from their reference.

In some cases, the expert reference may even be generated by an AI rather than a human. AlphaStar is better than (almost) any human at StarCraft — how about tapping it to help novice players learn faster?

This ‘ghost’ approach is more useful in some games than others. I think the build layout examples of StarCraft or Cities Skylines are more compelling than the other examples. But the point is that in many cases, it might be possible to incorporate this expert guidance more directly into the game’s UI, rather than relying solely on novice players absorbing information outside the game and then trying to remember how to apply it as they play.

Serious play

This approach generalises beyond games, too. Almost all pieces of complex software currently rely on outside training and learning rather than high-quality assistive rails within the UI. Macros and similar tools can allow domain experts to encode and share their knowledge and workflow. But the technical skill bar for generating these is usually high, and there are many more domain experts than programmers in most enterprises.

An approach inspired by ‘ghosts’ from gaming might incorporate features like:

  • Allowing an expert user to record a “workflow ghost” macro as an arbitrary set of input actions taken within the program, and then publish it for other users. Other users could opt to execute it with one click (like a pure macro), or to step through it on-screen with a ‘follow the bouncing ball’ UI, so they can see and learn what it’s doing. Some applications do allow this kind of macro recording — but very few.
  • Automatically generating these “workflow ghosts” via clickstream data, providing a kind of modern-day Clippy that suggests likely next actions based on what other people have done before in a similar situation. You could call it a recommendation action for what to do in an app, instead of what to buy or to watch. The key here is that this is not about designers analysing clickstream data to simplify the UI, but the system itself providing suggestions about which bits of the UI are likely to be most useful for the user at any given point, in cases where a complex multi-choice UI is somewhat unavoidable.
  • Pre-emptively taking actions (whether expert-curated or commonly-used), and letting the user opt whether to confirm them. For example, imagine a novice user compiling a sales report about a corporate customer. The system might automatically run a few searches that are usually relevant (e.g. finding the customer’s parent company or sales history) and offer them as suggestions for the user to include in their report. This provides an accessible middle ground between simply running a fully-defined report (too restrictive) and manually creating a full report from scratch (too overwhelming).

Keeping it simple

Expert workflows are just one means by which enterprise software might draw usability inspiration from games. Another is the idea of progressive disclosure, where parts of the UI are initially blocked from users so they aren’t overwhelmed while they learn the basics. Cities Skylines, for example, only allows the player to build basic roads, utilities and residential zones at first. Mastering these tools allows the user to progressively unlock police, fire, public transport and more. Withholding these initially allows the user to learn the basics of the UI and game mechanics without being intimidated, and motivates ongoing engagement rewarded with new capabilities.

Along similar lines, an enterprise software platform that allows for complex data analysis might initially only allow the user to perform some simple search and view operations, to help them build familiarity with the available data and its presentation. Performing some of these operations, perhaps accompanied by in-app guidance, would allow the user to unlock the more powerful analysis toolsets. A ‘break glass’ option could enable a user to jump ahead if they’re especially confident.


As software ‘eats the world’ and touches more fields of human endeavour, enabling confident software usage is increasingly critical. Classic enterprise software training methods like classroom sessions, screencasts, and written user guides feel distinctly old-hat in this context. Drawing inspiration from games, and embedding the learning into the application itself, might be a way to make learning Salesforce as exciting as learning StarCraft.