For this week’s blog, I chose two resources that helped me better understand the concept of software maintenance: a GeeksforGeeks article on the topic and a YouTube video titled “Types of Software Maintenance (Corrective, Adaptive, Perfective, and Preventive).” Both resources directly relate to what we have been covering in class about the software development lifecycle and the importance of writing clean, effective, and maintainable code.
Summary of the resources
The GeeksforGeeks article provides a clear explanation of what software maintenance truly involves, and it makes the point that maintenance is much more than simply fixing bugs that appear after deployment. The article breaks maintenance into four major categories and explains the role each plays in the long-term health of a software system. Corrective maintenance deals with identifying and resolving defects found by users or testers. Adaptive maintenance focuses on updating the software so it can function in new environments, such as new operating systems or hardware. Perfective maintenance involves improving performance or adding new features based on user feedback. Preventive maintenance aims to reduce the likelihood of future failures by improving the structure of the code or addressing small issues before they escalate. The article also highlights common challenges, such as outdated codebases, lack of documentation, and the difficulty of maintaining systems that were not designed with long-term updates in mind. One of the most important points it makes is that planning for maintenance should start during development, not after release.
The YouTube video supports this information by providing simple and practical examples of the same four maintenance types. Each type is explained using real-world scenarios that make the concepts easier to understand. Because the video is short, direct, and visually presented, it reinforced the definitions from the article and helped me remember them more clearly. The combination of written explanation and visual examples was especially helpful, since I tend to understand topics better when I can learn them in multiple formats.
Why I chose these resources
I chose these resources because together they gave me a well-rounded understanding of software maintenance. The article offered depth and detail, while the video provided clarity and accessible examples. Using both helped me see not just what maintenance is, but why it matters so much in real projects. I also realized how important maintainability is as a design principle. Clean code, proper naming, updated documentation, and thoughtful structure all directly impact how easy a system is to update later. Maintenance isn’t optional or something to think about only after deployment, it is a constant part of the software’s life. If code is messy or poorly organized, future developers including myself may struggle to understand it.
Overall, these resources helped me build a stronger understanding of the maintenance phase of the software development lifecycle. They made me more aware of how much responsibility developers still have after a product is launched and why maintainability should be taken seriously from the very beginning.
Links
GeeksforGeeks article: https://www.geeksforgeeks.org/software-engineering/software-engineering-software-maintenance/
YouTube video: https://www.youtube.com/watch?v=_8aNZZaaoSQ