Ethical Vs. Practical
Why Contribute To Open Source?
Why contribute to open source? This question has been blogged about extensively and, recently, by Brian Rinaldi, who attempts to answer this question in his latest blog post.
His first argument, is that the subtle differences between open source projects and projects in a developer's day-to-day employment, create a unique set of challenges. He states that in general, day-to-day work, the developer is usually coding for a specific situation. Therefore, the developer is aware of how much documentation they must provide, the environment their solution will be deployed in, how much prior knowledge their end-users possess, and which short-cuts are acceptable in the development process. However, in open source projects many of these factors are unknown. This necessitates a higher level of documentation, and sometimes forces the developer to spell out things they would otherwise take for granted as shared knowledge.
“It gives you the chance to understand the complexities of certain problems in a way that you may never encounter otherwise,” he summarises.
Another big plus for Rinaldi is the sense of community that exists between open source developers. In his experience, coding is often a solitary pursuit, where even if you work as a team you are often assigned an individual task. Open source presents a rare opportunity to collaborate with new people. He warns that this may be a slow process, with you beginning your open source career as a bug-fixer, but that “your opportunities will surely grow as your involvement does.” With the public nature of the Bugzillas, project proposals, roadmaps, discussion boards and mailing lists that make up the open source community, it's difficult to argue that open source doesn't encourage collaboration and input.
Meanwhile, others see a more ethical side to the 'why contribute to open source' debate. Ahmed Saeed cites Sun's slogan of "Change (Y)our world” as summarising, for him, what open source is all about. “It's about making You better and making The World better,” he states, explaining that in contributing to open source you are giving back to the community in general, whilst also making the individual developer's life easier, by supplying them with bug fixes and patches to make their day-to-day work run smoother.
But what if all that sounds good, but you aren't a coding whizz? Thankfully, the benefits of participating in the open source community aren't restricted to code masters: coding ability isn't a prerequisite. There are non-coding opportunities, in the form of writing project wikis, tutorials and general documentation duties. Rinaldi describes this as a great starting point for getting to know an open source project from the inside-out, before testing the coding waters. This was seen in practice recently with the documentation for e4, which was co-written with students from the University of Manitoba. The students conducted one hour long telephone interviews with e4 developers, and then wrote the documentation based on what they'd just discovered.
“This was one of if not the first time the Eclipse foundation has received community contributions that are not code based,” reads the project wiki. “We have shown it can be done!”