Open source software is an important knowledge asset. When treated as such, it can have a much larger impact. Organizations are increasingly working to share open source software they create and advocate the reuse of open source software. At the IDB we’ve been promoting the internal reuse of open source software as well as sharing it externally for over two years now, through the Code for Development initiative. Here are three reflections for others either just getting started or already on this important journey.
1. Prioritize good documentation
From a practical standpoint, the application of an open license is the bare minimum requirement for an open source project. Ensuring that open source software can be effectively reused requires creating the software in a way that someone else can look at the code and understand what the tool does, how it does it, and see how to adapt it to meet their needs. When developing software that you will be share as open source, doing so with good documentation is a must, if you want that tool to be reused. We’ve put together a set of recommendations on how to do this in a Guide for Publishing Digital Tools, and you can see examples of how these guidelines have been implemented by the Magic Box and IDBx Data Engine.
2. Build on what the community has already achieved
Before developing a new software tool to respond to a specific challenge, spend some time looking to see if the building blocks already exist. Using existing tools to solve problems is at the core of the open source philosophy, and inspires the sixth Principle for Digital Development. Many of the problems that we look to software to solve have already been solved by someone else. Increasingly, those solutions are being shared as open source tools, and finding a solution that already exists as a starting point can save you time, energy, and money. This is why we created the Code Expedition methodology to help identify existing open source inputs to solve real problems, as we did to support municipal governments with tax administration.
3. Plan for sustainability
Publishing a software solution as open source is an achievement to be proud of and is a great contribution to the huge community of governments, organizations, and people looking to solve problems with technology every day. It is also something that needs support to be sustained over the long term, especially as more groups use it and contribute new ideas. For your open source project to reach its potential as a public good, the work continues well after publishing a tool. Answering questions, addressing requests, and continuing to share updates as time goes on is key to generating the most impact with your open source project. BA Obras and Gobierto are great examples of tools that have been sustainable.
We at the IDB believe that open source software is a powerful tool for international development and encourage other organizations to share your code and reuse existing open source software. These reflections are the result of a deep and collaborative learning process which has taken place over more than two years, and has involved consultations with public software advocates, people in software development, as well as the wider international development community working to apply software and technology to address development issues. All of these insights have come together to enrich Code for Development, a first of its kind initiative. We invite you to be a part of it and share your story about what you or your team is doing with open source software.
By Kyle Strand, Knowledge and Learning Senior Specialist at the Inter-American Development Bank