Measuring review time as the sum of review cycles
Problem to solve
Code Review Analytics (#38062 (closed)) currently assumes that there's one round of review for a merge request. At times, MRs may go through several rounds of feedback from multiple reviewers.
Code Review Analytics would be improved if we had a way to record multiple rounds of review. MRs that have been open for a while and reviewed by multiple assigners may benefit from breaking down further.
Intended users
Analytics users
- Parker (Product Manager)
- Delaney (Development Team Lead)
- Sasha (Software Developer)
- Dana (Data Analyst)
Further details
Proposal
We can treat every user who approves or merges a MR to be a reviewer of a MR. So a moment MR receives a comment from a reviewer or MR got assigned to a reviewer (whatever comes first) we can treat as review cycle start. A moment when a reviewer approves or merges a MR we can treat as review cycle end.
This way we'll get multiple review stats for each MR (one per reviewer) or we can aggregate it to be one number e.g. from earliest review cycle start to MR merge.
P.S. We also can count number of reviewer "assignings" and "unassignings" on a MR to get sense of review iterations count, however it's easy to exploit and heavily depends on customer processes.