Preparing scientists for scalable software development

  • Authors:
  • Valerie Maxville

  • Affiliations:
  • iVEC, 26 Dick Perry Ave, Kensington, Western Australia

  • Venue:
  • SECSE '09 Proceedings of the 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software development projects have always struggled to find the balance between domain knowledge and software engineering skills and experience. In computational science, this situation is in the extreme, requiring highly specific domain knowledge paired with skills in tuning parallel programs for optimal performance on specific hardware. These projects often take place in very small teams, or by an individual researcher, who must embody both the scientist and the software engineer. Through observation of a range of computational science projects, and the implementation of rigorous software engineering methods in larger projects, we can reflect on where to bring some of the formality of software engineering into computational science. As part of the iVEC Education Program we provide training to eResearchers, which provides an opportunity to prepare scientists for software projects. By infusing the training program with Software Engineering principles, we can provide best practice essentials to the scientists whose code may eventually need to be scaled to multiple processors, platforms, sites, users and developers. By promoting easily adopted, high-return techniques, we hope to develop a culture where quality is intrinsic, reuse is maximised and effort can be focussed on innovative, robust science.