JSFoo Pune 2019

JSFoo Pune 2019

JSFoo is a JavaScript conference hosted by HasGeek.

Deepak Pathania

@deepakpathania789

Building an interactive learning service

Submitted Nov 4, 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.

Outline

User onboarding

  1. Why static walkthroughs don’t make sense in 2018.
  2. Feature discovery - the exploratory fashion.
  3. Gamification to the rescue.

The end product

  1. Demo
    • outline different functionalities.

Back to building

  1. The problem statement

    • laying down constraints and variables.
    • setting expectations for the end to end product.
  2. Architecting the service

    • start with happy cases only.
    • POC first, big talk later.
  3. Decoupling service and app development

    • MOCK EVERYTHING!!
    • Set up contracts and obey them.
    • Monitor for contract violations.
  4. Exploratory first approach.

    • change the course of learning based on user actions.
    • can we allow user to explore and still resume learning?
  5. 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.
  6. Future proofing

    • what if app changes components we rely on for walk throughs?
    • won’t the walk throughs break if we still trigger them?
  7. Personalisation

    • power users wouldn’t appreciated basic walkthroughs.
    • new users might not understand advanced lessons.
  8. Triggering learning

    • 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?

Learnings

  1. Summarise learnings from each challenge.
  2. Things we would do differently if we were to build it again now.

Speaker bio

Product Engineer @Postman. Full stack web developer with a keen eye for building elegant interfaces and a proven record of writing scalable backend code. Loves everything javascript. Speaks at conferences, meetups, hackathons and generally all the time. Likes open source, startups, pets, anime and people - in no particular order.

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more