Joone Blog

Why I participate in open source projects

Posted on Oct 12, 2010
Open source

It's already been almost 4 months since I started a new career as an open source developer. Before this, I had worked for a big electronics company, and I had worked on open source projects such as Mozilla, Gtk+, and WebKit since 2007. The job was stable and the salary was good. However, I decided to quit and get involved in these projects as a contributor. So, I'd like to explain why open source is important for developers and the reasons why I participate in open source projects.

What is open source?

Open source is a method of developing software. According to Wikipedia, "Open source describes practices in production and development that promote access to the end product's source materials." It means that anyone can access the source code of open source software. In addition, it should allow anyone to modify the source code and distribute it to anyone. Linux and Firefox are representative results of open source. Therefore, if you find a problem and have a proposal, you can modify the source code and submit it to the maintainers. If your code makes sense, it could be merged into the open source software. If so, many people could use the software you contributed to. Isn't this amazing?

Why people start open source projects

There are various reasons why people start open source projects. Most of these projects don't have a big plan. People just start a project to meet their needs. Some people start their projects just for fun. For example, Linus Torvalds, the creator of the Linux kernel, started the Linux kernel project just for fun during a long winter vacation when he was a university student. Of course, there was a small motivation too. The Unix workstation machine was very expensive, so he had to go to the university to use it. Therefore, he wanted a Unix-compatible operating system that could run on his own 386 PC. After that, many people joined his small project. Currently, the Linux kernel is used for running digital TVs, Android phones, and other embedded devices. Although there are some open source projects that are started by companies for strategic reasons, most open source projects are started for trivial reasons.

Why developers should join open source projects

First, you can improve your development skills by reading the code and getting reviewed by other open source developers. In the case of the Linux kernel, it supports various types of computer architecture, and the source code has been highly optimized over a long time. In addition, much open source software has been verified by being included in commercial software.

Second, you can learn the latest technology, because open source projects are always open to new technology. Anyone can improve the functionality of open source software and suggest new features. In my case, I fixed a Korean Hangul typing problem in WebKit, a browser engine used by the Safari and Chrome browsers.

Third, you can experience the development process of a software product, because the big open source products—the Linux kernel, Firefox, and OpenOffice—have a life cycle and organization similar to commercial software such as Microsoft Windows and Office. For instance, an open source project also requires individuals in various roles, such as developer, tester, graphic designer, technical evangelist, educator, and so on. In addition, most decisions about the project are made through a mailing list or IRC. If you have contributed for many years and have a good reputation, you can have a bigger say in the project. Finally, you can make friends with open source people from all over the world. There are various nationalities and ethnicities in the community. Some people are students, and some are older. Nevertheless, they can share their thoughts and ideas toward the same goal. For the above reasons, I strongly recommend that you participate in open source projects, even if you are not a software programmer.

Why I participate in open source projects

Actually, I am an experienced programmer. I have more than 12 years of software development experience. However, I spent most of my development career working on proprietary software. Fortunately, I met good people in the open source community and learned how to get involved in open source projects. In addition, I was able to work on open source software and had the chance to work together with the community at my previous company. It was a valuable experience, because I learned how to write good quality software through code review and code reading. I could also contribute my abilities and effort to open source projects for the public interest.

Currently, I am working on the WebKit, GNOME, and Mozilla projects as a full-time open source developer. Although I am not making money working on these projects, I'm enjoying the life of an open source developer for the time being. Of course, there are ways of making money working on open source projects. In the future, when I have more experience with open source development, I will try to start my own open source project just for fun.