The Brave New World of Open Source
May 09, 2017
The following post is part of a year-long series here on PhilanTopic that addresses major themes related to the center’s work: the use of data to understand and address important issues and challenges; the benefits of foundation transparency for donors, nonprofits/NGOs, and the broader public; the emergence of private philanthropy globally; the role of storytelling in conveying the critical work of philanthropy; and what it means, and looks like, to be an effective, high-functioning foundation, nonprofit, or changemaker in the twenty-first century. As always, we welcome your thoughts and feedback.
_____
Allow me to introduce myself. My name is Dave Hollander, and I'm a data scientist here at Foundation Center. The role of a data scientist is to use techniques from statistics and computer science to make sense of and draw insights from large amounts of data. I work on the Application Development team, which engineers the code in Foundation Center products you use, including Foundation Maps and the new search tool that was launched as part of the redesign of foundationcenter.org.
Like nearly every software development team, the members of the center's Application Development team share code among ourselves as we work on new projects. This allows us to work on smaller parts of a larger machine while simultaneously ensuring that all the parts fit together. The individual parts are assembled during the development phase and eventually comprise the code base that powers the final product. When finished, that code lives internally on our servers and in our code repositories, which, in order to protect the intellectual property contained within, are not visible to the outside world. The downside to keeping our code private is that it does not allow for talented programmers outside Foundation Center to review the code, suggest improvements, and/or add their own entirely new twists to it.
We plan to change that this year.
Open-source software (OSS) is a term for any piece of code that is entirely visible and freely available to the public. Anyone can pull open-source code into their computer and either use it for a personal project or change it and "contribute" those changes back to the original project. Open source is not strictly related to code, however. Wikipedia, which allows anyone to create an account for free and edit articles and entries, is also an example of an open-source project. To ensure a high-level of quality throughout, submissions to Wikipedia are evaluated by volunteer editors, and while a bad entry may sneak through on occasion, the Wikipedia community eventually will find it, review it, and amend it.
Open-source code projects work in much the same way as Wikipedia, but rather than editing text, users edit code and then submit their changes back to the project. The process can be a challenge to monitor, but today there are tools available that make it relatively easy to manage the edits of multiple users and prevent source-code conflicts. The most popular is GitHub, a free service that serves as a repository for code projects and allows any user to make copies of any other project hosted on the platform. Once a project on GitHub is copied, the user can make changes to the original code, or use the code for his or her own purposes.
Much of the code we write here at Foundation Center makes use of open-source tools. Foundation Maps uses JavaScript and PHP to run the pages you see in the Maps application, and both of those scripting languages are the product of long-running open-source collaborations. In my work, I also employ various machine-learning techniques (more details on machine learning coming in a future blog post!) that use open-source tools such as scikit-learn and Keras.
Indeed, given the increasingly important role played by open-source tools and software in our efforts, the Application Development team at Foundation Center has agreed that it's time for us to share some of the tools and code we've created with the broader philanthropic community. Our rationale is simple: not only will it lead to new ideas and use-cases for the code behind those tools, it will help us improve the quality of our own software.
This isn't a new approach. Tech companies have benefited from making their tools available through open source for some time now. In 2015, Google released TensorFlow, a machine-learning tool that enables developers to easily build neural networks (a type of artificial intelligence). And even though Google continues to use the TensorFlow tool internally for its own projects, including speech and image recognition applications, turning the tool over to the broader machine-learning community led the company to make improvements to it, some of which may not have been caught (or thought of) by Google engineers. It's a win-win, in that it benefits the machine-learning community by providing direct access to a powerful tool developed by Google, and it benefits Google by facilitating the continuous improvement of projects that millions of the company's users rely on.
But it's not just Silicon Valley that benefits from open sourcing. A colleague and I recently attended a workshop in London for Open-Ag funders, an initiative to end hunger and food insecurity and reduce poverty globally by ensuring that development actors working in agriculture and food security have the data they need to make smarter investments. We were encouraged by the large number of programmers at the workshop eager to contribute to making the field of agricultural funding more transparent and accessible through code, and we left the event convinced that open-source projects, because they lower barriers for people and organizations not on the cutting-edge of technology, are the wave of the future in both philanthropy and development.
The center's contribution to the Open-Ag workshop was a pledge to build an open-source application for the field. The app will allow anyone to enter a snippet of text — a mission statement, for example — and, using the magic of machine learning, determine how their work aligns with various aspects of the funding universe for sustainable agriculture and development. (For an example of what we have in mind, check out this SDG Indicator Wizard we built for the SDG Philanthropy Platform.) When completed, the app not only will be available to the public, but the code base behind the app will be made available on GitHub.
At Foundation Center, we are committed to leading the charge for greater transparency in philanthropy through the use of data, and we hope the Open-Ag project is the first of many open-source code projects we're able to collaborate on with the broader community (making us a leader in transparency through the sharing of code, as well). As we release projects to the public over the coming months and years, users will be able to access the code on GitHub at https://github.com/fcappdev. (And note to programmers: you'll be able to fork our projects for your own development needs.)
We're excited about our entry into the world of open source, and we look forward to both sharing, and receiving, contributions from other programmers out there. Feel free to drop us a note in the comments section below if you have any questions about our open-source initiative, or if you'd like to be a part of it.
David Hollander is a data scientist at Foundation Center. For more posts in the FC Insight series, click here.
Posted by John Jones | May 26, 2017 at 11:10 AM
Dave, I'd love to speak with you about how we plan to get into the open source space at the Case Foundation. Could you drop me a note at johnj@casefoundation.org? Thanks!