When SourceCode is forked, two or more groups, with different visions, develop the code to their own ends. The NetworkEffect is a powerful deterrent to forking, since halving the number of developers working on the source for a project more than halves the productivity of each group. In most (though not all) cases all but one of the forks eventually withers and dies, ironically leaving the remaining fork with a much more clearly defined vision.
Well-known examples include
Some interesting analyses of the pros and cons of forking are:
See also OpenSource
see fork(2)
the fork system call is fun, it returns twice... once in each different process. it returns 0 to the child, and the pid of the child to the parent. Very funky :)