The term “forking” has been used within the software development community for decades. At that time, it mainly referred to copying a piece of software and then developing it parrallel to its trunk copy.

But the term’s meaning evolved over time and now defines a specific phenomenon in software development jargon. So, what does it mean when software is forked? Let's take a look.

What Does It Mean When Software Is Forked?

Person working at desk with computer

Software is forked when a rift occurs within its developing team, which could be due to differences of opinion regarding the project’s direction or personality clashes.

A faction or member of the development team will then take the program’s source code and start independent development under a different name, approach, and direction. So, even though a fork is based on its parent  software’s source code, it is a new and independent project in its own right.

Because it's hard to legally secure the rights to a propriety software source code, forking occurs almost exclusively within the free software development world. This type of software’s “open source” nature also means that any user is within their rights to use, study, change, and distribute both it and its source code.

Related: Nightingale: A Faster, Cleaner Cross-Platform Fork of Songbird Music Player

The Right to Fork

Photo of a keyboard and computer in a dark room

When a faction or member of a development team takes a project’s source code and decides to start independent development, they most of the time do it under a shroud of conflict and animosity. This has led the community to see forking under a bad light.

Related: Why You Should Use Devuan, the Debian Fork

However, many forks have been very successful and even surpassed the original software in popularity, such as Firefox from Mozilla and Ubuntu from Debian. Also, the “open source” nature of free software means that any user or developer team is within their right to use or modify their source code however they like.

Now You Know What Software Forking Is

The term "forking" has been around for centuries and generally refers to a parting of ways. Since the late 20th century, though, it has become a common word within software development communities as well.

If you think you can take a project in a better direction, and the conflict with your colleagues is unresolvable, forking is something you might want to consider.