Vad är en Project Fork?

I datortillämpningar är en projektgaffel en situation där en viss aspekt eller funktion av en etablerad mjukvaruprodukt används som grund för att skapa en ny produkt som är inriktad på applikationer som inte är i fokus för den ursprungliga programvaran. Skapandet av projektgaffel är en vanlig företeelse och kan ske med öppen källkod eller fri programvara. Det finns också exempel på ett projektgaffelprojekt som kom till genom att använda någon aspekt av en proprietär mjukvaruprodukt.

Inom processen för mjukvaruutveckling sker en ständig utveckling av nya mjukvarupaket som möter ett växande utbud av konsumentbehov. Ofta ger befintlig programvara inspirationen till dessa nya produkter. En eller två funktioner i ett aktuellt programpaket kan ligga till grund för en ny produkt. I det här scenariot sägs det att den nya mjukvaran ”delade” eller förgrenade sig från den redan existerande mjukvaruprodukten. Den nya projektgaffeln syftar till att förbättra lockelsen för de lånade funktionerna, samt lägga till nya funktioner som inte finns i det ursprungliga mjukvaruerbjudandet.

Användningen av programvara med öppen källkod för att skapa en projektgaffel är relativt enkel. Det finns inget behov av att säkra tillstånd från den ursprungliga utvecklaren, och inte heller något krav på att samarbeta med utvecklarna av den ursprungliga programvaran på något sätt. Det är dock inte ovanligt att utvecklaren av en projektgaffel interagerar med de ursprungliga utvecklarna, ibland till den grad att de arbetar med projektgaffeln tillsammans. Denna nivå av kommunikation och samarbete är dock helt frivillig och är inte ett krav när fri programvara är inblandad.

Med proprietära mjukvaruapplikationer, skapas en projektgaffel normalt av vilken enhet som helst som innehar licensen på den ursprungliga programvaran. Det är dock möjligt för en oberoende utvecklare att ingå ett avtal som tillåter begränsad användning av licensierad programvara i utvecklingen av grenen eller gaffeln. Vanligare är att det företag som kontrollerar den ursprungliga programvaran helt enkelt använder interna resurser för att utveckla projektgaffeln och behålla full kontroll över licensen. Detta tillvägagångssätt används ofta när man utvecklar nya och mer funktionsrika versioner av proprietär programvara, eller skapar kompletterande mjukvarupaket som fungerar med originalprogramvaran.

Det är möjligt att en projektgaffel kan leda till utvecklingen av ett mjukvarupaket som så småningom överskuggar och till och med ersätter den ursprungliga programvaran. Vid andra tillfällen kan gafflar utvecklas bara för att så småningom dirigeras tillbaka till den ursprungliga programvaran och marknadsföras som en ny och förbättrad version.