A Fork is a line of computer software which has split of from the original product. When a fork begins, the source code of a program is taken and modified independently of the original project. (this process is sometimes called "shattering."[1]) Although based on the original software line, it will become progressively more distinctive unto itself. Forks are generally created when the main project is thought to be dying or going in the wrong direction.