Jeffrey Carver (University of Alabama); Nasir Eisty (University of Alabama) Abstract
The complexity of scientific software often makes it difficult for developers to adequately perform testing, which can result in less confidence in the correctness and quality of the code. Contemporary peer code review is a lightweight, asynchronous method for ensuring high-quality code. Peer-code review is widely used in industrial and open-source software development environments but has made little penetration into the scientific software community. In addition to improving the quality of code, peer code review indirectly encourages developers to write more readable code, which increases the long term maintainability and sustainability of the software. This hands-on tutorial (developed as part of the BSSw Fellows program [http://bssw.io]), seeks to increase the use of contemporary peer code review for scientific software. The goal of this tutorial is to introduce scientific software developers to peer code review and the related support tools through hands-on experiences.
We will organize the tutorial as follows. First, we will provide an overview of peer code review including: a description of the peer code review process, the available support tools, and our related research results. Second, during the hands-on portion of the tutorial, we will demonstrate a code review support tool and have attendees perform a review of a relevant excerpt of code. Finally, we will debrief the hands-on exercise in the large group setting, discussing peer code review needs in scientific software and providing an overview of peer code review best practices.
Please note, in order to make the hands-on code review portion more beneficial to each attendee, we recommend that people attend in pairs or groups and bring a small segment of code with them to use during the code review exercise. We will have a more generic section of code for people to use if they are unable to bring their own code.