Summary: | Background. Code reviewing is a commonly used practice in software development. It refers to the process of reviewing new code changes, commonly before they aremerged with the code base. However, in order to perform the review, developers need to be assigned to that task. The problems with a manual assignment includes a time-consuming selection process; limited pool of known candidates; risk of high reuse of the same reviewers (high workload). Objectives. This thesis aims to attempt to address the above issues with a recommendation system. The idea is to receive feedback from experienced developers in order to expand upon identified reviewer factors; which can be used to determinethe suitability of developers as reviewers for a given change. Also, to develop and implement a solution that uses some of the most promising reviewer factors. The solution can later be deployed and validated through user and reviewer feedback in a real large-scale project. The developed recommendation system is named Carrot. Methods. An improvement case study was conducted at Ericsson. The identification of reviewer factors is found through literature review and semi-structured interviews. Validation of Carrot’s usability was conducted through static analysis,user feedback, and static validation. Results. The results show that Carrot can help identify adequate non-obvious reviewers and be of great assistance to new developers. There are mixed opinions on Carrot’s ability to assist with workload balancing and decrease of review lead time. The recommendations can be performed in a production environment in less than a quarter of a second. Conclusions. The implemented and validated approach indicates possible usefulness in performing recommendations, but could benefit significantly from further improvements. Many of the problems seen with the recommendations seem to be a result of corner-cases that are not handled by the calculations. The problems would benefit considerably from further analysis and testing.
|