1st time experiences UX baseline
This issue is to document what the UX team has learned about how well we onboard users to GitLab.
Background
As part of this OKR, the Growth UX team met with teams of product designers to understand their area of the application better (what are the JTBD, who are the main users, etc) and to discuss the current 1st experience as well as opportunities for improvement.
Deliverables and Reference Docs
- This issue with insights and recommendations.
- This epic which lists numerous potential onboarding improvements.
- The context for the epic is this Mural board with learnings organized by team
- Screenshots of Empty States
Problem to Solve
For brand new users of GitLab - how to help them get value out of the product faster, understand the features, and start being productive and inviting others?
For a new user invited to GitLab - how can we help them feel like a productive team member faster? Currently invited users are dropped in to busy projects with lots of issues and MRs, and this can be overwhelming.
For a learning user, how can we support them to continue using GitLab, continue getting more value, without getting in their way.
For an experienced user, how can we introduce useful features, without seeming annoying, or "advertising"?
Insights
- We rely almost entirely on two patterns for onboarding. These aren't sufficient to provide engaging experiences to new users.
- Empty states to define a feature that hasn't been used, or a page that has no data to display. This pattern is most helpful for the first users on a team, but does little to support users joining an existing and active team, or to support someone who is at the advanced beginner to intermediate level.
- Documentation, which requires a high level of motivation from the user to complete a task.
- Work on our product focuses on problem validation and design for new features. There are huge gaps in onboarding that if addressed, should help more users get value from GitLab.
Themes
Recommendations
Rather than each product team building their own onboarding for each product, we should create one onboarding strategy with re-usable patterns that each team can implement for their own set of features.
- This should include UX patterns that support onboarding and in-app learning. Include documentation on how to use these to facilitate onboarding. For example:
- Common use cases or pre-sets that users can select when joining GitLab, setting up a project, and so on.
- Stepper/wizard for setting up complex features, dashboards and so on
- In context nudges or information
- Notification dot to draw attending when needed
- Prioritize improvements for onboarding for invited users joining an existing group. Assume Empty States aren't empty anymore.
- Increase amount of contextual in-app support that allows users to get started without looking at documentation.
- Implement improvements in order of adoption journey.
- Prioritize navigation changes that improve discoverability
How we define onboarding
- new user onboarding (new to GitLab, user goal: quick familiarisation; GitLab goal: conversion)
- existing GitLab user onboarding (new to a team, group, project; user goal: quick familiarisation with project/group specifics and processes; GitLab goal: increasing active users)
- feature/stage onboarding (user goal: learning; GitLab goal: teaching, expansion—use more features, upgrade to a higher tier, invite other roles to GitLab, also ties to retention)