Streamlined teams of people with the right skills can be cheaper, faster and more rewarding than large teams of generic resources. Cheaper than outsourcing too.
Unfortunately most large corporate projects follow an anti-pattern:
Take the cheapest quote from the company that has investigated the risks the least.
The project begins with a full team of mostly inexperienced developers, because the senior developers are busy finishing up another project. There are no frameworks for the developers to use as examples so they create their own in many varied ways. The least experienced developers start the project and set the standards.
As the deadline looms it becomes clear that the project is not going to be completed on time.
When it is clear the project has lost its way, the experienced developers are brought in. All they can do without refactoring the entire application is add fudges and workarounds to make the application functional. The result is not stable or maintainable.
A rewrite occurs two years later.