This topic is a place to explore how ExtremeProgramming can be used or adapted for very large scale projects. This was a special topic in a general purpose ExtremeProgramming workshop held on 4/11/99 in PaloAlto.
"Mega" is defined as problems that are very large in either cost ($25-200M) or in effort (more than 50 people).
We observed that it would be good to start the project with a regular XP team and stabilize the early user stories and the general structure or the system through a number of iterations before growing more teams. How new teams are built/organized was an open issue (MegaExtremeProgrammingTeamOrganization). Another issue raised by the participants was how AcceptanceTests would need to be adapted (MegaExtremeProgrammingAcceptanceTests).
Was this a workshop where people were discussing their experiences trying to adapt XP to large projects, or a workshop where people were theorizing about how to do it if they ever got a chance? <see revision above>
How does MegaExtremeProgramming relate to ExtremeProgrammingMayScaleUp and LargeExtremeProgramming?
Inside any large project are a bunch of small projects struggling to get out.
Try breaking up a large project into a number of smaller projects that small teams can work on simultaneously. This is how MicroSoft does it: Windows NT is written by a bunch of small teams, each having about half a dozen people. You may need some form of "team code ownership" and formal "releases" of functionality cross-team. This violates XP values, but it may not be as bad as you think because you can...
On big multi-team XP projects, you might try pairing cross-team to make some changes.
Contributors: JeffGrigg (who does not claim to speak for the XP community)
See ExtremeManagement, ScalingExtremeProgramming