Software Operations and Maintenance

Once the software has been developed, tested, and installed in its intended location, it must be maintained. Therefore, the software’s operations and maintenance phase must be included in the life cycle cost estimate. During this phase, software is maintained by fixing any defects not discovered in testing (corrective maintenance), modifying the software to work with any changes or technology upgrades to its operating environment (adaptive maintenance), and adding new functionality—for example, in response to user requests for enhancements—(perfective maintenance). When adding a capability, the work is similar to a small scale development effort and the cost drivers are the same as in development.

Several factors drive the level of maintenance required. For example, if requirements from development are deferred until the operations and maintenance phase, or the requirements are too vague and not well understood, then additional perfective maintenance will be necessary. The quality of the developed software will also affect maintenance. If the software was rigorously tested, then less corrective maintenance will be needed. In addition, software that is well documented will be easier to debug and will provide software maintenance personnel a better understanding of how the software was designed, making modifications easier.

Together with the need to maintain the software code, costs associated with help desk support need to be included in the software’s operation and support phase. Help desk efforts include processing trouble calls and generating defect tickets for software correction and should be part of the software cost estimate. Help desk support to software users and perfective maintenance often make up the bulk of the software operations and maintenance effort.