|Innovatiion. Technology. Software||
The main objectives of the system support projects are:
Fix security, performance and deployment problems
Fix issues in existing functionality
Improve overall system stability
Add missing functionality into the system
Create user and developer documentation for existing system components which are not documented for some reason.
In any case support process is connected with making a great amount of changes in existing system. Such activity must be performed carefully, because any extension may lead to new problems in the system. Sometimes it is even better to rewrite some parts of the system from the scratch than to fix existing code and get unstable and unusable system. So any support project starts with thorough analysis of existing system (including major customer needs).
Inteks SEP divides every support project into the following three phases:
Main objective of the Inception phase is to identify and describe problems of the current version.
Main deliverable of the Inception phase is the proposal that describes how existing problems (including security and performance issues) can be fixed and provides a rough estimation of works and their cost.
During Elaboration phase support team gets to know more about architecture and implementation details of the system under support.
This information helps support team to:
Prioritize a list of problems
Determine exact plan of fixing these problems
Clarify estimations for resolving existing problems and implementing new features
Create system support plan for a period of 1-3 months.
Deliverables of the Elaboration phase include a number of technical proposals containing prioritized list of actual problems, clarified estimation for their fixing, description of new features and estimations of their implementation.
Support phase aims at:
Fixing problems identified and analysed during first two phases of the project
Providing quick fixes for the sudden problems which might stop normal system usage and harm customer's business
Known problems which are not business-stoppers are resolved using iterative approach: all the issues are divided in several groups and each group is resolved in one iteration. Each iteration lasts from 3 days to 3 weeks and includes all stages required to develop software. First the requirements are gathered and analysed (if it was not done during first two phases of the project). Then we find a way to solve the problem that will not result in decrease of the system stability. Then the solution is implemented in code and tested thoroughly. Only after testing the new code is put in the production.
Business-stopper problems can not wait for several days or weeks. Such problems are to be fixed during several hours. But using such approach may result in uncontrolled modification of the system, which, in its turn, will decrease the system stability. To eliminate destabilizing effect of quick system fixes we refactor and even rewrite the code during implementation of planned features.
Deliverables of the support phase include updated executable code, which is put in production use by customer or by our deployment engineers, and updated source code. If any documentation (user and/or developer) is created during this phase upon customer's requests it is also delivered.