Through this article I'd like to dissect some components of open source software projects to help everyone better understand the dynamics involved. This understanding is important because all too often we are involved in just one aspect of a project, and therefore may see it from only one perspective.
I think it's safe to say that everything ultimately depends on the core developers, they are the heart of the project because they create the core product. Without the core product, nothing else can exist. Next, it is obvious that the product has to be useful or there won't be anyone consuming it (there won't be any users). The first dynamic we should look at is what drives someone to join and contribute to a project as a core developer. We should also look at what keeps them devoted.
Essentially, developers contribute to open source because of a shared common vision. They believe in the project's aims and goals, and they want to get involved somehow. The level of contribution is not important, the important thing is they want to. What is most important in understanding this puzzle is that they volunteer their time for free. Since being a developer for an open source project is almost always an unpaid “hobby”, what exactly keeps them contributing? Clearly, it is a passion and belief in the project. That passion can be boiled down to one thing: enjoyment of some kind. So we have two clear facts: belief and enjoyment.
Enjoyment may come in different shades and colours but essentially, it's all the same. IT might include a nice working environment, easy to use tools, or an effective workflow. Belief simply means they like and believe in what the project is, and aims to be. So clearly, the two most important aspects to keep continued participation are that the project remains enjoyable, and that the project progresses towards the shared goals.
Project leadership and management are essential, and greatly help motivate and drive everyone to fulfill the project's road-map. This is still an aspect of the “enjoyment factor&rdquo because an ineffective and uncoordinated project creates an unpleasant and difficult experience—we're looking at what keeps volunteers devoted to an open source project (and not the management–no one participates becauseof the management).
I'm going to briefly touch on our next group, the “extension developers”. Essentially they run their own independent projects, but since they write extensions for the main project, they depend on the core project. Following this, we can see what is important to them (and essential for their continued participation). The core product needs to work, be relatively bug free, and well maintained—if it is not, then their efforts might go to waste in the long term. It is also reasonable that there needs to be a user base. Unless one is coding for one's own needs, we generally write software so it will be used!
The last group are the end consumers (users). The majority of users simply download the software and get on with using it for their own needs. It's as simple as this. They use the software because it solves their particular needs, like making a blog, or a shopping cart, or a membership system, or whatever it is they need. They primarily expect the product to do what they need, do it easily, and be relatively free from bugs. They need support, including documentation, some way to ask questions for things not covered by documentation, and some way to communicate with the development and/or support team (e.g. a forum, a mailing-list, and/or a ticket system). Users are much more interested in end results and ease of use than anything else.
I have tried to share some insight into fundamental dynamics of the various groups within open source projects. This is very much the root level because no matter how much detail you get into, we find the same pattern—people contribute to open source for free because they want to. They only want to contribute because they believe in the project and the will only remain contributing as long as the project is fun to be involved with.
Users of open source products are no different than any other consumer of a product—it's simple supply and demand. Brand names and marketing efforts not withstanding, products that fulfill needs the easiest way will be used more. The only difference is there is generally no financial barrier in open source—for many people the mobile phone they use is the best they can afford, not necessarily the best phone.
In future articles, I'd like to get into more details, building on the fundamentals discussed in this article.