Investing in Code Reviews for Better Research SoftwareSeries: HPC Best Practices Webinars
Code review is a development practice that improves readability and maintainability of software projects, in addition to making collaboration easier and teamwork more effective. Typically, code review is a conversation between reviewer(s) and the author(s) of the code under review. The code is dissected and analyzed in order to find areas of improvement according to the focus of the review. Examples include, but are not limited to, readability, security or performance improvements. Despite code review being an effective tool for improving software quality, it is still not a standard practice within the scientific software development process. The webinar will detail the benefits that code review can bring to scientific software developers, particularly improvements in software quality, improved teamwork and knowledge transfer. The presenters will highlight common difficulties faced by researchers to set up, perform and maintain frequent code reviews, and they will discuss several approaches and good practices to mitigate these difficulties. The presenters will also describe common tools that make code reviews easier and give examples of how to use them effectively, while explaining a typical code development cycle with continuous integration and automatic code checks.
- Thibault Lestang (Imperial College London)
- Dominik Krzemiński (University of Cambridge)
- Valerio Maggio (Software Sustainability Institute)
Thibault Lestang is a Senior Research Software Engineer in Computational Fluid Dynamics, Imperial College London. Thibault works closely with researchers to develop and maintain software across the Department of Aeronautics, with a focus on open-source fluid flow solvers Xcompact3 and Nektar++. Through training courses and individual support, he also promotes the development of good software engineering practices in the department, making research more open, sustainable and efficient. As a fellow of the Software Sustainability Institute, Thibault is interested in bridging the gap between software engineering methods and conventional scientific research workflows.
Dominik Krzemiński is a Research Associate at the FlyConnectome group, University of Cambridge. Dominik’s interest spans between neural decision-making circuits and applications of AI to neuroscience. He organized a number of workshops and conferences for the wider scientific coding community. As a Software Sustainability Institute Fellow and Cambridge Data Champion, he promotes good coding practices, such as code reviews and testing, in the research environment.
Valerio Maggio is a Researcher, Data scientist, and fellow at the Software Sustainability Institute, as well as a casual “Magic: The Gathering” wizard. He holds a Ph.D. in Computer Science with a thesis on Machine Learning for Software Maintainability, and he is currently a Senior Developer Advocate at Anaconda, inc. Valerio is well versed into open source software, and best software development practice, specifically focusing on scalable and reproducible machine learning pipelines. Valerio is an active member of the Python community: over the years he has led the organization of many international conferences like PyCon/PyData Italy/EuroPython, and EuroSciPy.