An Investigation into the Effects of Code Coupling on Team Dynamics and Productivity

  • Authors:
  • James Westland Cain;Rachel Jane McCrindle

  • Affiliations:
  • -;-

  • Venue:
  • COMPSAC '02 Proceedings of the 26th International Computer Software and Applications Conference on Prolonging Software Life: Development and Redevelopment
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

During the past three decades a number of theories have been proposed to explain the idiosyncrasies of software development as a team activity. These theories variously relate to: adding more programmers to a late project makes it later (Brooks); the structure of the systemmirrors the structure of the organization that designed it (Conway); software modules are a responsibility assignment (Parnas) and one must consider stability and responsibility during dependency analysis (Martin). This paper compares and combines these theories into acoherent model of software development that links software coupling and dependency management with team productivity.As a practical test of this model, the paper then investigates the effects of coupling in two large commercial systems (both measured in person decades of effort). It achieves this by using the VCML Views visualisation technique, developed by the authors, to expose the system wide coupling found in the code and how this coupling develops during the lifetime of a project. It then compares the resultant VCML views with simple attributes of the two projects, such as programmer numbers and programmer productivity to derive a set of important conclusions.In particular, it finds that unmanaged coupling within the code is a good indicator of potential productivity bottlenecks; that the number of programmers on a project is not necessarily a good indicator of programmer productivity; and that the architecture of a software system can radically alter the number of programmers that can effectively work together on a system.