By the end of this chapter, you will be able to:
These skills will help you keep applications running smoothly and securely, making you a valuable support professional in any workplace.
Application maintenance is a critical responsibility for software development professionals in Kenya, ensuring that software applications remain functional, efficient, and aligned with users’ evolving needs. In the context of Kenya’s dynamic business and public service environments, maintaining software supports operational continuity and user satisfaction across sectors such as banking, healthcare, and government services. This chapter explores the different types of application maintenance, highlighting their unique purposes and how they contribute to the longevity and performance of software systems.
Application maintenance refers to the modifications and updates made to software after its initial deployment to correct faults, improve performance, or adapt to changes in the environment. In Kenya’s software development industry, understanding the types of maintenance allows developers and support teams to prioritize tasks efficiently and sustain software relevance in diverse operational contexts. The four main categories of maintenance, corrective, adaptive, perfective, and preventive, address different aspects of software upkeep.
Corrective maintenance involves diagnosing and fixing errors or defects in software that impede its normal functioning. This type of maintenance is reactive, focusing on resolving issues reported by users or detected through monitoring tools. It is fundamental in maintaining trust and reliability, especially in critical sectors such as financial institutions and hospitals where software failures can cause significant disruption.
Corrective maintenance addresses unexpected malfunctions such as software crashes, data corruption, or incorrect outputs. These faults may arise from coding errors, integration problems, or unforeseen user interactions. For example, a SACCO’s loan management system might require immediate corrective updates if it miscalculates interest, risking financial losses and member dissatisfaction.
Detecting defects typically involves error reports from end-users, automated error logging, and system performance monitoring. Helpdesk teams in county government offices often serve as the frontline for receiving software problem reports, which are then triaged by development teams. Additionally, diagnostic tools and debugging software help isolate the root causes.
Corrective maintenance follows a structured process: first, the defect is logged and prioritized; second, developers analyze the source code to locate the fault; third, a fix is implemented and tested in a controlled environment; fourth, the update is deployed to production; finally, user feedback is monitored to confirm resolution. This process ensures minimal disruption and sustained system availability.
Challenges include incomplete error reports, difficulty replicating issues, and balancing urgent fixes with ongoing development. In a retail business using a point-of-sale system, delayed corrective maintenance might result in transaction errors and loss of revenue. Effective communication between users and developers is essential to overcome these obstacles.
Adaptive maintenance modifies software to keep it compatible with changing external environments such as operating systems, hardware, or regulatory requirements. This type of maintenance is proactive, ensuring that software remains operable despite shifts in technology or policy. Kenyan public sector systems, for instance, often require adaptive updates to comply with new data protection laws or infrastructure upgrades.
The primary goal is to maintain software usability by adjusting to environmental changes without altering core functionality. For example, a banking application must be updated to support the latest Android OS version used by customers. Without adaptive maintenance, software may become obsolete or insecure.
Environmental changes include upgrades to operating systems, middleware, hardware platforms, network configurations, or legal frameworks. A university’s student portal might need adaptive maintenance when the institution migrates to a new server infrastructure or adopts cloud services, requiring compatibility adjustments.
Adaptive maintenance involves impact analysis of environmental changes, planning updates, coding necessary modifications, rigorous testing for compatibility, and deployment with minimal downtime. Coordination with IT infrastructure teams is vital during this process to align software updates with hardware or network changes.
Risks include the introduction of new errors, incomplete adaptation to all environmental changes, and resource constraints. In healthcare clinics using electronic medical records, failure to adapt software to new privacy regulations could expose patient data to breaches, underscoring the critical nature of this maintenance type.
Perfective maintenance focuses on enhancing software performance, usability, and functionality based on user feedback and evolving requirements. It reflects continuous improvement efforts to optimize the software beyond mere bug fixes or environmental adjustments. Such maintenance is particularly important in competitive sectors like banking, where user experience improvements can drive customer retention.
The main objectives are to improve system efficiency, add new features, and refine existing functionalities. For example, a hotel reservation system might be enhanced with a new user interface and faster search capabilities to improve customer satisfaction.
Requests often arise from end-users, business analysts, or management teams who identify areas for enhancement. In county government offices, citizen feedback on e-services platforms can prompt perfective updates to streamline service delivery.
Activities include gathering and analyzing user requirements, designing enhancements, coding, testing new features, and training users on improvements. This process ensures that software evolves in line with organizational goals and user expectations.
Benefits include increased user satisfaction, improved productivity, and extended software lifespan. For instance, a cooperative society’s accounting software that receives perfective maintenance to automate reporting reduces manual errors and saves staff time.
Preventive maintenance aims at identifying and mitigating potential problems before they cause failures. This proactive approach enhances software reliability and reduces long-term maintenance costs. It is essential in mission-critical applications such as tax management systems at KRA, where downtime can have significant economic impacts.
Preventive maintenance reduces the risk of unexpected failures by addressing weaknesses in the software architecture or codebase. This foresight helps avoid costly emergency fixes and service interruptions.
Techniques include code refactoring, performance tuning, updating documentation, and conducting regular audits and testing. For example, a retail business’s inventory management system might undergo code optimization to improve response times and prevent bottlenecks.
Scheduling involves periodic reviews and maintenance windows planned according to software usage patterns and organizational priorities. A county hospital’s patient registration system might be scheduled for preventive maintenance during low-activity hours to minimize disruption.
Challenges include justifying resource allocation for non-urgent tasks and predicting potential failure points accurately. In the education sector, preventive maintenance of examination systems requires balancing academic calendars with software update schedules to avoid exam disruptions.
Create a free account to open more of this chapter.
Free: practical guides, quick cards, workplace scenarios and more.
Create a free accountThis chapter explored the various types of application maintenance, including corrective, adaptive, perfective, and preventive maintenance, each addressing different needs for keeping software functional and relevant. It emphasized the importance of preparing a maintenance schedule, detailing its key components to ensure timely and organized upkeep. The process of performing application maintenance was examined through activities such as bug fixing, applying software updates and patches, and optimizing performance to enhance user experience. Additionally, the chapter highlighted the significance of maintenance reports in documenting the work done and supporting decision-making. It described the essential elements of a maintenance report and provided guidance on how to prepare it effectively. Overall, the chapter provided a comprehensive understanding of how to maintain applications efficiently to support end-users and sustain system reliability.
At the start of this chapter we promised you would be able to:
Tick each one you can genuinely do.
Sample simulation — try how the simulator works. A version built for this chapter's practical is coming.
Prepare Kenyan PilauLocked ▸Free: practical guides, quick cards, workplace scenarios and more.
Now — are you there yet?
You're competent when you can confidently do 50% or more of what this chapter promised.
Sign in to record how you're doing.