Welcome to Software Maintenance
Software development efforts result in the delivery of a software product that satisfies user requirements. Accordingly, the software product must change or evolve. Once in operation, defects are uncovered, operating environments change, and new user requirements surface. The maintenance phase of the life cycle begins following a warranty period or postimplementation support delivery, but maintenance activities occur much earlier.
Software maintenance is an integral part of a software life cycle. However, it has not received the same degree of attention that the other phases have. Historically, software development has had a much higher profile than software maintenance in most organizations. This is now changing, as organizations strive to squeeze the most out of their software development investment by keeping software operating as long as possible. The open source paradigm has brought further attention to the issue of maintaining software artifacts developed by others.
Software maintenance is defined as the totality of activities required to provide cost-effective support to software. Activities are performed during the predelivery stage as well as during the postdelivery stage. Predelivery activities include planning for postdelivery operations, maintainability, and logistics determination for transition activities. Postdelivery activities include software modification, training, and operating or interfacing to a help desk.
Source: Software Engineering Body of Knowledge (SWEBOK)
Possible Roles
- Systems Administrator
- Technical Support Engineer
- Cloud Engineer
- Cloud Architect
- DevOps Engineer
- Site Reliability Engineer
How To
- What Does a System Administrator Do?
- What Is a Cloud Engineer?
- How to Become a Cloud Architect
- DevOps Roadmap
- What Does a Site Reliability Engineer Do?
Professional Certifications
- Google IT Support Professional Certificate
- Google IT Automation with Python Professional Certificate
- Google Cloud Engineer Professional Certificate
- Google Cloud Architect Professional Certificate
- IBM Technical Support Professional Certificate
- IBM Applied DevOps Engineering Professional Certificate
- Microsoft Azure Certifications
- AWS Certifications
Online Communities
Blogs
- Top Sysadmin Blogs & Websites for System Administrators
- Top Cloud Computing Blogs, Websites & Influencers
- Top DevOps Blogs, Websites & Influencers
Resources Collections
Learning Resources
Important Note: all learning resources available here are free. If you found any learning resource that requires a fee or the URL is broken/wrong, please inform us. Regarding the MOOCs that are bundled as a specialization track with a fee (e.g. coursera’s specializations and edx’s xseries programs), you can look for each individual course and take it for free (Audit option).
Foundation
MOOCs
Websites
Beginner
MOOCs
- Introduction to Linux
- Hands-on Introduction to Linux Commands and Shell Scripting
- Fundamentals of Red Hat Enterprise Linux
Websites
Intermediate
MOOCs
Websites
Advanced
MOOCs
- Introduction to Containers w/ Docker, Kubernetes & OpenShift
- Introduction to Kubernetes
- Introduction to DevOps
- Continuous Integration and Continuous Delivery (CI/CD)
- Introduction to Site Reliability Engineering and DevOps