Passer d'un système de contrôle de version centralisé à Git change la façon dont votre équipe de développement crée des logiciels. Et, si votre entreprise s'appuie sur ses logiciels pour des applications stratégiques, tout changement de votre workflow de développement se répercute sur l'ensemble de votre activité.

Développement organisationnel

Dans cet article, nous verrons comment Git profite à chaque aspect de votre organisation, de votre équipe de développement à votre équipe marketing. À la fin de cet article, il devrait être clair que Git ne permet pas seulement le développement de logiciels Agile, il favorise des affaires Agile.

Git pour les développeurs

Workflow de branche par fonctionnalité

Les capacités de branching de Git constituent l'un de ses plus grands avantages. Contrairement aux systèmes de contrôle de version centralisés, les branches Git sont bon marché et faciles à merger. Cela permet d'utiliser le workflow de branche de fonctionnalité populaire auprès de nombreux utilisateurs de Git.

Workflow de branche par fonctionnalité

Les branches de fonctionnalité fournissent un environnement isolé pour chaque changement de votre base de code. Quand un développeur veut commencer à travailler sur quelque chose (peu importe sa taille), il crée une nouvelle branche. Cela garantit que la branche principale contient toujours un code de qualité de production.

L'utilisation des branches de fonctionnalité est non seulement plus fiable que l'édition directe du code de production, mais elle fournit également des avantages organisationnels. Ces branches vous permettent de représenter le travail de développement avec la même granularité que votre backlog Agile. Par exemple, vous pouvez implémenter une stratégie où chaque ticket Jira est traité dans sa propre branche de fonctionnalité.

Développement distribué

Dans SVN, chaque développeur obtient une copie de travail qui pointe vers un dépôt centralisé unique. Git, toutefois, est un système de contrôle de version distribué. Au lieu d'une copie de travail, chaque développeur obtient son propre dépôt local, avec un historique complet des commits.

Développement distribué

Un historique local complet accélère Git, car vous n'avez pas besoin d'une connexion réseau pour créer des commits, inspecter les versions précédentes d'un fichier ou effectuer des comparaisons entre les commits.

Le développement distribué facilite également la mise à l'échelle de votre équipe d'ingénierie. Si quelqu'un rompt la branche de production dans SVN, les autres développeurs ne peuvent pas enregistrer leurs changements tant que la branche n'est pas réparée. Avec Git, ce genre de blocage n'existe pas. Tout le monde peut continuer à vaquer à ses occupations dans ses propres dépôts locaux.

En outre, à l'instar des branches de fonctionnalité, le développement distribué crée un environnement plus fiable. Même si un développeur supprime son propre dépôt, il peut simplement cloner celui de quelqu'un d'autre et recommencer à zéro.

Pull Requests

De nombreux outils de gestion de code source, comme Bitbucket, améliorent la fonctionnalité de base de Git avec des pull requests. Une pull request est un moyen de demander à un autre développeur de merger l'une de vos branches dans son dépôt. Cela permet non seulement aux responsables du projet de suivre les changements, mais aussi aux développeurs de lancer des discussions autour de leur travail avant de l'intégrer au reste du code.

Demandes d'extraction

Puisqu'il s'agit essentiellement d'un fil de commentaire attaché à une branche de fonctionnalité, les pull requests sont extrêmement polyvalentes. Lorsqu'un développeur est bloqué avec un problème difficile, il peut ouvrir une pull request pour demander de l'aide au reste de l'équipe. Alternativement, les développeurs juniors peuvent être sûrs qu'ils ne détruisent pas l'ensemble du projet en traitant les pull requests comme une revue formelle du code.

Communauté

Dans de nombreux cercles, Git est devenu le système de contrôle de version attendu pour les nouveaux projets. Si votre équipe utilise Git, vous n'aurez pas à former de nouveaux employés à votre workflow, car ils seront déjà familiarisés avec le développement distribué.

Communauté Git

En outre, Git est très populaire parmi les projets open source. Cela signifie qu'il est facile de tirer parti de bibliothèques tierces et d'encourager les autres à utiliser votre propre code open source.

Cycle de livraison plus rapide

Les branches de fonctionnalité, le développement distribué, les pull requests et la communauté stable se traduisent par un cycle de livraison plus rapide. Ces capacités favorisent un workflow Agile où les développeurs sont encouragés à partager plus fréquemment les moindres changements. À leur tour, les changements peuvent être pushés plus rapidement vers le pipeline de déploiement qu'en utilisant les versions monolithiques courantes avec des systèmes de contrôle de version centralisés.

Cycle de livraison plus rapide

Comme vous pouvez vous y attendre, Git fonctionne très bien avec les environnements d'intégration continue et de livraison continue. Les hooks Git vous permettent d'exécuter des scripts lorsque certains événements se produisent à l'intérieur d'un dépôt, ce qui vous donne la possibilité d'automatiser le déploiement au gré de vos envies. Vous pouvez même créer ou déployer du code depuis des branches spécifiques vers différents serveurs.

Par exemple, vous pouvez configurer Git pour déployer le commit le plus récent de la branche develop vers un serveur de test à chaque fois que quelqu'un merge une pull request. En combinant ce type d'automatisation de build avec la revue par les pairs, vous pouvez avoir davantage confiance dans votre code lorsqu'il passe du développement au staging, puis à la production.

Git pour le marketing

Pour comprendre comment la migration vers Git affecte les activités marketing de votre entreprise, imaginez que votre équipe de développement a prévu trois changements distincts dans les prochaines semaines :

  • Toute l'équipe est en train de terminer une fonctionnalité révolutionnaire sur laquelle elle travaille depuis six mois.
  • Marie met en œuvre une fonctionnalité plus petite et indépendante qui n'a d'impact que sur les clients existants.
  • Rick procède à des mises à jour nécessaires de l'interface utilisateur.

Si vous utilisez un workflow de développement traditionnel reposant sur un logiciel de contrôle de version centralisé, tous ces changements seront probablement regroupés dans une seule livraison. L'équipe marketing peut seulement faire une annonce axée principalement sur la fonctionnalité révolutionnaire, et le potentiel marketing des deux autres mises à jour est effectivement ignoré.

Grâce à son cycle de développement court, Git permet de créer facilement des livraisons individuelles. Les marketeurs disposent par conséquent de plus de matière à présenter, plus fréquemment. Dans le scénario ci-dessus, le marketing peut développer trois campagnes axées autour de chaque fonctionnalité, ciblant ainsi des segments de marché très spécifiques.

Git pour le marketing

Par exemple, l'équipe pourrait préparer un grand push PR pour la fonctionnalité révolutionnaire, un blog d'entreprise et un bulletin d'information pour la fonctionnalité de Marie, ainsi que quelques articles sur la théorie d'expérience utilisateur sous-jacente de Rick pour les envoyer à des blogs de conception externes. Toutes ces activités peuvent être synchronisées avec une livraison distincte.

Git pour la gestion de produits

Les avantages de Git pour la gestion des produits sont sensiblement les mêmes que pour le marketing. Des livraisons plus fréquentes signifient un feedback plus fréquent des clients et des mises à jour plus rapides en réaction à celui-ci. Au lieu d'attendre la prochaine livraison dans huit semaines, vous pouvez proposer une solution aux clients aussi rapidement que vos développeurs peuvent écrire le code.

Workflow Git de gestion des priorités

Le workflow de branche de fonctionnalité offre également plus de flexibilité lorsque les priorités changent. Par exemple, si vous êtes à mi-parcours d'un cycle de livraison et que vous voulez reporter une fonctionnalité au lieu d'une autre stratégique, ce n'est pas un problème. Cette fonctionnalité initiale peut rester dans sa propre branche jusqu'à ce que l'équipe d'ingénierie ait le temps d'y revenir.

Cette même fonctionnalité permet de gérer les projets d'innovation, les tests bêta et les prototypes rapides comme les bases de code indépendantes.

Git pour les concepteurs

Les branches de fonctionnalité se prêtent à un prototypage rapide. Que vos concepteurs UX/UI souhaitent implémenter un tout nouveau flux utilisateur ou simplement remplacer certaines icônes, le contrôle d'une nouvelle branche leur donne un environnement en sandbox dans lequel s'exercer. Cela permet aux concepteurs de voir à quoi ressembleront leurs changements dans une véritable copie de travail du produit sans risquer de rompre les fonctionnalités existantes.

Contrôle de version Git non destructif

Encapsuler des changements de l'interface utilisateur de cette manière permet de présenter facilement les mises à jour aux autres parties prenantes. Par exemple, si le directeur de l'ingénierie souhaite ce sur quoi l'équipe de conception travaille, il doit simplement s'enquérir de la branche correspondante.

Les pull requests vont encore plus loin et offrent aux parties intéressées une plateforme officielle de discussion sur la nouvelle interface. Les concepteurs peuvent apporter les changements nécessaires, et les commits résultants apparaîtront dans la pull request. Cela invite tout le monde à participer au processus d'itération.

Le meilleur atout du prototypage avec des branches ? C'est tout aussi facile de merger les changements en production que de les ignorer. Rien n'oblige à faire l'un ou l'autre. Cela encourage les concepteurs et les développeurs d'interfaces utilisateur à expérimenter tout en s'assurant que seules les meilleures idées parviennent au client.

Git pour le support client

Le support client et la réussite des clients ont souvent une incidence différente sur les mises à jour que les gestionnaires des produits. Lorsqu'un client a recours à ces derniers, c'est qu'il rencontre un problème. Si ce problème est causé par le logiciel de votre entreprise, un correctif doit être déployé dès que possible.

Le cycle de développement simplifié de Git évite de reporter les corrections de bugs à la prochaine version monolithique. Un développeur peut corriger le problème et le pusher directement en production. Des correctifs plus rapides signifient des clients plus satisfaits et moins de tickets de support répétés. Au lieu de rester bloquée avec un « Désolé, nous allons nous occuper de cela », votre équipe de support client peut commencer à répondre avec « C'est déjà réparé ! »

Git pour les ressources humaines

Dans une certaine mesure, votre workflow de développement logiciel détermine qui vous embauchez. Il est toujours utile de recruter des ingénieurs familiers avec vos technologies et vos workflows, mais l'utilisation de Git offre également d'autres avantages.

Les employés sont attirés par les entreprises qui offrent des opportunités de croissance professionnelle, et comprendre comment tirer parti de Git dans les organisations de toutes tailles est une aubaine pour tout programmeur. En choisissant Git comme système de contrôle de version, vous prenez la décision d'attirer des développeurs avant-gardistes.

Git pour tout gestionnaire de budget

Git est entièrement axé sur l'efficacité. Pour les développeurs, cela permet d'éviter de perdre du temps à transmettre des commits via une connexion réseau et des heures-personnes à intégrer les changements dans un système de contrôle de version centralisé. Vous utilisez ainsi au mieux vos développeurs juniors en leur fournissant un environnement de travail sûr. Tout cela affecte les résultats de votre département d'ingénierie.

Équipe distribuée Git

Mais, n'oubliez pas que ces gains d'efficacité s'étendent également à l'extérieur de votre équipe de développement. Ils évitent que l'équipe marketing consacre trop d'énergie à des fonctionnalités secondaires moins populaires. Ils permettent aux concepteurs de tester de nouvelles interfaces sur le produit réel à faible coût. Ils vous permettent de réagir immédiatement aux réclamations des clients.

Être Agile consiste à découvrir ce qui fonctionne le plus rapidement possible, à intensifier les efforts concluants et à éliminer ceux qui ne le sont pas. Git sert de multiplicateur pour toutes vos activités commerciales en s'assurant que chaque département fait son travail plus efficacement.

Prêt à découvrir Git ?

Essayez ce tutoriel interactif.

Démarrez maintenant