VSA: Adding a new event "MR first reviewer assigned"
Release note
New stage events for custom Value Stream Analytics
To improve the tracking of development workflows in GitLab, we added the Value Stream Analytics has been extended with a new stage event: "MR first reviewer assigned".
This event can be used to identify where delays occur in the review process. Encourages a culture of responsiveness and accountability among team members, fostering a collaborative environment. Reducing the review time directly impacts the overall cycle time of development, leading to faster software delivery. For example, you can now add a "Review Time to Merge (RTTM)" stage that starts when "MR first reviewer assigned" and ends when "MR merged".
Problem
VSA currently can't measure automatically the MR review time
.
Related to this Dogfooding feedback, and this Customer feedback .
Proposal
- Store the event timestamp in the database. In this case maybe store one timestamp:
reviewer_first_assigned_at
- Create the VSA event on
reviewer_first_assigned_at
Implementation
- Add the nullable
reviewer_first_assigned_at
timestamp column to themerge_request_metrics
table. - Add a new hook/callback that sets the
reviewer_first_assigned_at
timestamp (Time.current
) when the reviewer is first assigned. (use a feature flag) - Create a new stage event for merge request:
- Example implementation for a metrics column:
lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged.rb
- Update the mapping so the event could be selected on the UI:
ee/lib/ee/gitlab/analytics/cycle_analytics/stage_events.rb
- For more context, check the event specification docs: https://docs.gitlab.com/ee/development/value_stream_analytics.html#implementing-an-event-class Related to this discussion.
- Example implementation for a metrics column: