Category Direction - Code Review

コードレビュー

Section Stage Maturity Last Reviewed
Dev Create Loveable 2020-07-20

Introduction and how you can help

The Code Review strategy page belongs to the Source Code group of the Create stage, and is maintained by Daniel Gruesso.

This strategy is a work in progress, and everyone can contribute. Please comment and contribute in the linked issues and epics. Sharing your feedback directly on GitLab.com is the best way to contribute to our strategy and vision.

概要

Code Review is an essential practice of every successful project. It is necessary for maintaining and improving code quality, and is one of the primary avenues of mentorship for software engineers, but it is also time consuming.

GitLab's vision for code review is a place where:

GitLab should make these tasks efficient and easy, so that velocity and code quality both increase.

Metrics of success

The primary metric by which we measure the success of the Code Review category is: reducing the duration of the Code Review. This is measured as the duration from the first merge request version to merged.

Category-level UX baselines conducted quarterly will provide qualitative feedback to validate perceived efficiency and our hypothesis.

Target Audience

Code review is used by software engineers and individual contributors of all kinds. Depending on their context, however, the workflow and experience of code review can vary significantly.

Challenges to address

There are many code review tools in the market as well as multiple workflows. Deciding which features/workflows to build-in to GitLab is important so that users can migrate seamlessly. However, it is not realistic for us to support every feature/workflow out there, as such we must suss out the most popular, forward-looking features/workflows, and support them in GitLab.

Where we are Headed

The code review process involves at least two roles (author, and reviewer) but may involve many people, who work together to achieve code quality standards and mentor the author. Furthermore, many reviewers are often not Developers. Reviewers may be Developers, UX Designers, Product Managers, Technical Writers, Security Engineers and more.

In support of GitLab's vision for code review, areas of interest and improvement can be organized by the following goals:

The following improvements will help us make significant progress towards the above goals:

What's Next & Why

What is Not Planned Right Now

Maturity Plan

This category is currently at the Loveable maturity level (see our definitions of maturity levels).

Competitive Landscape

GitLab competes with both integrated and dedicated code review tools. Because merge requests (which is the code review interface), and more specifically the merge widget, is the single source of truth about a code change and a critical control point in the GitLab workflow, it is important that merge requests and code review in GitLab is excellent. Our primary source of competition and comparison is to dedicated code review tools.

Prospects and new customers, who previously used dedicated code review tools typically have high expectations and accustomed to a high degree of product depth. Given that developers spend a significant portion (majority?) of their in application time in merge requests, limitations are quickly noticed and become a source of frustration.

GitLab’s current code review experience is largely modeled after GitHub’s, with most of its pros and cons. Gerrit and Phabricator are frequently mentioned as the best alternatives to the GitHub code review model. See the competitive analysis for a closer look at the user experience and feature set of competitor tools.

Integrated code review packaged with source code management:

Dedicated code review tools:

IDE-related:

Analyst Landscape

Top Customer Success/Sales issue(s)

The highest priority customer requests are for improved application performance, accuracy and efficiency for reviewing merge request diffs of all sizes, small and extremely large.

Other notable requests include:

Top user issue(s)

Top internal customer issue(s)

Top Vision Item(s)