Guides
Tips and tricks for sustainable software and development

Our guides can help you with different aspects of software sustainability. We can help you choose software development processes and techniques to protect your software and ensure it has a sustainable future.
Is there something you would like to know more about? We're always looking for new subjects to base our guides on. If there's something you would like to know about, please contact us.
Software development
-
Software development: general best practice
You will find that development of new code and maintenance of existing code is easier if you adopt established principles and best practices. This guide shows you how to approach a new software development project.
-
Ready for release?
To get people using your software as quickly and painlessly as possible, you should invest a little of your time preparing everything your users will need before you release your software. This guide describes some simple things you can do to improve your users' experience of your software.
-
Defending your code against dependency problems
Rather than re-invent the wheel, it's a common (and good) practice to develop software that uses third-party software, but problems can occur when a new version of the code causes an incompatibility. In this guide, we describe how to choose software and develop code to avoid dependency problems.
-
Developing maintainable software
If you want to increase the uptake of your software, make it easy to extend (and fix) and make it maintainable. This guide provides advice on the design and development of maintainable software that will benefit both you and your users.
-
Writing readable source code
Although it ends up being processed by a machine, source code evolves under the hands of human developers. They need to understand what the code does and where changes need to be made. Writing readable code costs only a fraction more than writing unreadable code, but the payback is immense.
-
Testing your software
Software development doesn't end when the software is written. How can you, and any developers you work with, be sure that your software meets its requirements? Does your software work as expected, and will it continue to work over its lifetime?
-
How to frustrate your users, annoy other developers and please lawyers
Sometimes it's good to see a problem from a fresh perspective. We've wound up Mike Jackson into an absolute frenzy and asked him to write an anti-guide. Here's what not to do when writing software.
-
How do I figure out if this software is "good"?
Assessing the quality of software - either your own or someone else's - is a tricky balance between hard objectivity and the very subjective (but very valid) individual user experience. The Institute provide a software evaluation service based on two complementary approaches developed over many years in the research software arena. This guide explains how we go about it!
Project management
-
Choosing the right open-source software for your project
A lot of time is invested in setting up new software, and if you haven't done your homework, you could be making an expensive mistake. This guide takes you through the questions you should ask before you invest your time in new software.
-
Choosing project and product names
In this guide, we'll take a look at how to choose a good name and the common pitfalls. We'll also look at searching for already used names (including trademark searches). Finally, we'll discuss our understanding of registered trademarks and passing off - two laws that can affect name choice.
Repositories
-
Choosing a repository for your software project
This guide provides an overview of the different options for repositories, and looks at some of the decisions you will need to make before choosing a repository
-
Migrating project resources: what to remember
In this guide, we list the steps you should consider before a project migration.
-
Creating and managing SourceForge projects
SourceForge is a free and well-established open-source project repository. It currently hosts over a quarter of a million open-source projects and is used by over 2.7 million developers. In this guide, we'll provide an overview of SourceForge and a how-to for common SourceForge tasks.
-
Retrieving project resources from NeSCForge
After serving as a valuable repository for UK e-Science projects for many years, the NeSCForge service will be shutting down on Monday 20th December 2010. If you want to retrieve your project's resources from NeSCForge, this guide tells you how.
Open source
-
Adopting an open-source licence
Deciding to release software under an open-source licence is an important step in the lifecycle of any software project. Equally important is the selection of an appropriate licence for the software.
-
Supporting open-source software
You've written and released your open-source software, and now you've started receiving support queries. How do you support your software, handle questions and resolve bugs? Don't panic! This guide will help.
Community building
-
Recruiting champions for your project
Promoting your software is vital if you want to increase its use and generate interest in your research. Rather than singing the praises of your own software, it is often more persuasive to have a satisfied user spread the word for you.
-
Recruiting student developers
It's frustrating when you have an idea for improving your software, but lack the resources needed to realise it. Not all is lost! Your idea might be the perfect basis for a student project.
Publicising software
-
Creating videos for software projects
Videos are one of the best ways of showcasing software. This guide gives a few tips on producing videos for software projects.
Last updated: Friday 18 November 2011.
