By Andy Cummins, Director of Product Development at Cogapp, and MCN Board member.
I’ve been thinking about what it takes for an open source project to fulfill its potential as a shared resource for the GLAM community.
What do I mean by open source?
When I say open source project, I’m not going to get into the specifics of licenses and so forth; I’m speaking broadly, I mean a piece of software that you can take from a public repository to amend as you see fit and use at your institution without paying any up-front or ongoing fees for the software itself.
Why am I thinking about it?
It’s not news to anyone that open source software is out there and that museums are now living in that world. There has been a long-term (and still growing) trend for code created as part of our projects to be made open source. This can be a condition of funding or maybe a museum is a keen proponent of the open source movement or maybe vendors are the ones pushing for a project to be published under an open source license.
The leg up that open source software can afford us feels as important as ever given restricted budgets and the increased focus on digital in light of the pandemic. With this in mind, I would like to offer some thoughts on how we can maximize the community benefit of new projects as well as those that already exist.
I’ve recently been working on two projects that are to be published as open source projects. I’m really excited that our work could be used by others to achieve something they might not otherwise have the resources to achieve. I have seen a lot of open source software wither on the vine so I’m thinking about how to best set these projects up for multiple successes across the museum community.
What does it take for an open source project to fulfill its potential?
Some obvious points:
- The software has to be useful
- The software has to be of sufficient quality
- The software has to be relatively easy to make use of
The less obvious:
- The software needs to be publicized; “build it and they will come” is not a plan for success
- The software needs to be maintained; old unpatched software will not be attractive for reuse
- The open source project needs to be championed; someone needs to care about the project as it evolves
For a given project, if we assume the first set of criteria above has been met, how do we address the less obvious points from the second group to help increase the community benefit afforded by a given open source project?
Plan for your project to thrive (and go back to those that meet the three initial criteria above and plan to revive them)
As part of the initial build, there should be time set aside to plan for the project’s life after the initial development. This is tricky in the throes of a complex software build but it’s important.
There are three areas that with some attention will impact the chances of someone else reaping the benefits of the project.
We need to tell people about the projects!
When we discuss our project launch we need to promote the open source nature of the project too. We need to offer our time to others who may wish to build upon our work. We need to think about all the places we can promote the project—whether that’s conferences, our institutional blog, or our own networks.
We need to take care of our projects
With time allocated to maintain and further develop any open source software we create, the software will become more desirable to others over time rather than accruing technical debt. Resources are often scarce but every version update or security patch that isn’t applied diminishes the value of the project and the initial investment of time and money is diluted.
Champion your project
As the project evolves there needs to be someone who is pushing for others to use it. This is more than simply talking about our projects. It could be identifying interested collaborators, reaching out to institutions you know that could benefit from your work. It could be going back to funders and ensuring they are up to speed on the value of what you have created and ensuring they know where to point people with similar needs to the original project. In short, you need someone with the energy to push your project out to others in an active way.
Look to existing projects first
We can all help to promote the effort put into open source in our community by looking to existing open source projects, where possible, as a basis for our work. Of course, we want our digital output to be unique and representative of our institutions but there are opportunities to reuse the work of others as the foundation for our projects. This headstart can give us the extra time to focus on what makes our digital output unique rather than reinventing the wheel.
In terms of promoting projects Greg Albers and Aron Ambrosiani have done an amazing job of listing many open source projects, take a look at their GitHub and see if any match up to what you’re working on.
An open source project that I refer to above that could be of huge benefit to others (especially as expectations have shifted towards digital programming) is the Hammer Channel video platform.
The code is waiting for you here: https://github.com/HammerMuseum
If you want to build one for yourself, it would make the Hammer/Cogapp team very happy.