Above a certain size, don&#x27;t most big projects end up as individual modules lightly coupled through well-defined API&#x27;s&#x2F;comm channels?<p>For example, I can write a quick Django site in &lt; 5K lines of (new) code by relying on Django|Python|Apache|Linux, meaning I am leveraging 20M+ LOC of tested, stable, well-documented code to support my little program.<p>I would assume that any big project that really requires millions of new LOC would in fact be structured as 10 or more sub-projects of &lt; 200K LOC each, and the interaction of all this code would work for the same reason my Django app works.<p>I guess the rub is how quickly each subproject can iterate while maintaining stability for the other teams. I guess the OP is focusing on big projects that are expected to continue to increase in feature count, complexity etc. However I think my model still holds -- but you need to be seriously disciplined and invested at that stage wrt testing &amp; QA, and have a strong culture of practice that supports the weight of all that legacy code but remains at least somewhat &quot;agile&quot;.