Software Maintenance and Support: Types, Costs, Tools, and Required Skills
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:
fixing problems discovered by users or identified during monitoring.
keeping software up-to-date by tuning it in line with the changing business needs.
continuously improving software’s usability, performance, and reliability.
detecting and correcting latent issues.
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:
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.
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).
Step 3: Choosing a sourcing model and implementation
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.
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.
Duration: up to 12 weeks
To choose the right vendor, ScienceSoft suggests:
- Examining top listings of software development companies as 90% of them offer maintenance services.
- 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.
- Preparing and sending an RFP containing your software support and maintenance needs.
- Getting tailored offers from potential vendors and comparing their approaches to your software maintenance project, as well as relevant expertise.
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.
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.
- Fixing issues on the code and database level
- Creating new software components or features.
- Implementing software customizations, integrations and migration.
- Unit testing.
- Functional, regression, integration, and other types of testing considering implemented updates, upgrades and other software changes.
- 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.
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.
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.
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.
Rating: 4.52/5 by Software Advice (a Gartner company)
Companies using the tool: 16,000+
- 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.
Rating: 4.33/5 by Software Advice (a Gartner company)
Companies using the tool: Around 40,000
- 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.
Nagios Core Version – free, Nagios XI - from $1,995 (one-time license), 60-days free trial is available.
Rating: 4.57/5 by Software Advice (a Gartner company)
Companies using the tool: 5,000+
- 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.
$15-$31 host/month, $1.27-2.50 million log events/month.
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.
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
- 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.
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.