PROJECT MANAGEMENT IN THE MAINTENANCE
11.1Definition of Maintenance
11.2 Relative Cost of Maintenance
11.3 Maintenance Categories
11.4 Seven Step Approach
11.5 Project Management in the Maintenance Phase
11.6 Management Issues during the Maintenance
11.7 Pull Model.
• INTRODUCTION TO THE UNIT:
• This chapter focuses the software maintenance phases. The activities
carried during the maintenance phase is listed below:
• problem reporting
• problem resolution
• solution distribution
• proactive defect prevention
• The various types of maintenance is also covered in this chapter.
• UNIT LEARNING OBJECTIVES:
• After reading this chapter the user will have a wide knowledge in the
maintenance of the following:
– Relative Cost of Maintenance
– Maintenance Categories
– Seven Step Approach
– Project Management in the Maintenance Phase
– Management Issues during the Maintenance Phase
– Pull Model.
• Why Maintenance?
• Migration becomes the need of the day for the S/W to adapt itself to the
• S/W maintenance is more to do with fixing errors or with evolution
• 11.1 Definition of maintenance:
• Is a set of S/W engineering activities that occur after S/W has been
delivered to the customer and put into operation.
• Cause for maintenance:
• Change of require accounts for the majority of maintenance effort.
• The only S/W which is not subject to change, is S/W which never gets used.
• Focus is on change based on:
• Error correction
• Adaptations required due to change of S/W environment
• changes due to enhancements brought by changing customer requirements. All this
done on EXISTING CODE.
• 11.2 RELATIVE COST OF MAINTENANCE:
• 3% Required def
• 3% Preliminary design
• 5% Detailed design
• 7% Implementation
• 15% Testing
• 67% Operation & maintenance
• Software Evaluation:
• A continuous change from a lesser, simpler or worse state to a higher or better
• Software maintainer:
• Person whose mission is to support existing S/W systems
• 11.3 Maintenance categories:
• 11.3.1 Corrective:
• Change the software to correct defects found by customer, focuses on fixing defects, Is a reactive
process - Defects generally needed to be corrected either immediately or in the near future.
• 11.3.2 Adaptive:
• Is the modification to the software to accommodate changes to external environment
• Includes all work related to how the software functions – relates to enhance software functionality.
• Includes all changes to meet the evolving needs of the user and environment – system changes,
additions, insertion, deletions, modification, extensions and enhancements
• 11.3.3 Perfective:
• Includes all efforts to improve the quality of the software.
• Includes restructuring code, creating and updating documentation, improving reality or efficiency.
• The maintenance process
• When a request for change is initiated by a user
• When the system passes testing, is accepted by the user and is released for operation
• In between
• There are many activities that must be planned and coordinated by use of change
• Change request or error report is input
• Analyze impact
• Update regarding- including quality assurance and configuration management
• Issue revised system
• 11.4 Seven step approach:
– change management
– Impact analysis
– system release planning
– design changes
– system release
• Change management
• To uniquely identify, describe and track the status of each requested change.
• Impact analysis
• Identifies all system product affected by a request change request developing an estimate of
the resources needed to accomplish the change
• System release planning
• To establish the schedule of system releases, determine the contents of a system
• Design changes
• To develop a revised logical (system level) and physical (program level) design for the
• To clarify existing code and simplify changing it.
• Software testing
– Easier to test incrementally.
– Data collected during impact analysis is identifies what must be tested at each level
• System release
– Documents, software, training, hardware, other product.
– Deliver the system to the user
• Install the system release with backup procedures
• ACT= KLOC added + KLOC deleted
• KLOC total
• 11.5 PROJECT MANAGEMENT IN THE MAINTENANCE PHASE
• The maintenance phase deals with
– the process of evaluating the customer’s product changes requirement
– ascertaining its applicability
– making the necessary changes to the product
– Testing that the requested change is implemented
– Delivering the change to the affected user
• Activities during the maintenance phase:
• problem reporting
• problem resolution
• solution distribution
• proactive defect prevention
• Solution Distribution:
– when should the fix be sent to the customer?
– Should it be sent as soon as it is made & the product re-built?
– Distributing multiple small fixes not only cuts into the resources but also introduces multiple configuration to
– To accumulate multiple fixes into a patch for an immediate release
– These release are usually cumulative
• Proactive Defect Prevention:
• Analyzing common user errors & updating documentation as necessary
– no of errors is more (user errors) or documentation is not very clear
– provide on line help
• Analyzing common user errors & changing the product as necessary
– initial understanding of the product requirements is unclear
• Publishing common user errors & work-arounds on a bulletin board or a
• Performing root cause Analysis of probability & cleaning up the code of
• such areas
• 5. beefing up regression tests with tests for critical/ oft-appearing bugs
• 11.6 MANAGEMENT ISSUES DURING THE MAINTENANCE PHASE
– Incomplete information from the customers
– Use checklist of min info that is required to be gathered from a customer
• Sample checklist of information to be gathered for problem Analysis
• Product(s) used:
• Version Number(s):
• Hardware Details:
• Disk space
• Drivers / Devices:
• Software environment Details:
• OS/ Version
• Any supporting S/W versions (database, applications, etc)
• Network drivers & similar software
• Problem description:
• Is the problem reproducible?
• During the problem occurrence what other software is running?
– How critical is the problem ?
– Problems that do not reproduce
– Whose problem is it?
– Who gets the fixes?
– How to distribute the fixes?
• Two models for fix distribution
• Push: development organization pushes the fixes to the customers – customers get
the software distribution without their explicitly asking for specific fixes
• # It can be on a physical medium like a CD or through email or Internet
• 11.7 Pull model:
• Fixes for all the problems lie in repository (typically a website) and the customer
pull the fixes they want based on the symptoms or problems they encounter
– Developers unwilling to do maintenance
– Balancing maintenance with the new development
– Regression and chain maintenance
– Effective use of configuration management
• Configuration management during the maintenance phase
• Customer’s environment is not directly under the control of the development organization
• Fixes have some inherent dependencies
• A way to identify the configuration in a customer site
• Mapping the customer environment to the source environment
• Regression testing for fixes
• Skill sets for people in the maintenance phase
• Strong understanding of the product functionality
• Good communication abilities to talk to the customer and get specific details
• Ability to take balanced, objective view of the problem: both from the customers view point
and the product view point
• Good follow-through attitude.
• Estimating size, effort and people resource for the maintenance phase
– How do we predict the inflow of work?
– How do we then estimate the staffing resources?
• Historical data on the arrival and resolution rates of bugs
• Customer expectation
• Seasonal variations
• Release schedules
• Advantage of using geographically distributed teams for the maintenance phase
• Or mission critical problems or metrics for the maintenance phase
• Minimizing the impact of problems on customer while at the at the same time
balancing the maintenance workload with the development of new features and products
Arrival rate of problems (MTBF) Instability in the quality of design, development & testing
Percentage of problems - Unclear or inaccurate documentation
Classified as not a problem - Requirements were not captured properly
Problem occurrence classified by area, product are platform - Identifies high risk develop areas
Problem occurrence classified by the severity of the impact Product is completely unusable or the method of classification
is not appropriate
MTTR (ie) Average time to fix a problem Effectiveness of implementation
Rate of re-appearance of problems Effectiveness of the configuration management and the
regression testing mechanisms
Customer encounter a info
• This chapter has covered the various types of maintenance phase
and activities carried out during the maintenance phase.
• Review questions
• 1. Define Maintenance?
• 2. Explain various types of software maintenance phase?
• 3. What are Relative Cost of Maintenance?
• 4. Explain the Seven Step Approach of maintenance phase?
• 5. Describe the activities carried out during the Maintenance Phase?
• 6. What are the management issues occurred during the maintenance
• 7. Explain the Pull Model approach of maintenance phase?
• Ramesh Gopalswamy, Managning the global software projects, First
Edition, Tata McGraw Hill, Ltd (2002).
• Kieron Conway, Software Project Management, First (Reprint) Edition, The
Coriols Group, USA (2002)
• Dean Leffingwll & Don Widrig, Managing software requirements, First
(Reprint) Edition, Addison Wesley Longman, Pvt Ltd (2001).
• Edward Kit, Software Testing in the Real World , First (Reprint) Edition,
ACM Press (2001).