Infrastructure for unselfish software development - a collection of top tips
Posted by m.jackson
on 17 July 2012 - 9:05am
By Mike Jackson.
In recent blog posts, I've outlined our top tips for the infrastructure required for developing research software. In this blog post, I'll summarise these posts to show how you can evolve your infrastructure as your software grows and develops.
The blog posts on infrastructure can be mapped to three phases of research software evolution:
Infrastructure for closer collaboration - covers research software that is now developed by a number of projects or institutions within a research community, which may, or may not, include the original researchers who developed it.
The infrastructures recommended in the posts above can also be divided into different types according to the activity they support. I've put all of this information into the handy table below, which summarises the infrastructures needed to support the evolution of research software and the activities these infrastructures support.
Supporting a community of users
Supporting a community of users and developers
Technical aspects of software development
Revision control is the single most important tool you'll use!
Use automated build and test to save time, reduce bugs and give you confidence your software is correct
Keep your software releasable with a continuous integration server
Keep your code consistent with a style checker
Promoting yourself, your project and your software
Use your website to tell the world about you
Register a domain name
Talking with and supporting your users
Encourage people to get in touch by providing an email address
Organise your communications with e-mail lists
Share your thoughts and experiences with a blog
Strengthen your links with your community using social networking
Talking with your developers
Use an email list to communicate
Hang out using instant messaging
Use a shared calendar to help track your commitments
Managing your project
Manage to-dos with an issue tracker
Track your impact with reference management software
Track usage of your software to understand your impact
We also use analytics & advertising services. To opt-out click for more information.