MVC design for the new Exec Dashboards page with metrics comparative view
Overview
Following the feedback from https://gitlab.com/gitlab-org/gitlab/-/issues/353651+ and Comparative view of DORA4 metrics based on time (#354653 - closed) here is issue to discuss the Proposal for customizable Exec Dashboards.
Here is the dogfooding POC for this MVC, and here are the details about how to join the Exec Dashboard Beta.
Release notes
Problem to solve
As a software Exec working to optimize my SDLC lifecycle, I need centralized UI where I can see and compare all of the developer productivity metrics. It is also important for me to understand whether projects and/or group(s) are improving or not.
Using the current UI user can't:
- Tell the story whether their metrics are improving month over month.
- Understand patterns in their metrics trend overtime.
- Compare performance between groups, projects and teams.
- Ability to view reports via a saved filter, allowing everyone to see the same metrics in the same view.
Intended users
- Erin (Application Development Executive)
- Dakota (Application Development Director)
- Delaney (Development Team Lead)
User experience goal
- High-level custom view of multiple DevOps and Business metrics.
- For each metric to show the current time period compared to previous time period.
- For each metric to show the change rate % from previous time period, with badge indication.
- For each metric to show the historical trend.
- Each metric need to filters for different combinations of groups, projects and environments.
- Name and description can be customized.
- The view need to be shared as a single link for everyone to see the same metrics in the same context.
- Each metric will have a default drill-down link for further investigation on other analytics reports. This link can be customized by users.
Proposal
Click to expand the proposal details:
- Add a new page with "Metrics comparative table".
- Page name - "Executive Dashboard", path /analytics/dashboards
- "Metrics comparative table" columns headers:
Name | MTD | Period 1 | Period 2 | Past 90 days | Description |
---|---|---|---|---|---|
Deployment Frequency for project A | 2.6/day (+1.5%) | 2.6/day (+1.5%) | 2.6/day (+1.5%) | Sparkline | DF for project A |
Deployment Frequency for project B | 2.6/day (+1.5%) | 2.6/day (+1.5%) | 2.6/day (+1.5%) | Sparkline | DF for project B |
Lead Time for Changes for project A | 0.5 days (-3%) | 0.5 days (-3%) | 0.5 days (-3%) | Sparkline | LTFC for project A |
Lead Time for Changes for project B | 0.5 days (-3%) | 0.5 days (-3%) | 0.5 days (-3%) | Sparkline | LTFC for project B |
- MTD - current month-to-date, period starting at the beginning of the current calendar month and ending at the current date. (e.g.
2022-09-01 --> 2022-09-15
) -
period 1
- last completed calendar month (e.g.2022-08-01 --> 2022-08-31
) -
period 2
- previous completed calendar month (e.g.2022-07-01 --> 2022-07-31
) -
change_rate\_%
-period 2
/period 1
. -
Past 90 days
- Sparkline to show 90 days history of the data trends.
- Each value need to be displayed with
value_unit
andchange_rate\_%
. For example: Deployment Frequency - "2.6/day (+1.5%)" * Lead Time for Changes - "0.5 days (-3%)" * Time to restore service - "1.4 days (-0.9%)" * Change Failure Rate - "3% (+0.2%") - Allow users to add projects, groups, and subgroups to the view.
- Allow users to filter specific metric by projects, groups, and subgroups.
- Each metrics should have a drill-down link into other Gitlab analytics reports.
- The table can be customized via yaml or json.
Suggested design:
Acceptance criteria
- Compare all 4 DORA metrics MoM
value
andchange rate %
. - Compare DORA Deployment Frequency
value
andchange rate %
across 2 different projects.
Productivity metrics examples:
- DORA deployment_frequency
- DORA lead_time_for_changes
- DORA change_failure_rate
- DORA time_to_restore_service
- VSA lead time
- VSA Cycle time
- VSA New issues
- VSA Deploys
Open questions
- Can we POC the new Product analytics dashboards and visualizations?
- Can we leverage the Operations Dashboard cards for the Exec Dashboards?
- Build this in Grafana?
Edited by Haim Snir