In Search of Efficient Flexibility: Effects of Software Component Granularity on Development Effort, Defects, and Customization Effort

Publication Type

Journal Article

Publication Date

9-2012

Abstract

Simultaneously achieving efficiency and flexibility in enterprise software production has been a considerable challenge for firms. Newer software development paradigms such as component-based and model-driven development attempt to overcome this challenge by emphasizing modular design of complex systems. However, there is a paucity of rigorous empirical research on the use of such software methodologies and the associated extent to which trade-offs between efficiency and flexibility can be influenced. Addressing this gap, we investigate the performance outcomes of a model-driven, component-based software development methodology using data collected from an enterprise software development firm that deployed such a methodology for its product development processes. Examining the design, development, and implementation of 92 business software components of the firm's enterprise resource planning product, we discuss how the design of software components, specifically component granularity, affects development efficiency (development effort and defects) and flexibility (customization effort). Our results suggest that (a) components that are coarse grained are associated with higher flexibility (lower customization effort) but are also associated with lower development efficiency (more development effort and defects), and (b) defect proneness of a component plays a mediating role on the relationship between component granularity and flexibility. These findings present strong evidence for the existence of trade-offs between efficiency and flexibility in mass-customized software product life cycles. They establish component granularity as a key design dimension that needs to be managed judiciously to enable potential trade-off shifting mechanisms through the use of software methodologies that emphasize modular design approaches.

Keywords

modular design, model-driven development, component-based software development, efficiency, flexibility, complexity, component granularity, software engineering, project performance

Discipline

Computer Sciences | Management Information Systems

Research Areas

Information Systems and Management

Publication

Information Systems Research

Volume

23

Issue

3

First Page

787

Last Page

803

ISSN

1047-7047

Identifier

10.1287/isre.1110.0392

Publisher

INFORMS

Additional URL

http://dx.doi.org/10.1287/isre.1110.0392

Share

COinS