S E L L C O R P

Maintenance and Support -

Maintenance and Support

We offer

support and maintenance plans that account for expected and unexpected software issues across a range of devices and systems.

Our types of Maintenance

Software maintenance can be broken down into four main categories:

Often referred to as “bug” maintenance, corrective maintenance can be defined as correcting user reported errors in source code. This is the most urgent type of software maintenance, but, unlike support, focuses on low priority “bugs” and is commonly regarded as triaging enhancement requests rather than fixing defects.

As its name suggests, preventive maintenance is the practice of taking preventive measures to ensure software continues running as it should. Preventive maintenance focuses on decreasing the likelihood of unanticipated effects of evolving operating systems and devices which the software runs on.

Focused on iteration, perfective maintenance is defined as engineering after delivery in order to elevate the functionality and/or performance of the software. Spurred by user feedback, perfective maintenance accounts for the implementation of new features based on user submissions.

Adaptive maintenance is characterized by the need to alter code in one part of the software due to external problems in another part of the system. Adaptive maintenance is required when issues are caused by changes to the operating system, software dependencies, hardware, or business policies of a product, thus requiring changes to the codebase.

Our Support & Maintenance Process

When taking on a new project, our support team drafts an SLA (Service Level Agreement) which outlines our response time and ensures our team's availability to your needs. With our remote software support services, our specialists are able to promptly handle your service requests through remote sessions upon receipt of your request.

After receiving your support request, the first step to resolving the bug is to gain an understanding of the defect. We set up a meeting with you to discuss the current state of your software product, any recent changes made to the code, release updates, error messages, and any other potential factors that could have played a role in causation.

Once our support team understands all potential impacts of the defect, we assess your systems to identify the root cause. While analyzing systems does include reviewing the code attached to the dysfunctional feature or function, it also involves determining other possible causes such as out-of-date subscriptions and malware.

Our software engineers often determine a number of solutions to resolve software defects. We scope out all potentially affected features before documenting procedures and impacts of all solutions to ensure code adjustments don’t cause any other issues in your system. We then provide a recommendation and review all options with you to designate a route to resolution.

Our Technical Support Lead produces bug triage tickets for our support team to begin working on immediately. By utilizing debugging tools, reviewing logs, and drilling down to all lines of code that accompany broken features and functions, our support team works to resolve all errors described in your support request.

We employ a range of leading unit tests to validate proper delivery to correct faults and reliability in your codebase. Once we verify that all features and functions are stable and operating as designed in our test environment, we then deploy the bug fixes to live production. After the fix is live, we then ask for your sign-off before closing the request.

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.

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.

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.

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.