1. Decide on a default rather than options. The more testing you do the more likely you are to find a cohorts of people who prefer different approaches. The natural tendency will be to add an option or setting to allow people to choose their preference or worse you might interrupt their flow to ask preference. Make a choice. Take a stand. Every option is friction in the system (and code to maintain).
2. Create one path to a feature or task. Where there was once one path to get to a feature you now think about adding multiple paths, leading to shortcuts, floating buttons, context menus, and more. All of which are favored by your early adopters and add friction for everyone else.
3. Offer personalization rather than customization. The theory is that customization makes a product easier to use because every use case is different enough that the time and effort saved by customization is worth it and important. In managing a product over time, customization becomes an engineering impossibility to maintain.
4. Stick with changes you make. When you change how a feature used by lots of customers works, it’s tempting to introduce a “compatibility mode” or a way to turn your new product into the old and comfortable product. Doing that creates a technical debt that you can never dig out of, and means your product will be surpassed in the marketplace.
5. Build features, not futzers. You’ll receive a lot of input from early customers to enable slightly different options or adjustments which will add friction to your product without growing the breadth of scenarios your product enables. Stay focused on delivering features will enable your product to do more.
6. Guess correctly all the time. Many of the latest features, especially those based on machine learning or statistical models, involve taking action based on guessing what comes next. These types of features are magical, when they work. The challenge is they don’t always work and that drives a friction-filled user experience.