User Tools

Site Tools


2015:archipelagos_in_git

This is an old revision of the document!


Back to 2015-proposals

Title: Archipelagos in Git
Proposer: Matthew Dodkins
Type: Presentation
Duration: 15 mins
Description:
Island: Any piece of sub­continental land that is surrounded by water.
Archipelago: Island chain, is a chain, cluster or collection of islands.

Assumptions:

  • ­Reviewing code is a worthwhile activity
  • No one wants to review and/or merge code as their full­time job
  • No one person should bear all that responsibility anyway
  • ­Existing, non­conceptual approaches to the problem of managing the movement of code are quite weak
  • Communication is always required and goes a long way to solving many of our problems, but we can't all communicate with everyone all the time on a medium­ large team
  • Metaphors help understand intent
  • Sometimes code will need to be shared between teams; it isn't always possible to divide up work by features (although appropriate interfaces help with this)

Basics:

  1. An 'Island' is considered to be synonymous with a fork/branch or fork/set of branches
  2. An archipelago is identifiable as a number of islands which are “close” to one another
  • Created as a concept to help medium to large teams manage sharing of code between areas of related work and to ease merge pain
  • Merging is always difficult; it's a difficult job. Archipelagos don't solve merge problems, but they do simplify them and provide conceptual assistance
  • Islands in an archipelago are related to one another purely by virtue of their proximity to one an another. If a fork/branch is close to another, it makes sense to consider it part of the same archipelago
  • Pull requesting to the owner of the archipelago simplifies the merge you're dealing with and still allows everyone interested in that archipelago to be party to what's going into it
  • Pull requesting the entire archipelago to “wherever the release is going to be made from” helps collate like­ areas of work for reviewing purposes

Advanced

  • Archipelagos can be near or far away from each other ­ sometimes they will want to merge between each other, but this is not particularly desirable unless you combine
  • How do we know when to create an archipelago?
  • Feature files / executable specification…. where does it fit in?
  • Realisations from actual use with several teams totalling 20+ developers



2015/archipelagos_in_git.1427882991.txt.gz · Last modified: 2016/06/11 14:05 (external edit)