Product development and deployment is what we do best, but maintenance is, of course, an important aspect of software development lifecycle. It is an essential part of the service we provide for your business as well. Software engineering is a complex and ever changing process which makes it even more prone to unforeseen complications.
Software maintenance is an ongoing part of the process as much as development is and there could be a number of reasons why this is required -
Market changes - Business is a flexible entity and it evolves with the market, any software that works for the business has to evolve with it to support the ongoing changes.
Requirement changes - While developing the initial requirements for a project, often it gets hard to plan for all the features / functionalities required for a service to run properly. Constant maintenance is required to enhance existing features of a system or even add new functionalities as and when required.
Platform changes - Changes in existing software is a common practice due to upgrade of the existing operating system or platform or even integration with other systems. All of such changes are essential to keep the existing software compatible and fit for purpose.
Company changes - Changes within the organisation sometimes trigger maintenance work. An example of such event could be a company acquisition or even new business model development. Often existing software needs to be updated to keep sync with the organisation structural changes.
The Maintenance process
There are various approaches towards software maintenance. Here are the six most common software maintenance processes:
1. The implementation process contains software preparation and transition activities, such as the conception and creation of the maintenance plan; the preparation for handling problems identified during development; and the follow-up on product configuration management.
2. The problem and modification analysis process, which is executed once the application has become the responsibility of the maintenance group. The maintenance programmer must analyze each request, confirm it (by reproducing the situation) and check its validity, investigate it and propose a solution, document the request and the solution proposal, and finally, obtain all the required authorizations to apply the modifications.
3. The process considering the implementation of the modification itself.
4. The process acceptance of the modification, by confirming the modified work with the individual who submitted the request in order to make sure the modification provided a solution.
5. The migration process (platform migration, for example) is exceptional, and is not part of daily maintenance tasks. If the software must be ported to another platform without any change in functionality, this process will be used and a maintenance project team is likely to be assigned to this task.
6. Finally, the last maintenance process, also an event which does not occur on a daily basis, is the retirement of a piece of software.
We follow a number of processes, activities and practices that are unique for each client, for example:
- Transition: a controlled and coordinated sequence of activities during which a system is transferred progressively from the developement stage to the maintainance stage;
- Service Level Agreements (SLAs) and specialized (domain-specific) maintenance contracts are negotiated depending on project and requirements;
- Modification Request and Problem Report Help Desk: We use specific problem-handling process in order to prioritize, documents and route the requests we receive for each project;