We often think of maintenance with regards to equipment or machinery, ensuring that it operates without breaking down. Yet software also requires “maintenance,” not because it ceases to stop working, but because it might need correcting, updating, tweaking, debugging, conforming to new customers’ needs, or any other type of maintenance. So while the title might be somewhat self-explanatory, software maintenance is also a lot more complex than it can sound like, as well as fairly broad. It is basically maintaining, and often fixing, software code that has already been written. This can apply to working on code that is newly written, or fairly outdated. Often, it is less about fixing errors, but about making improvements in existing software. Debugging, error detection, increasing efficiency, are all part of software maintenance. While broad in scope, it is basically a form of quality assurance, and it will continue to be an important part in computer and software engineering.
While some software experts shun maintenance because they want to be writing the original code and may consider that more creative or more intellectual, maintaining software is equally as important and can be even more challenging, because changes have to be made within existing code. It could be seen as highly detail-oriented, skilled problem solving. While some maintain that it requires more experience to do it well, it is nonetheless often work delegated to new hires, who may not be cut out to effectively provide maintenance as more experienced coders. However, this can make it an excellent opportunity to learn, as you see the decisions that experienced coders made in writing programs, and what worked and what did not. If you are interested in writing software programs, consider software maintenance jobs as a perfect opportunity to learn on the job.
Software Maintenance Introductory Education
There are not many educational programs at colleges and universities specifically aimed toward maintenance of existing programs, though there are certainly professional workshops that focus on these troubleshooting skills. Education wise, if you are interested in coding, computer or software engineering is the best choice, though programmers can also earn a degree in computer science, information systems, or math, with additional courses in computer programming. Generally you will most likely need a bachelor’s degree to break into this field, though with an associate degree, it is also possible to find a job. Because maintenance is often seen as less desirable, it is possible to gain excellent experience in the field with less than a four-year degree or less work experience. [Find an undergraduate bachelor's in Computer Science program in your state]
Where to Find More In-Depth Information on the Field
For those interested in gaining insight and extra knowledge on the topic, the Journal of Software Maintenance is the only journal dedicated to this specialty, with regular articles specifically on related topics. The International Conference on Software Maintenance is the largest annual event, though other conferences exist.