Hints and tips on solutions to maintenance problems

Here are common solutions that I apply:
Staff issues

1)The personnel does not understand the system – Training or send the staff to the user site to learn by looking at the others using it;

2) Management is too focused on development – Communicate better the importance of maintenance. Report regularly on maintenance activities. Use Dr. Abran’s reporting approach where trending and internal benchmarking are the key representations. Also you can benchmark against ISBSG ‘maintenance dabatase’ to show you are doing well !
3) Maintenance personnel is down – Retention bonuses, mix the teams, rotate staff send some to operations/development for a while, update their toys (equipment, phones, ..), give $ or a restaurant/cinema voucher when a challenging change in prod is defect free, implicate them in R&D, SLA’s, Contract, DRP or Transition (only if it is perceived as fun :).
Time problems

4) System changes constantly – Group requests in packs and do a certain number of versions per year.
5) Changes are piling up – Ask the CCB to prioritize them…what you have no CCB well establish one… what you do not know what a CCB is…a Change Control Board where user representatives are forced to ‘inner fighting’ to set your priorities…I like to see then go at it !
6) Night changes blast the online production – Do a small reengineering project to free up some batch schedule time. Squeeze that request in your work schedule.
Technical problem
7) Production system is hard to maintain – Start on the ‘rejuvenation journey’. Each small change must trigger a small internal improvement. This works for systems that we often change and that are there to stay. Else look at Dr. Koskinen arguments to convince management that its time to invest a bit if you want to reduce maintenance costs.
8) Production system is hard to test – Well two elements to this one: long term would be to force development (or suppliers) to give you a testing system with the new systems they transition to you. For the existing, install a test system..if its not already there..and each time you touch it you spend a bit of time developing the test tools surrounding it.
The need to compromise
9) Maintenance is done only in panic mode and compromises the production – Slow down…or manage up…you’r gona bust…or production will bust you… Allow more time to QA and look closely at what the night fix have done.
10) Maintenance personnel does not have enough tjink time to fix problems – Assign seniors to juniors to coach them before they proceed too far.
Maintenance costs problems
11) Costs are going up – Establish different costs by maintenance categories. Customers love enhancements and hate defects. Raise costs in enhancements and lower costs in other maintenance categories. Outsource/Offshore parts of the ‘low interest’ work to show you care. You better think about it yourself before someone thinks about it for you. Its time to make a business case to convert the system to a more recent language or platform.
Posted in Software Maintenance.

I am full professor of Software Engineering at the University of Québec in Montréal, in its Software Engineering faculty. I have more than 30 years of Helthcare, Finance/Banking and Telecommunications IT industry experience, especially in Cloud Computing, Big Data, software acquisition, contracts, software quality assurance and business process management. I am more comfortable with open source, practical applications and technology transfer to industry.
Currently I concentrate on research projects. In the past I was the recipient of the ISO award for higher education in standardization in 2011, as well as the chair of the Software Engineering gratuate program and of the Software Engineering departement. I also published Software Engineering Books: Software Maintenance Improvement and Software Quality Assurance.