Sustainable Software

When we are talking about free software, the point is often that this is more sustainable than proprietary software because everyone can edit the code and even if your company goes bankrupt someone else can take over and go on coding. Actually, in many open source projects there is only one person doing most of the developing work and there is also the risk of abandonware, software that used to be maintained, but the maintainer has moved on and does other stuff now. Still, no one else is taking over the code due to several reasons like bad documentation, complex code, lacking skills. So at the end the whole programm is written new from scratch in the next project (I see this quite a bit in science). Luckily there are institutions like the software sustainability institute tackling some if these especially technical issues, but I want to put more emphasis on social issues.

So actually the question we have to ask: how do we make software more sustainable? I see one crucial point that is true for software as well as any other voluntarily work (be it sports clubs or cultural/political groups): how easy do you attract people and how easy is it to participate in your project? Often, it is only one person working on a project. If this person stops, the whole project goes down. So what should happen? I think there are three more social than technical levels in which many projects might need some improvement:

  1. Community building: it should be easy to join your project. Connect, network with others, show that the atmosphere you do things is nice. Threat people reporting bugs nicely, talk to people and show that you are a person or group of persons it is fun to work with. Remember, people do this often in their free time
  2. Documentation: Make it easy on a technical side to join your project. It should not be easier to re-write the whole software than working on existing code. If you are a political group or other, also document what you do and what you did and why you did it. If you write code, also do this. Also track decisions, you do not want other people to make the same mistakes again.
  3. Financing: yes, financing. How do you expect people to work on things when they still have to pay rent? Therefore it is important to have your project on a stable ground, if you want to have it running. This does not mean that you sell out or try to get rich from ripping of your users, but it means that you think if you want to spend a reasonable amount of your time (or support someone else to spend a reasonable amount of their time for your project and think about putting some money in this). In software this also tackles licenses (another boring topic, I know, but there is also help.)

Summing up, I think we need to talk more about these things when developing free software and I also know that it is not the tasks most programmers are good at, but might be some skills to acquire in the future or attract people having these skills for our projects or software. I also want to show that if you are not a programmer, you can still do very important work in this background.

And even if you do not want to become active in open source software development, there are a lot of clubs, sports teams, political groups that will be happy to use your input and exptertise