Software Support process
Software Support process
Lead Author, Integrated Solutions
Approved by & Effective on Date of Signature below:
Yufen Chang Yu, Integrated Solutions
THIS DOCUMENT IS TO BE REGARDED AS THE OFFICIAL EMPLOYEE TRAINING GUIDE WITHIN INTEGRATED SOLUTIONS. IT IS TO BE MAINTAINED UNDER CHANGE CONTROL BY THE DOCUMENT CONTROL COORDINATOR.
TITLE: Integrated Solutions Software Support Process
DESCRIPTION OF CHANGE
· Original Issue
This process is to be used by Integrated Solutions (IS) if not specified in the contract or required by the customer to use a different process.
This process defines the procedures to be used for the support and maintenance of released software products developed at Integrated Solutions or supplied to by third parties when the supplier does not provide maintenance and support. The process describes the procedures for providing product support, the procedures for implementing problem fixes and feature changes, and the procedures for planning and executing a maintenance release.
All generally released products are maintained and supported by clearly identified resources within the IS. It is the responsibility of the appropriate maintenance owner’s team to provide support when a problem has been isolated to a failing subsystem and/or module by the field support personnel. A maintenance owner (usually a team leader) monitors incoming problem reports and feature changes and prioritizes them by analyzing the reported priority level, the impact to the customer, and the amount of time required to make the fix or change. The maintenance owner ‘s team will package all implemented problem fixes and feature changes into a generally available maintenance release as required in the contract.
The maintenance owner’s team will document activity on all incoming problem reports and feature change requests through the IS ticket systems or per the contract. The team may also use localized tracking mechanisms during testing periods, at the conclusion of the testing period all unresolved problems are then transferred into the required system. The local ticket system allows for the tracking of problem reports, progress of analysis, implementing a defect correction (if necessary), and final resolution.
5.0 Support Activities
Initiation - Normally, assistance is provided after the Field Support Team has obtained all pertinent information and completed an initial investigation to determine that a problem has been encountered and created a problem report via the corporate problem tracking mechanism.
Management Directive - Occasionally, the software maintenance support team is directed by management to provide a support function in emergency situations prior to the existence or transfer of a problem report via the corporate problem reporting mechanism. When this emergency situation occurs field support team creates a formal problem report as soon as possible after engineering’s participation in the problem investigation.
Consultation (Phone, E-mail, Direct verbal Contact) - Consultation with product users or with field support analysts prior to the existence or transfer of a problem report may be an anticipated support function. This should be an exceptional situation. A support analyst should create a problem report as soon as possible. The results of the consultation should be recorded by the software maintenance support team member in the problem report in the problem tracking system that was created.
Internally Detected Problem - When a problem is detected in a pre-release software product, an internally originated Ticket should be created to track the problem.
6.0 Implementing Problem Fixes and Feature Changes
Incoming problems and feature changes - This procedure begins when a problem report or (Ticket, technical action request) is created and:
1) is transferred to the maintenance owner responsible for the support of the product from the field support owner with a state of "under investigation" and a reason code of "under investigation by development"
2) is already assigned to the maintenance owner when it was opened (as when created by another engineering organization).
Task 1 - Input Verification
Incoming problem reports and feature changes are given a preliminary analysis to determine if there is sufficient information to proceed. Typical information gathered includes:
o Problem symptom, detail description. Justification for transfer to software maintenance.
o Impact on customer/ problem priority/ political sensitivity. Is there a temporary work around?
o Description of any recent changes (e.g., is this a new installation?) to hardware or software (including applications), or procedures.
o Indicate if problem is reproducible & how reproduced. If not, what was going on when problem occurred? When did it occur (i.e.: time of day)? What is the frequency of occurrence?
o Environment- both hardware and software. Hardware description should include network configuration and characteristics, client and server descriptions/models (including memory sizes) and if bridges / routes are utilized. Software information should include version numbers of resident products including applications, drivers and the Operating System for both clients and servers. User application functional descriptions may also be necessary.
o Reproducible problems should include supporting documentation such as product configuration files, product component logs, core files, product component error logs, etc. Non-reproducible problems should include as much supporting documentation as available.
o Other given information should always include contact name, phone number, location, and best contact time.
If there is not enough information and if the problem report is customer generated, the Ticket may be placed into the "suspended" state with a reason code of "awaiting documentation" and responsibility transferred back to the originating NGSC support team leader. This should be done with consideration given to the nature of the Ticket, e.g., priority, customer sensitivity or political aspects.
If there is not enough information and if the problem report has been generated by someone else, then the originator of the problem report is contacted and more information is requested. The Ticket is modified to a "suspended" state with a reason code of "awaiting documentation". If this request is not satisfied within a maximum of 30 days, then the Ticket may be modified to a "return" state with a reason code of "insufficient docs" and returned to the responsibility of the field support owner.
Task 2 - Problem Report Classification
Once sufficient information has been obtained, and if the software product that the problem report has been determined to be against is a third party vendor supplied product with which the IS has a support agreement, then the product specific document (may be a contractual agreement) for the specific third party vendor product will govern the support activities.
If the software product involved is not covered by a support agreement with a third party supplier, proceed to the next task.
Task 3 - Prioritization
Unless specified in the contract or per the customer requirements, the current problem resolution time guidelines are linked to the priority of a Ticket. These are currently:
The problem report is reviewed by the team to determine if and when it will be scheduled for resolution, and who will be responsible for the implementation. If a customer requires a fix for a problem prior to the next maintenance release, the priority is raised if necessary to reflect the urgency and a team member is assigned to resolve the problem and deliver a fix to the customer. If an incoming Ticket is of a higher priority, than a Ticket planned for the next release, but does not require delivery to a customer prior to the next maintenance release, the team may substitute the incoming Ticket in its maintenance release schedule. The team also has the option to request additional resources from their coach if all problems are considered to be high priority.
Task 4 Diagnose Problem
The problem is diagnosed by the assigned team member to determine if the Ticket is a software defect which has been assigned to the correct product name, product version and responsible person . If not, the call may be reclassified and/or redirected as necessary, or returned with the appropriate reason.
The Ticket is considered to be a defect if the product fails to conform with documented operation (e.g., Functional Specifications, Technical Publications, Release Package, etc.). If the call is a latent software defect, the developer attempts to identify the problem. Critical points to be considered are :
o Problem symptoms
o Problem stimulus
o Changes in the environment
o New features introduced (both hardware and software)
o Frequency of occurrence
o Time of day/age of system
The diagnosis continues until the problem has been identified. Not only identified as a problem but where the problem was introduced into the product. The maintenance analyst must identify the root cause and classify it into one of the following categories:
Requirements - The error was introduced due to lack of clarity in the product requirements at end of Definition Phase.
Design - The error was introduced due to incomplete or incorrect design.
Implementation - The error was introduced during implementation, but is not a coding error.
Coding - A simple coding error or mistake.
Documentation - The user documentation contains a mistake.
Packaging (SCM activity) - An error in the production of the distribution package.
Supplier - An error in the product as received from a supplier.
This information is then entered into the appropriate system.
Once the problem has been identified, the maintenance analyst must decide if a software fix is necessary. If a software fix is not required, the Ticket may be reclassified and/or redirected as necessary, or returned with the appropriate reason code. Otherwise continue.
Task 5 Design and Implementation
When a Ticket has been defined, the Ticket is required to contain the following:
o Description of fix
o Modules changed (and their new version if applicable)
o IS release in which fix is included
o Test information
In the design activity, the developer determines a solution for the problem. If the change is major, the developer should review the design with other team members for feedback.
Once the design has been agreed upon, the source code is checked out from the repository where stored and copied to a development area. The source changes are applied to the subject modules, compiled, and optionally the code is reviewed by the same team that reviewed the design. If a code review is held, any changes agreed upon are applied to source code and modules are recompiled.
Note: Unit testing is mandatory. Integration/Acceptance testing is mandatory only prior to the maintenance release. A test description should be included in the Ticket fix description, formal documentation although optional is recommended.
Task 6 - Build / Deliver Software Change / Customer Test
The decision to deliver a software change depends on the willingness of the customer to wait for the next maintenance release. If the problem is severe (Ticket priority 1) or if the customer needs the fix prior to the availability of the next maintenance release, then a delivery of a fix to the customer is necessary. The team member may create a patch package with an appropriate name and should inform Software Configuration Management (SCM) of the patch delivery.
When a customer originated problem is delivered, the associated Ticket is modified, changing its state to "suspend" with the reason code of "awaiting customer verification" and is assigned to the responsible team leader in the field support who ensures that the fix meets the customer’s expectations. The software change will be delivered by an field support analyst to the originating customer for installation and testing. Once the results of the software change installation are determined, the field support analyst responsible for delivering the ‘patch’ modifies the Ticket by changing its state from suspended to "interim solution" with a reason code of "fix accepted" and transfers responsibility back to the maintenance owner.
Task 7 - Source Control
Upon successful completion of testing and/or customer verification, the modified source code is checked in so that the software change can be incorporated in the next generally available software feature or maintenance release. The Ticket must be modified by changing its state to "permanent solution" with a reason code of "solution acceptable", when a release containing the fix has been sent to the distribution centers.
Task 8 - Update Testbed
Updating the engineering support testbed may be necessary prior to completion of a Maintenance Release, a Special Test Requirement or following successful customer verification of product corrections. This may include updating any relevant product Integration or Acceptance Test Plans and/or specifications (i.e. updating Revision B to Revision C).
3 - Planning and Executing a Maintenance Release
A maintenance release is defined as a minor software 'point' release intended mainly to consolidate verified problem fixes into a single general release for replacement of a previously released, but flawed, general release version.
Maintenance Releases are scheduled per each contract or customer requirement. It is recommended that the responsible team have a coordinator (usually a team leader) who oversees the planning of the release, maintain a project micro schedule and a project notebook to assist in managing the delivery of the maintenance release and other related support activities.
When planning a release, all unresolved problems should be reviewed and prioritized. The team decides which problems, based on priority, will be implemented in each release. As previously stated, incoming calls can alter the original plan. The team determines the release date and then calculates the date that the software needs to go to SCM and from there the date that I/A testing needs to begin. It then figures out the number of development weeks available. This estimate is used to determine how many open calls will get implemented in the next release. The team should also take additional support activities, planned vacations, and training into account when determining maintenance schedules.