3. Agenda
● Pourquoi cette session ?
● Qu’est-ce qu’une branche ?
● Modèles & impact sur la communication
● Conclusion
4.
5. "organizations which design systems ... are
constrained to produce designs which are
copies of the communication structures of
these organizations"
— M. Conway
8. 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
10. “Une branche est une
version alternative du
code source d’un logiciel”
Benoit & Hervé
11. 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)
36. 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
37. 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