Customers currently only have visibility in code quality improvements & decrements within an MR. Similar to the security dashboard, it would be hugely valuable to see the changes to overall code quality over time at both a project, group and instance level.
Use case - visibility of overall project health across teams and company.
As a Team lead I want to see an estimate for how long issues will take to fix so I can predictably schedule tech debt payment. - This came up with a discussion with @cherryhan about how we could estimate based on Time to Merge fixes of similar violations from OSS projects.
Proposal
Like the Security Dashboard, this is now a Code Quality or Health dashboard.
Permissions and Security
Documentation
Availability & Testing
What does success look like, and how can we measure that?
Success metrics: number of users using the feature, as part of SMAU.
They have a big focus this year on visibility across their teams. They have grown 4x in the past ~5 years which has brought challenges around visibility, measurability and consistency across their different teams. This is part of a 'health check' they want to be putting into place with their teams which will include architectural health of products, as well as other measures.
They are very happy/open to discussing the requirements in more depth with the product team.
Excellent as we get closer to validation i'll loop you back in. Once the code quality feature is released we'd love to hear how they are using it and what problems still exist or have popped up.
They are especially missing management features (for example filtering by severity), explanations why the finding is an issue and context above a simple one liner.
We are working on some usability improvements to the merge request widget and full report to sort by severity in the current and future milestones that should help a little with the search for important violations to address.
We are also starting our first step in adding the code quality violation data to the MR Diff so code review is easier and the violations found are in context of the actual files changed.
I'd be happy to hear about additional use cases to better inform this issue! Thanks!
The usability improvements look promising. Especially the sorting, filtering, drilling-down is helpful to motivate all involved partied to address the (biggest) problems (first). That seems on track on the UX front, thank you! 👍🎯
The hard issues we see are in the code quality scanning as such, though:
Technically, Code Climate runs in a docker-in-docker scenario. We have done a technical analysis on that and saw that this is a hard requirement due to architectural decisions (GitLab and Code Climate use containers to run things). We're a (large) financial institution and need to phase out Docker for security reasons, and use (e.g.) Podman to run tasks with unprivileged users.
Code Climate doesn't seem to cache the images it downloads to run its "engines". That results in a significant, recurring speed penalty, which is unfortunate (and probably not too difficult to fix with caching).
As a personal note, an alternative to dropping Code Climate might be to bring them into the discussion and verify whether they plan to modify their engine concept. We've seen, for example, that Sonarqube runs "as a monolith", architecturally speaking, hence wouldn't have the DnD problem, in theory.
As quoted from the requirement doc, Describe how quality requirements and the overall quality of an application is tracked against a baseline.. Are there any updates to the estimated timeline on when the Code Quality Dashboard could be developed? @jheimbuck_gl
I think dashboard could be really useful for a lot of productivity engineers :)
@simon_mansfield@tmccaslin this issue seems like it has some overlap with the epic i created here: &3500. How can I help merge these so we have a SSOT for everyone to reference?
It certainly seems to have a lot in common with &3500 I agree. Is there anything that you feel is missing from that epic that's contained in here? Otherwise I'm happy for this to be closed and the epic become the SSOT.
An 800-seat Premium customer feels they are unable to move to Ultimate without this functionality. Improving CQ across the entire engineering community is a key initiative for the CTO and they are using SonarQube as it provides the functionality described in this issue.
@r.leite we would like to push for this feature as well, developers within our company are looking to https://codescene.com/ to get this kind of information.