Git makes software development, well, easier

Three tips to make Git fit into your agile workflow (and vice versa)

Laura Daly Laura Daly

Git is the de facto standard for agile software development when it comes to version control systems. This well-supported open source project is flexible enough to support a range of workflows that suit the needs of any given software team. Its distributed -- rather than centralized – nature gives it superior performance characteristics and allows developers the freedom to experiment locally and publish their changes only when they're ready for distribution to the team.

Outre les avantages en matière de flexibilité et de distribution, Git dispose de fonctions clés qui soutiennent et améliorent le développement Agile. Considérez Git comme une composante du développement Agile ; les changements peuvent être pushés plus rapidement vers le pipeline de déploiement qu'en travaillant avec des livraisons monolithiques et des systèmes de contrôle de version centralisés. Git fonctionne de la même manière que votre équipe Agile (qui devrait s'efforcer de poursuivre sur sa lancée). 

Pro Tip:

Git is Distributed Version Control System (DVCS). Unlike CVS or Subversion (SVN) repositories, Git allows developers to create their own, personal copy of the team's repository, hosted alongside the main codebase. These copies are called forks and when work is complete on a fork, it's easy to bring changes back to the main codebase.

Création de branches Git | Atlassian – Le coach Agile

Tip 1: Start thinking about tasks as Git branches

Git comes into play after features have been fleshed out, added to a product roadmap, and the development team is ready. But to take a step back here is a quick crash course in agile feature development: product, design, quality assurance (QA), and engineering hold a feature kick-off meeting to come up with a shared understanding of what a feature will be (think requirements), scope of the project, and what tasks that the feature needs to be broken down into to complete it. These tasks – are also known as user stories – are then assigned to individual developers.

Git starts fitting into your agile workflow at this point. At Atlassian, we create a new branch for every single issue. Whether it's a new feature, a bug fix, or a small improvement to some existing code, every code change gets its own branch.

La création de branches est directe et permet aux équipes de collaborer facilement dans une base de code centrale. Lorsqu'un développeur crée une branche, il dispose de sa propre version isolée de la base de code dans laquelle apporter des changements. Pour une équipe Agile, cela implique qu'en décomposant les fonctionnalités en user stories puis en branches, l'équipe de développement peut réaliser les tâches individuellement et travailler plus efficacement sur le même code, mais dans des dépôts différents. Cela évite les doublons et, puisque les personnes peuvent se concentrer sur des petits blocs de travail dans des dépôts séparés du dépôt principal, le nombre de dépendances ralentissant le processus de développement est réduit.  

Pro Tip:

Il existe d'autres types de création de branches Git en plus des branches de tâche, et ils ne s'excluent pas mutuellement. Vous pouvez créer des branches pour une livraison, par exemple. Cela permet aux développeurs de stabiliser et de renforcer le travail planifié pour une livraison spécifique, sans bloquer les autres développeurs qui travaillent sur de futures livraisons.

 

Une fois la branche de livraisons créée, vous devrez la merger régulièrement dans votre branche master pour garantir que votre travail sur la fonctionnalité soit pris en compte dans les prochaines livraisons. Pour réduire les coûts, il est préférable de créer la branche de livraisons aussi prêt que possible de la date de livraison prévue. 

Vue détaillée d'une branche Git | Atlassian – Le coach Agile

Conseil n° 2 : Plusieurs branches peuvent être testées individuellement, profitez-en

Lorsque les branches sont considérées comme terminées et prêtes pour les revues de code, Git joue un autre rôle clé dans un workflow de développement Agile : il gère les tests. Les équipes Agile performantes pratiquent les revues de code et configurent des tests automatisés (intégration continue ou développement continu). Pour faciliter les revues de code et les tests, les développeurs peuvent facilement informer le reste de leur équipe que la branche est prête à être examinée et qu'elle doit être passée en revue via une pull request. Plus simplement, une pull request est une façon d'indiquer à un autre développeur qu'une de vos branches peut être mergée dans la branche master et qu'elle est prête à être testée.

Avec les bons outils, votre serveur d'intégration continue peut faire un build de vos pull requests et les tester avant de les merger. Vous êtes ainsi certain que votre merge ne provoquera pas de problèmes. Cela facilite le reclassement des correctifs de bugs et des conflits en général, car Git connaît la différence entre la branche et la base de code master depuis que les branches ont divergé. 

Pro Tip:

A long running feature branch that is not merged to the master branch may hurt your ability to be agile and iterate. If you have a long running feature branch remember that you effectively have two divergent versions of your code base, which will result is more bug fixes and conflicts. But the best solution is to have short-lived feature branches. This can be achieved through decomposing user stories into smaller tasks, careful sprint planning, and merging code early to ship as dark features. 

Conseil n° 3 : Git fournit transparence et qualité au développement Agile

The Git/agile story is one about efficiency, testing, automation, and overall agility. Once you’ve merged a branch to the master branch, your agile workflow is done. Likewise, merging code through pull requests means that when code is done, you have the documentation to confidently know that your work is green, that other team members have signed off on the code, and that it is ready to release. This keeps agile teams moving at a speed and with confidence to release often: a sign of a great agile team.

Pro Tip:

L'adoption d'un rythme de livraison régulier est la clé du développement Agile. Afin de faire fonctionner Git pour votre workflow Agile, vous devez vous assurer que votre branche master est toujours fonctionnelle. Autrement dit, si une fonctionnalité n'est pas prête, attendez la prochaine livraison. Si vous adoptez des cycles de livraison plus courts, cela ne devrait pas être un gros problème.