Some of us designers like building systems. We think things through and we pay attention to details. We make sure things work and we always ;) cater to our users. But when we design, we have this fantastic idea that everybody will behave in the same perfect way when interacting with our system.

You go here, swipe that, press this and voila. You purchased your thing!

Then, we user-test our system and observe how it is actually used. We correct and adjust and test it again only to find out users will still use it based on their perception and not our plan. And deviating from the ideal cases always will come with unpredictability, untreated edge cases, and errors.

It is hard for some of us designers to accept that it is actually impossible to design a system that isn’t susceptible to human error. Everybody makes mistakes. Even our users!

Human error is still a primary cause contributing factor in disasters and accidents in industries as diverse as medicine, nuclear power or space exploration.