What is Software Maintenance and why it is important?

Software maintenance is the typical modifications of a software product after delivery to correct potential and occasional faults, consider new scenarios, or improve performance or other attributes. A common perception of maintenance is that it merely involves fixing defects. However, over 80% of maintenance effort is used for non-corrective actions. This perception is perpetuated by users submitting problem reports that are, in fact, functionality enhancements to the system.

There are several reasons why modifications are required. The following is a listing of a few that our software engineers manage:

1. Market conditions.
2. Algorithm and API changes
3. Client requirements based on industry best practices
4. Host modifications – If any of the hardware and/or platform (such as the operating system) of the target host changes, software changes are needed to keep adaptability. 

Our DXP Hosting & Maintenance Plan

1. Apply software feature upgrades as they become available
2. SaaS deployment and day-to-day maintenance of the application, which includes: testing and installing patches, managing upgrades, monitoring performance, ensuring high availability, and hosting the database on a scalable cloud-based server. Hosting includes space for files, images, and content of the software widgets.
3. Monitor and manage all third-party systems and API statuses. As an approved application Developer through verified API access, we ensure you have a functioning end-user application with the latest upgrades available on each third-party API. (E.g. If an existing parameter is revised in the third-party API that affects our content delivery, our team will proactively update it as soon as possible).
4. Training. Ongoing DXP Dashboard training as requested and as needed.

Types of Maintenance

The software’s lifetime or type of maintenance may vary based on its nature. It may be a routine maintenance task or it may be a large event based on a maintenance nature. The following are some types of maintenance based on their characteristics:

Corrective Maintenance – Includes modifications and updates done to correct or fix problems, which are either discovered by users or concluded from user error reports.
Adaptive Maintenance – Includes modifications and updates applied to keep the software product up-to-date and tuned to the ever-changing world of technology and business environment.
Perfective Maintenance – Includes modifications and updates done in order to keep the software usable over a long period of time. It includes new features and new user requirements for refining the software and improving its reliability and performance.
Preventive Maintenance – Includes modifications and updates to prevent future problems with the software. It aims to manage problems that are not significant at this moment but may cause serious issues in the future.

Analysis – Involves analyzing the modification for its impact on the system including safety and security implications. If the probable impact is severe, we will attempt to find an alternative solution. A set of required modifications is then materialized into requirement specifications. The cost of modification/maintenance is analyzed and estimation is concluded.
Design – New modules, which need to be replaced or modified, are designed against requirement specifications set in the previous stage. Test cases are created for validation and verification.
Implementation – The new modules are coded with the help of a structured design created in the design step. Every programmer is expected to do unit testing in parallel.
System Testing – Integration testing is done among newly created modules. Integration testing is also carried out between new modules and the system. Finally, the system is regularly tested following regressive testing procedures.

Ongoing Support Your Team Can Rely On

With access to our Client Portal, you can submit your requests for assistance and follow up on the status of your ticket. The system allows the project manager to monitor the progress of a ticket and communicate with you and our development team.

Our standard communication process:
1. We recognize and respond to the ticket within the business day that it is submitted.
2. If possible, we correct it within two working days or reach out to your team for further directions/clarification needed to solve the problem
3. Bugs and technical issues that may need to be escalated will be submitted to our development team and provided a detailed estimated delivery date.
4. At all times we will keep the client informed of the timelines.