Software Maintenance and Support: Types, Costs, Tools, and Required Skills

Software Maintenance and Support - ScienceSoft

With 31 years of the overall experience in IT and 13 years of experience in software maintenance and support, ScienceSoft helps companies set up and run preventive maintenance and on-demand support of applications and their infrastructures.

The essence of software maintenance and support

Software maintenance and support imply a set of activities aimed at ensuring software’s stable functioning, scalability, high performance, and security. Software maintenance and support activities are divided into 4 main groups:

Corrective

fixing problems discovered by users or identified during monitoring.

Adaptive

keeping software up-to-date by tuning it in line with the changing business needs.

Perfective

continuously improving software’s usability, performance, and reliability.

Preventive

detecting and correcting latent issues.

Software support and maintenance 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. A typical setup process consists of the following stages:

Software support and maintenance setup plan

Step 1: Estimation of the support and maintenance scope and required resources

Duration: 1 week (in-house), 2-4 weeks (outsourced)

Firstly, analyze the software’s related infrastructure, prospective new features and changes, as well as the current and planned user pool, to determine the scope of the support and maintenance activities. Measure the projected scope against currently available in-house resources, such as dedicated IT specialists and maintenance tools. Take into consideration the necessity to manage your support process and employees.

Step 2: Software support and maintenance process design

Duration: 4 weeks

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

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, compliance monitoring and management,
  • QA activities (including regular code reviews),
  • Infrastructure optimization (e.g., cloud resource consumption optimization).

Depending on the activities you’ll include in your support and maintenance process, you need to define KPIs to assess and optimize the process.

Check out sample KPIs set for support comprising proactive and reactive activities

Sample KPIs set:

  • Number of changes/updates delivered.
  • Numbers of changes/updates waiting in a backlog.
  • Number of urgent changes.
  • Time required to introduce a change to the application.
  • User satisfaction score.
  • Application outage time.
  • Application availability.
  • Number of tickets by type.
  • First response time.
  • Ticket time to resolution.

Caution: You should map the software support and maintenance process in compliance with international technical standards set by ISO and IEC and take into consideration relevant security and privacy standards (e.g., GDPR and HIPAA).

HIDE

Step 3: Choosing a sourcing model and implementation

Model 1: in-house software maintenance

1. Hiring and training staff for software support and maintenance

Duration: 4-8 weeks

2. Tool selection and customization

Duration: 1-4 weeks

The choice of tools should be based on the type of software, the support and maintenance scope, KPIs you’re interested in, and other aspects. The toolset may include software for performance and security monitoring, backup software, DevOps, help desk, and other tools. In most cases, support and maintenance tools need to be customized.

explore the example

Example:

For application performance monitoring, ScienceSoft recommends choosing 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.

Caution: Many tools for maintenance and support are multipurpose and cater for different types of applications, so they may contain excessive features. In this case, you’ll need to customize these tools to adjust them to your specific maintenance and support needs.

Hide

Model 2: outsourced software maintenance

Vendor selection

Duration: up to 12 weeks

How to choose the right vendor

To choose the right vendor, ScienceSoft suggests:

  1. Examining top listings of software development companies as 90% of them offer maintenance services.
  2. Shortlisting 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.
  3. Preparing and sending an RFP containing your software support and maintenance needs.
  4. Getting tailored offers from potential vendors and comparing their approaches to your software maintenance project, as well as relevant expertise.

Hide

Step 4: Software maintenance and support launch

Duration: 1-2 days

Before launching the maintenance and support process, you need to set the service timeframes (e.g., 8/5, 12/5, 24/5, 24/7). You should also schedule regular maintenance windows for the preventive maintenance activities that can cause downtimes. These time intervals should always be available, even if not used each time.

Example: For the production environment in which end users operate, you can schedule the maintenance windows on Sundays and for the non-production environment that is used just for testing, for example, maintenance windows can be set daily during the night hours.

Human resources required for software support maintenance

Depending on the software support and maintenance scope, the team may include various IT specialists from developers to UI designers. Below, we mention the backbone specialists 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 check.
  • 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 level
  • Creating new software components or features.
  • Implementing software customizations, integrations and migration.
  • Unit testing.

Test engineers

  • Functional, regression, integration, and other types of testing considering implemented updates, upgrades and other software changes.

DevOps engineers

  • Automating the software’s change implementation and evolution using the CI/CD approach.
  • Managing physical and virtual servers and their configurations.
  • Configuring and optimizing cloud services.
  • Solving infrastructure issues.

Sourcing models for software support and maintenance

In-house support and maintenance

Provides you with full control over the support and maintenance process but brings about risks associated with the setup and management, for example, inadequate support and maintenance scope estimation. Also, an in-house team needs regular training and usually higher salaries than outsourced specialists, which can make it expensive.

Outsourced support and maintenance

Offers external management of software maintenance and gives access to a wide expertise of external specialists, reduces support and maintenance costs. However, it may bring about security risks, if your company is bound by governmental or industry-specific regulations like HIPAA, GDPR, SOX, GLBA and others.

Mixed model

Combines in-house management of software maintenance and completely or partially outsourced resources, which helps you retain full or partial control and get optimized costs of the process.

Entrust Software Support and Maintenance to Experts

Due to 31-year experience in IT, 12 years in IT service management, and adherence to ITIL 4 practices, our team will ensure the stability and relevancy of your software.

Maintenance software we recommend

As a best practice, ScienceSoft recommends making continuous monitoring of software and the related IT environment the core of your support and maintenance process, and suggests the following tools for continuous monitoring:

Zabbix

Best for: Basic monitoring scenarios

Description

Rating: 4.52/5 by Software Advice (a Gartner company)

Companies using the tool: 16,000+

Strengths:

  • Collecting numerous metrics including application metrics, such as availability, response time, storage space utilization, memory utilization.
  • Diverse visualization options (e.g., dashboards, graphs, maps) for displaying collected metrics.
  • Monitoring multiple servers from any location.
  • Integrations with third-party systems (e.g., help desk and ticketing software, configuration management systems)

Cautions: Complex setup and configuration, training is required.

Pricing

Free.

Nagios

Best for: Average and highly complex monitoring scenarios

Description

Rating: 4.33/5 by Software Advice (a Gartner company)

Companies using the tool: Around 40,000

Strengths:

  • Collecting diverse software metrics (e.g., memory used, data read/written, events over time)
  • Simple integration with third-party software (e.g., incident management software, databases due to multiple APIs.
  • Configuration wizards that allow users to add new devices, services and applications.

Cautions: Complex setup, non-intuitive UI, high license costs.

Pricing

Nagios Core Version – free, Nagios XI - from $1,995 (one-time license), 60-days free trial is available.

Datadog

Best for: Midsize and large orgs

Description

Rating: 4.57/5 by Software Advice (a Gartner company)

Companies using the tool: 5,000+

Strengths:

  • Capabilities for collaboration on software monitoring and analytics.
  • Customizable dashboards showing various metrics like application uptime, total web traffic, and more.
  • Easy-to-use tool for records and logs search.

Cautions: Complex setup and a steep learning curve.

Pricing

$15-$31 host/month, $1.27-2.50 million log events/month.

Get Complete Toolset for Software Maintenance and Support

ScienceSoft’s team will help you choose, set up, and configure a suitable toolset of monitoring, backup, and help desk tools tailored to your maintenance and support needs.

Software maintenance and support costs

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 70% of the TCO. Additionally, the maintenance of 20-30 servers at 8/5 EST may cost $1,000-2,000 per month. In this case, maintenance covers proactive monitoring of software performance and security as well as detecting and fixing latent issues.

Cost factors

The support and maintenance costs vary a lot depending on the sourcing model. The key cost factors for in-house and outsourced software support maintenance respectively are:

In-house software maintenance

  • The type and number of software and technologies used in it including legacy techs, integrations and customizations.
  • Complexity of the organization’s digital infrastructure and its degree of automation.
  • Licenses for tools used by the team: software monitoring, configuration, help desk, and more.
  • Availability of complete and high-quality software documentation required for maintenance.

Outsourced software maintenance

  • The outsourced team’s size and competencies.
  • The pricing model (per ticket, bucket of hours).
  • Type of maintenance and support services (on-demand, continuous, both).
  • The number of help desk tickets (agreed and extra).
  • The team member’s actual workload, e.g., 5 FTE (168h*5), 1 FTE (168h), 0.25 FTE (40h).
  • Support and maintenance time coverage (e.g., 8/5, 12/5, 24/5, 24/7).

CHOOSE YOUR SERVICE OPTION

With 13 years of experience in application support and 12 years in IT service management (ITSM), ScienceSoft offers the following software support and maintenance service options:

Software support and maintenance consulting

  • Feasibility study of your maintenance and support project.
  • Designing the software maintenance process.
  • Elaborating on a launch plan for software support and maintenance.
  • Choosing a suitable sourcing model.
  • Selecting an optimal toolset for software support and maintenance.

Outsourced software support maintenance

Service forms:

  • L1/L2 support (service desk).
  • L3/L4 (development support).
  • L1/L2/L3/L4 (end-to-end support).
  • Proactive software monitoring (performance, security), detecting and fixing latent issues.

Additionally, we provide infrastructure maintenance and support.

  • Request types: consultation, change request, issue.
  • SLA that ensures:
    • Response time depending on the request severity: Critical (30m-1h), High (4-8h), Medium (24h), Low (48-72h).
    • Processing up to 6 critical requests per day.

About ScienceSoft

ScienceSoft is a global IT consulting and services company headquartered in McKinney, TX, US. We offer application maintenance and support services and advise our customers on setting up the software support and maintenance process. We help companies retain operability, availability and relevance of their software, improve user adoption and reduce maintenance costs.