Code Review Analytics 툴로 지연 문제 해결

Source: GitLab Blog | Author: Chris Ward

현대의 소프트웨어 개발은 빨리 진행됩니다. 개발팀은 지속적인 테스트, 구축 및 배포 프로세스를 통해 몇 분 내에 문제를 해결하고 고객에게 릴리즈를 제공할 수 있습니다. 컨테이너화(containerization) 덕분에 개발팀은 애플리케이션 전체에 영향을 주지 않고 특정 애플리케이션 서비스를 위한 새로운 기법과 기술을 테스트할 수 있습니다.

But with this speed and potential pace of change, it’s easy to lose sight of what matters: Are any of these changes important for customers and their needs, or do they bring any business value? This is what Value Stream Analytics hopes to answer.

Drawing on lessons learned from the lean movement, delivery teams, engineering managers, and directors are applying “value stream mapping” to understand and optimize delivery of value, from the time an idea is born to its impact on the business in production. GitLab’s analytics capabilities provide near real-time insights into the flow of value through the team’s value stream without requiring complex system integrations, configuration, or add-on tools.

At the highest project overview level Value Stream Analytics (since GitLab 12.3, and previously called “cycle analytics”) helps measure the velocity of development cycles in your team, and the time it takes them from planning to monitoring for each project. Currently, it tracks the seven stages to make calculations, and the associated feature:

  • Issue (Tracker): Time to schedule an issue (by milestone or by adding it to an issue board)
  • Plan (Board): Time to first commit
  • Code (IDE): Time to create a merge request
  • Test (CI): Time it takes GitLab CI/CD to test your code
  • Review (Merge Request/MR): Time spent on code review. Measures the median time taken to review the merge request that has the closing issue pattern, between its creation and until it’s merged.
  • Staging (Continuous Deployment): Time between merging and deploying to production
  • Total (Total): Total lifecycle time. That is the velocity of the project or team. Previously known as production.

If the Value Stream Analytics feature shows that reviews are your team’s most time-consuming step or your team agrees that code review is moving too slowly, then it’s time to dig deeper. GitLab 12.7 introduced Code Review Analytics to help you dig deeper into slow-moving merge requests and understand what is causing delays.

In our 2019 and 2020 developer surveys, delays in code review featured near the top of developer process painpoints. Code review is not as time consuming as testing (the unanimous winner in 2019 and 2020), but respondents aknowledged they need more help to speed up the code reviews. This initial release of Code Review Analytics is a first step toward providing greater insight into delays and bottlenecks during the code review process.

You can find the Code Review dashboard under the menu for your project, then Project Analytics > Code Review. The view is a table of open merge requests with at least one non-author comment, and review time is measured from the first non-author comment. You can also see a summary of the changes introduced by the merge request, the number of comments, commits, and the approvers needed. The default sort order is from the oldest merge request, but you can filter results using the search box above the table. By highlighting aged Code Reviews, teams are encouraged to complete work-in-process rather than picking up new items from the backlog and to dispose of the “inventory” waste of unmerged commits.

Code analytics dashboard

Clicking the title of the merge request takes you to a normal merge request view where you can recap the discussions and activity so far to debug problems such as:

  • If there are many comments or commits, perhaps the code is too complex.
  • If a particular author is involved, maybe more training is required.
  • If no or few comments and approvers appear, your team may be understaffed or may be in the habit of starting new work instead of assisting teammates to close MRs and deliver features.

We will be bringing improvements and more features to code review analytics over the coming months, and in the meantime we welcome your feedback.

About the guest author

Chris is a freelance technical communicator for numerous developer-focused companies. Happy creating text, videos, courses, and interactive learning experiences, in his spare time he writes games and interactive fiction.

댓글 남기기