Let's Talk User Flows & Navigation:
User Flows are a series of steps a user takes to achieve a meaningful goal 1.
From The Science of Great UI by Mark Miller - When User's Navigate through a task, the path they take to accomplish it can be broken up into into individual steps for each context shift.
- Path - Set of Steps needed to complete a task
- Step - Effort to complete sub-task
And each step has two properties:
- Length - Amount of Time to complete
- Width - Amount of Difficulty to complete.
Difficulty can be broken up into:
- Mental Difficulty - Remembering information, calculations, decisions
- Physical Difficulty - Increases with precision
- See Fitts' Law: the smaller the size of an area, the more time it takes to move a mouse cursor to that area.
So if you want to make navigation easier, you can do the following:
- Decrease # of steps - ex. Auto-fill city based on zip
- Widen steps (make easier) - ex. Increase button size on common actions
- Shorten steps (reduce time) - ex. Google's autocomplete suggestions
- Add Alternative Steps - ex. Find account by Email or Phone
Contrastingly, if you want to make navigation harder, you can do the opposite:
- Increase # of Steps - ex. "Are you sure" modal dialog
- Narrow Steps (make harder) - ex. Slide to unlock rather than click
- Lengthen Steps (increase time) - ex. Require long (timed) press rather than click
So all of those tools are within your disposal, and depending on your use case and the severity of performing the wrong action and the difficulty of restoring to the Last Known Good State, you might need any combination.
For example, if the alarm will trigger a nationwide missile alert, you might want to introduce a lot of difficulty, time, and informative content. If you just want to prevent accidental clicks from pockets, increasing the difficulty/precision is probably sufficient. If users might not be aware of the risks of setting an alarm, the introduced friction should include copy to let them know
Here's an example from GitHub that I think introduces severity well
Friction does not have to equal Frustration, so ask your users and get some good telemetry :)
Further Reading: How to Design Destructive Actions that Prevent Data Loss