Straightforward Metrics for Software Engineering Ops
Don’t get lost among a myriad of charts and numbers.
Engineering Ops starts with the right metrics. SourceLevel provides essential and actionable metrics for engineering leaders.
Examples of Metrics for Engineering Ops
Work in Progress
Drafted Pull Requests
Drafted PRs is the number of Pull Requests drafted in the selected period.
Time from First Commit to Draft
Time from First Commit to Draft is the time elapsed from the first commit until drafting Pull Request. It considers only Pull Requests drafted in the selected period and ignores if author rebase or rewrite the history of commits. The First Commit will be preserved.
Time from Draft to Open
Time from Draft to Open is the time elapsed between drafting a Pull Request and opening it (marking as Ready for Review). It considers only Pull Requests opened in the selected period.
Ready for Review
Opened Pull Requests
Opened PRs is the number of Pull Requests opened in the selected period.
Time from First Commit to Open
Time from First Commit to Open is the time elapsed from the first commit until opening Pull Request. It considers only Pull Requests opened in the selected period and ignores if author rebase or rewrite the history of commits. The First Commit will be preserved.
Review Process and Engagement
Reviewed Pull Requests
Reviewed PRs is the number of Pull Requests that received at least one review (approve or request change) from someone other than the author in the selected period.
Time to Engage
Time to Engage is the time elapsed between opening a Pull Request and its first engagement (comment or review). It considers only Pull Requests closed or merged in the selected period.
Comments per Pull Request
Comments per Pull Request is the 75th percentile of comments (including inline comments) in the Pull Requests of the selected period.
Reviews per Pull Request
Reviews per PR is the 75th percentile of reviews (approve or request change) in the Pull Requests of the selected period.
Engaged Pull Requests
Engaged PRs is the number of Pull Requests that received at least one comment or review by someone other than the author in the selected period.
Time to Discuss
Time to Discuss is the time elapsed from the first engagement (comment or review) to the last one. It considers only Pull Requests closed or merged in the selected period and ignores comments and reviews performed by the Pull Request’s author.
Time to First Review
Time to First Review is the time elapsed between opening a Pull Request and its first review (approve or request change). It considers only Pull Requests closed or merged in the selected period.
Approvals
Approves is the sum of approves given in the selected period.
Request Changes
Request Changes is the sum of request changes given in the selected period.
Comments
Comments is the number of comments (including inline comments) published in the selected period.
Waste
Closed Pull Requests
Closed PRs is the number of Pull Requests closed in the selected period. It doesn’t include Merged PRs.
Time from Last Engagement to Close
Time from Last Engagement to Close is the time elapsed from the last engagement (comment or review) to its closing. It considers only Pull Requests closed in the selected period and ignores merged ones.
Time to Close
Time to Close is the time elapsed between opening a Pull Request and closing it. It considers only Pull Requests closed in the selected period.
Deliveries
Merged Pull Requests
Merged PRs is the number of Pull Requests merged in the selected period. It doesn’t include merely closed Pull Requests.
Time to Merge
Time to Merge is the time elapsed between opening a Pull Request and merging it. It considers only Pull Requests merged in the period and ignores closed ones.
Time from Last Review to Merge
Time from Last Review to Merge is the time elapsed from the last review (approve or request change) to its merge. It considers only Pull Requests closed in the selected period and ignores closed ones.
Commits per Pull Request
Commits per PR is the 75th percentile of commits in the Pull Requests of the selected period.
Added Lines of Code per Pull Request
Added Lines of Code per Pull Request is the 75th percentile of LOCs added in the Pull Requests of the selected period.
Removed Lines of Code per Pull Request
Removed Lines of Code per Pull Request is the 75th percentile of LOCs removed in the Pull Requests of the selected period.
Total Changed Lines of Code per Pull Request
Total Changed Lines of Code per Pull Request is the 75th percentile of LOCs changed in the Pull Requests of the selected period.
Frequently Asked Questions
Why doesn’t SourceLevel measure averages?
SourceLevel prefers using percentiles instead of averages because averages hide too much information when working with metrics that vary too much, such as velocity.
What do 75th and 95th percentile mean?
Let’s see an example to understand better what they mean. If your organization’s Time to Merge is 14 hours, it means that 75% of all Pull Requests merged in the period was merged up to 14 hours.
The same applies to the 95th percentile. So whatever the metric is, the 95th percentile means that 95% of all analyzed data are below that number.
Why does SourceLevel use 75th and 95th percentiles?
The 75th percentile gives more visibility to the engineering team. It’s a great compromise between optimistic and realistic views. It’s become almost an standard for anyone using metrics for process flow.
The 95th percentile shows an even bigger picture of the teamwork, excluding the 5% that can be considered outliers.