Gamifying PHP code review
Peer code review is systematic examination of computer source code by somebody that has not participated in writing the code. The purpose of peer code review is find mistakes that has been overlooked by the developers and to improve the overall quality (in particular the security) of the code.
In industrial settings code review is undertaken by employees (paid code experts). However, paying experts to undertake peer review is usually not feasible in some other settings, such as the classroom, or in free software development.
Code review is by most people considered a rather boring task, and it is safe to assume that to get people to undertake code review, some sort of motivation must be provided. In an industrial setting, money is the obvious motivator. Recently, there has been a number of ventures that has successfully used a technique known as "gamification" as an alternative motivator.
"Gamification" is often defined as "the use of game thinking and game mechanics in non-game contexts to engage users in solving problems and carry out tasks".
In this thesis, the candidate shall explore how gamification can be used to motivate people to undertake peer code review of PHP programs.
In particular, the candidate shall design, create and analyze a web application to gamify peer code review of free software projects created for a web CMS known as "Drupal".
Drupal is one of the largest collaborative free software projects on the planet, with an active developer community consisting of around 100 000 users. Its community website Drupal.org hosts a Git repository with more than 35000 contributed PHP modues. Online software repositories based on Git and other distributed version control systems allows collaborate code reviews.
The Drupal community currently provides infrastructure that offers new contributors ad hoc peer review through something known as the Drupal.org Project applications. There are many many problems with the Project applicatons peer code review process. For instance, the system for managing the queue and the program is manual and difficult to use. There are also too few reviewers participating, and feedback from some reviewers may confuse participants. The lack of reviewers also makes the process very drawn and frustrating.
Peer code review for the Drupal community looks like an excellent candidate for gamification - where gamification will be used to provide some structure and a "player journey" to what is now a very unstructured and unmotivating process. Gamification is also know for creating motivation, and what is lacking in the current program is for instance motivation for reviewers to participate. Gamification is also know for being suitable for:
- Providing recognition
- Disseminating knowledge
… all of which are missing from the present program.
It is up to the candidate to design the gamification application, but StackExchange.com may be used as one source for inspiration for the design of this project. The candiate should also cosider the use of standard gamification elements such as PBL (Points, Badges, Leaderboard) as design elements, but a broader review of the gamification as a academic topic should be undertaken as part of this thesis, with the gamification of the Drupal Project application review process serving as a case study.
This master project may be undertaken by one single students, but the task is quite large and should be easily divided into several smaller project. This means that it will suit better for several students working as a team. The team will create a responsive framework (i.e. works well on different mobile platforms as well as office computers) that can be used to create various parts of the player journey.