June 14, 2007

WE ARE ALL INTELLIGENT DESIGNISTS NOW:

Evolution Analysis of Large-Scale Software Systems Using Design Structure Matrices and Design Rule Theory (Matthew J. LaMantia, Yuanfang Cai, Alan D. MacCormack, and John Rusnak, June 2007, HBS: Working Knowledge)

Executive Summary:

Designers have long recognized the value of modularity. But because design principles are informal, successful application depends on the designers' intuition and experience. Intuition and experience, however, do not prevent a company such as Microsoft from constantly grappling with unanticipated challenges and delays in bringing software to market. Clearly, designers need a formal theory and models of modularity and software evolution that capture the essence of important but informal design principles and offer ways to describe, predict, and resolve issues. This paper evaluates the applicability of model and theory to real-world, large-scale software designs by studying the evolution of two complex software platforms through the lens of design structure matrices (DSMs) and the design rule theory advanced by Kim Clark and Carliss Baldwin. Key concepts include:

* Important software modularity principles have remained informal.
* DSM models reveal a key characteristic of modular architectures: The design rules must be explicitly defined so that otherwise dependent modules can be decoupled. Each independent module can then be replaced with a better version.
* DSM modeling and the design rule theory of Clark and Baldwin have the potential to formally account for how design rules create options in the form of independent modules and how they enable independent substitution.
* DSM modeling and design rule theory are general enough to model decisions other than those encoded in source code.

Designers have long recognized the value of modularity. But because design principles are informal, successful application depends on the designers' intuition and experience. Intuition and experience, however, do not prevent a company such as Microsoft from constantly grappling with unanticipated challenges and delays in bringing software to market. Clearly, designers need a formal theory and models of modularity and software evolution that capture the essence of important but informal design principles and offer ways to describe, predict, and resolve issues. This paper evaluates the applicability of model and theory to real-world, large-scale software designs by studying the evolution of two complex software platforms through the lens of design structure matrices (DSMs) and the design rule theory advanced by Kim Clark and Carliss Baldwin.

*
* E-mail the Editor
* E-mail the Editor

About Faculty in this Article:

HBS Faculty Member Alan MacCormack

Alan MacCormack is an associate professor in the Technology and Operations Management unit at Harvard Business School.

* More Working Knowledge from Alan MacCormack
* Alan MacCormack - Faculty Research Page

Abstract

Designers often seek modular architectures to better accommodate expected changes and to enable parallel development. However, we lack a formal theory and model of modularity and software evolution, which can be used for description, prediction, and prescription. According to Baldwin and Clark's theory, modular architectures add value to system designs by creating options to improve the system by substituting or experimenting on individual modules. In this paper, we evaluate their theory by looking at the design evolution of two software product platforms through the modeling lens of design structure matrices (DSMs) and design rule theory. Our analysis shows that DSM models and options theory can explain how real-world modularization activities in one case allowed for different rates of evolution in different software modules and in another case conferred distinct strategic advantages on a firm (by permitting substitution of an at-risk software module without substantial change to the rest of the system). The experiment supports our hypothesis that these formal models and theory can account for important aspects of software design evolution in large-scale systems.

Posted by Orrin Judd at June 14, 2007 12:00 AM
Comments for this post are closed.