How to make your work open (source)

This weekend I attended the StixCamp for open standards in education, data, software and technology. In keeping with Stix philosophy it took place outside of the distractions of a big city and in a tranquil, rural setting - Figueira de Castelo Rodrigo in northern Portugal. It is a beautiful place which specialises in wine, cork and palaeolithic rock art. It was organized by Pedro Russo from Leiden University (who happens to be from this town :-).

The format of the workshop was; a couple of keynotes and lots of unconference sessions, which people proposed according in response to the keynotes, theme of the conference or discussions. I led an unconference session called “How can I make my work open?”.

Always add a licence, even if you make your product free.

This might seem like overkill for something small, that maybe you didn’t take much time to produce. Its really not. It can actually make your work more widely used and even protect your rights.

A licence will tell people exactly what they can and cannot do with your work. If its an image, a table of data, software, or text, there are licences in the public domain suited to them. Creative Commons is a great place to start for things like text (e.g. a book), images and graphs.

For deciding on a software licence, a really helpful site is Choose a Licence.

Warning

Never write your licence yourself. The licences I’ve mentioned have been written by lawyers and are widely used. If you write it yourself (and you aren’t a copyright lawyer) you at best make your work unusable, and at worst get yourself in trouble.

The last thing you want is for someone to turn around and say “I used your code and it is broke my million £/$/€ business. I’m suing you.”

Make it easy for people to contribute.

A major reason for make your work open is to share your ideas and methods. If you share, people will often share back and contribute to your project. They may volunteer to help the project because they already use it and want extra features, they notice mistakes and are willing to fix them for the Greater Good, or they just might think what you are doing is really cool and want to be involved.

If you make it hard for them to be involved, they probably won’t bother.

Cognitive surplus

Plenty of citizen science projects have shown that people invest a lot of time pursuing activities they aren’t paid for. People like to keep their minds active and by giving them something they can contribute to your project can benefit from this.

Document your work.

This might seem obvious but it is something that is often left out. If you have a software project you want to make open source, don’t only comment the code but provide examples of how to use the code and what its intentions are. If have a dataset you want to make open data, describe the data columns, any biases in the data and where the data came from.

Use online collaborative tools

It is very unlikely that the people you want to encourage to contribute to your project will be close enough for you to see regularly; they will be fitting their contributions in around their work and lives in general.

For software projects, version control repositories are really perfect for this. GitHub, for example, has way for you to identify problems or feature requests and assign them to people.

Twitter can also be used particularly if you have something visual you want to share, like a data visualisation or image, which want people to send you comments about.

Make sure people who work on your project get credit.

The people who contribute to your project may be happy with the knowledge they’ve helped another person and made something they were interested in, better. That doesn’t mean you shouldn’t give them credit for their work. In many case these people won’t be paid for their contribution, so they should be able to point prospective employers, clients, or even other open source projects, at your project and say “Look, this is what I did.”.

If you use GitHub, the contribution of each person is very easy to see, in the commit history, which is a nice reason to use it.

For graphics and data publishing, FigShare has a good interface and allows you to have citable reference, and give a context to the product.

No matter where you publish, make sure there is a way that the work can be referenced, even if it is just through a DOI. This makes it easy to point people to where they can look at who was involved in the project.

Final word

I firmly believe in open source / access / data / education and try to make sure every project I am involved in is open. Make your project open, means more people can be involved in your project. Skilled and talented people, who can take your project in new, exciting areas that you didn’t even dream were possible.

This isn’t just wishful thinking. Every single open project I have been involved with has had benefitted from this.

Ps.

Remember also, that open doesn’t mean you can’t make money from it. Look at Django, Docker, WebScaleSQL (a collaboration between Facebook, Twitter and Google) and many other.