What are the differences between Support & Maintenance?
What is Software Support? What is Software Maintenance? While these two terms are often viewed as one and the same, the difference between support and maintenance can be broken down by the urgency in their approaches. While software support is defined as fixing broken software (or “bugs”) with reactive development, software maintenance is defined as proactive development in adding additional features or triaging low priority “bugs” that don’t deteriorate the software design and user experience.
What are the different types of Maintenance?
Software maintenance can be broken down into four main categories:
Corrective Maintenance 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.
Preventive Maintenance 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.
Perfective Maintenance 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 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
Service Level Agreement
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.