Software Development Practices Software Complexity and Software Maintenance Performance
Software Development Practices Software Complexity and Software Maintenance Performance
Management Science
Publication details, including instructions for authors and subscription information:
http://pubsonline.informs.org
This article may be used only for the purposes of research, teaching, and/or private study. Commercial use
or systematic downloading (by robots or other automatic processes) is prohibited without explicit Publisher
approval. For more information, contact [email protected].
The Publisher does not warrant or guarantee the article’s accuracy, completeness, merchantability, fitness
for a particular purpose, or non-infringement. Descriptions of, or references to, products or publications, or
inclusion of an advertisement in this article, neither constitutes nor implies a guarantee, endorsement, or
support of claims made of that product, publication, or service.
© 1998 INFORMS
INFORMS is the largest professional society in the world for professionals in the fields of operations research, management
science, and analytics.
For more information on INFORMS, its publications, membership, or meetings visit http://www.informs.org
Software Development Practices, Software
Complexity, and Software Maintenance
Performance: A Field Study
0025-1909/98/4404/0433$05.00
Copyright q 1998, Institute for Operations Research
and the Management Sciences MANAGEMENT SCIENCE/Vol. 44, No. 4, April 1998 433
3b28 0008 Mp 433 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
must begin when the software is initially designed or key performance and design issues for the support of
when existing software is re-engineered. However, be- business software.
cause the major benefits and penalties of development
tools and techniques for software maintenance are re-
alized over the software life cycle, it is difficult to assess 2. Theoretical Framework
their actual maintenance performance effects. There- The theoretical framework for this study is developed
fore, a critical barrier to improvement in software main- by integrating several different perspectives. A produc-
Downloaded from informs.org by [193.146.32.73] on 24 April 2014, at 15:36 . For personal use only, all rights reserved.
tenance is the lack of knowledge concerning the impli- tion economics perspective enables specification of an
cations of development practices for maintenance per- integrative model for software development and main-
formance. This provides the motivation for the central tenance. A psychological perspective forms the basis for
issue examined by this study: the effect of software de- conceptualizing software maintenance performance
velopment practices on software maintenance perfor- and motivates the choice of software complexity as a
mance. key variable influencing performance.
This study posits that the impact of development
practices on software maintenance can be assessed 2.1. Economic View of Software Development and
within a practical time frame by considering their ef- Maintenance
fects on software complexity (Banker et al. 1989). Gen- Building upon the conceptual foundations of Kriebel
erally, software complexity refers to the characteristics and Raviv (1980), Stabell (1982), and Banker et al.
of the data structures and procedures within the soft- (1991), this study views software development and
ware that make it difficult to understand and change maintenance as economic production processes. In
(Curtis et al. 1979). Software complexity is emerging these processes, input factors including labor (the
as a critical software design quality factor (Card 1992, programming team) and capital (tools and tech-
Card and Glass 1990). Furthermore, there is growing niques) are transformed into outputs such as new or
empirical evidence that software complexity is a major modified software (Figure 1). A production econom-
factor influencing maintenance effort (Kemerer 1995, ics perspective reveals two issues germane to this
Banker et al. 1993, Gibson and Senn 1989). However, study. The first issue is the unidirectional flow of in-
there is little knowledge of the link between develop- formation between the development and mainte-
ment practices and software complexity, and the sub- nance processes. Although many software mainte-
sequent implications for maintenance. This limits the nance problems result from poor design choices, the
extent to which managers can take proactive steps to traditional life-cycle model of software development
improve software quality and reduce long-term main- discourages communication of feedback from main-
tenance costs. tenance into development (Schneidewind 1987). This
The study develops an integrative model, using soft- lack of knowledge transfer has the result of locking
ware complexity as an intermediate variable that links organizations into suboptimal processes (Senge 1992)
development decisions to their downstream effects on in which they support low quality software that can-
software maintenance performance. The model is esti- not easily be modified.
mated using data collected from a national mass mer- Another issue highlighted by a production eco-
chandising retailer on 29 software enhancement projects nomics perspective is the difference in inputs to the
and 23 software applications in a large IBM COBOL en- software development and maintenance processes.
vironment. Although businesses spend considerable While both development and maintenance employ
amounts on software, empirical studies of software in people, tools, and techniques to produce software, a
commercial environments are rare, due to difficulties in unique input to the maintenance process is the soft-
obtaining primary data from organizations (Hale and ware that is created by the development process. This
Haworth 1988). By examining both software develop- implies that the quality of the existing software plays
ment and software maintenance in a commercial envi- an important role in software maintenance perfor-
ronment, this research provides unique insights into mance.
3b28 0008 Mp 434 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
2.2. Psychological View of Software Maintenance cated than any other human construct (1986, p. 11).
and Software Complexity Studies of software complexity suggest that software
While an economic perspective conceptualizes software has multiple dimensions (Zuse 1990, Munson and
maintenance as a production activity and enables insights Khoshgoftaar 1989, Weyuker 1988, Li and Cheung
into managerial concerns, a psychological perspective pro- 1987). Furthermore, software maintainers are often re-
vides insights at the level of the individual maintenance quired to modify software that is ill-documented, lacks
task. Software maintenance can be conceptualized as a comprehensible structure, and hides data representa-
cognitive, human information-processing task in which tions (Guimaraes 1983). Thus, software maintenance
input informational cues are interpreted and manipulated becomes a largely cognitive task in which programmers
to create task outcomes (Ramanujan and Cooper 1994, Da- perceive and manipulate relationships between infor-
vis et al. 1993). According to this view, performance on mational cues presented by the existing software (Pen-
cognitive tasks depends on effective processing of infor- nington 1987, Shneiderman 1980).
mational cues in the task environment (Simon 1981). Empirical studies suggest that a significant portion of
A key factor believed to influence cognitive task per- the software maintainer’s time is required to understand
formance is complexity (Locke and Latham 1990, the functionality of the software to be changed (e.g., Litt-
Campbell 1988, Wood et al. 1987, Simon 1981). Com- man et al. 1987). A study of professional maintenance
plexity is a phenomenon with multiple dimensions programmers by Fjeldstad and Hamlen (1983), for ex-
(Boulding 1970) in the form of component, coordina- ample, found that the programmers studied the original
tive, and dynamic complexity (Wood 1986). Component software code 3.5 times as long as they studied the sup-
complexity refers to the number of distinct information porting documentation, and equally as long as they spent
cues that must be processed in the performance of a implementing the enhancement. This suggests that soft-
task, while coordinative complexity describes the form, ware comprehension plays a major role in software main-
strength, and interdependencies of the relationships be- tenance performance. Another implication is that software
tween the information cues. Dynamic complexity arises complexity degrades maintenance performance because it
from changes in the relationships between information interferes with understanding the functionality of the soft-
cues over time, particularly during task performance. ware. Thus, this study argues that software complexity is
Because complexity obscures the perception and under- a key maintenance performance factor because it influ-
standing of information cues, it is believed to signifi- ences the critical activity of program comprehension.
cantly degrade task performance.
This psychological view of complexity is particularly 2.3. Research Models and Hypotheses
appropriate for studying software maintenance. Ac- The theoretical framework for this study is presented in
cording to Brooks, software entities are more compli- Figure 2. The framework integrates two models in which
3b28 0008 Mp 435 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
software complexity links software development practices operationalized in terms of its component, coordinative,
to maintenance performance. The model for maintenance and dynamic dimensions. Software component complexity
performance examines the effects of software complexity is higher in software with ‘‘denser’’ code, where data
on maintenance project effort, controlling for factors such density refers to the number of data elements embedded
as project team experience, size of functionality modified, in each procedural line of code. A high level of data
and other application and project factors. In this study, we density increases the number of information cues the
focus on maintenance projects that adapt or enhance soft- maintenance team must perceive and process in order
ware functionality for existing systems because software to comprehend the software and to validate the modi-
enhancements represent the largest category of IS main- fications, and should increase effort required for the
tenance expenditures (Nosek and Palvia 1990). The model project. Prior empirical research generally supports the
for application software complexity connects maintenance notion that programs with higher density are associated
outcomes to software practices by assessing the impact of with increased maintenance effort (Shen et al. 1985,
development tools and techniques on the complexity of Gremillion 1984). Thus,
the software application. A detailed explanation of each
model follows. HYPOTHESIS 1 (COMPONENT COMPLEXITY ). Software
enhancement project effort is positively related to data density
2.3.1. Software Maintenance Performance Model. for the software modified.
The conceptual model for software maintenance perfor-
mance is illustrated in Figure 3. Software maintenance per- Software coordinative complexity is high where there
formance is operationalized as software enhancement is excessive decision density within the software under
project effort. Software enhancement includes modifica- modification. Frequent decision branching between
tions to extend, change, and delete the functionality of modules obscures the relationship between program
existing software. Project effort refers to the time required inputs and outputs and increases cognitive load on
by the maintenance project team to accomplish the soft- the maintenance team because they must search
ware modifications for a particular end user request. In among dispersed pieces of code to determine logical
this model, software enhancement effort is specified as a flow. This is supported by several empirical studies
function of software component complexity, software co- that have found that maintenance effort increases as
ordinative complexity, software dynamic complexity, branching complexity increases (Boehm-Davis et al.
project team experience, software functionality modified, 1992, Gill and Kemerer 1991). Thus, complex decision
application size, and application quality. branching should have a detrimental effect on project
Dimensions of software complexity map well onto effort because more time is required to follow the flow
the dimensions of complexity identified by Wood of logic within the code. This suggests the following
(1986). As shown in Figure 3, software complexity is hypothesis:
3b28 0008 Mp 436 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
3b28 0008 Mp 437 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
complexity, software coordinative complexity, and soft- grams generated by code generators include standard
ware dynamic complexity are all specified as functions routines and custom software routines that execute con-
of software development practices (Figure 4). Two soft- ditionally depending on inputs entered by the end user
ware practices are analyzed in this model: use of code of the system. This conditional invocation of custom
generators and packaged software. Both code generators code is very similar to the use of the ‘‘ALTER’’ or ‘‘GO
and packaged software are commonly used in software TO DEPENDING ON’’ statements that enable dynamic
practice. Use of code generators is believed to contribute modifications of program control flow at execution
Downloaded from informs.org by [193.146.32.73] on 24 April 2014, at 15:36 . For personal use only, all rights reserved.
to improved software quality and reduced maintenance time. These routines are necessary to particularize the
costs (Olle et al. 1983). Code generators require entry of software to user requirements not met by the code gen-
a specified set of parameters and create similar kinds of erator’s standard routines. The conditional execution of
software routines based upon these parameters (Davis custom code based upon online screen input makes it
and Olson 1985). Because code generators automate cre- difficult for maintenance programmers to discern the
ation of voluminous amounts of standard procedural logical flow of information within the program because
code to process a limited number of input parameters the programmers must envision dynamic characteristics
(Everest and Alanis 1992, Stamps 1987), use of these of program inputs from an online environment, infer
tools should reduce data density. This suggests that, which routines will be called and executed, and deduce
the subsequent effects on outputs. Thus, extensive use
HYPOTHESIS 4 (CODE GENERATORS ). The use of code of custom routines contributes to increased decision
generators is inversely related to data density for the appli- volatility in the software created by the code generator
cation software. because the routines complicate the standard control
Use of these tools should also introduce a consistent flow in the programs. This implies,
structure in the software and reduce decision density. HYPOTHESIS 6 (CODE GENERATORS ). The use of code
Thus, generators is positively related to decision volatility for the
application software.
HYPOTHESIS 5 (CODE GENERATORS ). The use of code
generators is inversely related to decision density for the ap- Packaged software is created by vendors to satisfy the
plication software. requirements of a large number of customers. Such soft-
ware includes a larger volume of data and procedures
However, although code generators enable produc- that apply more generally to a number of organizations
tivity gains in software development because of the au- (Davis 1988, Martin and McClure 1983). Thus, this kind
tomatic generation of code, such gains are offset in soft- of software should have higher data and decision den-
ware maintenance by increased decision volatility. Pro- sity than software developed in-house because it is not
3b28 0008 Mp 438 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
restricted to the particular requirements of an organi- answering user questions, and accomplishing user-
zation (Lynch 1984). Thus, requested enhancements to existing functionality.
The Retailer has a large investment in transaction-
HYPOTHESIS 7 (PACKAGED SOFTWARE ). The use of
processing software written in COBOL and running on
packaged software is positively related to data density for the
large IBM mainframe computers. The study of software
application software.
maintenance in this kind of environment is important
HYPOTHESIS 8 (PACKAGED SOFTWARE ). The use of because a large portion of business expenditures for
Downloaded from informs.org by [193.146.32.73] on 24 April 2014, at 15:36 . For personal use only, all rights reserved.
packaged software is positively related to decision density for computing is still devoted to maintenance of COBOL
the application software. software (Croxton 1994). Approximately 65 percent of
the Retailer’s application portfolio at the time of the
However, decision volatility in the form of invoked
study was written in COBOL. Most of the application
subroutines would be lower in packaged software. To
software was written in the 1970s and 1980s, with the
facilitate incorporation of new releases from the vendor,
oldest system written in 1974.
organizations operate purchased software in isolation
The Retailer employs two primary development prac-
from their other applications, with the exception of nec-
tices: use of software packages and use of a code gen-
essary interfaces. As part of the vendor agreement, the
erator. Four of the 23 applications are software pack-
organization may be prohibited from major custom-
ages. The Retailer uses software packages for applica-
ization of the purchased software code. Thus, packaged
tions that are considered to be ‘‘generic,’’ with relatively
software tends to be less integrated into the application
little unique, company-specific requirements. The pack-
portfolio, with less invocation of organizational subrou-
ages are financial and accounting applications including
tines. This implies that,
payroll, general ledger, fixed asset accounting, and fi-
HYPOTHESIS 9 (PACKAGED SOFTWARE ). The use of nancial accounting. Agreements with the vendors for
packaged software is inversely related to decision volatility these packages do not prevent the Retailer from modi-
for the application software. fying the package software code. The Retailer has made
minor modifications to the packages such as customiz-
3. Research Design and ing the printing routines to accommodate the company
name and other unique identifiers.
Methodology The Retailer uses a code generator for in-house de-
3.1. Research Setting velopment. The code generator is a mainframe software
The research site is the IS department of a national mass productivity tool widely available in the 1980s and
merchandising retailer (hereafter referred to as ‘‘Re- 1990s that is intended to aid in the development of
tailer’’), located at company headquarters and support- COBOL applications. It provides support for the design
ing all centralized computer processing activities. In of online screens, for automatic generation of standard
1983, the IS department was divided into separate de- source code for input and output processing, and for
velopment and maintenance teams, with Development interactive testing of the generated source code. The tool
working exclusively on new systems, and Maintenance allows incorporation of custom source code within the
devoted to support and enhancement of existing sys- generated code to accomplish more complex or unique
tems. At the time of the study, Maintenance was re- processing that is not supported automatically, to mod-
sponsible for the support of 23 major applications. An ify the default program flow, and to override default
application at the Retailer includes a number of pro- field attributes. There was considerable interest in
grams or modules (on average, about 200 programs) studying the impacts of the code generator and pack-
that together accomplish a major function such as ac- ages on Maintenance, because the Retailer relied heavily
counts receivable, payroll, or order management. Main- on these development practices:
tenance supports these applications by correcting er- All of our development work now is done using code genera-
rors, doing preventative maintenance and conversions tors or its packages. The trend is to scope down by buying it
to accommodate changes in the technical environment, off the shelf or increase the number of people and tools to get
3b28 0008 Mp 439 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
it done quicker. (Interview Transcript, Development Manager, since personnel time is the most expensive and scarce
February 8, 1993)
resource in software maintenance (Grammas and Klein
1985). A potential threat to validity of the effort measure
3.2. Data Collection Methods
is inaccurate project records. The Retailer’s internal cli-
Both quantitative and qualitative data were collected
ents were charged by the hours spent on their projects.
during the study. Multiple methods of data collection
This motivates personnel to maintain accurate project
and multiple data sources were employed, including in-
time records. In addition, the project data did not reveal
terviews, observation of meetings, project documenta-
Downloaded from informs.org by [193.146.32.73] on 24 April 2014, at 15:36 . For personal use only, all rights reserved.
3b28 0008 Mp 440 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
software complexity variables cannot be adequately and maintenance are linked, design decisions have
represented by a reduced number of factors. This sup- long-term maintenance effects that are difficult to re-
ports the discriminant validity of the software complex- verse, and there is little knowledge of the effects of de-
ity measures. Informal support for convergent validity sign choices:
of the empirical complexity constructs was obtained
When Maintenance gets systems from Development, there are
from interviews with maintenance personnel. often many outstanding problems. Maintenance has to still
Software functionality modified is assessed by the num- work on things to get the system to work. If there are problems,
Downloaded from informs.org by [193.146.32.73] on 24 April 2014, at 15:36 . For personal use only, all rights reserved.
ber of function points added, changed, or deleted by the we call Development, but Development’s ‘‘stuck’’ and ‘‘has no
project. Application size is measured by counting the time to work on it,’’ so they can’t often offer much assistance.
Really complex programs often come from Development. On-
number of application function points. Function points
line screens, for example, often do two or three functions in one
measure the number of unique inputs, outputs, logical screen . . . and Maintenance has to rewrite the screen into two
files, external interface files, and external queries in- programs. Certain people in Development do that constantly.
cluded in a software application (IFPUG 1993). The The manager wanted to get it done and approved it. (Interview
counts are weighted for difficulty depending upon fac- Transcript, Maintenance Programmer, February 1, 1993)
tors such as whether the application runs in a distrib-
uted environment, or whether the application is held to When we turn over systems to Maintenance, we don’t get to
see whether we made a good design choice. Usually there’s two
above average performance standards (Albrecht and
or three different ways to do things. But most people in Devel-
Gaffney 1983). Function points is a widely used mea- opment haven’t had Maintenance experience so they don’t
sure of software size (Perry 1986) and is considered a know which is better for Maintenance. (Interview Transcript,
reliable measure of delivered software superior to the February 15, 1993, Development Programmer)
alternative measure of software lines of code (Kemerer
1993). For this study, function point counts were ob- Although many development and maintenance
tained from the Retailer’s Quality Assurance team, programmers occupied adjacent cubicles, there ap-
which is independent of Development and Mainte- peared to be little communication between the groups.
nance, but reports directly to the Chief Information Of- In fact, there appeared to be some friction, especially
ficer. when new systems were transferred from Development
Application quality is measured by counting the num- to Maintenance:
ber of repair hours for the application. Repair hours There should be an evaluation of those who created the system
were obtained from company time-tracking systems in the first place. Downtime and abends (system failures) are
and cross-checked against a parallel, paper-based sys- important. But they’re not given to Development so they can
learn what was done. There’s no interest by Development once
tem that reported repair, user support, and preventive
the system’s been turned over. There’s a book of turnover stan-
maintenance hours for the applications. dards, but the last sentence is like . . . ‘‘this can be waived at
Project team experience was subjectively assessed by the discretion of the manager accepting the system.’’ And they
maintenance managers in response to a project data pressure the manager to accept the system . . . it’s political.
questionnaire. Experience was measured on a five-point (Interview Transcript, Maintenance Programmer, March 1,
1993)
scale corresponding to the percentage of programmers
on the project team who had worked with the applica- In one situation, an entire new application was re-
tion for three or more years. The scale was derived from written over a period of three years by a maintenance
an existing instrument used in prior empirical work team dedicated to redeveloping the code. A mainte-
(Banker et al. 1987, 1991). nance programmer described the interdependencies be-
tween Development and Maintenance:
4. Data Analysis and Results You know, data processing’s more mechanical now, like an
assembly-line. Everything’s so interrelated and there’s ripple
4.1. Interviews effects everywhere. We’re machinists, not artists . . . we need
Interviews with IS personnel provide support for cen- to have a good definition of where we want to go with (soft-
tral ideas motivating this study: software development ware) quality so Development and Maintenance can work
3b28 0008 Mp 441 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
together. (Interview Transcript, Maintenance Programmer, enhancement projects or non-COBOL projects. Twenty-
February 1, 1993)
nine software enhancement projects were thus selected
Interview comments suggest the importance of un- for analysis. Table 1 presents a statistical profile of the
derstanding in more detail the link between develop- projects. The average software enhancement project re-
ment choices and maintenance effects. In the following quired 453 hours to complete, and added, changed, or
sections, the analysis of quantitative data on software deleted 143 function points. A correlation matrix for the
enhancement projects, software applications, and de- variables appears in Table 2.
Downloaded from informs.org by [193.146.32.73] on 24 April 2014, at 15:36 . For personal use only, all rights reserved.
sign practices provides insights into the precise nature A variety of specification checks were performed for
of the relationship between development practices and the estimated model to ensure that standard assump-
maintenance performance at the research site. tions were satisfied. The Shapiro-Wilk test for normality
of residuals in small samples (Shapiro and Wilk 1965)
4.2. Model 1: Software Maintenance Performance rejected the normality assumption at the 5 percent sig-
The effect of software complexity on enhancement pro- nificance level. A logarithmic transformation of the de-
ject effort is analyzed using project-level data to esti- pendent variable was indicated by the Box-Cox proce-
mate a multiple regression model that relates software dure (Box and Cox 1964) to correct for skewness. Spec-
enhancement project effort, software complexity, soft- ification checks were conducted after transforming to a
ware functionality, and other project characteristics: semi-log model. The Shapiro-Wilk test indicated that
Project Hours the normality assumption was not violated. Both Glej-
ser’s (1969) and White’s (1980) tests suggested that the
Å b0 / b1 (Data Density) homoscedasticity assumption was not violated for the
/ b2 (Decision Density) / b3 (Decision Volatility) revised model. Belsley-Kuh-Welsch (1980) collinearity
diagnostics indicated a highest condition number for
/ b4 (Project Function Points) the model of 19.68, within the recommended limit
/ b5 (Team Experience) (Greene 1993). Variance inflation factors for the inde-
pendent variables were all below 10, also suggesting
/ b6 (Application Repair Hours) that multicollinearity is not a problem (Neter et al.
1990).
/ b7 (Application Function Points) / e
Statistical results from one-tailed tests of the hypoth-
After discussions with IS staff concerning accurate eses are presented in Table 3. The results support the
project record retention, only projects completed within hypotheses that enhancement effort is positively related
a three-year time frame between January 1991 and De- to decision density and decision volatility. As expected,
cember 1993 were considered for inclusion in the study. enhancement effort is positively related to project size,
Of the 40 large projects completed during that time application repair hours, and application size, and is
frame, 11 were eliminated because they were either non- inversely related to team experience. The joint effect of
3b28 0008 Mp 442 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
Project Application
Project Function Function Application Repair Data Decision Decision
Hours Points Points Experience Hours Density Density Volatility
the three software complexity variables on enhance- is the high correlation between the data and decision
ment effort is also significant. density variables. To check this explanation, the model
The coefficient for data density is significantly nega- was estimated without the decision density variable.
tive, contrary to Hypothesis 1. We examined several al- Neither the sign nor significance of the data density
ternative explanations for this finding. One explanation variable changed, suggesting that collinearity with the
3b28 0008 Mp 443 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
decision density variable is not causing a shift in sign. 4.3. Model 2: Software Complexity
Another alternative is that data density is correlated The effect of software development practices on soft-
with an omitted variable. Data density was then re- ware complexity is assessed using application-level
gressed on several additional variables (including ap- data to estimate models relating software complexity
plication lines of code, project team skill, project team attributes with measures of development practices:
IS experience, and total lines of code modified in the
project). The regression was not significant, indicating Data Density
Downloaded from informs.org by [193.146.32.73] on 24 April 2014, at 15:36 . For personal use only, all rights reserved.
that data density was not related to any measured vari- Å g01 / g11 (Code Gen) / g21 (Package) / e1 ,
able omitted from the model. A third alternative is that
there is a causality problem in the model; however, the Decision Density
time precedence in the data should reduce this possi- Å g02 / g12 (Code Gen) / g22 (Package) / e2 ,
bility.
A potential explanation for the result that data Decision Volatility
density is associated with less project effort is that Å g03 / g13 (Code Gen) / g23 (Package) / e3 .
programs high in data density contain lower func-
tional complexity. Programs high in data density are Because the equations have identical explanatory vari-
in applications representing lower levels of infor- ables, ordinary least squares and generalized least
mation processing (Davis and Olson 1985, p. 7). The squares estimates are identical.
applications with the highest data density include Table 4 presents a statistical profile of the 23 COBOL
the accounting and basic financial transaction- applications included in the study. The average appli-
processing systems such as accounts receivable, gen- cation included 401,434 lines of code and 2,368 function
eral ledger, accounts payable, and payroll, as well as points. The total size of the portfolio analyzed was
interface systems. Such applications process vol- 9,232,973 lines of code and 54,470 function points. This
umes of data in a relatively simple manner and are represents about 65 percent of the company’s total ap-
less functionally sophisticated than systems like plication portfolio. A correlation matrix for key vari-
merchandise forecasting and planning, and may ables appears in Table 5.
thus be more easily modified. An interesting direc- Normality and homoscedasticity assumptions were
tion for further research would be to examine the satisfied for all three equations. The Box-Cox proce-
relationship between the levels of information pro- dure indicated that no transformations were neces-
cessing in the applications and the effort required for sary. Pearson partial correlations, condition numbers
maintaining them. for the models (highest of 3.76), and variance inflation
To assess the robustness of the estimated parame- factors (all less than 10) suggested that multicolli-
ters, a number of sensitivity analyses were conducted. nearity is not unduly influencing the estimates. Sta-
Belsley-Kuh-Welsch (1980) procedures led to the tistical results (Tables 6a through 6c) support the hy-
omission of two influential observations from the re- potheses that packaged software is associated with in-
gression. The sign and significance of the re-estimated creased data and decision density and with decreased
software complexity coefficients after omitting the in- decision volatility. Also supported are the hypotheses
fluential observations correspond to those in the orig- that use of the code generator is associated with re-
inal model (Table 3). An additional sensitivity check duced data and decision density and with increased
involved a rank regression to assess the robustness of decision volatility.
results to functional forms (Iman and Conover 1979). Sensitivity analyses included re-estimating the de-
The sign and significance of the complexity coeffi- cision density equation after deleting two influential
cients in the rank regression correspond to those in observations identified using the Belsley-Kuh-Welsch
the original model with the exception of the decision (1980) criteria (there were no influential outliers in
volatility variable whose coefficient was not signifi- the data density and decision volatility models). The
cant (Table 3). sign and significance of the development practices
3b28 0008 Mp 444 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
Total Lines of Code 401,434 430,462 3,636 1,528,670 138,069 255,999 512,037
Proportion of Code Generator 0.2276 0.2521 0.0000 0.7351 0.0000 0.1021 0.4000
Application Function Points 2,368 1,693 273 5,482 814 1,847 3,704
Package 0.174 0.388 0.00 1.000 0.000 0.000 0.000
Data Density 0.7255 0.1191 0.5555 1.0050 0.6186 0.7122 0.8024
Downloaded from informs.org by [193.146.32.73] on 24 April 2014, at 15:36 . For personal use only, all rights reserved.
Proportion
Total Lines Application of Code Data Decision Decision
of Code Function Points Generator Package Density Density Volatility
variables in the revised decision density regression The study examined the maintenance impact of two
correspond to those in the original model. Estimation key development practices at the research site: use of a
of rank regression models also confirmed that the sign code generator and packaged software. Software en-
and significance of the development practices vari- hancement effort was significantly related to software
ables in the original models are robust with the ex- complexity and was positively associated with the size
ception of the package variable, which is no longer of project functionality, application size, and applica-
significant at the 5 percent level in the decision den- tion repair hours, and inversely associated with project
sity model. team experience.
The use of a code generator was significantly related
to reduced data and decision density and increased de-
5. Discussion cision volatility. The overall impact of the code gener-
To examine the implications of software development ator on software enhancement effort is assessed using
practices for software maintenance performance, this the estimated coefficients for the code generator vari-
study developed an integrative model with software able, the individual software complexity variables, and
complexity as an intermediate variable linking design the enhancement effort variable (Table 7). Results in-
decisions to their downstream maintenance impacts. dicate that, ceteris paribus, an increase of 10 percent in
This model was empirically tested using data collected the proportion of code generator use is associated with
from a national mass merchandising retailer. The de- a 3.8 percent increase in software enhancement project
tailed results provide a number of interesting insights hours. This was a surprising result to software manag-
and suggest several conclusions. ers at the Retailer, but not to the maintenance
3b28 0008 Mp 445 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
Coefficient Rank
(Predicted Basic Model Standardized Model Without Outliers Regression
Variables Sign) (n Å 23) (n Å 23) (n Å 23) (n Å 23)
Standardized Rank
Coefficient Basic Model Model Without Outliers Regression
Variables (predicted sign) (n Å 23) (n Å 23) (n Å 21) (n Å 23)
3b28 0008 Mp 446 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
CodeGen Package
i Partial Effects of the Following: (bi * g1i) (bi * g2i)
programmers. Although the code generator creates inversely related to decision volatility. Overall, an in-
standardized routines that reduce data and decision crease in the use of packaged software is associated with
density, conditionally invoked routines that alter the a 6.5 percent decrease in software enhancement project
standard flow of program logic were embedded in the hours (Table 7). This result was surprising at first to
code to customize it to user requirements, increasing both the software managers and the maintenance
decision volatility and leading to lower software main- programmers. As one programmer stated,
tenance performance. Maintenance programmers indi- Most of our packages have really junk code . . . you know,
cated that it was difficult to work with the code gener- written in the most complicated way. I don’t think the vendors
ator and to make modifications because of the mix of care. It’s so much better if they’re written simply. (Interview
generated and custom code. In many cases, the code no Transcript, Maintenance Programmer, February 22, 1993)
longer matched the original application design in the
Further investigation revealed that the accounting
tool because the programmers had changed the gener-
and financial packages used by the Retailer are data and
ated code but not the design:
decision intensive, reflected in higher data and decision
Tools like (the code generator) solve old problems but create complexity. However, the packages are low in decision
new ones. They just shift the problems to Maintenance. The volatility because they are less integrated into the ap-
problem with (the code generator) is that most changes are to
plication portfolio and have fewer invoked subroutines.
the user (customized) logic. Then it’s hard to figure out the
logic paths in that stuff because it calls in routines from all over.
In addition, modifications to these packages tend to be
And then the compiles take longer, and the testing and debug- relatively simple, involving customization of printing
ging are more complicated. At first (the code generator) only routines and internal table values to accommodate the
had a screen painter, so you had to edit the program in Pan- Retailer’s unique codes, and thus require less mainte-
valet, and there was no validation except when you compiled nance effort.
it! Also, navigating through the tool is difficult. There are layers
and layers of menus, and you just want to make a change to
one or two lines of code. (Interview Transcript, Maintenance
Programmer, March 1, 1993)
6. Concluding Remarks
This study provides insight into how performance in
The use of purchased software was significantly as- software maintenance can be improved. From a contin-
sociated with increased data and decision density, and uous quality improvement perspective, the key idea is
3b28 0008 Mp 447 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
that software development practices have long-term guy. Q.A. (Quality Assurance) has no upper level management
support. Programmers think management is out of touch—
consequences that are difficult and costly to reverse, and
they just do the best they can. You’ve got programmers making
therefore, to improve the software process, innovations
decisions on quality versus time. Everyone knows we need to
must focus on improving the efficacy of design and de- improve quality. It’s not finger pointing—it should be forward-
velopment procedures. The software industry has been direction pointing. [Interview Transcript, Development Pro-
plagued by the ‘‘silver bullet syndrome’’—the belief grammer, February 8, 1993] 1
that new tools and techniques will solve software prob-
Downloaded from informs.org by [193.146.32.73] on 24 April 2014, at 15:36 . For personal use only, all rights reserved.
3b28 0008 Mp 448 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
Campbell, D. J., ‘‘Task Complexity: A Review and Analysis,’’ Acad. Greene, W. H., Econometric Analysis, 2nd ed., Macmillan, New York,
Management Rev., 13, 1 (1988), 40–52. 1993.
Card, D. N., ‘‘Designing Software for Producibility,’’ J. Systems and Gremillion, L. L., ‘‘Determinants of Program Repair Maintenance Re-
Software, 17 (1992), 219–225. quirements,’’ Communications of the ACM, 27, 8 (1984), 826–832.
and R. L. Glass, Measuring Software Design Quality, Prentice Hall, Guimaraes, T., ‘‘Managing Application Program Maintenance Expen-
Englewood Cliffs, NJ, 1990. ditures,’’ Comm. ACM, 26, 10 (1983), 739–746.
Croxton, M., ‘‘Maintenance Still on IT Resume,’’ Software Magazine, 14, Hale, D. P. and D. A. Haworth, ‘‘Software Maintenance: A Profile of
6 (1994), 4–6. Past Empirical Research,’’ Proc. Fourth Conf. on Software Mainte-
Downloaded from informs.org by [193.146.32.73] on 24 April 2014, at 15:36 . For personal use only, all rights reserved.
Curtis, B., ‘‘Substantiating Programmer Variability,’’ IEEE Proceedings, nance, IEEE Computer Society Press, Washington, DC, 1988, 236–
69, 7 (1981), 846. 240.
, S. B. Sheppard, P. Milliman, M. A. Borst, and T. Love, ‘‘Measur- Halstead, M., Elements of Software Science, Elsevier North-Holland,
ing the Psychological Complexity of Software Maintenance Tasks New York, 1977.
with the Halstead and McCabe Metrics,’’ IEEE Trans. on Software IFPUG, Function Point Counting Practices Manual, International Function
Engineering, SE-5, 2 (1979), 96–104. Points User’s Group, J. Sprouls (Ed.) AT&T, Piscataway, NJ, 1993.
Davis, G., ‘‘To Buy, Build, or Customize?’’ Accounting Horizons, March Iman, R. L. and W. J. Conover, ‘‘The Use of the Rank Transform in
(1988), 101–103. Regression,’’ Technometrics, 21, 4 (1979), 499–509.
, R. Collins, M. Eierman, and W. Nance, ‘‘Productivity from In- Johnson, R. A. and D. W. Wichern, Applied Multivariate Statistical Anal-
formation Technology Investment in Knowledge Work,’’ in R. D. ysis, 3rd ed., Prentice-Hall, Englewood Cliffs, NJ, 1992.
Banker, R. J. Kauffman, and M. A. Mahmood (Eds.), Strategic In- Kaiser, H. F., ‘‘An Index of Factorial Simplicity,’’ Psychometrika, 39
formation Technology Management: Perspectives on Organizational (1974), 31–36.
Growth and Competitive Advantage, Idea Group Publishing, Harris- Kemerer, C., ‘‘Reliability of Function Points Measurement,’’ Comm.
burg, PA, 1993, 327–345. ACM, 36 (1993), 85–97.
and M. Olson, Management Information Systems: Conceptual Foun- , ‘‘Software Complexity and Software Maintenance: A Survey of
dations, Structure, and Development, McGraw-Hill, New York, Empirical Research,’’ Ann. Software Engineering, 1 (1995), 1–22.
1985. Kriebel, C. and A. Raviv, ‘‘An Economics Approach to Modeling the
DeMarco, T., Controlling Software Projects, Yourdon Press, New York, Productivity of Computer Systems,’’ Management Sci., 26, 3
1982. (1980), 297–311.
Eisenhardt, K. M., ‘‘Building Theories from Case Study Research,’’ Li, H. F. and W. K. Cheung, ‘‘An Empirical Study of Software Metrics,’’
Acad. Management Rev., 14, 4 (1989), 532–550. IEEE Trans. on Software Engineering, SE-13, 6 (1987), 697–708.
Everest, G. and M. Alanis, ‘‘Assessing User Experience with CASE Littman, D. C., J. Pinto, S. Letovsky, and E. Soloway, ‘‘Mental Models
Tools: An Exploratory Analysis,’’ Proc. 25th Hawaii International and Software Maintenance,’’ J. Systems and Software, 7 (1987),
Conf. on Systems Science, IEEE Computer Society Press, Los Ala- 341–355.
mitos, CA, January 1992. Locke, E. A. and G. P. Latham, A Theory of Goal-Setting and Task Per-
Fenton, N., S. L. Pfleeger, and R. L. Glass, ‘‘Science and Substance: A formance, Prentice-Hall, Englewood Cliffs, NJ, 1990.
Challenge to Software Engineers,’’ IEEE Software, 11, 4 (1994), 86– Lynch, R. K., ‘‘Implementing Packaged Application Software: Hidden
95. Costs and New Challenges,’’ Systems, Objectives, Solutions, 4
Fjeldstad, R. K. and W. T. Hamlen, ‘‘Application Program Mainte- (1984), 227–234.
nance Study—Report to Our Respondents,’’ in G. Parikh and H. McCabe, T. J., ‘‘A Complexity Measure,’’ IEEE Trans. on Software En-
Zvegintzov (Eds.), Tutorial on Software Maintenance, IEEE Com- gineering, SE-2, 4 (1976), 308–320.
puter Society Press, Silver Spring, MD, 1983. Martin, J. and C. McClure, ‘‘Buying Software Off the Rack: Packages
Garvin, D. A., ‘‘Building a Learning Organization,’’ Harvard Business Can Be the Solution to the Software Shortage,’’ Harvard Business
Rev., July–August (1993), 78–91. Rev., November–December (1983), 32–60.
Gibson, V. R. and J. A. Senn, ‘‘System Structure and Software Munson, J. C. and T. M. Khoshgoftaar, ‘‘The Dimensionality of Pro-
Maintenance Performance,’’ Comm. ACM, 32, 3 (1989), 347– gram Complexity,’’ Proc. International Conf. on Software Engineer-
358. ing, IEEE Computer Society Press, Washington, DC, 1989, 245–
Gill, G. K. and C. F. Kemerer, ‘‘Cyclomatic Complexity Density and 253.
Software Maintenance Productivity,’’ IEEE Transactions on Soft- Neter, J., W. Wasserman, and M. H. Kutner, Applied Linear Statistical
ware Engineering, 17, 12 (1991), 1284–1288. Models, 3rd ed., Irwin, Homewood, IL, 1990.
Glesjer, H., ‘‘A New Test for Heteroscedasticity,’’ J. American Statistical Nosek, J. T. and P. Palvia, ‘‘Software Maintenance Management:
Association (1969), 316–323. Changes in the Last Decade,’’ J. Software Maintenance, 2, 3 (1990),
Grady, R. B., ‘‘Practical Results from Measuring Software Quality,’’ 157–174.
Comm. ACM, 36, 11 (1993), 62–68. Olle, T. W., H. G. Sol, and A. A. Verrijn-Stuart, Eds., Information System
Grammas, G. W. and J. R. Klein, ‘‘Software Productivity as a Strategic Design Methodologies: A Comparative Review, North-Holland, Am-
Variable,’’ Interfaces, 15, 3 (1985), 116–126. sterdam, 1983.
3b28 0008 Mp 449 Monday Apr 06 08:40 AM Man Sci (April) 0008
BANKER, DAVIS, AND SLAUGHTER
Software Development Practices, Software Complexity, and Maintenance Performance
Oman, P. W., C. R. Cook, and M. Nanja, ‘‘Effects of Programming Stabell, C., ‘‘Office Productivity: A Microeconomic Framework for
Experience in Debugging Semantic Errors,’’ J. Systems and Soft- Empirical Research,’’ Office Technology and People, 1, 1 (1982),
ware, 9 (1989), 192–207. 91–106.
Pennington, N., ‘‘Stimulus Structures and Mental Representations in Stamps, D., ‘‘CASE: Cranking out Productivity,’’ Datamation, July 1
Expert Comprehension of Computer Programs,’’ Cognitive Psy- (1987), 55–58.
chology, 19 (1987), 295–341. Swanson, E. B. and C. M. Beath, Maintaining Information Systems in
Perry, W. E., ‘‘The Best Data Processing Measures,’’ System Develop- Organizations, John Wiley and Sons, New York, 1989.
ment, 6, 6 (1986), 4–6. Vessey, I., ‘‘Toward a Theory of Computer Program Bugs: An
Downloaded from informs.org by [193.146.32.73] on 24 April 2014, at 15:36 . For personal use only, all rights reserved.
Ramanujan, S. and R. B. Cooper, ‘‘A Human Information Processing Empirical Test,’’ International J. Man-Machine Studies, 30, 3
Approach to Software Maintenance,’’ OMEGA, 22 (1994), 185– (1989).
203. Weyuker, E. J., ‘‘Evaluating Software Complexity Measures,’’ IEEE
Schneidewind, N. F., ‘‘The State of Software Maintenance,’’ IEEE Trans. on Software Engineering, 14, 9 (1988), 1357–1365.
Trans. on Software Engineering, SE-13, 3 (1987), 303–310. White, H., ‘‘A Heteroscedasticity-Consistent Covariance Matrix Esti-
Senge, P. M., The Fifth Discipline: The Art and Practice of the Learning mator and a Direct Test for Heteroscedasticity,’’ Econometrica, 48
Organization, Doubleday, New York, 1992. (1980), 817–838.
Shapiro, S. S. and M. B. Wilk, ‘‘An Analysis of Variance Test for Nor- Wood, R. E., ‘‘Task Complexity: Definition of a Construct,’’ Organ-
mality,’’ Biometrika, 52 (1965), 591–612. izational Behavior and Human Decision Processes, 31 (1986), 60–
Shen, V. Y., T. J. Yu, S. M. Thebaut, and L. R. Paulsen, ‘‘Identifying 82.
Error-Prone Software—An Empirical Study,’’ IEEE Trans. on Soft- , A. J. Mento, and E. A. Locke, ‘‘Task Complexity as a Moderator
ware Engineering, SE-11, 4 (1985), 317–323. of Goal Effects: A Meta-Analysis,’’ J. Applied Psychology, 72, 3
Shneiderman, B., Software Psychology: Human Factors in Computer and (1987), 416–425.
Information Systems, Winthrop Publishers, Inc., Cambridge, MA, Zuse, H., Software Complexity: Measures and Methods, de Gruyter, Am-
1980. sterdam, 1990.
Simon, H. A., The Sciences of the Artificial, 2nd ed., The MIT Press, Zvegintzov, N., Software Maintenance News, 6, 8 (1988).
Cambridge, MA, 1981. , ‘‘Immortal Software,’’ Datamation, June (1984), 170–180.
Accepted by John C. Henderson; received April 10, 1996. This paper has been with the authors 4 months for 1 revision.
3b28 0008 Mp 450 Monday Apr 06 08:40 AM Man Sci (April) 0008