Title: The architecture of complex systems
Description: Any complex technological system can be decomposed into a number of subsystems and associated components, some of which are core to system function while others are only peripheral. The dynamics of how such "core-periphery" structures evolve and become embedded in a firm's innovation routines has been shown to be a major factor in predicting survival, especially in turbulent technology-based industries. To date however, there has been little empirical evidence on the propensity with which core-periphery structures are observed in practice, the factors that explain differences in the design of such structures, or the manner in which these structures evolve over time. We address this gap by analyzing a large number of systems in the software industry. Our sample includes 1,286 software releases taken from 19 distinct applications. We find that 75-80% of systems possess a core-periphery structure. However, the number of components in the core varies widely, even for systems that perform the same function. These differences appear to be associated with different models of development - open, distributed organizations developing systems with smaller cores. We find that core components are often dispersed throughout a system, making their detection and management difficult for a system architect. And we show that systems evolve in different ways - in some, the core is stable, whereas in others, it grows in proportion to the system, challenging the ability of an architect to understand all possible component interactions. Our findings represent a first step in establishing some stylized facts about the structure of real world systems.