Search
 
     
   
   
   
 
By
Dr. R. Srinivasan,
CTO, iCMG, Bangalore
   
  Maintenance team should interact with Users
 
 

 

More than half of the problems faced by maintenance people is due to the lack of understanding by the users, believes. Dr R Srinivasan

In this concluding part under maintenance, let us discuss some problems encountered in maintenance. Normally, in the currently running products, any change to be made is taken care of by the maintenance team. Because the systems are already operational, the maintenance team has to balance the need for change with the necessity for keeping a system accessible to users. I.e., the maintenance team has to find a solution without disturbing the users. Shari Lawrence Pfleeger in her book on, 'Software Engineering-Theory & Practice', cites three main problems in maintenance, that is staff problems, technical problems and management priorities. She says that in addition to balancing users needs with software and hardware, the maintenance team deals with the limitations of human understanding. The reason is that it is not always easy to study the documentation done by the developing group, grasp it well and implement the changes demanded by customer.

Parikh & Zvegrintzev, in their Tutorial on Software Maintenance, IEEE Computer Society in 1983, report that 47% of software maintenance effort is devoted to understanding the software to be modified. This will be very true particularly if any change requires checking of the number of interface among the modules. In the proceedings of ESCOM 1994, Gerlich and Denskat in their paper on, 'A cost estimation model for maintenance and high reuse', illustrate that if a system has "K" of them, there are:

k* (m-k) + k* (k-1)/2 interfaces to be evaluated for impact and correctness. So we should note that even a one line change to a system component may involve carrying out many tests to make sure that the change has no direct or indirect effect on another part of the system. Among the problems met with in maintenance, Leintz and Swanson indicate that more than half of the problems faced by V people is due to the lack of understanding by the users and this is where the members of the maintenance team must be flexible and co-operative in communication with the users for successful implementation of the changes asked for.

The productivity of the maintenance team may also be affected by technical problems. If the initial design and logic of the development team will find it almost impossible to handle the proposed changes during maintenance. A flawed or inflexible design may require more time for understanding, changing and testing, leading to inordinate delays which will not be accepted by the customer. Particularly in the case of Object Oriented Design, incremental changes must be made with utmost care because modifications may lead to a long chain of classes which hide others or it may get the objects redefined in conflicting ways. Pfleeger says that, in general design, specifications with low quality programs and documentation account for almost 10 percent of maintenance effort. Management priorities may often supersede the technical reasons. One such case is when there is a rush to get a product to the market soon without taking proper care of good design aspects or quality procedures. The developers or the maintenance team, as the case may be, will get encouraged to implement quick, inelegant and poorly tested changes. The result will be a patched product which will be difficult to understand and repair later.

One important point that should be followed by an organisation is to make sure that the morale of the maintenance team is always kept high. Leintz and Swanson studies indicate that11.9% of problems during maintenance result from low morale and productivity. They attribute the reason for such low morale to the second class status often accorded to the maintenance group. Many-a-times it is observed that the programmers feel that to design and develop a system is more challenging then keep it running. However, as mentioned in my earlier articles, the maintenance group should realise that they handle problems which developers never see. In the words of many software gurus, great skill and perseverance is required to track a problem to its source, in order to understand the intricacies of the system and to effect the necessary changes when called for. In some organisations, it is a practice to rotate among several development and maintenance projects, with a view to avoid the perceived stigma of the maintenance people.


(The author is Chief Technology Officer, Internet Component Management Group, Bangalore and can be contacted at: r.srinivasan@iCMGworld.com)


 
     
Copyright © 2006 iCMG. All rights reserved.
Site Index | Contact Us | Legal & Privacy Policy