Branch by abstraction
Branch by Abstraction
An approach to large-scale change in a codebase that allows ongoing releases whilst the change is in progress.
- assume we have client code (dependent) and supplier code (dependency)
- introduce abstraction layer between client and supplier by modifying both
- develop new supplier code
- migrate client code to use the new supplier code via the abstraction layer
- remove old supplier code
- (optional) remove abstraction layer
References
Paul Hammant wrote about "Introducing Branch By Abstraction", 2007 blog but credits Stacey Curl with coining the phrase
Martin Fowler simplified and promoted the phrase in ~2014 page