Skip to main content

Operations and Maintenance

Updated Jun 12, 2020 ·

Overview

After software development concludes, it enters the operations and maintenance phase. This phase ensures the continued functionality, stability, and evolution of the software, whether it's for internal use or customer sales.

Key Phases

The software lifecycle doesn’t end with development. These key phases ensure the software remains functional, stable, and adaptable.

  • Operations and Maintenance

    • Manages software post-deployment with updates, bug fixes, and monitoring.
    • Ensures software aligns with user needs and business goals.
  • Change Management

    • Manages code changes to prevent disruptions.
    • Controls updates through testing and approval processes.
  • Responsibility for Software

    • Organization maintains software after development.
    • Applies updates and addresses support requests until decommissioned.

Internal vs. Customer Software

Managing software differs based on its end users.

  • Internal Software

    • Used within the organization, maintained by in-house teams.
    • Requires ongoing updates and fixes to meet internal needs.
  • Customer Software

    • Developed for external clients, with higher demands.
    • Requires structured support for bug fixes, requests, and updates.

Change Management Process

Change management ensures controlled and orderly software updates. It consists of three key elements:

  1. Request Control
  2. Change Control
  3. Release Control

1. Request Control

Manages how modification requests are handled and prioritized.

  • Users submit modification requests.
  • Managers assess and prioritize based on cost and impact.
  • Only high-priority requests move forward.

2. Change Control

Ensures modifications are reviewed and approved before implementation.

  • Developers create a Request for Change (RFC) document.
  • The Change Advisory Board (CAB) reviews and approves changes.
  • Approved modifications proceed to implementation.

3. Release Control

Oversees testing and deployment of approved changes.

  • Quality Assurance (QA) tests code to verify it meets requirements.
  • Once approved, the Release Manager deploys the code to production.
  • Developers cannot update production directly, ensuring controlled releases.

Importance of Structured Processes

While these processes might appear bureaucratic, they are essential to:

  • Maintain software stability.
  • Ensure responsiveness to customer or internal needs.
  • Provide documentation and accountability for all changes.