This isn't specific to software. This works for pretty much anything large and complex (i.e. electronics). First, there are two milestones of complexity. Size - Designing an item which cannot be designed by a single individual. Knowledge - Designing an item which cannot be understood by a single individual. The first often shows up in typical "business app" developments. The second, however, is much more rare (in my experience). I would guess it's typically exemplified by large code bases (greater than 500 KLOC) or complex problem domains (military and scientific...