Relationship between authors and code

Problem to solve

In general, it's important to see if multiple engineers create a hotspot as this might indicate a module that needs to be broken down. Often, the more programmers work on a code, the more quality issues. There might be different owners of two temporal coupled modules - if they are part of the same team, this is probably ok although it means that the communication flow needs to be pretty good (ex: improvement to multiple microservices required for a new product launch, for example). When we see a module with a big owner, we likely will have less defects on all these pieces, but if we have many minor contributors to it, they are likely to introduce defects since they don't know the code very well. By filtering by authors that have left the company we can also identify code that might be prone to bugs if they were the significant owners.

Intended users

Further details

Proposal

  1. Include number of authors on the code hotspot chart
  2. Create another treemap, where the size is the amount of authors that have contributed to that file (size is represented by the number of commits / lines of code of the author as a dropdown).Main developer - the developer with the most lines of churned code (modifications and deletions) + new code + refactoring (% of total lines added + churned + refactored). We would like to compare the hot spots with the number of authors shared by the module (how to represent who owns how much?), so we should have these 2 heatmaps as separate.
  3. If we represent the authors like this https://observablehq.com/@d3/chord-dependency-diagram (similar to https://gitlab.com/gitlab-org/gitlab-ee/issues/12648), we can represent the number of files on which they interact as lines as well. @valexieva to think of a better way to represent.

Should be filterable by everything.

Permissions and Security

Documentation

Testing

What does success look like, and how can we measure that?

What is the type of buyer?

Links / references

Edited Sep 02, 2020 by 🤖 GitLab Bot 🤖
Assignee Loading
Time tracking Loading