Skip to main content
Ώρες Λειτουργίας

Δευτέρα - Παρασκευή: 09:30 - 17:30 (EEST)

Software Maintenance Agreement: What to Include in an SLA

| Neuronidis Manos |

A clear software maintenance agreement defines service scope, response times, priorities, security duties, backups, pricing, and escalation. Use this guide to set practical expectations before an incident occurs.

Software Maintenance Agreement: What to Include in an SLA

A software maintenance agreement should define what is supported, how quickly the provider responds, which issues receive priority, and what the client pays for separately. A useful SLA also covers bug fixes, security updates, monitoring, backups, responsibilities, exclusions, and escalation. The clearer these terms are before an incident, the fewer disputes follow.

What should a software maintenance agreement cover?

A well-defined agreement should describe the service scope, support hours, software support response times, priority levels, responsibilities, exclusions, pricing rules, and escalation path. It should also distinguish maintenance work from technical support and new development. Without those boundaries, a monthly fee can create very different expectations on each side.

Think of the agreement as an operating document, not just a contract. It should help the client decide where to report a problem, help the provider assess the work, and give both parties a shared way to measure performance.

Start with the service scope, not the monthly fee

The first section should identify exactly what the software support contract covers. “Support for the application” is too vague for a business with a web application, mobile app, database, cloud environment, payment gateway, ERP connection, and several user groups.

List the systems, versions, environments, integrations, hosting components, and user-facing services included. State whether the agreement covers development, staging, and production environments, or production only. If the software depends on an external API, cloud provider, payment service, domain registrar, or email platform, identify who manages that dependency.

A practical scope checklist should answer these questions:

  • Which applications, databases, servers, APIs, integrations, and environments are included?
  • Which support channels are available, and during which service hours?
  • Are requests submitted through a ticketing system, email, telephone, or an emergency channel?
  • Who owns administrator accounts, source code, credentials, documentation, and deployment access?
  • What must the client provide, such as user access, error details, test data, or approval?
  • Which third-party failures, licence costs, hosting charges, and vendor changes are excluded?

Access ownership needs particular attention. A provider may administer a system without owning the client’s accounts or data. The agreement should explain how credentials are stored, who can approve access, and what happens when the contract ends. It should also state whether documentation and configuration records are kept current.

The monthly fee matters, but a low fee for an undefined service is difficult to compare with a higher fee that includes clear coverage.

How should response times and priority levels work?

Software support priority levels should be based on business impact, not on how urgent a request feels to the person submitting it. The SLA for software support should define acknowledgement, first response, workaround, and final resolution as separate commitments.

A useful model might describe priorities like this:

  • Critical incident: the production service is unavailable, a major business process has stopped, or there is a serious security event.
  • High-impact fault: an important function is failing for a group of users, but the whole service is still operating.
  • Standard defect: a limited function is producing incorrect results or an error with a practical workaround.
  • Service request: a question, configuration request, user change, report request, or other non-incident task.

These definitions should include measurable targets. For example, the provider may commit to acknowledging a critical incident within a specified period, supplying regular updates during the investigation, and proposing a workaround when possible. A final fix may take longer because it depends on diagnosis, testing, deployment approval, or an external supplier.

Do not treat “response time” as a promise that every problem will be solved within the same period. Acknowledgement means the request has been received and classified. First response means someone has started reviewing it. A workaround reduces the operational impact. Resolution means the underlying issue has been fixed or the agreed service has been restored.

The agreement should also define support hours. A business that operates Monday to Friday has different needs from an online retailer or logistics company that runs continuously. If out-of-hours support is available, state the channel, fee, response target, and types of incidents that qualify. Otherwise, an emergency telephone number may create an expectation of 24-hour service that the contract never intended to provide.

Clients also have responsibilities during an incident. They may need to provide screenshots, timestamps, affected users, recent changes, error messages, access to a test account, or permission to inspect logs. These requirements are reasonable, but the SLA should explain how missing information affects the response clock.

Separate maintenance, technical support, and new development

Software maintenance and support are related, but they are not the same activity. The agreement should separate corrective maintenance, preventive maintenance, technical support, and new development so that a routine request does not become a pricing dispute.

Corrective and preventive maintenance

Corrective maintenance addresses faults in existing functionality. It may include investigating an error, correcting defective code, repairing a broken integration, or applying a compatible patch. Preventive maintenance reduces future risk through dependency updates, log reviews, performance checks, refactoring, and removal of technical problems that could make later changes harder.

Whether this work is included depends on the contract. Some agreements include a defined number of maintenance hours each month. Others cover only incident correction and bill preventive work separately. Both models can work if the scope and approval process are clear.

Technical support and user assistance

Technical support usually covers questions about existing functionality, account access, configuration, data imports, reports, and known procedures. It may also include guidance for administrators. User training, repeated manual data correction, and business process consulting may need separate limits or fees.

New features, integrations, and redesigns

A new dashboard, mobile workflow, payment method, integration, major report, or redesign is normally new development. It changes what the system does rather than restoring the agreed behaviour. New functionality should have its own estimate, acceptance criteria, delivery plan, testing approach, and approval.

Small changes need a practical rule. A label change or minor configuration adjustment may fit within maintenance. A request that changes data structures, user permissions, business rules, or integration logic may need a separate estimate. The agreement can define an assessment threshold, such as a short review before the provider confirms whether the work is included.

This distinction is especially important for custom applications. The original project may have ended, but the business will continue to request changes as processes evolve. A tailor-made software approach should include a clear path from maintenance to planned development rather than treating every request as an emergency fix.

Security, monitoring, backups, and updates need written rules

Bug fixes and security updates should be addressed separately in the agreement because they involve different risks and decision times. The provider should state how vulnerabilities are assessed, which dependencies are monitored, who approves updates, and how urgent patches are tested and deployed.

Security work may include operating system patches, framework updates, library updates, certificate renewal, access reviews, vulnerability investigation, and support during a suspected incident. It does not automatically include a full cybersecurity service. The contract should say whether it covers security monitoring, penetration testing, incident response, compliance advice, or only application-level fixes.

System monitoring and backups need the same level of detail. Monitoring can cover application availability, server resources, database health, failed jobs, queues, storage, certificates, and selected business transactions. The provider should explain which alerts are reviewed, during what hours, and what happens after an alert is raised.

For backups, specify:

  • What is backed up, including databases, uploaded files, configuration, and infrastructure settings.
  • How often backups run and where copies are stored.
  • How long backups are retained and who can access them.
  • Whether backups are encrypted and protected from unauthorised deletion.
  • Who requests a restore, who performs it, and how data loss is assessed.
  • How often restoration is tested and whether the result is recorded.

A backup that has never been restored is an assumption, not verified recovery. The agreement should define recovery objectives where they matter: how much data the business could lose and how quickly the service must return. Those targets affect architecture, cloud costs, monitoring, and operational staffing.

Cloud hosting also needs a clear division of responsibility. The cloud provider may manage physical infrastructure and certain platform services, while the software provider manages application configuration, deployments, databases, and alerts. The client may still own billing, identity administration, data protection decisions, and access approvals. A useful discussion of these trade-offs appears in the comparison between on-premise systems and cloud hosting.

Security responsibilities should not disappear behind a cloud label. They need named owners.

Build an escalation and change process before the first incident

An escalation process explains what happens when an issue remains unresolved, affects more users, or needs a decision outside the support team. It should include technical contacts, service managers, business owners, and management contacts with authority to approve extra work or emergency action.

Every ticket should have an owner, priority, current status, next action, and communication record. For a serious incident, agree how often updates are sent even when there is no final answer. Silence creates more operational damage than an honest update that says the investigation is still under way.

The agreement should also cover planned maintenance. Define the notice period, permitted maintenance windows, approval process, rollback expectations, and communication channel. Emergency changes may follow a shorter process, but they still need a record of who approved the action and why it was necessary.

After a major incident, a short review can document the cause, impact, timeline, recovery actions, and preventive tasks. This is not about assigning blame. It is about identifying whether monitoring, documentation, testing, capacity, or ownership needs to change.

Service reviews are useful when they examine real records rather than general impressions. Review ticket volumes, priority classification, response performance, recurring faults, unresolved risks, maintenance completed, backup tests, and planned improvements. These records help both sides decide whether the current agreement still matches the business.

Use the agreement as a decision tool

Before signing or renewing, ask the provider to map every recurring activity and common request to four items: service category, target, owner, and price. Include examples such as a production outage, a password issue, a security patch, a new report, a failed backup, and a new integration.

If the answer is unclear, the agreement is not ready. A software partner can review the wording with the business, technical, and commercial teams, then turn informal expectations into workable rules. Saikō works with custom software, cloud-related decisions, and application support, so a review can also identify where maintenance should end and a planned development project should begin.