Un logiciel de gestion de versions permet de stocker un ensemble de fichiers en conservant la chronologie de toutes les modifications qui ont été effectuées dessus. Il existe aussi des logiciels et services de gestion de versions décentralisées.
Git et Mercurial sont deux exemples de logiciels de gestion de versions décentralisés et sont disponibles sur la plupart des systèmes Unix et Windows. Ils sont notamment utilisés en développement logiciel pour conserver le code source relatif aux différentes versions d'un logiciel.
Depuis le début de ma carrière j'ai travaillé sur de nombreux projets dans lesquels le besoin de versionner le code était pressenti. Si l'utilisation d'une clé usb était suffisante pour mes débuts, la possibilité de pouvoir se partager le code en étant à distance à rendue son utilisation rapidement obsolète. Utiliser des services en ligne tels que Dropbox où Google Drive m'a permis de résoudre la contrainte de distance mais l'utilisation d'outils développés spécifiquement pour du versionning de code a été une grande découverte pour moi.
Le projet Wawee m'a permis de former ma première expérience avec le logiciel de gestion de versions décentralisé Git. Nous avons travaillé à 4 dans ce projet et l'utilisation de Git était imposé pour sa réalisation. Nous avons tout de suite compris les forces qu'offre cet outil de façon local à nos postes dans un premier temps. Puis dans un second temps, l'utilisation d'un répertoire distant tel que Gitlab ou Github pour partager notre code en ligne.
Git est le logiciel auquel tout le monde pense lorsqu'il s'agit de versionning car il est très largement utilisé dans le monde entier. Énormément d'entreprise fonctionne avec et son utilisation est très répandu de nos jours.
Lors de mon stage et alternance en entreprise à INFOMIL, j'ai eu l'occasion de travailler avec un autre logiciel de versionning nommé Perforce. Le fonctionnement est similaire à Git, j'ai donc rapidement retrouvé mes habitudes de travail que j'ai développé avec Git.
Le fait que Git soit gratuit et non soumis à des licences d'utilisation permet à n'importe quelle entreprise de démarrer un projet en l'utilisant. C'est un outil qui est très accessible pour les débutants, ce qui en fait souvent une porte d'entrée pour la réalisation d'un projet avec n'importe quel langage.
Concernant ma marge de progression, les logiciels de versionning offrent une multitude de fonctionnalités et je considère mon niveau de compétence comme étant performant car une fois que les bases sont acquises, cela couvre la majorité des besoins pour partager son code en équipe.
Concernant ma vitesse d'acquisition, j'ai eu du mal à comprendre le fonctionnement du versionning à mes débuts mais des ressources en ligne avec lesquelles je me suis autoformé m'ont permis d'avoir un déclic et qui aujourd'hui me permet d'être très efficace avec Git notamment.
Source : https://learngitbranching.js.org/
Cette compétence est importante par rapport à mes responsabilités actuelles à INFOMIL, ayant acquis de l'ancienneté dans mon équipe je dois maintenant procéder à des validations de code via des outils de versionning et expliquer à de nouveaux arrivants notre fonctionnement sur nos répertoires git partagés.
À mon sens, le versionning est une pratique que je me devais d'apprendre le plus rapidement possible lors de mes débuts en informatique. Les possibilités qu'offre notamment Git avec des répertoires distants ont largement contribué à ma montée de niveau sur plusieurs compétences techniques et m'a permis de partager très facilement mon code avec les autres.
Aujourd'hui je ne pourrais pas me passer de son utilisation que ce soit pour des projets où je suis le seul contributeur ou des projets à plus grandes envergures avec plusieurs équipes travaillant dessus.