How Much Does Software Complexity Matter for Maintenance Productivity? The Link Between Team Instability and Diversity
Author Information:
Michel Benaroch, Professor of Information Systems, Syracuse University, Whitman School of Management
Kalle Lyytinen, Case Western Reserve University
Year of Publication :
IEEE Transactions on Software Engineering (2022)
Summary of Findings:
Given that software complexity grows exponentially with the number of code and task dependencies, high software complexity significantly amplifies the adverse effects of team instability and team knowledge-diversity on lifecycle maintenance productivity.
Research Questions:
How do the (adverse) effects of team instability and team knowledge-diversity on lifecycle maintenance productivity change under different levels of software complexity?
What we know:
• We know that the productivity of maintaining software systems is lower when software complexity is high and when maintenance teams are instable and rely on diverse knowledge (skills). Moreover, we know based on theory that the effects of these two types of attributes may interact, such that maintenance teams of a given level of instability and knowledge-diversity may exhibit varying levels of productivity when working on systems of different levels of software complexity.
• However, studies that examined this issue produced results that are counter intuitive and opposite to theory-based predictions. The reason is that these studies assume linear interaction effects between complexity and team attributes and examine those effects at the level of a single maintenance task (project) rather than over the lifecycle of a software system.
Novel Findings:
The study shows that high software complexity amplifies the adverse effects of team instability and team knowledge-diversity on lifecycle maintenance productivity. This indicates a non-linear moderating effect of software complexity on the adverse effects of team attributes on a system’s lifecycle maintenance productivity.
Novel Methodology:
The study uses a novel, extensive software maintenance data archive from a Fortune 100 company. It covers over 7,500 maintenance tasks (projects) completed on hundreds of mission-critical, long-lived and highly complex systems that demand sustained and disciplined maintenance efforts. The projects were done over a three-year period by hundreds of maintainers in multiple global site locations.
Implications for Practice:
• Management’s personnel allocation decisions must seek congruence between system attributes, such as heightened complexity, and team attributes, such as instability and knowledge-diversity, in line with the increasingly negative marginal effect of team attributes on maintenance productivity when system complexity grows.
• Preplanning maintenance projects annually around the budget cycle (as was done in our research site) rather than the availability of maintainers and teams adds strong constraints that limit management’s ability to achieve congruence between team attributes and system attributes.
• When management has limited control over both team and system attributes, continuous monitoring of these attributes may flag situations wherein maintenance productivity is likely to drop and justify rearchitecting or retiring overly complex systems.
Implications for Research:
This study's findings demonstrate that:
• There is a need to expand the study of interaction effects between software attributes, such as modularity, and organizational and personnel factors, on lifecycle maintenance productivity.
• There is also a need to expand this study to emerging approaches, such as DevOps and modularized microservice architectures (MSA), which may blur the difference between software development and software maintenance.
• Use of the knowledge-based theory of teams in studying software maintenance ought to be expanded to other software development practices that emphasize specific aspects of team interactions, such as agile development, and how they impact lifecycle maintenance productivity.
Full Citations:
Benaroch, M. and Lyytinen, K., "How Much Does Software Complexity Matter for Maintenance Productivity? The Link Between Team Instability and Diversity," IEEE Transactions on Software Engineering, forthcoming, pp. 1-17.
Abstract:
Software complexity decreases maintenance productivity, as do team attributes of instability and knowledge diversity. We know little about the extent to which the two team attributes interact with software complexity and shape productivity across systems of varying complexity. We address this gap by investigating whether and to what degree software complexity moderates the effects of team instability and knowledge diversity on maintenance productivity over the life of a system. Given the exponential growth of code and task dependencies inherent in complex software systems, we posit that system-level complexity has a significant nonlinear amplifying effect on the adverse effects of the two team attributes. To validate the presence of such an effect, we conduct a robust split-sample econometric analysis using three years of maintenance data from 426 mission-critical systems of a Fortune 100 company. The sampled systems vary in size (50KLOC to 2000KLOC, where 20% exceed 500KLOC), with a considerable portion of the sample manifesting “high” to “very high” software complexity. The analysis corroborates the known adverse effects of team instability, team knowledge diversity, and software complexity on maintenance productivity. More importantly, it shows—as theorized—that the adverse effects of the team attributes on maintenance productivity are significantly amplified only when software complexity grows high. We conclude with practical and research implications about how to manage software teams maintaining complex software over the life of a system.
Click here to access Full Paper