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 subcontinental 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 fulltime job
 - No one person should bear all that responsibility anyway
 - Existing, nonconceptual 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:
- An 'Island' is considered to be synonymous with a fork/branch or fork/set of branches
 - 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)