8 facteurs à prendre en compte lors du choix d'un système de contrôle de version

FERGUS BAIRD / UNITY TECHNOLOGIESSenior Content Marketing Manager
Sep 23, 2021|10 Min
8 facteurs à prendre en compte lors du choix d'un système de contrôle de version
Cette page a été traduite automatiquement pour faciliter votre expérience. Nous ne pouvons pas garantir l'exactitude ou la fiabilité du contenu traduit. Si vous avez des doutes quant à la qualité de cette traduction, reportez-vous à la version anglaise de la page web.

La mise en œuvre de votre premier système de contrôle des versions ou le passage à un nouveau système peut s'avérer difficile, mais l'impact à long terme en vaut la peine. Voici ce qu'il faut prendre en compte lors du choix d'un système de contrôle de version, avant de s'engager.

La création d'un jeu est une entreprise gratifiante mais souvent chaotique. Au cours du développement, de nombreux membres de l'équipe ayant des rôles distincts et des niveaux d'expertise technique variables travaillent sur le même projet, en essayant de s'aligner sur un processus de production unique. Il peut être difficile de coordonner les activités de plusieurs personnes à la fois, et ce défi s'accroît de façon exponentielle au fur et à mesure que votre équipe s'agrandit.

Lorsque des problèmes surviennent, le temps qu'il faut pour les identifier et les résoudre peut ralentir tout - et tout le monde. D'où l'importance de choisir le système de contrôle des versions (VCS) le mieux adapté à vos objectifs.

Fonctionnement du contrôle de version

Le contrôle des versions vous permet de conserver une vue d'ensemble de votre projet. Il apporte une organisation fondamentale à votre travail, ce qui permet à votre équipe d'itérer rapidement et efficacement. Mais comment ?

Les fichiers du projet sont stockés dans une base de données partagée appelée "dépôt" ou "repo". La gestion de vos fichiers de cette manière vous incite à sauvegarder votre projet à intervalles réguliers et à revenir à des versions antérieures si les choses ne se déroulent pas comme prévu.

Avec un VCS, vous pouvez apporter plusieurs modifications individuelles et les "valider" en tant que groupe unique pour la recherche de sources d'approvisionnement. Le groupe de modifications est ainsi regroupé, de sorte que lorsque vous revenez à une version antérieure, toutes les modifications de ce même groupe sont annulées. En fait, vous pouvez revoir et modifier chaque changement regroupé dans un "commit", ou annuler le "commit" dans son intégralité. Comme vous avez accès à l'historique complet, vous pouvez plus facilement retracer et éliminer les bogues, ainsi que restaurer toutes les fonctionnalités précédemment supprimées.

De plus, comme le contrôle des versions est généralement stocké dans le cloud ou sur un serveur distribué, il favorise la collaboration de votre équipe de développement au-delà des fuseaux horaires et des zones géographiques - un avantage de plus en plus important à mesure que le travail à distance se banalise.

Pourquoi migrer vers un nouveau système de contrôle de version ?

Passer d'un système de contrôle de version à un autre peut être difficile, surtout si cela signifie changer la technologie sur laquelle votre équipe s'appuie en milieu de projet. Mais prendre une décision en connaissance de cause avant de s'engager peut s'avérer payant.

Voici quelques raisons courantes de mettre en œuvre ou de passer à un nouveau système de contrôle des versions :

  • Amélioration de la collaboration entre les différentes équipes
  • Prise en charge rapide de la gestion de fichiers binaires et de biens volumineux
  • Un flux de travail basé sur les fichiers pour apporter des modifications à des fichiers uniques sans télécharger l'ensemble du projet.
  • Des solutions de ramification flexibles et robustes pour permettre à vos coéquipiers de travailler en parallèle (et pas seulement à quelques uns d'entre eux)
  • Intégrations améliorées avec vos outils de développement actuels
  • Une sécurité renforcée pour protéger vos projets
Ce qu'il faut prendre en compte avant de prendre une décision

Voici huit facteurs clés à prendre en compte lors du choix de votre prochain système de contrôle de version :

1. Votre équipe

La mise en œuvre ou le passage à un nouveau VCS sert principalement à renforcer le travail d'équipe. Que ce soit sur place ou à distance, le contrôle des versions vous permettra, à vous et à vos collègues, de vous coordonner tout en travaillant de manière indépendante. Pour répondre aux besoins spécifiques de votre équipe, posez-vous les questions suivantes : Combien de personnes utiliseront ce nouveau système ? Quel est leur niveau d'expertise technique ? Que pensent-ils de vos options actuelles - et qu'attendent-ils de quelque chose de nouveau ?

Pour améliorer la productivité, il faut s'assurer que chacun est en mesure d'effectuer des changements, sans intervention technique. Le choix d'un système facile à utiliser pour tous les membres de l'équipe, y compris les artistes non techniques, peut réduire le coût émotionnel du passage à un nouveau VCS. Moins de résistance permet une adoption rapide, suivie de résultats rapides.

2. Types et tailles de fichiers

L'expansion du secteur des jeux s'accompagne d'une augmentation des attentes des consommateurs. Les joueurs attendent toujours de meilleurs graphismes, des lancements sans bogues, des mises à jour après le lancement et une assistance de qualité. Pour les développeurs, les enjeux sont importants - et ils vont le devenir encore plus.

La complexité croissante de la conception des jeux implique de travailler sur des projets plus complexes et de les gérer, avec un éventail plus large de types de fichiers, des fichiers plus volumineux et des dépôts potentiellement énormes. Pour mettre en place des flux de travail fluides et des fusions rapides, optez pour un VCS capable de gérer vos projets à grande échelle. N'oubliez pas que le choix d'un système de contrôle des versions est un travail de longue haleine. Même si votre équipe ne traite pas de fichiers volumineux aujourd'hui, vos besoins évolueront certainement un jour. Pensez à l'avenir pour vous assurer un succès durable.

3. Facilité d'installation et de maintenance

Ce facteur renvoie au premier élément de notre liste : votre équipe. Votre équipe dispose-t-elle du temps, de l'expertise et de la marge de manœuvre nécessaires pour mettre en œuvre et maintenir un nouveau système de contrôle des versions ? Quelle est la rapidité de la mise en œuvre ? Y aura-t-il une assistance permanente une fois que le système sera opérationnel ?

N'oublions pas : Une installation plus facile signifie une installation plus rapide. Et un lancement en temps voulu signifie donner à votre équipe une plus grande marge de manœuvre pour s'adapter et commencer à travailler plus efficacement. Si les aspects techniques de l'installation et de la maintenance vous préoccupent, évaluez le taux de réussite des clients pour les offres que vous envisagez. Commencez par lire les avis afin de déterminer le meilleur VCS possible pour vos objectifs.

4. Vos flux de travail

Il est essentiel de prendre en compte les processus et les outils utilisés quotidiennement par votre équipe. Le choix d'un système de contrôle des versions qui s'intègre harmonieusement aux autres outils requis accélère la mise en œuvre et minimise les perturbations.

Un autre facteur lié au flux de travail à prendre en compte est de savoir si votre système de contrôle de version prend en charge le branchement. On parle de branche lorsqu'une personne qui travaille sur un ensemble spécifique de fichiers du projet isole ces fichiers de la branche principale du projet, ou "tronc". Cela leur permet de tester les changements sans affecter le tronc principal. Les changements peuvent ensuite être réintégrés dans le tronc principal une fois qu'ils ont été évalués et qu'ils se sont avérés stables.

Dans le cadre du développement d'un jeu, vous devrez probablement faciliter un grand nombre de branches et les créer rapidement. Les systèmes basés sur des répertoires peuvent conduire à des ramifications incorrectes et à des conflits de fusion fréquents, votre équipe rencontrant des difficultés à fusionner avec le tronc.

Avec le branchement, vous pouvez donner la priorité à la stabilité du projet afin que votre équipe continue à travailler à la réalisation de ses objectifs communs, sans que cela ait un impact sur le travail des autres.

Fenêtre en plastique

5. Le calendrier de mise en œuvre de votre système

La mise en œuvre d'un système de contrôle des versions implique un processus d'adaptation rigoureux. Après tout, ce changement peut complètement bouleverser les flux de travail et les outils existants.

Un calendrier stratégique de mise en œuvre de votre VCS peut réduire son impact sur les projets en cours et accélérer l'adoption de nouveaux systèmes. Cela dit, l'idéal est de mettre en œuvre le VCS choisi soit au début d'un nouveau projet, soit pendant la phase post-mortem d'un produit que vous venez de lancer.

Bien sûr, les choses ne se passent pas toujours comme prévu. Vous pouvez vous trouver dans la situation de migrer vers un nouveau système de contrôle de version au milieu d'un projet. Ce n'est pas idéal, mais ce n'est pas impossible.

Vous trouverez ci-dessous plus d'informations sur la migration de vos projets Unity Collaborate vers Plastic SCM :

6. Ce que vous dépenserez (et où vous économiserez)

Les systèmes de contrôle de version se classent parmi les outils DevOps les plus abordables ; les véritables coûts résident dans la mise en œuvre. En gardant cela à l'esprit, essayez d'évaluer un système en fonction de ses avantages et de la façon dont il peut vous aider à économiser d'autres façons.

Il est également utile de choisir un outil facilement accessible à l'ensemble de votre équipe, quel que soit son bagage technique. Comme indiqué précédemment, chacun devrait avoir la possibilité d'apporter sa contribution de manière autonome. Lorsque les besoins de vos coéquipiers ne sont pas satisfaits, des coûts cachés peuvent apparaître.

Si votre système de contrôle des versions est difficile à appréhender, par exemple, vous devrez passer plus de temps à enseigner aux autres comment l'utiliser, ainsi qu'à créer une documentation interne dense sur les meilleures pratiques en matière de contrôle des versions. Et lorsque les coéquipiers ne peuvent pas travailler de manière indépendante, les frustrations internes peuvent commencer à augmenter. Quel que soit votre choix, il ne doit pas entraver la réussite globale de votre équipe.

7. Exigences en matière de sécurité

Le contrôle de version ne se limite pas à la gestion du code source de votre jeu. Le système que vous choisirez stockera également d'autres actifs tels que la documentation commerciale et procédurale, les fichiers de conception, les configurations d'outils, etc.

Pour assurer la sécurité de ces fichiers, votre VCS doit fournir plusieurs niveaux de protection et d'autorisations. Cela permettra de protéger votre code et vos actifs de propriété intellectuelle contre les intrusions extérieures - et de les protéger également contre les risques de fuites internes.

8. Niveau de flexibilité

Considérez-vous votre équipe comme grande ou petite ? Travaillez-vous à partir d'un seul bureau ou êtes-vous répartis ? En fonction de ces facteurs, vous aurez besoin de différents niveaux de flexibilité de la part de votre système de contrôle des versions. En outre, vous devrez décider si vous utiliserez des flux de travail centralisés, distribués ou multisites. Examinons les avantages de chacun d'entre eux.

Flux de travail centralisés

Un flux de travail centralisé utilise un flux de travail de type "check-in/push" pour se connecter à votre serveur principal. Chaque fois que des modifications sont apportées, elles sont automatiquement stockées dans votre référentiel en tant que nouvelle version. De cette façon, vous obtenez des branches et des fusions puissantes sans avoir à cloner votre référentiel sur plusieurs machines. C'est une solution simple et sûre.

Flux de travail distribués

Avec un flux de travail distribué, vous pouvez vous enregistrer, créer des branches et fusionner à votre rythme, sans vous connecter à votre serveur principal. L'avantage est que les coéquipiers éloignés peuvent travailler à distance, à toute vitesse, sans avoir à se soucier de la lenteur des réseaux ou des VPN.

Flux de travail multisites

Le multisite est un mélange de flux de travail centralisés et distribués. À chaque endroit, les coéquipiers travaillent dans une sorte de mini flux de travail centralisé, où ils partagent leurs branches et leurs progrès - en fusionnant facilement, en poussant et en tirant au sein de l'équipe, jusqu'à ce qu'ils poussent finalement vers le serveur principal, à leur propre rythme.

Les flux de travail multisites sont optimaux pour les équipes qui travaillent sur une base de code partagée dans différentes villes ou sur différents continents. Dans ce cas, vous devez établir un serveur hôte sur chaque site de travail et copier les modifications entre ces serveurs. Si vous ne le faites pas, les équipes travaillant sur les sites sans serveurs auront des réponses plus lentes que les autres.

Principaux systèmes de contrôle de version

Maintenant que vous avez une idée des enjeux liés au choix d'un système de contrôle des versions, il est temps d'évaluer quelques-unes des options les plus populaires.

Git

Open source, gratuit et facile à utiliser, Git est l'un des systèmes de contrôle de version les plus populaires. Il propose des dépôts distribués et de solides capacités de branchement et de fusion, mais ne peut pas gérer les gros fichiers binaires aussi efficacement que d'autres solutions sur le marché.

Perforce (Helix Core)

Helix Core est un système de contrôle de version d'entreprise utilisé par des studios de jeux comme EA et Ubisoft. Ce VCS propose des dépôts centralisés et gère les fichiers binaires volumineux. Cependant, il ne propose pas de dépôt visuel, de sorte que son adoption pourrait être plus difficile pour les développeurs non techniques.

Apache Subversion

Comme Git, Apache Subversion est un système de contrôle de version libre et gratuit. Il propose des dépôts centralisés et peut gérer des fichiers binaires volumineux, mais vous devez être connecté au serveur principal pour l'utiliser, ce qui n'est pas idéal pour travailler hors ligne et peut constituer un obstacle pour les équipes plus importantes ou distribuées.

Plastic SCM

Plastic SCM est un système de contrôle de version flexible qui s'adresse aussi bien aux programmeurs qu'aux artistes. Il excelle dans la gestion de grands dépôts et de fichiers binaires, et en tant que solution basée sur les fichiers et les ensembles de modifications, il vous donne la possibilité de télécharger uniquement les fichiers spécifiques sur lesquels vous travaillez, plutôt que l'ensemble du projet.

De plus, Plastic SCM est le seul système de contrôle de version du marché à proposer un branchement visuel. Il peut gérer des milliers de branches à la fois et ne vous oblige pas à choisir entre des flux de travail centralisés ou distribués.

Vous voulez savoir ce qu'Unity peut faire d'autre pour vous ? Découvrez les solutions d'Unity pour surmonter les défis à chaque étape du développement, de la grande idée au grand succès.