The only other observation is that as you grow teams, communication channels multiply exponentially and at over 6-8 people communication starts breaking down.
So instead you make small "companies" and set a few ground rules which software they build needs to follow, and you are back at a working org producing complex software.