Vad är en projektgaffel?
I datorapplikationer är en projektgaffel en situation där en viss aspekt eller funktion hos en etablerad programvaruprodukt 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. Skapa projektgafflar är vanligt förekommande och kan ske med öppen källkod eller gratis programvara. Det finns också exempel på ett projekt gaffelprojekt som kom till genom att använda någon aspekt av en egen mjukvaruprodukt.
Inom processen för programvaruteknik sker den ständiga utvecklingen av nya programvarupaket som möter ett växande utbud av konsumentbehov. Ofta ger befintlig programvara inspiration för dessa nya produkter. En eller två funktioner i ett nuvarande programvarupaket kan utgöra grunden för en ny produkt. I det här scenariot sägs det att den nya mjukvaran "gaffas" eller förgrenas av den tidigare befintliga mjukvaruprodukten. Den nya projektgaffeln syftar till att öka tilltalandet av de lånade funktionerna, samt att lägga till nya funktioner som inte finns i det ursprungliga programvarutbudet.
Användningen av open source-programvara för att skapa en projektgaffel är relativt enkel. Det finns inget behov av att säkerställa tillstånd från den ursprungliga utvecklaren, och inget krav att samarbeta med utvecklarna av den ursprungliga programvaran på något sätt. Det är emellertid inte ovanligt att utvecklaren av en projektgaffel interagerar med de ursprungliga utvecklarna, ibland så att man arbetar tillsammans med projektgaffeln. Emellertid denna nivå av kommunikation och samarbete är helt frivillig och är inte ett krav när fri programvara är inblandad.
Med egenutvecklade programvaror, skapas normalt en projektgaffel av den enhet som innehar licensen på den ursprungliga programvaran. Det är dock möjligt för en oberoende utvecklare att ingå ett avtalsavtal som tillåter begränsad användning av licensierad programvara vid utvecklingen av filialen eller gaffeln. Mer vanligt kommer företaget som kontrollerar den ursprungliga programvaran helt enkelt att använda sig av husresurser för att utveckla projektgaffeln och upprätthålla full kontroll över licensen. Denna metod används ofta när man utvecklar nya och mer funktionsrika versioner av egen programvara eller skapar kompletterande programvarupaket som fungerar med den ursprungliga programvaran.
Det är möjligt att en projektgaffel kan leda till utveckling av ett programvarupaket som så småningom överskuggar och till och med ersätter den ursprungliga programvaran. Vid andra tillfällen kan gafflar utvecklas för att så småningom dirigeras tillbaka till den ursprungliga programvaran och marknadsföras som en ny och förbättrad version.