@borkdude
There's also the problem of communication overhead. You end up with more meetings, emails, and so on. And these become increasingly less productive the more people you have in the loop.

Ultimately, any large project can and should be broken up into smaller units that encapsulate some functionality. Then these can be composed together into larger things.

I like to think of it as Lego style code architecture. :)