This is a blog post that I want to write for a long period but never really now how to structure it. Even the title changed for what I had in mind. I’m even not sure how it is structured right now. In essence open source is that the code is made available for anyone and that it can be redistributed. The last means that it needs to have a license in which the copyright holder provides the rights to study, change and distribute the software at no cost to anyone and for any purpose. You can read more about it on Wikipedia.
License
The horror of choosing the right license. I did some checking on Wikipedia and founded some usefull links. While the Wikipedia article about Open source license doesn’t say much the one about Free License and Comparison of free and open-source software licenses does. In my case I work a lot with WordPress and that one is GPL based. When you read the articles you will see that GPL isn’t free as in you can do whatever you want. There are still condition you need to follow. If you would read the license at WordPress then I would think the article is wrong. Open source doesn’t mean free software since in case of GPL you can’t just do what you want since you need to follow certain conditions. But this has a lot to do to with the respect of the project you want to fork. That is also part of the reason why WordPress is GPL. Another reason is that WordPress is a fork of b2/cafelog and that one was also GPL and then you need to choose a GPL compatible license. Read a article about this on IvyCate from Eric Amundson.
Collaborative
In general open source project are developed in a public, collaborative manner as you can see to a lot of the major open source projects. But it’s sometimes hard to find what there focus is for the next release and to me to be really collaborative this is a must have. So when I look at WordPress it was always a riddle what the next major release after the current version would focus on. They try to change it in version 3.8 but till now the focus is still unclear due the plugin based development. They still decide the focus when 3.7 will land.
And when I look at WordPress plugins on WordPress.org you see that the code is open source but the collaboration is mostly missing. It can be really hard to reach out to developers to fix their plugins. This is a general issue since I also had it with a really popular plugin. Also here you see that mostly there isn’t a focus on the next release at all what can be seen as bad as core but in this case it can also lead to better collaboration due the fact that every patch can be added to the development version on the fly.
Open communication
In my opinion this is the most important aspect of the open source development process. When running an open source project all communication should be in a place where everyone can jump in. When that isn’t the case you starting to have a project where the code in open for anyone but the process is still private so you just use code people made for your own benefit. This last involved the collaborative aspect of open source.
It’s important to involve people with the things you do as project owner(s). And every decision need to be made really careful. Nothing should be done in a hurry. Since when you do that you will exclude people from the process and that is never a good thing. This is something that happens in a lot of open source projects. I know it ain’t easy but you should try your best.
Conclusion
To me open source means more then the ability to use the code. It means open in it’s total. Getting involved when you want and be meaningful when you have the time. It should be a collaborative where everyone can join. I even go a step further and that is that when someone contributes a certain amount back that the person gets some kind of co-ownership on that piece of code. That changes are discussed with the person. Most likely the person spent a decent amount of time to achieve what was builded and that should be respected by not only giving credits for it. Even if that is a good start.
So last week I had a talk about a part of this in the WordPress dev chat because I have doubts about how WordPress 3.8 is going to be build. And those doubts are based on my experience in 3.5 when things where changed overnight without the possibility to express my opinion. A valid point was brought up and that was that the ownership of your code changes to the project. So it seems that it means you give it away but it isn’t. This because if you are a part of the project unless the project is only controlled by the project lead/committers. So to me this isn’t clear at all and there should be a better structure/definition for WordPress. The current process is to confusion to me.