O que é um garfo de projeto?
Em aplicativos de computação, uma bifurcação de projeto é uma situação em que um aspecto ou recurso específico de um produto de software estabelecido é usado como base para criar um novo produto voltado para aplicativos que não são o foco do software original. A criação de garfos de projeto é uma ocorrência comum e pode ocorrer usando software livre ou de código aberto. Existem também exemplos de um projeto de fork do projeto que surgiu usando algum aspecto de um produto de software proprietário.
Dentro do processo de engenharia de software, há o desenvolvimento constante de novos pacotes de software que atendem a uma gama crescente de necessidades dos consumidores. Freqüentemente, o software existente fornece a inspiração para esses novos produtos. Um ou dois recursos de um pacote de software atual podem formar a base para um novo produto. Nesse cenário, diz-se que o novo software "bifurcou" ou ramificou o produto de software preexistente. A nova bifurcação do projeto procura aprimorar o apelo desses recursos emprestados, além de adicionar novos recursos que não estão presentes na oferta de software original.
O uso de software de código aberto para a criação de um fork do projeto é relativamente simples. Não há necessidade de garantir a permissão do desenvolvedor original, nem a necessidade de colaborar com os desenvolvedores do software de origem de nenhuma maneira. No entanto, não é incomum o desenvolvedor de uma bifurcação do projeto interagir com os desenvolvedores originais, às vezes a ponto de trabalhar juntos na bifurcação do projeto. No entanto, esse nível de comunicação e colaboração é completamente voluntário e não é um requisito quando o software livre está envolvido.
Com aplicativos de software proprietários, a criação de uma bifurcação do projeto é normalmente conduzida por qualquer entidade que possua a licença do software original. No entanto, é possível que um desenvolvedor independente assine um contrato que permita o uso limitado de software licenciado no desenvolvimento da filial ou da bifurcação. Mais comumente, a empresa que controla o software original simplesmente usará recursos internos para desenvolver a bifurcação do projeto e manter o controle total da licença. Essa abordagem geralmente é empregada no desenvolvimento de versões novas e mais ricas em recursos de software proprietário ou na criação de pacotes de software complementares que funcionarão com o software original.
É possível que uma bifurcação do projeto leve ao desenvolvimento de um pacote de software que ofusque e até substitua o software original. Em outros momentos, os garfos podem ser desenvolvidos apenas para eventualmente serem roteados de volta para o aplicativo de software original e comercializados como uma versão nova e aprimorada.