Add Merge request performance survey
What does this MR do and why?
Closes #362389 (closed)
Specs
Details
-
Show conditions:
- If the instance is GitLab.com (SaaS).
- If the user is logged-in.
- If Snowplow is not blocked by the browser. The browser may be using an ad-blocker or sending the “Do Not Track” signal.
- If the user has not dismissed this survey in the last 90 days.
- If no notification broadcast message (example) was visible on page load. For example, if I close a notification broadcast message, the survey would only appear on reload/when visiting another MR. This is because the proposal has a similar design and placement to notification broadcast messages.
- If 10 seconds have passed after page load. This is to avoid asking users about their satisfaction immediately after the MR page is loaded.
- If the user has only answered the first question (overall satisfaction), keep showing the second question (speed/performance) until they answer it or dismiss the survey.
-
Dismissal: When the survey is completed or the user dismisses it (clicks the
X
button), the survey doesn't appear again to that user for the next 90 days (that should be possible usingUserCallout
). -
Animations:
- The survey moves in from the bottom of the screen (just like a toast), as seen in the prototype:
ease-in 200ms
This helps make it noticeable and less jarring. - Dismissing (click the
X
button) or moving between steps doesn't have any animation. - The final “thanks” step fades out after 5 seconds (just like a toast).
- The survey moves in from the bottom of the screen (just like a toast), as seen in the prototype:
- Legal disclaimer: Links to https://about.gitlab.com/privacy/
-
Questions:
- Overall, how satisfied are you with merge requests?
- How satisfied are you with the speed/performance of merge requests?
-
Data automatically collected (see technical details):
- MR days: Number of days in the last 30 days that the user visited an MR page.
- This is already collected today through Snowplow.
- Paid plan: Whether the user is a member of 1+ paid group(s) or not.
- This is also already collected.
- Account age: Number of days since user's account creation.
- This is not collected today, but will be once the survey is implemented.
- MR days: Number of days in the last 30 days that the user visited an MR page.
Screenshots or screen recordings
Screen_Recording_2022-06-17_at_16.06.24
How to set up and validate locally
- Set up Snowplow Micro
- Enable Snowplow in the GDK
- Enable the
mr_experience_survey
feature flag - Disable 'Do Not Track' header in your browser settings (for Chrome:
chrome://settings/cookies
) - Open any merge request and wait for 10 seconds to see the survey
Tip: you can revert your click on a close button to test this again by writing this in Ruby console: Users::Callout.last.destroy
.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Mark Florian