What is open-source software? Is it different than Free Software? And can we trust something “open” to support public services? In our experience promoting the IDB’s Code for Development initiative, we have heard these and similar questions. The dynamic and collaborative nature of the technological ecosystem sometimes contributes to confusion.
That is why we seek to clarify some of the most frequently asked questions about open-source software, and highlight the numerous opportunities for impact this movement brings to the public.
First, what is the difference between free and open source software? Are they the same?
They’re not the same. There is much debate on this topic, so much so that it can turn into a philosophical conversation. While open-source software stemmed from free software, both agree on the openness of software source code and collaborative work to solve problems and improve or adapt the code. The subtle differences between free software and open-source software can be best understood by criteria defined by the organizations in charge.
“Free software” is defined by the Free Software Foundation (FSF) through its four essential freedoms. Some characterize these freedoms as an ethical manifesto to preserve the user’s rights over any other interest. This Foundation has a list of licenses considered free software.
On the other hand, the concept of “open-source” is defined by 10 criteria from the Open Source Initiative (OSI). These incorporate certain adjustments to the free software standards, allowing adaptation for commercial purposes, thus facilitating its reutilization. OSI also provides a list of licenses considered suitable for open-source criteria.
How does software become open-source?
Making the code open means having the source code of the digital tool publicly available. The most common practice is to publish the code on a collaborative platform specialized in software management, known as code repositories. Some of the most well-known ones include GitHub, GitLab, BitBucket, and Sourceforge. At the IDB, we use GitHub to share the open-source code developed in our projects.
The use of these platforms benefits from good practices that promote accessible and reusable code, accompanied by supporting documentation and an appropriate license. We have created a guide of best practices for publishing open-source software that you can access.
Is it dangerous to have the code exposed?
The security of your software is very important. However, in most cases, it shouldn’t be a limiting factor for opening the code. It’s also important to realize that having the code closed doesn’t provide a robust and complete security measure to protect sensitive information.
The United Kingdom, for example, has defined some very clear guidelines in its Digital Services Manual to help decide when to keep code open or closed. According to this guide, the only cases in which the code should remain closed are the following:
- Keys and credentials within the code
- Algorithms used to detect fraud
- Unpublished policy or policy in the process of official publication
The guide offers some additional security considerations when working with open code.
Are governments promoting open-source code?
Yes. The creation and use of open-source software is a trend among governments because of the real impact it is generating. The Data team at the Ministry of Modernization of Argentina has shared some concrete examples of why it is important for them to work with open-source code. Additionally, a very large community can be seen on GitHub and other collaborative platforms where public entities at many levels around the world have shared their code.
In Latin America, there is broad participation in the Gealc Network, which promotes the development of public software, open-source software created for and by governments. These are examples of governments indexing the open-source code of their digital solutions:
Is maintaining open-source code expensive?
First, it’s important to understand that maintaining open-source code is not the same as providing support and maintenance.
To maintain open-source code, GitHub repositories and most collaborative code platforms are free, as long as the repository you maintain is public. If you want private repositories, you will have to pay for them.
Once the code is public on a collaborative platform, you should start thinking about its lifecycle, that is, providing support and maintenance. The evolution of software will depend on many factors, such as the external collaboration it might receive once public and version management as functionalities are added. It is advisable to have someone lead the support management, preferably the person who developed the solution.
A useful way to get others to contribute to the maintenance of your software is by improving its documentation. You can review our software publishing guide in the documentation section.
Should I ask my technology provider to open the code?
Yes. You should ask your provider for the source code, except in cases where proprietary licensed tools have been used in development that prevent distribution.
It is possible to develop high-quality, commercially valuable software using open-source code. This happens when the business model is based on providing services as opposed to just providing a product, leveraging the flexibility offered by open-source technologies.
In conclusion
Code for development’s vision is that the reuse of open-source software presents great opportunities for digital transformation in the region. It’s important to remember that when you create new open-source software, other developers (including those outside your organization) can:
- benefit from your work and build upon it
- learn from your experience, and
- find uses for your code that you haven’t found yet.
Do you have more questions about open source? Write them in the comments!
By Jesenia Rodríguez Paredes, Knowledge Management and Open-Source Technology Consultant at the IDB
Leave a Reply