We now display DORA 4 metrics (Deployment frequency, lead time for changes, time to restore service, change failure rate) at the Project level under Analytics > CI/CD.
Problem to solve
As a user, I want to see the four most relevant CI/CD metrics for my project, so that I can become empowered to set targets for customer behavior, experience, and financial impact for my application.
@rayana - I think this is one we can pull into your design queue - I have weighting for this in %13.6 I am imagining the tiles to like this image below, WDYT?
@jreporter coolio! For some reason I thought we already had this in the ux pipeline? please feel free to add it to my epic so it can be stack-ranked accordingly
The backend will already have a way to capture/compute all 4 of these metrics and deliver them to the frontend
The UI is a very basic: just four tiles, each showing one data point.
If these assumptions are correct, I think it's safe to say this is a frontend-weight1. The vast majority of the work for this feature will be in figuring out how to accurately capture these metrics on the backend and deliver them through an API.
Some other ideas for iteration:
If we will have some metrics ready before others (which I think is likely), we could split each tile into its own issue/MR and deliver them separately. If we went this route I think it would make sense to call this a frontend-weight4.
Or, instead of delivering them separately, we could show some kind of "coming soon" text for tiles that aren't yet implemented (so users are aware the feature is in development).
@rayana Those prototypes look great! I'm assuming for this issue we'd only be implementing the "DORA 4 metrics" box?
I think those small additions (empty states, tooltips, skeleton loaders) can all be included in the MVC.
I think that if we don't have the metrics implemented, we shouldn't show them in the card at all.
So just to be clear, if we don't implement the "change failure rate" metric right away, for example, we shouldn't include that metric in the card at all? Or we should show the "Not enough data" message as is shown in the mockups?
So just to be clear, if we don't implement the "change failure rate" metric right away, for example, we shouldn't include that metric in the card at all? Or we should show the "Not enough data" message as is shown in the mockups?
That's right. I think we can make a differentiation between:
the metric/feature not being implemented yet
the application does not have enough data to display
In case the 1. point is valid, we simply don't show anything.
But when we do implement Change failure rate in the API, but there is not enough that to display on this view, we can then display the Not enough data message. This way, we reinstate that customers/users can make use of the DORA 4 key metrics to measure DevOps performance. cc @jreporter
But when we do implement Change failure rate in the API, but there is not enough that to display on this view, we can then display the Not enough data message. This way, we reinstate that customers/users can make use of the DORA 4 key metrics to measure DevOps performance.
@jreporter Just a side note/question - in all of our issues and discussions about this feature, we've been referring to these metrics as "DORA 4". But so far all of the UI mockups I've seen haven't mentioned the name "DORA 4". Should we consider putting this text in the UI somewhere? Maybe a heading called "DORA 4 Metrics?" (Or even an entire "DORA 4 dashboard"?)
For what it's worth, I talked to a large enterprise customer recently who had never heard of DORA 4. When we implement this in the Analytics pages I'm thinking we'll explain DORA 4 in the docs but probably not use that term in the UI
@jreporter I understood that we show the numbers per day (last 24h) for all metrics.
On a second thought regarding converting hours into days: are days more straightforward than hours? What I worry here is that people still would need to find a way to see the actual time spent on time to restore service, for example.
Right now, when we turn hours into days on the UI, users need to hover over the item to see actual timestamp... that creates extra friction when trying to uncover when something happened/how long it took in the system.
If we use per day, then having 24h turn into days would be confusing... wdyt? Should we display the last week data, for example?
@jreporter ok! I updated the prototypes and proposal here #250658 (closed) let me know! I also added a couple of extra things on the frontend for Nathan to evaluate, but I'm expecting them to be delivered in different issues #250658 (comment 428361192)
@rayana - can you advise on what you'd like @nfriend to evaluate? I did not see specific @ mentions for him. Additionally I added the permission expectations
@rayana I think this should be doable! I haven't looked at what's available to us, but most date/time libraries include some kind of "humanize" feature that converts the unit into the nearest round unit.
@rayana I looked at the Figma mockups linked in the issue description above, and they all look good to me. However, I don't see any docs drafts at &4358 (closed). I see a Documentation section in that epic with information about DORA in the Details dropdown, but no drafts in MRs.
@ngaskill in the documentation section you'll find the draft of the docs hidden in an expandable area &4358 (closed) There's no MR so far. I pinged you ahead of time in case you want to provide early feedback and gather more context around the topic. Hope that helps!
@rayana Got it. Thanks. When we create the docs, I don't think we need to go into that much detail about the background of DORA itself. We can just mention it briefly and link to the various sources mentioned in that epic. What we'll want to focus on is the GitLab-specific functionality mentioned in the section, "How to measure DORA metrics in GitLab?"
I am pulling in @dimitrieh 's proposal of &4783 (closed) and would like to close this one - please let me know if there are any concerns before closing this
@ogolowinski this sounds good to me. Looking at the concept of this issue I do think the ideas could ultimately be combined. This issue focuses more on highlighting a few key metrics in a widget, rather than extending with more graphs.
I agree with the direction taken, where we extend first with &4783 (closed) after which we can review this proposal again.
@ogolowinski We have implemented the tiles for two of the DORA metrics in Group Value Stream Analytics. Are you able to reuse any of that code for this issue? The key difference I see is you are planning to show data for the last 24 hours where as the VSA tiles support selecting a date range going back up to 180 days.