Automated Code Review Assignment via Relevance Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In large software organizations, distributed feature development teams face challenges with continuous integration, including conflicting implementations, difficulty in identifying appropriate stakeholders for code review, and duplicative efforts due to the diffusion of responsibility and manual assignment of code reviewer responsibilities, which lead to delays and inefficiencies in the code review process.

Innovation Solution

An automated code review system using relevance analysis to identify and assign code reviewers based on the relevance of code changes, assigning weights to code portions, and organizing reviewers into a hierarchy to ensure timely and efficient code review.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code review is solicited by notifying a group of developers, then comprehensive code review coverage is improved, but code review completion time increases due to diffusion of responsibility

Engineering Contradiction:
Improvecode review coverageVSAvoidcode review completion time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the code review process by dividing the codebase into components and assigning specific review responsibilities to individual component owners rather than notifying all developers. This segmentation maintains comprehensive coverage while eliminating the diffusion of responsibility effect that causes delays in group-based review processes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an automated intermediary system that analyzes code commits, identifies relevant components, and automatically assigns review tasks to appropriate component owners. This intermediary eliminates the need for manual group notifications while ensuring the right people are reviewed, thus maintaining coverage without the time loss associated with group diffusion of responsibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If manual assignment of code reviewer responsibility is used, then code review quality is improved, but work overload on component leads increases causing delays

Engineering Contradiction:
Improvecode review qualityVSAvoidcode review throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements a self-service code review assignment system where component owners automatically receive review assignments based on their defined areas of responsibility. The system autonomously matches code changes to the appropriate component owners without requiring manual intervention or oversight, thereby maintaining review quality while preventing work overload on any single component lead.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes the assignment parameter from manual component lead selection to automated component-based assignment. By using code metadata, component hierarchies, and change analysis as assignment parameters, the system distributes review workload automatically across multiple component owners based on the actual code changes, preventing any single lead from becoming overloaded while maintaining quality standards.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If distributed feature development is implemented, then development flexibility is improved, but identification of appropriate stakeholders for code review becomes difficult

Engineering Contradiction:
Improvedevelopment flexibilityVSAvoidstakeholder identification difficulty
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent creates a universal component-based framework that works across all distributed feature teams regardless of their specific domains or locations. Each team defines their components and ownership relationships within this universal framework, allowing the system to automatically identify appropriate stakeholders for any code change across the entire organization, thus maintaining development flexibility while solving the stakeholder identification problem.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent implements a feedback mechanism where the system continuously monitors code commits, analyzes which components are affected, and automatically notifies the appropriate component owners. This closed-loop feedback system ensures that distributed teams can work independently with full flexibility while the system automatically tracks and routes code review requests to the correct stakeholders based on component ownership information.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20220245055A1Automated code review process using relevance analysis to control selection of and interaction with code reviewers
Publication Date: 2022.08.04 EMC IP HLDG CO LLC
  • US20220245055A1 patent drawing
  • US20220245055A1 patent drawing
  • US20220245055A1 patent drawing

AI summary

For each of a plurality of commit operations to be executed for respective given code portions of a set of software code under development, at least one processing device performs a relevance analysis to identify one or more other code portions of the set of software code that each exhibits at least a threshold level of relevance to the given code portion, determines one or more code reviewers for the given code portion based at least in part on the one or more other code portions identified by the relevance analysis, assigns code review responsibilities for the given code portion to the one or more determined code reviewers, notifies the one or more determined code reviewers of the assigned code review responsibilities, and responsive to successful completion of code review by the one or more determined code reviewers, executes the commit operation for the given code portion.