My research on open source projects
Written by Jaap Jan de Boer on 13th October 2015
Hi! Thanks for reading my blog post. First of all, let me tell you something about myself. I work at Devhouse Spindle as ‘branding intern’ and I’m in my third year of Communication & Multimedia Design at the Hanzehogeschool in Groningen. At the time of writing I’m celebrating my 27th birthday and me and my colleagues just finished a delicious piece of pie (or ‘taard’ as we call it). I’m not a developer like most of my colleagues, but I am doing research in the world of open source development. The past couple of weeks I’ve mainly been reading about the whats and whys of open source. Next to my research, I will be helping with the development of the HelloLily brand as well.
Open source products
Here at Devhouse Spindle, we have built quite a lot of open source products and modules. In the next couple of weeks, I’m doing research to get a better vision of what the motivation is for developers to participate, and what they expect and need from open source projects. The goal of this research is to get to know how we can improve our open source projects at Devhouse Spindle. The first step in my research is to find out what is already written and said about this subject. And that’s quite a lot!
Open source projects consist of products or modules and the surrounding community. Communities are simply groups of individuals sharing knowledge and/or common interests or fascinations. As Keith Sinclair stated in this interview: the community helps you to innovate. External developers may have a completely different view on your product and can stand up against the ideas you have and provide new ideas. They can be of great inspiration for your projects and can provide solutions, fixes and new insights you might never have had yourself.
Why do developers participate in open source?
Scott Wilson and Mark Johnson of OSS discuss in this video about how to engage with and contribute to open source projects. They talk about the reasons to get started with open source and what those projects can do for you. There are many reasons one can participate in open source projects but commonly it’s a personal drive. This drive helps individuals focus on specific goals they wish to accomplish or how they wish to improve their life. For example: participating in open source can be an effective way to develop your career, establish your presence in the field and get recognized. In addition, you can learn a lot because in good projects you will receive advice and mentoring. The second most reason is when developers are also users of a particular product or module and have thoughts about how they can improve it. Of course, there is always the passion for code involved.
In what ways do they participate?
Often, developers want to expand their knowledge after work hours. They can attend meetups, go to events with speakers from the work field and participate in hackathons. These events can be a great way to help build your open source community. For example, OpenLate by OpenDNS grew from a shared after hours co-working event to a community of 2,800 users in two countries. They have built their community with meetups after work hours where people with a passion for code could help develop OpenDNS. With setting rhythm and cross-listing events, they managed to build a big community around their company. OpenLate stresses very strong on sharing the culture and not selling a product. That’s exactly what we are doing at Devhouse Spindle: celebrating and sharing nerd-culture.
The most frequently used ways to communicate with an open source community are mailing-lists, IRC, forums and web-based Q&A. Also an open (on invite) Slack team is becoming very popular in the open source world. Fast (real-time) communication helps for fast development.
What do they need from the project?
Much has been said about running a successful community. Most of the articles or talks I’ve read and watched were from the perspective of the company behind the project. At Devhouse Spindle we are curious about what developers want and need from the project.
Of course it starts with good documentation, letting developers know how they can contribute and make your mission clear. Be active and let everyone know what the current status is and what’s being worked on at the moment.
Chris van Patten from Van Patten Media wrote a blog about how to be a better leader of open source projects. This blog is more focussed on the personal aspect of those projects. Developers must feel welcome in the community, so it’s not smart to piss them off and ignore their input, even if it’s not that good. The code might be sloppy but try to understand why the developer was submitting this code and guide them through the rest of the process. Assist them where needed or point them to examples or documentation that might help them improve their work. Developers want to feel that you appreciate what they have done for you, or what they have tried to do. If you reject their submissions, be clear in your communication towards them about why you are rejecting it so they don’t get the feeling that they are not treated equal and did all their work for nothing.
My next step will be to interview developers from outside the company and ask them about their opinions of the above. This way I will get an even better insight in what developers really search, want and need in an open source project and find out if my literature review is accurate compared to practice.
I would really appreciate your input, so feel free to share your thoughts in the comments section below!