More Bang for Your Buck: How Open Source Software Spurs International Development
Anyone planning to build a website, mobile app, or other system must make the choice between using proprietary software — commercial licensed software — and open source. Open source code, as the name implies, is open and available for the world to see. This means that many developers are familiar with its syntax, functions, and capabilities. Compared to proprietary software, there are fewer barriers to use and support of the software. This is one reason that the open source software world is rapidly growing.
Why do people choose proprietary software?
Proponents of proprietary software argue that buying an out-of-the-box solution that satisfies 80% of your requirements and is customizable enough to satisfy your particular implementation is more sustainable, given that the software vendor provides support as long as license fees are paid. This removes some of the need for in-house implementation support staff. Proprietary software provides the help desk with an easy answer to some tough questions. For example, when a user asks for a feature to be changed, the answer is often simply, “That’s not how the software works.” You can’t argue with that!
Open source can be great — if you play by the rules
Using open source is not necessarily cheaper than proprietary software. But it offers a valuable benefit: The code can be customized. This is great, but it can also drain time and resources. As proponents of proprietary software know, the danger lies in the customizations. Even if all the software used in a Web development project is open source, if the code is not well implemented, tested, up-to-date, and documented, then it is not a sustainable solution.
This is why open-source communities take care to create mechanisms for testing, updating, and sharing knowledge openly on the Web. This builds the capacity of everyone who cares enough to participate in the community. This knowledge exchange is a great example of knowledge management growing organically on the Web.
With proprietary software, the code is protected, and the product is customizable only within the limits of the user interface. This “protection” of the code keeps it hidden and limits the capacity of others to increase their knowledge of the code. While tight control of the code can limit the number of bugs and vulnerabilities introduced into the system, it can also limit the ability to improve and enhance the software. With open source code, changes can be made by anyone, but if the proper procedures are not followed, things can go downhill quickly.
Building sustainability by giving back
The power to use, change, and create software comes with a lot of responsibility. There is a correct way to work in the open source community. Over the years, software projects have developed well-defined sets of rules to make the projects sustainable. One key rule: Contribute back to the community. This sounds like a request for donations — you should give your hard work back to the community because of the head start that the community gave you by providing that initial download of code. That’s a good reason for contributing back, but it is really only a very small piece of the open source ecosystem.
The real reason for contributing back is that it makes open source so much more sustainable than proprietary software. When software is contributed back to the community, it goes through code review that ensures that the code meets accepted standards. This is done with both automated code review tools and through manual, human review. In the Drupal community, for instance, code review is incentivized. Your contributed code gets reviewed and approved faster if you review other projects, or contributed modules. This way, you get third-party feedback from other developers to ensure that your code is up to standards, which, many times, leads to improvements. You will often see suggestions for alternative ways to handle tasks within the software. This controlled crowd sourcing takes advantage of a large group of knowledgeable, engaged, and interested community members who all have a stake in the success of the software.
Once the software has been approved and made available to the rest of the community, you are no longer saddled with the responsibility of being the only person who knows the code. When others start using it, they find bugs, submit patches, test it in different environments, and make suggestions for improvement. The community is made up of a wide range of experts who provide feedback on performance, security, integration, and every other aspect of software deployment.
Thriving beyond the funding cycle
Development projects often last five or less years. As connectivity increases around the world, the dissemination of information happens most often and effectively on the Web. Knowledge is increasingly shared and managed online. The problem? Donors can spend huge amounts of money building innovative software solutions that may not be supported when projects come to an end.
The use of open source software by itself does not ensure sustainability.
Since code can be customized, when new developers take over a project that has not been contributed back to the open source community, they are dependent on the original developer’s coding standards and documentation. In many cases, this code has not had recent security or maintenance updates. A lot of effort needs to be put into reverse engineering the customizations in order to be able to adequately support the software.
If software has been contributed back to the community, however, it is a known commodity. The community supports this software by using it and communicating with the maintainer about problems, security, and enhancements. This knowledge exchange supports the sharing of best practices and the sustainability of the software. As long as the software has been modified in a way that allows contributed code to be kept up-to-date and those modifications, if generic and substantial enough to be contributed back to the community, become their own projects, then the software is sustainable.
By sharing software, the contributor is building capacity of the community. This capacity-building supports knowledge management activities at the regional and country level by providing open source software and a connection to global, regional, and local resources.
The growth in popularity of open source content management systems improves interoperability. With a common code base, software modules that will connect one website to another through the use of feeds, importers, APIs, and Web services allow a seamless flow of knowledge. As use of the common code base increases, the capacity for support of the code base will also increase. Web tools like project pages, issue queues, and support documents are all shared to build capacity within the community to use and support the software.
The more donors, developers, site owners (administrators), and other users join the open source community, the more sustainable a solution it becomes for international development projects.
Say a ministry of health in a southern African country needs a website to provide health workers with the best local information related to family planning and reproductive health.
After doing a needs assessment and determining that the ministry would be well served by having a website that acts as both a repository for important documents and a knowledge exchange forum, they begin to look at possible solutions. They find that an open source website installation would satisfy most of their website requirements and be an excellent way to provide collections of documents with space for discussion and localized knowledge exchange. They plan for a phased approach to building the site and consider integrating eLearning components into the same content management system.
Since the ministry of health IT staff has very limited resources, they choose a local IT provider to do the initial build. The contract between the ministry and the IT provider stipulates that open source software will be used for the entire implementation, and the ministry IT staff is trained to support the implementation. While this decreases the leverage that the IT provider had — being the only person familiar with the code — it provides additional streams of revenue for him: training, documentation, and support. Since the ministry IT staff is small, they maintain a relationship with the IT provider. They also establish a new relationship with the open source community. The staff engages with the community and learns to support the website with the help of the online resources and direct support provided by the community.
The wave of the future
As connectivity continues to grow in the low- and middle-income countries, so will their ability to participate in robust open source communities. Since open source software removes the initial cost barrier, provides support, engages users, and encourages participation, it is an attractive option for users in resource-scarce settings. For long-term, scalable international development, donors and program managers must recognize open source software as the best, most sustainable choice.
Did you find this article helpful? Follow the The Exchange for more useful information on how to better curate, synthesize, and share knowledge.