Cos'è un Project Fork?
Nelle applicazioni informatiche, un fork del progetto è una situazione in cui un particolare aspetto o funzionalità di un prodotto software consolidato viene utilizzato come base per la creazione di un nuovo prodotto orientato verso applicazioni che non sono al centro del software originale. La creazione di fork di progetto è un evento comune e può avvenire utilizzando software open source o gratuito. Ci sono anche esempi di un progetto fork del progetto che è stato creato utilizzando alcuni aspetti di un prodotto software proprietario.
All'interno del processo di ingegneria del software, c'è il costante sviluppo di nuovi pacchetti software che soddisfano una crescente gamma di esigenze dei consumatori. Spesso, il software esistente fornisce l'ispirazione per questi nuovi prodotti. Una o due funzionalità di un pacchetto software corrente possono costituire la base per un nuovo prodotto. In questo scenario, si dice che il nuovo software "biforcasse" o si ramificasse dal prodotto software preesistente. Il nuovo fork del progetto mira a migliorare il fascino di quelle funzionalità prese in prestito, oltre ad aggiungere nuove funzionalità che non sono presenti nell'offerta software originale.
L'uso di software open source per la creazione di un fork del progetto è relativamente semplice. Non è necessario ottenere l'autorizzazione dallo sviluppatore originale, né è necessario alcun obbligo di collaborazione con gli sviluppatori del software di origine in alcun modo. Tuttavia, non è raro che lo sviluppatore di un fork del progetto interagisca con gli sviluppatori originali, a volte al punto di lavorare insieme sul fork del progetto. Tuttavia, questo livello di comunicazione e collaborazione è completamente volontario e non è un requisito quando è coinvolto il software libero.
Con applicazioni software proprietarie, la creazione di un fork del progetto viene normalmente condotta da qualsiasi entità detenga la licenza sul software originale. Tuttavia, è possibile che uno sviluppatore indipendente stipuli un accordo contrattuale che consenta un uso limitato di software concesso in licenza nello sviluppo della filiale o del fork. Più comunemente, la società che controlla il software originale utilizzerà semplicemente le risorse interne per sviluppare il fork del progetto e mantenere il pieno controllo della licenza. Questo approccio viene spesso utilizzato quando si sviluppano versioni nuove e più ricche di funzionalità del software proprietario o si creano pacchetti software associati che funzioneranno con il software originale.
È possibile che un fork del progetto possa portare allo sviluppo di un pacchetto software che alla fine oscura e addirittura sostituisce il software originale. Altre volte, le forcelle possono svilupparsi solo per essere reindirizzate all'applicazione software originale e commercializzate come una versione nuova e migliorata.