Week 5: Learning about how and why large companies contribute to open source

When I think about a large corporate tech company, I would assume that they would prefer to keep their code secret to gain a competitive advantage against their competitors. This makes a lot of sense if one approaches from a corporate point of view. They don’t want other companies to copy their valuable work, which they have invested in months to build. However, like all of the fast changes in the technology world, this norm is changing as well. We see large companies like Bloomberg, Google, Facebook, Twitter, etc. adopting open source and contributing to them. Currently, there are more than 4200 startups worldwide (Source: Statista), and the numbers are increasing every single day. Imagining that all of these companies would develop the required software tools from scratch or deal with licensing software from other companies is not feasible. Imagine every time you want to eat a burger; you need to farm crops, raise cattle, and probably wait like a year. (By the way, there is a really interesting YouTube channel that explains how to make everything from scratch. I would definitely recommend taking a look at the videos to understand what I mean.) So, utilizing the open source software starts making more sense when we approach from this point of view.

Kevin P. Fleming’s Talk

Open sourcing a proprietary software probably is not an easy decision to make for large companies (Source)

Last week’s talk by Kevin P. Fleming was focused on this topic, “How/why Bloomberg uses and contributes to open source?”. During his talk, he has mentioned Bloomberg used to use licensed proprietary software to manage their infrastructure, and they decided to switch to open source after the maintainer of the original software bankrupted. They realized building the required software from scratch didn’t make sense since there was an open source version of it. So, they decided to contribute to open source software to bring this software to a quality that is suitable for their Bloomberg terminal infrastructure while making the software available to everyone. I think this approach is beneficial both for Bloomberg and humanity because Bloomberg spends less time and money to develop these software tools while helping the other organizations utilize powerful tools to create a healthy competition. Before Kevin P. Fleming’s talk, I thought that large companies were all about proprietary software, and his talk changed my view on this matter. It was surprising for me to see their deep involvement in the open source community. They work on essential aspects of open source like licensing because they have the time and resources to work on these issues. Regular contributors might not want to deal with arguably boring licensing topics, but Bloomberg has many lawyers that can work on these issues. Definitely, Bloomberg’s involvement in the open source improves the quality of the projects. This is something I haven’t realized before, and Kevin P. Fleming’s talk made me realize and learn how these large companies can be helpful for the open source community.

Open Source Project Evaluations

The class right before Kevin P. Fleming’s talk, we have focused on evaluating some of the open source projects such as Ghidra, GNOME Clocks, Godot, Inkscape, Jupyter, and OpenEMR. My team was tasked to evaluate Ghidra, which is a software reverse engineering suite released by the National Security Agency. Ghidra is not an open source project by design, and it is very evident when we look at its GitHub repository and the official website. Indeed, it used to be a highly classified project, and it was just released last year. For example, the official website does not contain a lot of information, and it contains links to their GitHub repository. When we check the GitHub repository and the Wiki page, we see that there is almost no information about how to contribute to the project. There is a developer guided in one of the folders, but it is easy to find, either. I heard about Ghidra when it was first released last year, and this was the first time I visited their GitHub repository. I was expecting to see more documentation and information about how to contribute to the project. I was surprised to see such an undocumented repository. I think they should consider participating in Google Season of Docs to get some help with generating the documentation 😀. It was also really challenging to navigate within the codebase. DeDefinitely it requires a lot of technical expertise and knowledge to un understand the written code, and I think it almost impossible for me to fully understand the code base as an undergraduate student. These being said, I fell more ready for selecting a project to contribute to because I learned what to look for while choosing projects. A project like Ghidra might sound really cool to contribute to, but if I don’t understand the code base, I cannot contribute to the project. Also, we need to have various channels to interact with the community that we can ask a question when we get stuck. This aspect is missing in Ghidra as well. I couldn’t see any evidence for the existence of the “Ghidra community”. There is no IRC or user forum at the moment. I learned these communication channels are crucial for successfully contributing to open source projects.

My Open Source Project Contributions So Far

I haved added my highschool on OpenStreetMap.
Left: Before my changes, Right: After my changes

So far, my biggest contribution to the open source world is adding my high school to the OpenStreetMap. It is quite a big campus, and it took multiple days to finish making the required edits. I wanted to do more than only adding the building themselves since they exist on Google Maps as well. Instead, I have added the nicknames of the buildings and other special places that only students know about. So, it both functions as a map and storage & conveyor of the school culture.

Additionally, in my Operating Systems class, my professor showed an open source project to us and wanted us to use it. Guess what! That open source project doesn’t have a license! I reported this situation in their GitHub repository, and no one replied yet. I have also fixed small typos on the class website & the Tor Project website, and I have found some security vulnerabilities. I have reported all of these issues in the corresponding repositories.

Written before or on February 29, 2020