Qu'est-ce qu'un projet Fork?
Dans les applications informatiques, une fourchette de projet est une situation dans laquelle un aspect ou une caractéristique particulière d’un produit logiciel établi sert de base à la création d’un nouveau produit orienté vers des applications qui ne sont pas au centre du logiciel original. La création de fourches de projet est un phénomène courant et peut être réalisée à l'aide de logiciels libres ou à code source libre. Il existe également des exemples de projets de type "fork fork" qui ont vu le jour en utilisant certains aspects d’un logiciel propriétaire.
Dans le processus de génie logiciel, il y a le développement constant de nouveaux progiciels qui répondent à une gamme croissante de besoins des consommateurs. Les logiciels existants sont souvent l’inspiration de ces nouveaux produits. Une ou deux caractéristiques d'un progiciel actuel peuvent constituer la base d'un nouveau produit. Dans ce scénario, il est dit que le nouveau logiciel est "dérivé" du produit logiciel préexistant. La nouvelle branche de projet vise à renforcer l'attrait de ces fonctionnalités empruntées, ainsi qu'à ajouter de nouvelles fonctionnalités qui ne sont pas présentes dans l'offre logicielle d'origine.
L'utilisation d'un logiciel open source pour la création d'un fork de projet est relativement simple. Il n'est pas nécessaire d'obtenir l'autorisation du développeur d'origine ni de collaborer de quelque manière que ce soit avec les développeurs du logiciel d'origine. Cependant, il n'est pas rare que le développeur d'un fork de projet interagisse avec les développeurs d'origine, parfois au point de travailler ensemble sur le fork de projet. Cependant, ce niveau de communication et de collaboration est totalement volontaire et n'est pas une obligation lorsque des logiciels libres sont impliqués.
Avec les applications logicielles propriétaires, la création d'un fork de projet est généralement effectuée par l'entité qui détient la licence sur le logiciel d'origine. Cependant, il est possible pour un développeur indépendant de conclure un accord contractuel autorisant une utilisation limitée des logiciels sous licence dans le développement de la branche ou de la branche. Plus généralement, la société qui contrôle le logiciel d'origine utilisera simplement des ressources internes pour développer la branche de projet et conservera le contrôle total de la licence. Cette approche est souvent utilisée lors du développement de nouvelles versions de logiciels propriétaires plus riches en fonctionnalités, ou lors de la création de progiciels complémentaires qui fonctionneront avec le logiciel d'origine.
Il est possible qu'un fork de projet conduise au développement d'un progiciel qui finisse par occulter et même remplacer le logiciel d'origine. À d'autres moments, les fourches peuvent ne se développer que pour finalement être réacheminées dans l'application logicielle d'origine et commercialisées comme une nouvelle version améliorée.