Information Technology Reference
In-Depth Information
ware system and cause an error, but generally speaking software can
never be broken.
Except that software does break—all the time, at great expense and
inconvenience to its users. In fact, from the early 1960s on, software
maintenance has represented between 50% and 70% of all total expen-
ditures on software. 4 There is a strong argument to be made that the
software crisis of the late 1960s was essentially a maintenance problem:
what became increasingly expensive about software in this period was
not so much development as ongoing maintenance. 5 In any case, from
the 1960s to the present, it has continued to absorb between one half
and two thirds of all software-related resources. 6
But if software is a technology that can never be broken, what does
it mean for software to stop working? The most obvious answer is that
software can contain errors in implementation. Maurice Wilkes, one of
the fi rst people to program a modern, stored-program computer, famously
recalled the moment in June 1949 when he suddenly realized that “a
good part of the remainder of my life was going to be spent in fi nding
errors in my own programs.” 7 Wilkes was describing the process of
debugging (the elimination of fl aws in the original design or implementa-
tion, rather than the repair of accumulated errors), but the larger impli-
cation for the computing community is obvious: the delivery of a working
application was only the beginning of the life-cycle of a software applica-
tion. A programmer could (and many did) spend the majority of their
career chasing down the bugs that gradually revealed themselves in the
operation of a complex software-based system. In this respect, runs the
well-worn joke, programming a computer is a little bit like having sex:
“One mistake and you have to support it for the rest of your life.”
But thinking about maintenance solely in terms of fi xing bugs is mis-
leading. Fixing such bugs in implementation accounts for only a minority
of software maintenance. One exhaustive study from the early 1980s
estimated such emergency fi xes occupied at most one fi fth of all software
maintenance workers. 8 Even when the ongoing process of debugging
software is excluded, maintenance still accounts for more than half of
the overall cost of software development.
The majority of software maintenance involves what are euphemisti-
cally referred to in the literature as “enhancements.” These enhance-
ments sometimes involve strictly technical measures —such as implementing
performance optimizations—but more commonly are what Richard
Canning, one of the computer industry's most infl uential industry
Search WWH ::




Custom Search