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.
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 practices 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 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.
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 asses your systems to identify the root cause. While analyzing systems does includes reviewing the code attached to the disfunctional 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 enviroment, 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.
They were easy to work with and had a deep knowledge of technology and user behavior… It doesn’t get better than being on schedule and within budget.
Mohit BhargavaPresident, LearningMate Solutions