Mr David Benn1
1CSIRO, Adelaide, Australia
Research Software Engineers (RSEs) often work alone or in small teams, potentially on multiple concurrent projects and may be time poor. Both verification (building it correctly) and validation (building the right thing) are important. Limiting the focus to verification, what methods make sense for the varieties of application types in a research context? Concerns peculiar to research software and scientific computing in particular such as numerical tolerance, reproducibility, and the determination of parallelised and serial code equivalence are also important considerations.
Verification resources for programming languages including C++, Python and R are being collected. A repository for case studies and patterns derived from experience is being created for development activities such as porting and parallelising in conjunction with methods such as reference testing, TDD, and property-based testing. The emphasis here is on answering the question: what approaches are most effective for a given research software application type? A one day Python testing workshop was developed and delivered for the CSIRO Ag & Food data school and subsequently a software carpentry style Python testing episode with an emphasis upon test driven development.
All software requires verification and validation. Determining the appropriate approach to verification is crucial to the fitness, reliability and ongoing maintenance of research software. Organising a set of resources, training materials, and shared experience can only be of benefit to a community of software development practitioners and their beneficiaries.
David is a member of CSIRO IM&T’s Scientific Computing Research Software Engineering team, working with scientists to enhance and accelerate research through software development and high performance computing.
He is interested in the intersection of Science and software development, the publication of research data and software, approaches to verification, reproducibility, and programming paradigms.
In his spare time, David is an amateur astronomer with an interest in variable star observing.