Che cos’è un fork di progetto?

Nelle applicazioni informatiche, un fork di 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 il fulcro del software originale. La creazione di fork del progetto è un evento comune e può avvenire utilizzando software open source o gratuito. Ci sono anche esempi di un progetto di fork di progetto che è nato 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 gamma crescente 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 si è “diramato” o si è diramato dal prodotto software preesistente. Il nuovo fork del progetto cerca di migliorare l’attrattiva di quelle funzionalità prese in prestito, oltre ad aggiungere nuove funzionalità che non sono presenti nell’offerta software originale.

L’utilizzo di software open source per la creazione di un fork di progetto è relativamente semplice. Non è necessario ottenere l’autorizzazione dallo sviluppatore originale, né alcun requisito per collaborare in alcun modo con gli sviluppatori del software originario. Tuttavia, non è raro che lo sviluppatore di un fork del progetto interagisca con gli sviluppatori originali, a volte fino al punto di lavorare insieme sul fork del progetto. Tuttavia, questo livello di comunicazione e collaborazione è completamente volontario e non è un requisito quando si tratta di software libero.

Con le applicazioni software proprietarie, la creazione di un fork del progetto è normalmente condotta da qualsiasi entità che detenga la licenza sul software originale. Tuttavia, è possibile che uno sviluppatore indipendente stipuli un accordo contrattuale che consenta un uso limitato del software concesso in licenza nello sviluppo del ramo 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 impiegato quando si sviluppano versioni nuove e più ricche di funzionalità di software proprietario o si creano pacchetti software complementari 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, i fork possono svilupparsi solo per essere infine reindirizzati all’applicazione software originale e commercializzati come una versione nuova e migliorata.