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? These are the questions in many app developers minds and ones that you most likely attempt to solve with on-boarding
In general, there are two schools of thought when it comes to onboarding. One school of thought is to create an onboarding 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 onboarding 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 onboarding 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 onboarding to put a low-cost patch on a bad design and I know first-hand that this approach could backfire.
What I truly believe is a more effective way to onboard 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 an "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 onboarding 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 be worth it to stop there and raise some questions first: what problem this onboarding 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 onboarding on top?
When onboarding 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 fill 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 onboarding.
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, onboarding is a necessary step toward helping users set up the product that is useful to them.