Professional Documents
Culture Documents
Key Findings
There are five key maintenance functions: corrective, adaptive, preventive, perfective
and minor enhancements.
Regular reviews of staff members on application maintenance teams will give early
indications of potential risks due to team demographics.
Once the CIO has instituted regular reporting and performance monitoring for
application maintenance, he or she is in a much better position to evaluate the options in
application maintenance outsourcing.
Recommendations
Institute regular structured reporting and review of application maintenance.
Set targets for application maintenance that will reduce costs, improve quality and raise
user satisfaction.
Ensure strict control of minor enhancements.
© 2010 Gartner, Inc. and/or its affiliates. All rights reserved. Gartner is a registered trademark of Gartner, Inc. or its
affiliates. This publication may not be reproduced or distributed in any form without Gartner's prior written permission. The
information contained in this publication has been obtained from sources believed to be reliable. Gartner disclaims all
warranties as to the accuracy, completeness or adequacy of such information and shall have no liability for errors,
omissions or inadequacies in such information. This publication consists of the opinions of Gartner's research organization
and should not be construed as statements of fact. The opinions expressed herein are subject to change without notice.
Although Gartner research may include a discussion of related legal issues, Gartner does not provide legal advice or
services and its research should not be construed or used as such. Gartner is a public company, and its shareholders may
include firms and funds that have financial interests in entities covered in Gartner research. Gartner's Board of Directors
may include senior managers of these firms or funds. Gartner research is produced independently by its research
organization without input or influence from these firms, funds or their managers. For further information on the
independence and integrity of Gartner research, see "Guiding Principles on Independence and Objectivity" on its website,
http://www.gartner.com/technology/about/ombudsman/omb_guide2.jsp
ANALYSIS
"Hey, boss. Is there any chance of a transfer to the application maintenance team? All these
development projects are just so boring." Not a very likely starting point for a conversation, is it?
Of all the various outposts of the IT organization, application maintenance has to be one of the
least regarded. However, for any organization that has undertaken application development in the
past, and for many that have implemented packaged systems with a large amount of
customization, the application maintenance budget is a sizeable and growing component of the IT
budget. As the CIO and the IT management team get to grips with the challenges of application
overhaul, the application maintenance team will play an increasingly important role in managing
the bloated application portfolio.
All too often, maintenance is seen as a necessary evil, with little in the way of management
objectives other than to keep a lid on costs and avoid problems that would affect business
operations. With the rise in cost of the application maintenance function, the CIO should review
the objectives and scope to maximize return. The starting point for such a review is getting a clear
understanding of the five key functions of applications maintenance:
1. Corrective maintenance. This is also known as "bug fixing." As errors are identified in
the application, they will pass through various support gatekeepers until they land with
the maintenance team. Some of this corrective maintenance work is the laborious and
seemingly never-ending task of working through a stack of medium- and low-priority
errors, often a truly Sisyphean task. By contrast, some corrective maintenance work is
real SWAT team stuff — trying to recover a live application to a viable state in the full
glare of spotlights shone by everyone from the CEO down.
2. Adaptive maintenance. The application runs in a complex environment. It sits on a
stack consisting of hardware, netware and infrastructure software, such as OSs,
databases, application servers, compilers, etc. This environment is subject to normal life
cycle changes, with components of the environment being upgraded or replaced from
time to time. Adaptive maintenance is the set of tasks associated with migrating the
application to run in this modified stack.
3. Preventive maintenance. All applications have errors. For each application, a decision
must be made as to whether to wait for the users to be impacted by the errors or to
undertake forensic investigation of the source code to spot errors before they have a
negative impact on the users. This activity is most useful in the early part of an
application's life cycle, when there will be more undetected errors. Because one of the
key factors in errors in applications is the widely varying capabilities of individual
programmers, one of the highest-value techniques in preventive maintenance is to use
root cause analysis in the corrective maintenance function, to identify those
programmers who seem to have produced a disproportionate number of errors and to
concentrate on the code produced by these individuals.
4. Perfective maintenance. An application delivers business functionality in the context of
an application architecture and design that is intended to achieve certain desired
characteristics. These characteristics are defined by the nonfunctional requirements,
and include attributes such as efficiency, performance, maintainability, etc. Now, in the
same way that there can be functional errors, where the application does not perform to
the functional requirements, there can also be nonfunctional errors, where the
application fails to achieve specified nonfunctional requirements. For example, there
could be a requirement for the application to achieve a specified average response time.
If the application fails to achieve the desired performance, and the problem is identified
as being in the way the application was written (rather than a simple lack of compute
Exercise strict control over minor enhancements. There are some immutable laws.
Dogs have fleas, and applications have backlogs of enhancement requests. There is an
unfortunate tendency for some application maintenance teams to see the enhancement
backlog as a personal challenge — their own version of Mount Everest. This results in a
culture where there is an expectation from users and maintenance programmers that
everything on the list will surely eventually get done, so users keep on requesting
enhancements and maintenance programmers keep on working on them (see
"Managing the Unrelenting Demand for Application Work"). It is true that many
enhancements will deliver great business value, but it is equally true that some
enhancements will not deliver value commensurate with their costs. There is also the
question of the most effective mechanism for implementing enhancements. Some
should properly be delivered on the "when code open" principle, meaning that if a
program needs to be edited because of a bug, then the enhancement can be done at
the same time. Other enhancement requests could be best-served by being added to a
proposed development project, rather than being worked on piecemeal by a
maintenance team (see "Determining When a Project Is Really a Project"). In general,
the principles of investment management that are traditionally applied to the big
development proposals — the business case, design plan, estimating, review and
approval — should have a lightweight instantiation in the maintenance management
team.
Market test the internal maintenance team against outsourced options. Application
maintenance outsourcing is a growing area of IT services, with practically all Tier 1 and
Tier 2 service providers actively engaged in this market and aggressively positioning
their capabilities as a less expensive option than the internal team. The challenge for a
CIO is often that there is insufficient clarity about exactly what the current maintenance
team does to appreciate the difference between an outsourcing proposal and the
internal service. By instituting regular reporting, target setting, planning and reviews, the
CIO gains a much more detailed awareness of this critical area, and is in a much better
position to judge which applications might benefit from application maintenance
outsourcing and what the parameters of such a service would need to be.
Corporate Headquarters
56 Top Gallant Road
Stamford, CT 06902-7700
U.S.A.
+1 203 964 0096
European Headquarters
Tamesis
The Glanty
Egham
Surrey, TW20 9AW
UNITED KINGDOM
+44 1784 431611
Asia/Pacific Headquarters
Gartner Australasia Pty. Ltd.
Level 9, 141 Walker Street
North Sydney
New South Wales 2060
AUSTRALIA
+61 2 9459 4600
Japan Headquarters
Gartner Japan Ltd.
Aobadai Hills, 6F
7-7, Aobadai, 4-chome
Meguro-ku, Tokyo 153-0042
JAPAN
+81 3 3481 3670