How would new users know what the app offerings are? How would new users learn how to use my product? How do I help them find what they came for? This are the questions in many app developers mind and ones that you most likely attempt to solve with on-boarding
In general there are two schools of thoughts when it comes to on-boarding. One school of thought is to create an on-boarding process to help new users understand the value of the product, know about the features and get introduced to the app. The second school of thought is to build a product that is easy to use and enjoyable to use so that users can easily and quickly find what they came for, one that allows users to explore the app and learn features of the app on their own whenever they are ready to do so and have fun doing so.
In my personal experience on-boarding is a cover up for laziness. It is a patch that we put on a bad design, and a bad app flow .
The eventual goal of on-boarding is retaining the new users who come to use the product and a lack of good app design (functionality, flow and ease of use) is one of the main reasons many product builders look into on-boarding to put a low cost patch on a bad design and I know first-hand that this approach could back fire.
What I truly believe is a more effective way to on-board new users is building the core features of the app easy to use and noise free (remove anything that does not add much value to users or at least hide them behind a "advanced" or "more features" tab).
In addition, making the entire user journey pleasant by improving the overall speed, reducing bugs, improving the copywriting, and structuring the features and information in the app in a way that is easy to follow and make the entire journey rewarding and pleasant is a much better way of introducing the app to the new users instead of building extra layers of on-boarding on top of an app that has many design and flow problems.
I belong to this non-onboarding school of thought in many cases. For so many apps out there, I believe on-boarding is just an extra noise and a cover up for bad design. In so many cases we go for implementing an on-boarding flow that would onboard new users to the app but it might worth it to stop there and raise some questions first : what problem this on-boarding would solve? do users have the problem of not understanding the app? If the overall flow of the app and the features are confusing, why not fix the design of features and the app flow instead of adding extra layers of on-boarding on top?
When on-boarding does make sense
1.The product has a logical sequential flow
These are some products, especially in the B2B space that need a sequence of events or processes to happen in order for the product to work. For instance, in business products, we might need the users to feel out a form, put the initial settings and customization in place or to enter some data in the app before the product could be useful for the end users. This is a perfect case for on-boarding.
2. Heavy customization, goal settings and configurations
In some specific consumer-facing products, the user needs to make some choices, answer some questions so that the app can present useful features and help the user achieve his/her goals. For instance, a fitness app might ask users about their gender, their goals (weight loss vs muscle building vs flexibility) so that it can suggest the right fitness program to the user.In such apps an on-boarding is a necessary step toward helping users setup the product that is useful to them.