Code Review - User Interviews - April 2019
#### Research Objectives
Code review as a process is much more than leaving simple feedback. It is the collaborative and human process that:
1. protects code quality, and
1. mentors developers little by little each day
These co-equal objectives must be more than possible, but encouraged. Using GitLab should encourage a rich, best practice approach to code review.
Product discovery issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/59582
Research Issue: https://gitlab.com/gitlab-org/ux-research/issues/168
#### Methodology
User interviews.
#### Key Findings / Areas for Improvement
* **Communication/Company Culture**
* Discussions in MR vs Slack/Teams/Video Call/Face-to-Face
* Ability to have side conversations and ensure that a summary is added to the MR
* Tone and communicating reviews empathetically: how to give feedback in a way that helps you understand what the MR author was thinking and give constructive criticism
* **Blocking vs Non-blocking reviews**
* Communicating whether the suggested changes block the MR from being merged
* Ability to highlight levels of suggestions (in the UI): good-to-fix, must-fix, style preference/nitpick, coding standards, etc - https://gitlab.com/gitlab-org/gitlab-ce/issues/58028
* **MR overview and "story"**
* Order of discussions: ensuring that the order comments were left in the review is preserved so that the MR author can follow the flow of the feedback. All comments should keep the context of why they were originally left there. - https://gitlab.com/gitlab-org/gitlab-ce/issues/58584
* Standards for MR description templates that explain the purpose of the PR, files to review, and additional context
* Streamlining Discussions tab (additional filter settings)
* Ability to see an easy overview of the status of the code review: have all blocking discussions been resolved, who needs to take action next, how long has it been open, etc)
* See changes since last review - https://gitlab.com/gitlab-org/gitlab-ce/issues/54794
* BitBucket has iterative Pull Requests: https://gitlab.com/gitlab-org/gitlab-ce/issues/48849
* **Mentorship**
* Documenting common mistakes for easy reference
* Make it easier for developers to refer to company coding standards before submitting MRs
* Structuring code using automation rather than spending the reviewer’s time on making the code look consistent
* Enable senior developers to highlight their suggestions/guidance on how to improve code without making the suggestions blocking
#### Video/Links
- All Interview Notes: https://gitlab.com/groups/gitlab-org/-/epics/1260
- All Suggested Improvements: https://gitlab.com/groups/gitlab-org/-/epics/1261
| User | Video |
| ------ | ------ |
| GitLab Maintainer | https://drive.google.com/file/d/1Qhvr89q_HC7xm6ep9OVCtjv09d9l67Qe/view?usp=sharing |
| GitLab Reviewer | https://drive.google.com/file/d/1_FJg1Y7pgsCjwosTRT5nBdQ7M_tHe7og/view?usp=sharing |
| GitLab Contributor | https://drive.google.com/file/d/1YKAICooAUAKKXQkImG42fYNhREvQGyfw/view?usp=sharing |
| User 1, GitLab | https://drive.google.com/file/d/1LBi3vZJnUiuSIbT8aLPR_5cqOCHXvywW/view?usp=sharing |
| User 2, GitLab | https://drive.google.com/file/d/1-wcZNcz3-KwgeyAd1jYb-6Tqaxr03kCD/view?usp=sharing |
| User 3, GitLab | https://drive.google.com/open?id=1XQBrbdwKrtZOCABcCAO_H4vDSUEGdcdB |
| User 4, Azure DevOps | https://drive.google.com/file/d/1BOOEjMwYnUTpNmxaKF7evxNS0nxFxCbq/view?usp=sharing |
| User 5, IntelliJ + Internal tools | https://drive.google.com/file/d/1oSk9agE8-xL81DxJVbX76L1z5zSAQgZ_/view?usp=sharing |
| User 6, GitHub | https://drive.google.com/file/d/1KVsBUSroS9Ax5vu1HTcnk9elW7GHmjXQ/view?usp=sharing |
| User 7, Phabricator | https://drive.google.com/file/d/1vGj1didiSHJVtK-aNwBiGxWgv-33bWs1/view?usp=sharing |
| User 8, Azure DevOps | https://drive.google.com/file/d/1I4UKbBr_tCcZU-SsWoQL3Ic0Ziy8_Bnz/view?usp=sharing |
| User 9, Azure DevOps/TFS | https://drive.google.com/open?id=15XiXBrI6ttVUg1DufrXtDIxYQAmTLDLp |
| User 10, BitBucket | https://drive.google.com/open?id=1JAnJ2I-_n0EY5UOO-3QsLByjrrzLeWcz |
| User 11, BitBucket Phabricator | https://drive.google.com/open?id=1nENl-SwKda8B3S2oxPzc3gWV02pVkDqe (audio only)|
epic