First, remember that 3 women cannot ever produce a baby in 3 months; adding more women doesn't improve the rate of production.
50 people on a project smacks of throwing resources at a problem in the hope that somehow 9 women will produce a baby in a month.
However, since you're presumably stuck with 50 people, there are several things that have to be done.
You have to have a solid, working infrastructure so that everyone can develop incrementally. If the first release includes infrastructure, web servers, databases, failover, backups, SSO, and everything else, the first release will take a year and have no value to anyone (except developers).
Therefore, a team of 4-5 has to get a solid, usable, extensible infrastructure up and running ASAP. Pick products, install, configure. Build QA/test and development environments. DO NOT BUILD PRODUCTION YET. You won't know enough. Conduct training by building something that will be thrown away.
Or. Leverage an existing infrastructure that all 50 people know and are comfortable with.
You have to have a common, usable data environment. This includes your classes, your relational tables and your ORM. Someone needs to spike this technology and make sure all the pieces work. They will supply expertise to the other 35 or so developers.
Therefore, a team of 4-5 needs to support shared data. Data is precious and you can't simply allow each team to define their own data as needed. XP is not anarchy.
You have to have a common, usable presentation layer. This includes your JSP or templates, your CSS's, your javascript and all that. Someone needs to spike this technology to make sure all the pieces work. They will supply expertise to the other 35 or so developers
You need a unit testing framework and nightly build. With 50 people, 10 (at least) must be doing QA of some kind or other.
Someone has to resolve operational issues. Startup, shutdown, backup, failover, upgrades, patches, upgrades and upgrades. You really have to understand upgrades (OS, components, your own shared layers, your own applications.) Upgrades are hard, and someone has to work out configuration management (what's running where) as well as source code control and the like. (Backups, log management, etc.)
What do we have?
- 5 infrastructure
- 5 database support
- 5 presentation support
- 5 deployment/operationalization
- 10 QA
If you have other layers (web services, for example) you may have other share-services teams.
You must have a QA leader, and an architectural leader who do nothing but coordinate and articulate a single, shared vision.
One architect. No second-guessing.
The other 20 people will be broken into 4 teams that somehow must coordinate among them selves and with the other layers. [4 is a large number. Bad things will happen because of overlaps and gaps.]
You'll have to break up the user stories into some priority scheme and locate the top 4 and farm them out to get worked on. After that, each team pulls the next available story when it finishes what it's working on.
Note that you MUST coordinate among all 9 teams on a daily basis to prevent redundant development or divergent project visions. I don't have any useful advice on how to keep 9 teams coordinated in a brisk, efficient way.