Reduce complexity through clear and simple splits
Any successful tech company that has been in the market for more than a few years and consists of more than one team on a steadily growing code base is familiar with constantly growing complexity. The build and deployment processes are getting complicated and tedious; the coordination between the teams becomes more and more complex. Often, software development even seems to slow down, even though the company is growing and more developers are joining the teams.