To make all of the code available to everyone is not a good practice, even worse if access is granted r/w.<p>There are security and IP aspects that the company must consider and granting access only to what is needed by each person is a standard good practice in that regard.<p>On a more technical note it also forces people to maintain well-defined APIs because these are the only thing customers (e.g. other teams) can see.<p>Keeping the source code for different products on different repos enables to achieve this encapsulation and also decouples all maintenance aspects.<p>In practice there is a sweet spot to find. In a microservice architecture people can get trigger-happy and create many, many services to build the product. Having a repo per microservice can become cumbersome very quickly.