Make Large Scale Changes Incrementally with Branch By Abstraction | Continuous Delivery
How branch by abstraction worksBranch by abstraction involves making large-scale changes to your system incrementally as follows:
- Create an abstraction over the part of the system that you need to change.
- Refactor the rest of the system to use the abstraction layer.
- Create new classes in your new implementation, and have your abstraction layer delegate to the old or the new classes as required.
- Remove the old implementation.
- Rinse and repeat the previous two steps, shipping your system in the meantime if desired.
- Once the old implementation has been completely replaced, you can remove the abstraction layer if you like.