Really! 99% of projects that employ 100 programmers and 200 managers to manage them (these "inverted pyramids" are surprisingly common, I know a few) would be all doable with 10 motivated and well-communicating programmers and 1 manager. Remaining 1% are truly so large projects they do require 100 programmers.
I think we both use a different definition of "project".
A project at my level might be "Modernise the ____ government's driver licensing system".
That might end up amounting to 10 years with 100+ people. On the development side there might be 4 small teams with 4 small test teams. Circa 40-50 people. You might have another 10-20 business analysts, managers, DBAs, support, devops, platform, infra, architecture, PMs, etc. etc.
On the "Project" anatomy there are likely to be several large scale central DBs to handle, a sizable platform of servers and infra in multiple locations, probably a dozen or two different services and several/many UIs (Public and Internal UIs). It's going to involve lots of fiddly integrations like receiving physical letters in the post, receiving bulk form batches from other agencies. Receiving things like enforcements, disqualifications, fines, points etc. coming in from multiple agencies. Printing and automating sending letters. Ad.inf.
You would not believe how complex these things can be made by governments and courts.
However, "down in the trenches" as we call it, due to the "isled" desks we would typically sit in that look like each small group of desks is a trench and team is fighting from it. Lots of analogies about sticking your head up over the edge and such. In that context you have a small dev team of maybe 4 or 5 with 4 or 5 testers, a BA or two and at least one manager. Often a manager over the whole dev+test+aux and maybe a dev manager and test manager across 2 or more projects.
Those small teams would be tasked with isolated tasks.... or that is the ideal, not always achieved. Ideally, "one component, one owner". While a team can "own" multiple components, no component shall be owned by more than one team at a time. The complexities in synchronizing the development across multilpe teams into a coherent output ... on time.. is always the challenge.
Now to scale that up again, in 2020-2022 I was in one of these little small teams, but the "bigger picture" project was 1050 poeple.
Why so many? A tier one investment bank, when asked by regultors what their total markets risk exposure was that day, the bank said, "We'll get back to you on that." Weeks passed before the report was finally delivered. The regulator fined them 10 billion dollars for not having a clear picture of their total risk exposure for "that day" or "the day ahead". They were also told they would be asked each year to produce the same, on a random day and if they cannot provide it they will be fined another 5 billion for each year they fail.
It was stipulated that all data relating to risk exposure should be centrally controlled under the engineering departments and NOT spread across the company in dozens of different business managed applications, databases and departments.
The last "birds eye" map I seen of the project was sitting at 1450 individual data feeds to be migrated to central data storeage with retention, catalogs, inventries and query access. Over 500 databases and Excel sheet stores to be migrated to actual databases. We had Excel sheets, MS Access databases, Sybase, DB2, everything.
When the stick is billions of pounds of fines, banks will happily spend 100s of millions on WAY over populating things in order to stand a chance of delivery. They know full well that a team of 100 might achieve 70% efficiency and a team of 200 might only be 40% efficient, they are not stupid, but if they add another 200 developers to the existing 800, it will still bring in the final delivery dates. So they do that.
I quit investment banking because of the mess that resulted. No matter how hard, how long and how loud I tried to help them not make a mess, they over ruled all engineering best practices and started stacking broken copy and pasted projects ontop of broken copy and pasted projects. At one point I could 205 different copy and pastes from a feed importer. All had bespoke changes, but 90% duplicated code. I was looking at production issues and pointing out, "If that feed has that bug, they all do.". They had plenty of people around the world who were "Yes" men. "Please hurry and make this look like it works. Code it as dirty as you like, leave as much technical debt as you like, we just need to tick the box that we delivered it only 4 months late!". "Ok". <-- this person and those like them need flogged.