39
Ce que les stratégies de versioning nous disent des dynamiques d’équipe Benoit Lafontaine & Hervé Lourdin

Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Embed Size (px)

Citation preview

Page 1: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Benoit Lafontaine & Hervé Lourdin

Page 2: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Benoît Lafontaine - CTO@joel1di1

Hervé Lourdin - CTO@HerveLourdin

Page 3: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Agenda

● Pourquoi cette session ?● Qu’est-ce qu’une branche ?● Modèles & impact sur la communication● Conclusion

Page 4: Ce que les stratégies de versioning nous disent des dynamiques d’équipe
Page 5: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

"organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations"

— M. Conway

Page 6: Ce que les stratégies de versioning nous disent des dynamiques d’équipe
Page 7: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Qu’est-ce qu’une branche ?

Page 8: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Qu’est-ce qu’une branche ?

“ En gestion de configuration logicielle, une branche est une dérivation dans l'histoire de l'évolution des éléments de configuration. Une branche est une évolution d'un élément ayant pour origine une version précise, produisant une «branche de version». Une branche de version correspond à un axe d'évolution de versions. Elle est rattachée à une branche source et peut découler sur plusieurs sous-branches. La gestion de l'ensemble des branches et des versions d'un produit constitue le versionnage (versioning en anglais) et est l'objet de la gestion de configuration.”

Source: Wikipedia

Page 9: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

TL;DR

1.1 1.2 1.3 1.4 1.5

2.0 2.1 2.2

1.6

Page 10: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

“Une branche est une version alternative du code source d’un logiciel”

Benoit & Hervé

Page 11: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Pourquoi on branche ?

● Pour paralleliser les dev sans se perturber

● Pour livrer les fonctionnalités au fur et à mesure de leur complétion (livrer A sans livrer B qui n’est pas fini, ni C qui ne correspond pas aux attentes)

Page 12: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Qui dit branches, dit...

Page 13: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Modèles de versioning / branching et impact sur la communication dans les équipes

Page 14: Ce que les stratégies de versioning nous disent des dynamiques d’équipe
Page 15: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

1.1 1.31.2

Trunk Base

Développeur A

Développeur B

master

Page 16: Ce que les stratégies de versioning nous disent des dynamiques d’équipe
Page 17: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

1.1 1.31.2

Team Branch

Equipe A

Equipe B

master

Page 18: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

1.1 1.3

Team Branch

Equipe A

Equipe B

Mergede la mort1.2

Merge trop compliquéon passe

master

Page 19: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

1.1 1.31.2

Feature Branch

master

Feature A

Feature B

Page 20: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Git Flow

Page 21: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

In Progress Done UAT Expedite Live

Page 22: Ce que les stratégies de versioning nous disent des dynamiques d’équipe
Page 23: Ce que les stratégies de versioning nous disent des dynamiques d’équipe
Page 24: Ce que les stratégies de versioning nous disent des dynamiques d’équipe
Page 25: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Code review

Code review

1.1 1.31.2

Pull Request Flow

Pull Request

Pull Request

Page 26: Ce que les stratégies de versioning nous disent des dynamiques d’équipe
Page 27: Ce que les stratégies de versioning nous disent des dynamiques d’équipe
Page 28: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Feature Branching + Continuous Merge

+

Page 29: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Feature Toggle

Page 30: Ce que les stratégies de versioning nous disent des dynamiques d’équipe
Page 31: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Anti-patterns communs

Page 32: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

La branche qui dérive

Page 33: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Le moine codeur

Page 34: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

L’équipe d’intégration

Page 35: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Conclusion

Page 36: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Adapter sa stratégie à son contexte

● Les stratégies de versioning elles-aussi peuvent évoluer dans le temps○ Une organisation qui croît ou change nécessite de revoir la validité de sa stratégie○ Challengez vos choix initiaux pour voir si ils sont toujours valables !

● Inspirez-vous des modèles et adaptez les à votre contexte

Page 37: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Merger c’est discuter !

● la communication apparait au moment du merge

○ L’enjeu est de provoquer la conversation au bon moment

● Le merge et surtout la gestion de conflits sont les évenements clés caractérisant les modes de communications○ les merges difficiles sont caractéristiques d’un processus où la communication n’est pas assez

fréquente

● Plus vous mergez tard plus vous repoussez une conversation importante au lendemain○ … dont la résolution sera peut-être plus complexe

Page 38: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Questions ?

Page 39: Ce que les stratégies de versioning nous disent des dynamiques d’équipe

Benoît Lafontaine - CTO@joel1di1

Hervé Lourdin - CTO@HerveLourdin

Psst… Nous recrutons !

MERCI !