Performance, part 3
In the previous articles about performance part 1 and part 2, we saw how the latency after scanning was dramatically shortened:
Can we further optimize this pipeline?
Perceived latency at the Houston airport
Let’s take a detour through the true story of customer complaints at the Houston airport arrivals.
The plane landed near the terminal, passengers disembarked and walked to the baggage claim, where they had to wait several minutes. This idle wait was unpleasant, and complaints were high.
While it wasn’t possible to speed up the baggage handling process enough to create a pleasant customer experience, the problem was effectively solved in a different, unexpected way. Passengers just needed to walk more before reaching the baggage claim. This could be achieved either by landing the plane farther from the terminal, or by relocating the arrival gates within the terminal. As a result, passengers spent more time walking, less time waiting, or even no time waiting if the baggage was already there, and complaints dropped to zero.
This solution wasn’t just about misleading the passengers to artificially reduce complaints. It genuinely created a better user experience, as active time feels much less painful than passive time.
Perceived latency in Cool Maze
In Cool Maze, we decided to park the plane 200 ms farther from the terminal.
When the mobile device successfully detects the QR code, two things happen:
- The device emits a short vibration to acknowledge the detection.
- The necessary data is pushed to the target browser, which will display the shared picture shortly.
Scanning takes 2 or 3 seconds, and pushing the final decryption key to the target takes at least 200 ms. The change consisted of delaying the vibration by 200 ms after detection. When detection occurs, we process the QR contents and notify the server immediately, as a background task, while the user is still aiming at the QR code. We don’t update the mobile user interface right away. By the time the mobile acknowledges the scan with a short vibration 200 ms later, the contents is already reaching its destination and the transfer feels instant.