it works well when evolving larger application landscapes because branches represent a new version of the system