Skip to content
New issue

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

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

Already on GitHub? # to your account

Split "Experiment Details" out from feature gate info, add more experiment metadata #234

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

smudge
Copy link
Member

@smudge smudge commented Nov 14, 2024

Summary

This is the foundation for what may become a set of PRs that improve the experience for managing metadata for split experiments (& better distinguishing them from feature gates by way of a new UI section):

Screenshot 2024-11-14 at 5 25 56 PM

This section only appears for non-feature-gate splits, and enables users to add & manage metadata about the experiment.

None of this data does anything! It's merely intended as a convenience for users of TestTrack who wish to perform downstream analysis of splits, and want to have metadata colocated with the rest of their split data:

Screenshot 2024-11-14 at 5 28 31 PM

Bonus

This also adds takeaways to the split decision view, so that takeaways can be captured during the decision event:

takeaways

Other Information

There are other changes I'd like to make to this (like, more thoughtful validations, and potentially more configurability) but this PR is meant to set the foundation.

This also ships with completely empty configs for ExperimentDetail.available_tests ExperimentDetail.available_segments -- these can be configured at boot time by dropping a file in config/initializers that populates these hashes (name => description). Description is not currently used but I'd like to put it in a tooltip (future PR).

/domain @Betterment/test_track_core
/platform @Betterment/test_track_core

@smudge smudge requested review from jonmauney and a team November 15, 2024 14:40
@@ -1,16 +1,27 @@
class Decision
include ActiveModel::Model

attr_accessor :split, :variant
attr_accessor :split, :variant, :takeaways

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah I totally forgot to include implemented as a required input for completed splits (being the variant name that was chose; typically just control or treatement, but sometimes something else for multivariant tests). Can we add that to the view?

Copy link
Member Author

@smudge smudge Nov 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is existing logic for determining an implemented variant by looking at the split's variant registry -- if decided_at is true, then whichever is at 100% was the implemented variant (and this shows up in the UI too).

I can find a way to surface that variant through to our internal systems too, using identical logic.

super || split.registry.keys.find { |v| v == 'control' }
end

def self.available_tests

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

where will we actually enumerate these? (same with available_segments)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Over in our internal release there's a Rails initializer that sets up all of the Betterment-specific tests & segments.

Copy link

@jonmauney jonmauney left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

couple notes!

@smudge smudge force-pushed the smudge/experiment-details branch from 71b923b to cac85a7 Compare December 17, 2024 21:15
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants