Many scientists trained outside of computer science departments today are self-taught programmers learning computing on the fly as their research careers progress. An unfortunate consequence of this trend is that many of us are unaware of tools and practices that would improve our research lives considerably. I shall describe in this talk a set of best practices for scientific software development with a solid foundation in software engineering research. When adopted, these practices can improve the reliability of our scientific software and our scientific productivity.
This is joint work with Greg Wilson, C. Titus Brown, Neil P. Chue Hong, Matt Davis, Richard T. Guy, Steven H.D. Haddock, Katy Huff, Ian M. Mitchell, Mark D. Plumbley, Ben Waugh, Ethan P. White, and Paul Wilson.