Lean Kanban France 2015 : Ce que les strategies de versioning nous disent des dynamiques d equipe

  • View
    1.278

  • Download
    0

  • Category

    Software

Preview:

Citation preview

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

Benoit Lafontaine & Hervé Lourdin

Benoît Lafontaine - CTO@joel1di1

Hervé Lourdin - CTO@HerveLourdin

AgendaPourquoi cette session ?

Qu’est-ce qu’une branche ?

Modèles & impact sur la communication

Conclusion

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

— M. Conway

Qu’est-ce qu’une branche ?

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

TL;DR

1.1 1.2 1.3 1.4 1.5

2.0 2.1 2.2

1.6

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

Benoit & Hervé

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)

Qui dit branches, dit...

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

1.1 1.31.2

Trunk Base

Développeur A

Développeur B

master

1.1 1.31.2

Team Branch

Equipe A

Equipe B

master

1.1 1.3

Team Branch

Equipe A

Equipe B

Mergede la mort1.2

Merge trop compliquéon passe

master

1.1 1.31.2

Feature Branch

master

Feature A

Feature B

Git Flow

In Progress Done UAT Expedite Live

Code review

Code review

1.1 1.31.2

Pull Request Flow

Pull Request

Pull Request

Feature Branching + Continuous Merge

+

Feature Toggle

Anti-patterns communs

La branche qui dérive

Le moine codeur

L’équipe d’intégration

Conclusion

Adapter sa stratégie à son contexteLes stratégies de versioning elles-aussi peuvent évoluer dans le

tempsUne 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

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

Questions ?

Benoît Lafontaine - CTO@joel1di1

Hervé Lourdin - CTO@HerveLourdin

Psst… Nous recrutons !

MERCI !