en flag +1 214 306 68 37

Software Maintenance and Support 

A to Z Guide

Learn about the key steps, necessary skills, and potential sourcing options to set up smooth maintenance and support processes. The page also outlines the costs and benefits of outsourced software maintenance and support services based on ScienceSoft's decades-long experience in ITSM.

Software Maintenance and Support - ScienceSoft
Software Maintenance and Support - ScienceSoft

Contributors

Boris Shiklo

Chief Technology Officer, ScienceSoft

Andy Lipnitski

IT Director, ScienceSoft

Maintenance vs. Support: What's the Difference?

Software maintenance is proactive and includes scheduled activities to address non-urgent issues or perform planned improvements. Software support is reactive and focuses on handling urgent problems that can hamper software operation and cause downtimes.

ScienceSoft brings 16 years of experience in ITSM to provide organizations with comprehensive support and maintenance services to ensure stability, scalability, high performance, and robust security of their software in the long run.

Key Support and Maintenance Classifications

Below we consider two popular classifications of support and maintenance activities. Both classifications offer valuable perspectives on software support and maintenance; they are not mutually exclusive and can be integrated into a comprehensive support and maintenance strategy.

By nature of support and maintenance activities

Type Essence Activities Timing
Type

Corrective model

Essence

Responding to identified problems: making changes to the software to correct defects found during the software use (e.g., bugs that cause the software to behave unexpectedly).

Activities
  • End-user support (L1): handling user-facing issues, such as usage problems and minor glitches.
  • Application support (L2): the focus is on more complex software troubleshooting, including performance, configuration, and security issues.
Timing

Reactive

Type

Adaptive model

Essence

Modifying software to keep it compliant with a changed or changing environment (e.g., with new regulations while entering a new market).

Activities
  • Application support (L2): the focus is on complex troubleshooting, including software performance, configuration, and security issues.
  • Infrastructure optimization (e.g., cloud resource consumption optimization).
Timing

Reactive/proactive

Type

Perfective model

Essence

Making the software meet new requirements that were not originally required (improving performance, enhancing features, and making the software more efficient and easier to use)

Activities
  • Development support (L3/L4): involves deep technical interventions, adding new features, and improving functionality.
  • QA activities, including regular code reviews.
Timing

Proactive

Type

Preventive model

Essence

Foreseeing and reducing the likelihood of future system failures, making future maintenance tasks easier and less costly.

Activities
  • Software availability, performance, security, and compliance monitoring and management.
  • Development support (L3/L4): software reengineering (restructuring or rewriting parts of the code to improve readability and maintainability, updating documentation, or optimizing algorithms).
  • QA activities, including regular code reviews.
Timing

Proactive

Type

Emergency model

Essence

Addressing urgent fixes, often in response to critical bugs or security vulnerabilities that could significantly impact the functionality, security, or performance of the software.

Activities
  • End-user support (L1): handling user-facing issues that require immediate attention.
  • Application support (L2): the focus is on more complex software troubleshooting than at L1, including performance, configuration, and security issues, with the focus on urgency
Timing

Reactive

By approach to evolving and mainaining software over time

Quick-fix

Shares similarities with emergency maintenance in its focus on immediate response to critical issues.

This model is the simplest form of support. It is about making immediate and direct fixes to problems as they are discovered. It is often applied under pressure, for example, when a critical bug needs to be fixed immediately to keep the system running. However, while it provides a rapid solution, the quick-fix model can lead to a buildup of technical debt over time if the underlying causes of issues are not addressed.

Iterative enhancement

Can incorporate elements of perfective, preventive, and adaptive maintenance as part of its ongoing improvement cycles.

The model is aimed at continuous software improvement in cycles or iterations. Each iteration typically includes planning, design, coding, testing, and deployment phases. This model acknowledges that software needs to evolve over time and provides a framework for progressively updating and improving the software in response to changing requirements and user feedback.

Re-use oriented

Can be seen as a strategy within preventive maintenance, focusing on leveraging existing solutions to avoid future problems.

Instead of writing new code from scratch, this approach leverages existing software components (either from previous projects, from other parts of software or third-party sources) to build new modules and functionalities or enhance existing ones. This model drastically reduces development time and costs. However, it requires careful management of dependencies and compatibility between components.

Software Maintenance and Support Setup Plan

The setup plan will differ depending on the specifics of the supported software and its underlying infrastructure, as well as the scope of the required support and maintenance activities.

Below are described the typical steps we at ScienceSoft take to set up maintenance and support activities.

1.

Scope and resources estimation

Duration: 1-4 weeks

To determine the scope of the support and maintenance activities, we analyze:

  • The software’s related infrastructure.
  • Prospective new features and changes.
  • The current and planned user pool.

Then, we measure the projected scope against currently available in-house resources, such as dedicated IT specialists and maintenance tools.

One of the crucial steps we take in scope estimation is the assessment of the software maturity. The newer it is, the more maintenance requests we expect, and we allocate resources accordingly. For example, when we started working with a global advertising agency, we learned from the very start that their microservices-based software was still undergoing development. So, we equipped our L2 team with the needed instructions to adeptly configure the customer's system for smooth integration of software updates.

Chief Technology Officer at ScienceSoft

2.

Software maintenance and support process design

Duration: 4 weeks

Depending on the scope of the required activities, maintenance and support processes will comprise a combination of the following techniques:

Reactive support (on-demand)

  • End user support (L1) – solving usage issues and minor problems, escalating more complex issues.
  • Application support (L2) – software troubleshooting, fixing its performance, configuration, and security issues.
  • Development support (L3/L4) – fixing software issues on the code and database level, customization, adding new features, software integration.

Proactive support (continuous)

  • Software availability, performance, security, and compliance monitoring.
  • Software reengineering (including code refactoring, architecture redesign, data restructuring, reverse engineering).
  • QA activities (including regular code reviews).
  • Infrastructure optimization (e.g., cloud resource consumption optimization).

Depending on the support and maintenance activities, we define a set of KPIs to assess and optimize the process, aligning with the software maintenance plan. A sample KPIs set includes: the number of changes/updates delivered, the number of changes/updates waiting in a backlog, the number of urgent changes, the time required to introduce a change to the software, user satisfaction score, software outage time, software availability, the number of tickets by type, first response time, and ticket time to resolution.

We map the support and maintenance process in compliance with international technical standards set by ISO, IEC, and ITIL. For instance, when ScienceSoft refactored a business modelling tool for one of our clients, we adhered to GAMP4 specifications, establishing unit testing for code validation, regular code reviews, and version control on a dedicated SVN server.

IT Director at ScienceSoft

3.

Choosing a sourcing model and implementation

Duration: 1-12 weeks

Model 1: in-house software maintenance

1. Hiring and training staff for software maintenance and support

Duration: 4-8 weeks

2. Tool selection and customization

Duration: 1-4 weeks

Relevant tools are chosen based on the type of software, the maintenance and support scope, the KPIs set, and other aspects. The toolset may include backup software, software for performance and security monitoring, DevOps, help desk, and more.

Best practice: For application performance monitoring, ScienceSoft chooses tools that provide insights into the software CPU and memory usage, transactions profiling, response time and request rates, an app’s handling poor network connectivity, etc.

Model 2: outsourced software maintenance

Vendor selection

Duration: 3-12 weeks

To choose the right vendor, you need to:

  • Examine top listings of software engineering companies as 90% of them offer maintenance services.
  • Shortlist 3-5 companies based on their adherence to ITSM and DevOps practices, relevant certifications, for example, ITIL, Microsoft certifications (e.g., MSP, MCSA), certifications issues by cloud providers (e.g., Certified Solution Architect, Certified SysOps Administrator by AWS), Red Hat certifications.
  • Prepare and send an RFP with software support and maintenance needs.
  • Get tailored offers from potential vendors and compare their approaches to the given software maintenance project, as well as relevant expertise.
ScienceSoft

ScienceSoft

4.

Software maintenance and support launch

Duration: 1-5 days

Pre-launch stage

Before launching the maintenance and support process, the details of the required services should be formalized in a service level agreement (SLA). Depending on the scope of software maintenance and support services rendered, SLA may outline:

  • Software maintenance terms: software evolution roadmap, software performance requirements and expectations, planned security activities, KPIs, schedule, etc.
  • Software support terms: support hours, e.g., 8/5, 12/5, 24/5, 24/7, required levels of support, size of a support team, communication channels, KPIs, etc.

Also, we work together with the customer to prepare standard operating procedures (SOPs) and instructions to stipulate all maintenance and support activities.

After-launch stage

We schedule regular maintenance windows for the preventive software maintenance activities that can cause downtimes. These time intervals should always be available, even if not used each time.

At this stage, we also provide the customer with clear and detailed reports (e.g., reports on team productivity, service quality KPIs, incident reports, security audit reports) and a revised risk management strategy.

For the production environment in which end users operate, we schedule the maintenance windows on Sundays. And for the non-production environment that is used just for testing, for example, we set maintenance windows daily during the night hours.

IT Director at ScienceSoft

ScienceSoft's Success Stories

Maintenance and Support of a Bio Lab Software Product Driving GSK and AstraZeneca

Development, testing, customization, and support of applications for large pharmaceutical companies like GSK and AstraZeneca.

Key results: 

10+ years of reliable software support from ScienceSoft's engineers with chemistry and biochemistry degrees.

Data Capture App Support for a UK Software Company

NOC monitoring, multi-tier support (L1, L2, L3), and customization for the data capture platform.

Key results: 

During the 2-year-long collaboration, ScienceSoft's support team never missed critical issues or experienced bugs reappearing.

Remote IT Support for a US Telecommunications Services Provider

Support and maintenance of multiple .NET-based web applications: troubleshooting, bug fixing, urgent introduction of changes upon request.

Key results:

  • Improved performance of web apps as the result of code refactoring.
  • Improved end-user loyalty through prompt web app updates.

L2, L3 Support of a Marketing Campaign Management Solution

L2 and L3 support for software under ongoing development to keep it stable and promptly introduce new system components.

Key results:

  • 36% decrease in service requests due to proactive monitoring of the solution.
  • 97% user satisfaction score achieved thanks to 24/7 troubleshooting and service center introduction.

Help Desk for End Users of Product Design Software

24/7 support for end users of an innovative SaaS platform for creating 3D visualizations of product interior designs.

Key results:

  • Uninterrupted support for the product users from all over the world.
  • Continuous updating of the customer's knowledge base.

Help Desk Services for an Ecommerce App

12/5 helpdesk services, creation of a knowledge base for support and maintenance documentation, training for the ecommerce app’s users.

Key results:

Successful employees’ adoption of the new integrated solution that included an ERP and business intelligence systems through ScienceSoft’s prompt L1-L2 support.

Sample Software Maintenance and Support Costs

Software support

From $14 per ticket

From $38 per ticket

Software maintenance and support

From $30,000 to $50,000

From $5,000 to $15,000

Pricing Information

Usually, software maintenance and support costs are around 15–20% of the initial development costs (per year), and in total (during the entire software life cycle) they can be as high as 90% of the TCO.

Want to get a clear picture of your maintenance and support budget?

Calculate the cost

Software Maintenance and Support Cost Factors

The support and maintenance costs vary a lot depending on the sourcing model. The general cost factors for software maintenance and support services are:

  • The type of software maintenance (corrective, adaptive, perfective, preventive; on-demand, continuous, both).
  • The type of software, its complexity, integrations and customizations, etc.
  • The software availability requirements.
  • The maintenance team’s composition, competencies, and workload, e.g., 5 FTE (168h*5), 1 FTE (168h), 0.25 FTE (40h).
  • Time coverage (e.g., 8/5, 12/5, 24/5, 24/7).
  • The number of software users.
  • Availability of comprehensive software documentation required for maintenance.

In addition, ScienceSoft recommends considering cost factors specific to the chosen sourcing model:

In-house software maintenance

  • Licenses for configuration, help desk, and other tools used by the team.
  • Investments in the in-house staff training.
  • Regular payment of salaries and fringe benefits, tax payments, etc.

Outsourced software maintenance

  • The pricing model (per ticket, bucket of hours).
  • The number of help desk tickets (agreed and extra).

Sourcing Models

In-house maintenance and support

  • Full control over the team.
  • Potential lack of relevant talents.
  • The software maintenance process setup and all managerial efforts are on your side.
  • High cost of keeping an in-house team.

In-house management and outsourced resources

  • Balanced mix of control and cost optimization.
  • Establishing smooth cooperation between the in-house team and outsourced talents is challenging.

Fully outsourced maintenance and support

  • Access to external expertise.
  • Your IT team's reduced workload and focusing on the core tasks.
  • Reduced costs.
  • Exposing your IT infrastructure to an unreliable vendor might be risky.

Benefits of Software Maintenance and Support with ScienceSoft

  • -1.5-2x

    software maintenance costs

  • -40%

    deployment time for software updates

  • -36%

    issues reported by users as proven by our real-life success stories

  • >97%

    user satisfaction rate

  • 35 years in IT, 750+ experts on board.
  • 17 years in software support services and help desk, 16 years in ITSM.
  • Happy customers from 70+ countries globally: the US, Western Europe, Singapore, Australia and New Zealand, etc.
  • Established ITIL 4 processes and practices.
  • ISO 13485-certified quality management system specific to the medical devices industry and SaMD.
  • Experience with complex, large-scale apps.
  • 62% of revenue is from long-term contracts.

ScienceSoft as a Trusted Software Support and Maintenance Provider

For the past 6 years, ScienceSoft has been a reliable partner in supporting and maintaining our HR software product. They have fixed hundreds of bugs in the product’s performance since the start of our cooperation back in 2016 and keep modernizing HR on our demand, introducing new features and tweaking existing functionality to let us better cater to our growing client base.

I would happily recommend ScienceSoft to anyone looking for a transparent, reliable IT support vendor. They helped us deliver several PHP-based projects, mobile applications, refactored and improved the performance of our .NET code, provided L3 support for our web services. They’re very effective and consistently meet all the required KPIs: we were guaranteed hotfix rollouts in under 24 hours, and they delivered on the promise.

ScienceSoft has been providing an excellent level of service maintaining the application’s AWS infrastructure. During our cooperation, ScienceSoft’s team has built a fault-tolerant and highly available application infrastructure with automatic crash recovery capabilities, which makes our web application stable and high-performing. We would certainly recommend ScienceSoft as a reliable service provider.

Typical Roles in Our Software Maintenance Teams

Depending on software maintenance and upgrade scope, the team may include various IT specialists, from developers to UI designers. Below, we describe the backbone talents required for the project involving both on-demand and continuous support activities:

Help desk specialists

  • Receiving, registering, and tracking queries from software users.
  • Solving simple and repeating issues (e.g., username and password problems, installing newly released patches and service packs).
  • Escalating unsolved issues to L2/L3.

Application support engineers

  • Continuous software monitoring and health checks.
  • Fixing application performance issues.
  • Resolving software configuration and account administration issues.
  • Log investigation for root cause analysis of issues.
  • Database administration.

Software developers

  • Fixing issues on the code and database levels.
  • Creating new software components or features.
  • Implementing software customizations, integrations, and performing migrations.
  • Unit testing.

Test engineers

  • Functional, regression, integration, and other types of testing to validate the quality and security of software after introducing the required changes.

DevOps engineers

  • Automating the update and evolution processes using the CI/CD approach.
  • Managing physical and virtual servers and their configurations.
  • Configuring and optimizing cloud services.
  • Solving infrastructure issues.

Technologies We Use for Software Maintenance and Support

Consider Professional Software Maintenance Services

With over a decade of experience in software support and IT service management (ITSM), ScienceSoft offers the following service options:

Maintenance and support process setup

We analyze your software specifics and support needs, design the process, deliver a detailed setup plan, help choose a suitable sourcing model, create a support team, and select an optimal toolset.

I need this!

Outsourced software maintenance and support

Our team takes over L1/L2, L3/L4, or L1/L2/L3/L4; proactive software monitoring, detecting, fixing latent issues; infrastructure maintenance and support. We rely on a detailed SLA.

I need this!

About ScienceSoft

ScienceSoft is a global IT consulting and services provider headquartered in McKinney, TX. We offer application maintenance and support services and help our customers set up robust software maintenance and support process. Being ISO 9001- and ISO 27001-certified, we rely on a mature quality management system and guarantee that cooperation with us does not pose any risks to our customers' data security.