J & R Consulting, Inc. Home Page Go to J & R Consulting, Inc. Home Page.
Search
Jason Boyd's Weblog

« "Team Direction" | Main

February 10, 2006

Supporting Mission Critical Applications

During the development of a mission critical application, there is a tremendous amount of effort spent on building quality into the application. This effort is justified because once the application is deployed, the amount of downtime or system errors is expected to be minimal. The reality is there will be unexpected application responses or application functions that simply stop working, due to either slightly different data sets or a completely different execution path through the application that the end user has chosen to use. When this occurs the support response to the end user becomes critical to the overall success of the application.

As the software is deployed to multiple customers, each customer will react to experience system failures differently and is likely to have different ideas about what is an acceptable support response. Responding to these different expectations is the challenge of the support team and will be a major influence of the customer’s confidence in the system.

To build or strengthen the confidence in the support team and the application, there are a number of factors that require customer and the support team agreement about the support case process.

Class of support request
Once a support team is established there will be many different types of requests that arrive from the customers. These will generally fall into the categories of inquiry, user error, configuration, and application bugs. It is essential that the customers know that these are the categories that are used to determine the class of the request based on the information provided by the customer.

Issue Criticality
A business impact assessment will need to be performed by the client prior to submitting the request. This provides the support team with the justification for assigning a priority to complete the analysis. It is extremely easy to fall into a habit of the last request delivered receives immediate attention; but, this only creates fragmentation in the support response. By providing an impact assessment to the support team, they are able to ensure that all truly mission critical functions are able to be performed by the application at all times for each client.

Response Time
Based on the class of the request and the criticality of the issue, a response time can be assigned. This does not mean the issue will be solved in this time period, rather the customer will receive status updates on the issue in an interval that is appropriate to the type of request. They will also receive escalation notices that have been pre-defined for the class of the support request based on the elapsed time.

Resolution Responsibility
Once a resolution has been identified and suggested by the support team, a responsible implementation party will be identified. At the time of assignment, the expectations for delivery implementation must be agreed upon given the current work load of the responsible party. This will give the client the opportunity to exchange other requests that might be in the implementation queue in order to prioritize all outstanding items.

Once the framework of the client’s expectations has been defined, the structure of the support team will provide the backbone of support for the clients. This structure must be able to expand and contract with the support load of the current and future clients while continuing to meet the agreed upon support response times.

There are five main categories of roles which construct the support team:

First Responder
This position is the first point of contact with the clients. The position will take support line calls, monitor the support voicemail box, and email box. They will be responsible for generating the case, communicating the class and issue criticality back to the client, and providing the client with a case number for future correspondence. It is critical that this response is sent back to the client as quickly as possible so they know the issue has been received, the severity of the issue, and have a reference for referring to the issue in future correspondence. This will also give the client the ability to agree or dispute the class and criticality of the issue that has been assigned by the support team.

Trainer/Client Communicator
This position is held by an individual who is able to work one on one with client representatives and is able to help them through understanding portions of the system and modifying the configuration of the system to meet their needs. This position requires very strong communication skills and patience with the client to ensure that they are not just understanding the current issue, but are receiving knowledge transfer training that will help them solve future issues without the help of the support team.

Application SME
This position is responsible for understanding the application and all background code of the application. They will be responsible for investigating bugs in the application, and will require access to all available source code and current design specification documents in order to determine the root cause of an unexpected result in the application. They will also be responsible for correctly identifying the failing code and proposing a possible solution to eliminate the problem that was experienced by the client. This information, along with the exact steps to recreate the issue, will be vital to the developer that is assigned to fix the bug in the application.

Developer
This position is responsible for developing and testing the necessary updates to the application that are discovered and confirmed by the support team. Depending on the development load, this position may be shared between application development and support development.

Manager/Case Assigner
This position is responsible for routing the issue to the appropriate group or individual for investigation. This position will be charged with knowing the current workload of the other positions on the support team. Other responsibilities of this position include: daily status reports to each client on all open cases, weekly communication to higher management about the metrics of the support team, aiding in any ongoing investigations, managing any escalation procedures, and working with the application development team to ensure awareness of any ongoing development.

If the support needs are not large, these positions may be implemented as half time positions and could then be shared by a single resource. The key is identifying the role of each position and the vital function to the support team that is met by each position. Through the use of a single point of contact, agreed upon case classifications, agreed upon response times, and appropriate communication to the clients and to the organization management, mission critical support will supplement and enhance the client’s confidence of the system.

Posted by Jason Boyd at February 10, 2006 10:38 AM

Trackback Pings

TrackBack URL for this entry:
http://www.jandrconsult.com/cgi-bin/mt/mt-tb.cgi/76

Comments

Post a comment




Remember Me?

(you may use HTML tags for style)