Open Source Handbook "A manager's guide to the business and organisational applications of open source technologies"

Project evolution

This process of feedback of fixes and the addition of extra facilities has another importance consequence: the software continues to evolve. There is also a tendency for new projects to be "forked" from the original project. This diagram illustrates forking taking place in an example database Blue DB:

Evolutionary forking of an open source project

Blue DB starts off at version 1.1 and undergoes another three releases until it reaches version 2.2. However, while Blue DB is at version 1.1 a second team decide that although they like the original Blue DB they would like to fork a completely new version with different functionality. This new version is based on the source code of Blue DB 1.1 and becomes Green DB version 1.0. Later on, a new version of Green DB is released which is optimized to operate on mobile devices. The end result of this evolutionary forking of the project is that there are now three different versions which - although they share substantial portions of their source code - have different functionality. In the open source world this process is extremely common and explains why there are often so many different projects and applications around.