Good UX is predictable. I can operate it with my eyes closed because I know what is going to happen. A predictable UX means that I don’t need to react to what my tool is doing.
Imagine you were walking on a tile floor. The tiles look identical but may be grippy rubber or slick ice. If the floor is all rubber you can run across. If the floor is all ice you can slide almost as quickly. However if the tiles are mixed you can’t move quickly. You need to make every step carefully to decide if it will slip or stick. This is what using unpredictable UX feels like.
The Android gesture navigation is a good example of unpredictable navigation. It sounds like a good experience; you simply swipe up to access a list of recent windows, and it takes less space on the screen than a button. However, the left and right swipes are unpredictable, which makes it annoying to use.
At first, swiping right switches to the previous window. This is similar to double tapping the app switcher (square) button on the old three-button navigation. The flaw is that swiping right again can either go back another window or go to the new previous window (the one you were just looking at). I still don’t fully understand how long it takes for this heuristic to reset. Take an example user journey of copy+paste of a couple bits of text between two apps:
- Copy text in source app.
- Swipe right to go to previous window (sink app).
- How do I get back to the source app???
Step 4 is unpredictable. If I was slow I need to swipe right, because the “previous” app is the source app. But if I am fast enough I need to swipe left because I am in the same navigation session!
The three-button navigation got this right. Repeatedly double-tapping the app switcher button just cycled between the most recent two apps forever. It was perfectly predictable. I could switch between windows with my eyes closed, subconsciously and did not need to react to the device. It does mean that getting to the third or fourth most-recent window is slightly less convenient, but it is predictable. Given that I rarely remember what the third most recent window is anyways this is a better trade-off.
If I were in charge of Android I would change gesture navigation as follows:
- Swipe right always goes to the previous window.
- Swipe left goes “back” so that they can give edge swipes back to apps. I really don’t need swiping from the entire either edge of my screen as a back gesture.