Following with the articles regarding Karl Fogel’s book “Producing Open Source Software“, today I’m going to talk about any project needs when we’re developing and released a free software project.
As Karl Fogel says, any project needs the follows things:
- Web site.
- Mailing lists.
- Version Control.
- Bug tracking.
- Real time-chat.
1) Web site:
This is the primary thing that any free software project needs, and I’m dare to say that in our days, anything needs a web site, a company, a product, people, etc. if you aren’t in Internet… maybe could be mean that you don’t exist😉
In this web site you have to advertise your project, put information, say what license use it, maybe who are you, and anything that you believe is important for give information to your potential users and collaborators.
2) Mailing lists:
You need give a way to communicate asynchronous. Mail is a basic and old mechanism to communicate using this way, is fast, efficient, light, and all people knwon how it runs.
Maybe mailing lists, is my opinion, is not the main feature to communicate between the collaborators of the project, I think that mailing lists is a good way to do this, but in projects where have already people as collaborators, in projects where are just to release, maybe create a maling list is more difficult and is not friendly that use forums.
I think forums is a good way to comunicate with your users and collaborators in the same way that using mailing lists, maybe using this two ways are the best option, but as I said, create mailing lists when nobody knows about your project, and you have users than wants information in a fast way visiting your web site, forums are a godd way to do this without sobscriptions and as very direct way.
3) Version control:
This is the most important thing regarding the develop.
This is where there is the code, a version control system is mandatory for any free software project. A version control give appropriate tools to developers for collaborate in the project.
Exists different version control systems, like Git, Subversion, CVS, Mercurial, etc. choose one of them maybe be a complicated election, you must have in charge usability, what is more popular between them, what give you more tools to control all around the project and collaborators, etc.
4) Bug tracking:
Bug tracking is another importat tool for give develop to a good point.
This tool give to developers the way to put bugs that they find and establish the importance inside the project, developers can take the bug problem for them and try to fix it, etc.
Something wrong to almost all bug tracking systems is the flood problem (flood problem is when a forum or similar is full of non-sense posts or post with same meaning, etc.) which becomes a bug tracking system into a forum, this must be avoided, but do it, is very difficult.
5) Real-time chat:
We have already the asynchronous comminication tools, but now, we need other synchronous tools, a real-rime chat is a very important thing to discute topics in real time.
As Karl Fogel says, a real-time chat must be only for fast question/answers exchages and for very light discussions, for other things that there aren’t this the real-time chat not is the ideal tool, is better to use other asynchronous tools like forums or mailing lists.
This is not ideal to important things or big discussions because real-time chat make use of that, real-time, in communities people is very easy that they aren’t in the same countries or in the same hourly zone, even many of developers can’t talk in English like an english native developer and for this talk in real time can be very difficult, for this things, a real-time chat is only for previous topics that I’ve said.
All of this mechanism to promote and use your project would be difficult to develop in alone way, if each developer would had develop by his own this tools release a free software project would be a tedious and complicate task, for this, exists several websites where we can found all of this tools in the same place.
This places are called forges and give to developers all mentioned tools and much more, sites like SourceForge, Google Code, BerliOS, Savannah, Launchpad, Github, etc. offer in free way mechanisms to develop, release, and collaborate in any free software project, yours or others.
Well, that’s all, see you my friends!!!