Collaborations Workshop 2018 - 2018-03-26

Group H Collaborative Idea - CI11-CW18

Reporter

Matthew Upson - matthew.a.upson@gmail.com

Participants

James Graham, Matthew Upson, Adam Jackson, Andrew Washbrook, Naomi Penfold, Rinku Gupta


Context / Research Domain

Code review across projects for software sustainability

Problem

As a project lead I need to recruit and retain reviewers from outside of my project, with the right expertise in order to ensure the quality of my code through review.

I’m involved in a group with multiple projects, and I would like members from project A to be reviewers of project B.

Starting a community at Southampton, people will know different things, have different problem domains, but will be able to teach others. Code review is something that has been most requested, as it is something that will allow intermediate programmers to progress. There is a good pathway to becoming intermediate, but there is not such a good path towards becoming an expert: it tends to be through reading others’ code.

Identify within this broader community, the reviewers with intermediate experience who have the expertise to be able to review a specific review request.

Once a reviewer is engaged, how do we provide a valuable positive experience to retain reviewers and build a functional community.

Solution

Two connected streams: how to recruit, how to retain. For recruitment, for example one could identify expertise using tagging infrastructures similar to stack overflow (this could be done by the user or automatically). For retention we could draw on incentivisation or gamification tools. One approach to this could be to use bots to identify reviewers and to ascribe experience points and suggest potential code to review. Building a great user experience would help both retain and recruit.

For the hackday a test instance of GitLab will be provided for people to explore solutions

Considerations:

  • How to develop a marketplace for expertise
  • How to identify the expertise of a reviewer
  • How to tag expertise (like stack overflow)
  • How to provide positive feedback to reviewers
  • How can you encourage researchers to code review outside of their immediate group?
  • How to match up expertise with problems?
  • Reviewer can get recognition/credibility for the contribution