Exploring the Structure of Complex Software Designs: An Empirical Study of Open Source and Proprietary Code
Executive Summary — How does a product's design mirror the organization that develops it, and how does such a dynamic occur? To track the evolution of one design over time, this exploratory study compared software designs developed via different modes of organization-open source versus proprietary development. As it turned out, the architecture of the product developed by a highly distributed team of developers (Linux) was more modular than another product of similar size developed by a co-located team of developers (Mozilla). The study helped reveal potential performance tradeoffs from architectures with different characteristics. Key concepts include:
- The value of design is a managerial choice.
- There are important, measurable differences in modularity between different software systems of comparable size and function.
- Systems may vary dramatically in terms of their robustness to change, and the costs and efficiency of future enhancements.
This paper reports data from a study that seeks to characterize the differences in design structure between complex software products. We use Design Structure Matrices (DSMs) to map dependencies between the elements of a design and define metrics that allow us to compare the structures of different designs. We use these metrics to compare the architectures of two software products — the Linux operating system and the Mozilla web browser — that were developed via contrasting modes of organization: specifically, open source versus proprietary development. We then track the evolution of Mozilla, paying attention to a purposeful "re-design" effort undertaken with the intention of making the product more "modular." We find significant differences in structure between Linux and the first version of Mozilla, suggesting that Linux had a more modular architecture. Yet we also find that the re-design of Mozilla resulted in an architecture that was significantly more modular than that of its predecessor, and indeed, than that of Linux. Our results, while exploratory, are consistent with a view that different modes of organization are associated with designs that possess different structures. However, they also suggest that purposeful managerial actions can have a significant impact in adapting a design's structure. This latter result is important given recent moves to release proprietary software into the public domain. These moves are likely to fail unless the product possesses an "architecture for participation."