Un fork (o branch), nell'ambito dell'ingegneria del software e dell'informatica, indica lo sviluppo di un nuovo progetto software che parte dal codice sorgente di un altro già esistente, a opera di un programmatore.[1][2]
Il termine è usato (più raramente) per indicare questo tipo di condizione anche per progetti e attività non necessariamente legate al software e all'informatica, sebbene nella maggior parte dei casi ci si riferisce a progetti di software libero e/o open source: infatti per questo tipo di licenze software, non è richiesta alcuna autorizzazione formale da parte dello sviluppatore originario per la loro modifica o il loro sviluppo a partire dai codici sorgenti ed è più facile dunque iniziare un fork.