High-quality scientific software is essential for modern research. Developing software that is usable, maintainable, and well documented is an increasingly important part of modern science and is particularly critical as part of large collaborative projects. Research software can no longer be tailored to each individual researcher, but must be usable by the wider community, both the scientific community outside and the society that ultimately finances the research.