Building an interactive learning service
Submitted by Deepak Pathania (@deepakpathania789) on Sunday, 4 November 2018
User onboarding is an important aspect of offering SAAS but as apps start to grow and add different new features, it can become a little complex for new users to navigate and discover different functionalities.
At Postman, we actively track feature requests suggested by our users to constantly add different features without hindering the original app experience, which can lead to some features staying hidden for our newer users.
To tackle this issue, we decided to build an in app learning service that not only allows users to discover new features but also experiment with them in a guided, interactive manner without restricting them to a static path.
This talk would try to encapsulate:
- how we built the end to end service handling multiple variables and constraints.
- the integration complexities of a “user action-driven” service with a native app.
- how we made the end product exploratory without introducing any computation latency.
- how we introduced personalised learning for individual users.
I would also talk about why a dedicated on boarding/ learning service makes sense for SAAS products and things to consider when building one.
- Why static walkthroughs don’t make sense in 2018.
- Feature discovery - the exploratory fashion.
- Gamification to the rescue.
The end product
- outline different functionalities.
Back to building
The problem statement
- laying down constraints and variables.
- setting expectations for the end to end product.
Architecting the service
- start with happy cases only.
- POC first, big talk later.
Decoupling service and app development
- MOCK EVERYTHING!!
- Set up contracts and obey them.
- Monitor for contract violations.
Exploratory first approach.
- change the course of learning based on user actions.
- can we allow user to explore and still resume learning?
Minimising computation latency.
- determining the new path based on previous action and current state.
- Non deterministic finite state machine?
- user shouldn’t drop learing because of exploration.
- what if app changes components we rely on for walk throughs?
- won’t the walk throughs break if we still trigger them?
- power users wouldn’t appreciated basic walkthroughs.
- new users might not understand advanced lessons.
- how do we know what to teach this user?
- can we track user trends over time to recommend?
- how do we back fill for now?
- Summarise learnings from each challenge.
- Things we would do differently if we were to build it again now.