Tuesday, August 14, 2012

Ways to perform your IT production support work better

 This post is all about sharing a few tips and work principles I have applied in multiple production support teams in onshore & offshore.

 This article will provide you ways to improve your production support skills which may help you better enjoy your IT support job and ultimately become a production support guru.

Everybody involved in production support know this job can be difficult; 7/24 pager support, multiple incidents and bug fixes to deal with on a regular basis, pressure from the client and the management team to resolve production problems as fast as possible and prevent re occurrences. On top of your day to day work, you also have to take care of multiple application deployments, install support  driven by multiple IT delivery teams.

Production support : Main actors

Actor 1: IT Client

- Primary focus on customers and business growth
- Owner of the IT platform
- Maintain a work force of business,Delivery, QA and support team
  
Actor 2: IT Support team


- Resposible of the IT client PROD environment.
- IT delivery support
- Resposible for production support issues and SLA.

Actor 3 : IT Delivery Team

- Responsible to project delivery and implementation as per the requirement.
- Post implementation support.


1#  Proper balance and professionalism between these 3 actors is key for any successful IT production environment.


My first recommendation is regardless how good you are from a technical perspective, you will be unable to succeed as a great production support leader if you fail to proper balance and professionalism between other two actors IT Client and IT delivery team..

You have to realize that you are providing a service to your client who is the owner and master of the IT production environment. You are expected to ensure the availability of the critical  production systems and address known and future problems to come. Stay away from damaging attitudes such as a false impression that you are the actual owner or getting frustrated at your client for lack of understanding of a problem etc. Your job is to get all the facts right and provide good recommendations to your clients so they can make the right decisions. Over time, a solid trust will be established between you and other two actors.

Building a strong relationship with the IT delivery team is also very important. The delivery team, which includes IT architects, project managers and technical resources, is seen as the team of experts responsible to build and enhance the production environments via their established project delivery model.

As a production support individual, you have to build your credibility and stay away from negative and non-professional attitude. Building credibility means hard work, proper gathering of facts, technical & root cause analysis, showing interest in learning a new solution etc. Ultimately, you will be able to work and provide consultation for both teams. 

2#  Each production support issues is learning opportunities

One of the great things about production support is the multiple learning opportunities you are exposed to. You may have realized that after each production outage you achieved at least one the following goals:

  • You gained new technical knowledge from a new problem type
  • You increased your knowledge and experience on a known situation
  • You increased your visibility and trust with your operation client
  • You were able to share your existing knowledge with other team members allowing them to succeed and resolve the problem
Recurring problems, incidents or preventive work still offer you opportunities to gather more technical facts, pinpoint the root cause or come up with recommendations to develop a permanent resolution.

The bottom line is that the more incidents you are involved with, the better. It is OK if you are not comfortable yet to take an active role in the incident recovery but please ensure that you are present so you can at least gain experience and knowledge from your other more experienced team members.

3#  Fear factor around production platform changes such as project deployment, infrastructure or network level changes 

 One common problem I have noticed across the support teams is a fear factor around production platform changes such as project deployment, infrastructure or network level changes etc. Below are a few reasons of this common fear:

  • For many support team members, application “change” is synonym of production “instability”
  • Lack of understanding of the project itself or scope of changes will automatically translate as fear
  • Low comfort level of executing the requested application or middleware changes
Such fear factor is often a symptom of gaps in the current release management process between the 3 main actors or production platform problems such as:
  • Lack of proper knowledge transfer between the IT delivery and support teams
  • Already unstable production environment prior to new project deployment
  • Lack of deep technical knowledge of Java or middleware
  4 #  Improve your coding skills.

My next recommendation is to improve your coding skills. One of the most important responsibilities as part of a production support team, on top of regular bug fixes, is to act as a “gate keeper” e.g. last line of defense before the implementation of a project. This risk assessment exercise involves not only project review, test results, performance test report etc. but also code walkthroughs. Unfortunately, this review is often not performed properly, if done at all. The goal of the exercise is to identify areas for improvement and detect potential harmful code defects for the production environment such as thread safe problems, lack of IO/Socket related timeouts etc. Your capability to perform such code assessment depends of your coding skills and overall knowledge of the  patterns & anti-patterns.

5#  Don’t pretend that you know everything

Another common problem I noticed for many  production support individuals is a skill 'plateau'. This is especially problematic when working on static IT production environments with few changes and hardening improvements. In this context, you get used very quickly to your day to day work, technology used and known problems. You then become very comfortable with your tasks with a false impression of seniority. Then one day, your IT organization is faced with a re-org or you have to work for a new client. At this point you are shocked and struggling to overcome the new challenges.
  • You failed to invest time into yourself and outside your work IT bubble
  • You failed to acknowledge your lack of deeper technology knowledge e.g. false impression of knowing everything
  • You failed to keep your eyes opened and explore the rest of the IT world and Java community
6#  Work towards production support SLA 

Another common problem I noticed for many  production support individuals are not working towards production support SLA. It is also very important in production support . This will improve production support team metrics report and client confidence.

7#  Provide workaround and update to client as soon as possible

You have to acknowledge and  provide a workaround solution if possible to application user as soon as possible. This will create a confidence on you. Once you completed with your analysis then communicate the same to user. While replaying to production issue tries to send an email in layman language.