Skip to content

[dashboard] UI experiments #7081

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Dec 7, 2021
Merged

[dashboard] UI experiments #7081

merged 3 commits into from
Dec 7, 2021

Conversation

geropl
Copy link
Member

@geropl geropl commented Dec 6, 2021

Description

Since we have segment for tracking we gained the ability to make judgements around dashboard decisions based on data. But since our turnarounds are so slow we very seldomly make use of our "data-driven" superpower 🦸 .

This is an attempt to improve on this: It introduces dashboard-local Experiments. Every user on login gets assigned a random mix of experiments, which may influence the UI behavior (rendering, routing, etc.), based on their respective configured likelihood. The set is stored in localStorage and reported to segment with every interaction.

As a result, we can measure differences in behavior by comparing the experiment group with the rest - "control group" (*) - and make judgement calls on how to improve based on data and not opinions.

Further thoughts:

  • we could easily extend this into server by persistinguiExperiments in User.featureFlags, for instance. This has the benefit that our analytic calls on the backend are able to report uiExperiments as well, to offer a complete picture. I went with "dashboard-only" for now to stay simple.

(*) Note that the results are only statistically sound with this approach when we're running a) 1 experiment at a time, or b), they are absolutely independent. Still, I hope are all aware and can use this to gain some valuable insights. 🙂

Related Issue(s)

Fixes #

How to test

Release Notes

NONE

Documentation

@geropl geropl requested a review from jakobhero December 6, 2021 13:26
@roboquat roboquat added team: webapp Issue belongs to the WebApp team size/L labels Dec 6, 2021
@geropl
Copy link
Member Author

geropl commented Dec 6, 2021

/hold

I wanted to have a discussion about this before merging.

@JanKoehnlein
Copy link
Contributor

/lgtm

Feel free to unhold

@roboquat
Copy link
Contributor

roboquat commented Dec 6, 2021

LGTM label has been added.

Git tree hash: 1d47de0fc7d5b009f1570273efabb94e9dc93688

@geropl
Copy link
Member Author

geropl commented Dec 6, 2021

Thx @JanKoehnlein for the review. Waiting for @jakobhero before merging as we already talked about this.

@geropl geropl force-pushed the gpl/ui-experiments branch from c403b97 to 6702aba Compare December 7, 2021 09:44
@roboquat roboquat removed the lgtm label Dec 7, 2021
@laushinka laushinka mentioned this pull request Dec 7, 2021
@geropl geropl force-pushed the gpl/ui-experiments branch from 6702aba to fe10f0a Compare December 7, 2021 10:04
@geropl
Copy link
Member Author

geropl commented Dec 7, 2021

/unhold

to move forward. Still looking forward for your feedback @jakobhero , and happy to fix and adjust in a follow-up PR! 🙏

@laushinka
Copy link
Contributor

Let's do this.

/lgtm

@roboquat
Copy link
Contributor

roboquat commented Dec 7, 2021

LGTM label has been added.

Git tree hash: db801324e644e4f307b8d3407329aa79dca88faf

@laushinka
Copy link
Contributor

/approve no-issue

@roboquat
Copy link
Contributor

roboquat commented Dec 7, 2021

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: JanKoehnlein, laushinka

Associated issue requirement bypassed by: laushinka

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jakobhero
Copy link
Contributor

jakobhero commented Dec 7, 2021

to move forward. Still looking forward for your feedback @jakobhero , and happy to fix and adjust in a follow-up PR! 🙏

i had a chance to test Experiments (after the fix) with a couple of Segment calls and they look good to me! I appreciate the nested structure as it's going to avoid bloating the structure of event tables once we have many experiments running simultaneously (Segment stringifies nested props before sending them to the data warehouse), but it might cause problems for Mixpanel as it cannot show more than one layer of properties (but it should still be able to store this data). I'm happy to go with this for now and try how difficult it will be to handle this downstream. Thanks for this effort, it's going to be a great addition @geropl !

@roboquat roboquat added deployed: webapp Meta team change is running in production deployed Change is completely running in production labels Dec 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved deployed: webapp Meta team change is running in production deployed Change is completely running in production groundwork: in review release-note-none size/L team: webapp Issue belongs to the WebApp team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants