As an addendum to my “There’s a Better Way” post I want to point out a paper written by some of the Software Carpentry consortium (including me, though I just contributed a little editing). It’s titled “Best Practices for Scientific Computing” and is currently available on arXiv at http://arxiv.org/abs/1210.0530. Here’s the abstract:
Scientists spend an increasing amount of time building and using software. However, most scientists are never taught how to do this eﬃciently. As a result, many are unaware of tools and practices that would allow them to write more reliable and maintainable code with less eﬀort. We describe a set of best practices for scientiﬁc software development that have solid foundations in research and experience, and that improve scientists’ productivity and the reliability of their software.