Il fork consiste nel prendere il codice sorgente da un programma software open source e sviluppare un programma completamente nuovo.
Il fork è spesso il risultato di una situazione di stallo in un progetto open source che è così insormontabile che tutto il lavoro si interrompe. In genere ciò accade quando i membri del team di sviluppo non sono in grado di risolvere i conflitti personali o non riescono a raggiungere un consenso sui passaggi successivi. I fork possono anche verificarsi quando i membri principali di un team di sviluppo open source decidono di non affrontare casi d'uso che altri membri della comunità di sviluppo ritengono importanti.
I fork del software possono essere controversi quando duplicano gli sforzi, ma la maggior parte degli sviluppatori concorda sul fatto che il diritto al fork è la più grande forza del software open source. Un fork di successo può far risparmiare tempo di sviluppo, ispirare altri usi per il vecchio codice e creare nuove opportunità di business. Per essere considerata un fork, la versione più recente del software deve avere il proprio nome e la propria comunità di sviluppatori. Quando un nuovo programma rimane compatibile con il programma originale, viene indicato come un fork superficiale.
Il nome fork deriva dallo standard POSIX per i sistemi operativi. In questo contesto, un fork è un processo che genera una copia di se stesso.