Open source developers can create an immense amount of value for any company that relies on open source software by giving the company the ability to direct and influence aspects of the open source community. This allows the company to shape the tools they rely on, making them better fit their needs: a phenomenon otherwise known as “scratching their own itch.”
While an open source developer’s primary skill is writing good code, their value extends far beyond technical skills. Adopting open source practices requires participation in diverse communities that have a number of stakeholders who each have their own itches to scratch. Open source developers find themselves in a complex position that requires them to be experts not only in their technical field, but also in communication and collaboration. Open source development is a collaborative process that happens all over the world, and our group is no different with developers across 4 continents. We have many people in our group who are deeply familiar with the open source process, and it’s been our job to figure out how to make this process work within Samsung. A big part of this has been the IT infrastructure we’ve put in place.
The Tools of the Trade
The Open Source Group has a fairly unique set of needs when compared to Samsung at large, and we’ve been given the freedom to deploy infrastructure that best suits our open source methodology. Naturally, we’ve chosen open source tools as the foundation for our infrastructure, and we’ve done our best to allow our group to work internally with all of the same tools that make up the most successful open source communities.
Real-time Communication – IRC
An IRC server allows our developers to handle short, quick communications with each other. It can also provide an informal location for water-cooler chatter that helps build a sense of community in our distributed environment.
Asynchronous Communications – Mailing Lists
Mailing lists are great for people to ask questions or discuss anything related to the open source work. Our group has numerous collaborations going on at any single time with both internal and external groups, communities, and organizations. We use Mailman to for our mailing lists which makes it incredibly easy for everyone to stay in the loop or catch up on projects through the archives.
Reporting and Documentation – Wiki
Wikis are the benchmark for providing information in a form that can be manipulated easily which is also easy for a human to read. In most open source communities, this is the primary resource for learning the inner workings of an open source project. A good wiki is functional, extensible, and capable of being automated in some manner. We use TWiki for all of our internal reporting as well as the recently-launch Gear VRf project, but there are dozens of great open source wikis to choose from. We’ve also found great use of Python Mechanize as a way to automate weekly patch and status reporting through our wiki.
Public Web Presence – WordPress, Drupal
A public website is the best platform for delivering the most important information for an open source project. This type of outlet is ideal for sharing release information, general community developments, and high-level project developments. The site you are currently looking at runs on WordPress, which is a great tool for beginners and experts alike.
Collaborative Development – Git
We use Git when we need to collaborate both with internal teams at Samsung as well as people in the open source community at large. Git is such a simple, yet powerful tool that is used to develop software all over the world, and we use it to share projects like our brand new port of Tizen for the Raspberry Pi 2.
No list of open source IT infrastructure is complete without mentioning Linux. Most of our team does their day-to-day work using various desktop distributions, and all of our servers run Linux.
Establishing Open Source at Samsung, One Tool at a Time.
We’ve realized one of the most powerful tools any team can have is flexibility because open source is constantly changing and always offers new solutions to all types of problems. Rarely does a tool fit the job perfectly, which means the ability to to customize applications by modifying the code and automate them through custom scripting is invaluable. This need for customization and automation is the primary reason open source has proven to be so useful for us from an infrastructure perspective. We are fully committed to open source simply because of how valuable it can be to the development of modern software and technology, and we are valuable to Samsung not only through our contributions to open source, but also in how we leverage the benefits of open source in our everyday use. The business case for open source IT infrastructure is strong; feel free to share your insights about it in the comments below.