Build Ironman suits over robots
Think about building products that can enhance the user's abilities instead of trying to replace the user. Think about the metaphor of the fire flower in Mario. "Automate away" and "enhance the user" are some of the various ways you can empower the user and remove pain.
Compare the example of trying to build an AI tool that writes articles for you, versus one that helps a human authorize iterate and refine their ideas. Which tool do you think will produce better results?
Every business is dysfunctional and insane
Every business is dysfunctional and will have weird quirks in the way they do business. Sometimes businesses will not adhere to what you think they "should" be like. Useful software should be flexible enough to let people support their processes.
Good software doesn't solve problems, it removes pain
inspired by the 30x500 way of thinking about product. ways of removing pain
- Educate: teach someone to do it themselves
- Equip: Give them the tools, supplies, and components they need
- Support: Help others overcome fear, anxiety, avoidance, etc.
- Access: connect people to stuff, people, or places that they cannot reach or afford.
- Outsource: automate work or connect them to outsources.
- Eliminate change, bypass, or eliminate the pain entirely.
The user is a crazy, lazy drunk
Take note that I don't say the user is dumb, you can be drunk and smart. This is about acknowledging that we are all humans, humans, make mistakes. Which means...
Users screw up
Inspired by the Neilsen usability heuristics.
- Users will screw up, either by not paying attention (user is a crazy lazy drunk), mis-clicking, or misunderstanding something.
- We should make reasonable efforts to prevent errors when possible.
- When errors can't be prevented, we need to give users a way to fix them. Permanent actions should come with either a 'confirm' option or an 'undo' option. 'undo' is preferable when possible, because is does not violate the (user doesn't want to be here ) rule.
The user doesn't want to be here
The user is using your software to get a job done. Putting roadblocks in their way can lead to frustration. Examples of bad interruption are email pop-ups, tooltip product tours, and other notifications that get in the way of the user trying to use your product.
Confirm or undo
Since we assume the user is going to make mistakes, give them a way out. Either ask for confirmation or give them a way to undo the mistake. Doing so gives the user confidence in your software, and removes anxiety from using it. Undo is preferred but not always feasible.
Search over organization
If you have search features that are powerful and easy to use, then you don't have to stress about how well organized your information is. Command + K bars are an example of providing easily accessible actions. Users don't have to remember exactly where everything is, only how to find it.
Agency over automation
Automation is useful when it removes tedium and disastrous when it removes agency