Você está na página 1de 6

13/10/2014 8 Ways to Improve Your Java EE Production Support Skills | Javalobby

LINKS REFCARDZ GUIDES ABOUT POST LOG IN or JOIN

ZONES: AGILE BIG DATA CLOUD DEVOPS ECLIPSE INTEGRATION IOT JAVA MOBILE NOSQL PERFORMANCE WEB DEV

Pierre - Hugues Charbonneau  Publish an Article  Share a Tip


Bio Website @PHCharbonneau Search

Connect with DZone


8 Ways to Improve Your Java EE
Production Support Skills
08.14.2012 | 11499 views | Like 4 Tweet 4 6 Share 4
RELATED MICROZONE RESOURCES

How to deliver business agility and IT


alignment with DevOps
Everybody involved in Java EE production support know this job can be difficult; 7/24 pager "AppOps": Power to the Devs!
support, multiple incidents and bug fixes to deal with on a regular basis, pressure from the client
The ultimate list of DevOps Tools
and the management team to resolve production problems as fast as possible and prevent
Resolve incidents faster, and make your
reoccurrences. On top of your day to day work, you also have to take care of multiple application business more reliable
deployments driven by multiple IT delivery teams. Sounds familiar?
Obama for America gets real time insight into
an agile development environment
As hard as it can be, the reward for your hard work can be significant. You may have noticed from
my past articles that I’m quite passionate about Java EE production support, root cause analysis
and performance related problems. This post is all about sharing a few tips and work principles I
Spotlight Features
have applied over the last 10+ years working with multiple Java EE production support teams
onshore & offshore. iOS 8 and iPhone 6 for Web
Developers and Designers
This article will provide you with 8 ways to improve your production support skills which may help
you better enjoy your IT support job and ultimately become a Java EE production support guru.
Don't Waste Time on Code
#1 – Partner with your clients and delivery teams Reviews

My first recommendation should not be a surprise to anybody. Regardless how good you are from a The Greatest Programmers
technical perspective, you will be unable to succeed as a great production support leader if you fail Who Ever Lived
to partner with your clients and IT delivery teams.

You have to realize that you are providing a service to your client who is the owner and master of Getting Started with IoT and
Java
the IT production environment. You are expected to ensure the availability of the critical Java EE
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 your client with great benefits & opportunities.

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 Java EE production environments via their
established project delivery model. Over the years, I have seen several examples of friction
between these 2 actors. The support team tends to be over critical of the delivery team work due
to bad experience with failed deployments, surge of production incidents etc. I have also noticed

http://java.dzone.com/articles/8-ways-improve-your-java-ee 1/6
13/10/2014 8 Ways to Improve Your Java EE Production Support Skills | Javalobby
examples where the delivery team tends to lack confidence in support team capabilities again due
to bad experience in the context of failed deployments or lack of proper root cause analysis or
technical knowledge etc.

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. This will increase
the trust with the delivery team and allow you to gain significant exposure and experience in long
term. Ultimately, you will be able to work and provide consultation for both teams.

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

#2 – Every production incident is a learning opportunity


One of the great things about Java EE 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

Please note that it is also normal to face negative experiences from time to time. Again, you will
also grow stronger from those and learn from your mistakes.

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 – Don't fear change, embrace it


One common problem I have noticed across the Java EE 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 EE or middleware

Fear can be a serious obstacle for your future growth and must be deal with seriously. My
recommendation to you is that regardless of the existing gaps within your organization, simply
embrace the changes but combine with proper due diligence such as asking for more KT,
participating in project deployment strategy and risk assessments, performing code walkthroughs
etc. This will allow you to eliminate that “fear” attitude, gain experience and credibility with your IT
delivery team and client. This will also give you opportunities to build recommendations for future
project deployments and infrastructure related improvements.

http://java.dzone.com/articles/8-ways-improve-your-java-ee 2/6
13/10/2014 8 Ways to Improve Your Java EE Production Support Skills | Javalobby
Finally, if you feel that you are lacking technical knowledge to implement the changes, simply say it
and ask for another more experienced team member to shadow your work. This approach will
reduce your fear level and allow you to gain experience with minimal risk level.

#4 – Learn how to read JVM Thread Dump and monitoring tools data
I’m sure you have noticed from my past articles and case studies that I use JVM Thread Dump a lot.
This is for a reason. Thread Dump analysis is one of the most important and valuable skill to acquire
for any successful Java EE production support individual. I analyzed my first Thread Dump 10 years
ago when troubleshooting a Weblogic 6 problem running on JDK 1.3. 10 years and hundreds of
Thread Dump snapshots later, I’m still learning new problem patterns…The good part with JVM and
Thread Dump is that you will always find new patterns to identity and understand.

I can guarantee you that once you acquire this knowledge (along with JVM fundamentals), not only
a lot of production incidents will be easier to pinpoint but also much more fun and self-rewarding.
Given how easy, fast and non-intrusive it is these days to generate a JVM Thread Dump; there is
simply no excuse not to learn this key troubleshooting technique.

My other recommendation is to learn how to use existing monitoring tools and interpret the data.
Java EE monitoring tools are highly valuable weapons for any production support individual
involved in day to day support. Depending of the product purchased or free tools used by your IT
client, they will provide you with a performance view of your Java EE applications, middleware
(Weblogic, JBoss, WAS…) and the JVM itself. This historical data is also critical when performing root
cause analysis following a major production outage.

Proper knowledge and understanding of the data will allow you to understand the IT platform
performance, capacity and give you opportunities to work with the IT capacity planning analysis &
architect team which are accountable to ensure long term stability and scalability of the IT
production environment.

#5 – Learn how to write code and perform code walkthroughs


My next recommendation is to improve your coding skills. One of the most important
responsibilities as part of a Java EE 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

http://java.dzone.com/articles/8-ways-improve-your-java-ee 3/6
13/10/2014 8 Ways to Improve Your Java EE Production Support Skills | Javalobby
overall knowledge of the Java EE design patterns & anti-patterns.

Improving your coding skills can be done by following a few strategies as per below:

Explore opportunities within your IT organization to perform delivery work

Jump on any opportunity to review officially or unofficially existing or new project code

Create personal Java EE development projects pertinent for your day to day work and long term
career

Join Java/Java EE Open Source projects & communities (Apache, JBoss, Spring...)

#6 – Don’t pretend that you know everything about Java, JVM &
Middleware

Another common problem I noticed for many Java EE 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. What happened?

You reached a skill plateau within your small Java EE application list and middleware bubble

You failed to invest time into yourself and outside your work IT bubble

You failed to acknowledge your lack of deeper Java, Java EE & middleware 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

My main recommendation to you is that when you feel over confident or over qualified in your
current role, it is time to move on and take on new challenges. This could mean a different role
within your existing support team, moving to a project delivery team for a certain time or completely
switching job and / or IT client.

Constantly seeking new challenges will lead to:

Significant increase of knowledge due to a higher diversity of technologies such as JVM


vendors (HotSpot, IBM JVM, Oracle JRockit…), middleware (Weblogic, JBoss, WAS…), databases,
OS, infrastructure etc.

Significant increase of knowledge due to a higher diversity of implementations and solutions


(SOA, Web development / portals, middle-tier, legacy integration, mobile development etc.)

Increased learning opportunities due to new types of production incidents

http://java.dzone.com/articles/8-ways-improve-your-java-ee 4/6
13/10/2014 8 Ways to Improve Your Java EE Production Support Skills | Javalobby
Increased visibility within your IT organization and Java community

Improved client skills and contacts

Increased resistance to work under stress e.g. learn how to use stress and adrenaline at your
advantage (typical boost you can get during a severe production outage)

#7 – Share your knowledge with your team and the Java community
Sharing your Java EE skills and production support experience is a great way to improve and
maintain a strong relationship with your support team members. I also encourage you to participate
and share your Java EE production problems with the Java community (Blogs, forums, Open Source
groups etc.) since a lot of problems are common and I’m sure people can benefit from your
experience.

That being said, one approach that I follow myself and highly recommend is to schedule planned
(ideally weekly) internal training sessions. The topic is typically chosen via a simple voting system
and presented by different members, when possible.

A good sharing mentality will naturally lead you to more research and reading, further increasing
your skills in long term.

#8 – Rise to the Challenge


At this point you have acquired a solid knowledge foundation and key troubleshooting skills. You
have been involved in many production incidents with good understanding of the root cause and
resolution. You understand well your IT production environment and your client is starting to
request your presence directly on critical incidents. You are also spending time every week to
improve your coding skills and sharing with the Java community…but are you really up to the
challenge?

A true hero can be defined by an individual with great capabilities to rise to the challenge and lead
the others to victory. Obviously you are not expected to save the world but you can still be the
“hero of the day” by rising to the challenge and leading your support team to the resolution of
critical production outages.

A true successful and recognized Java EE production support person is not necessarily the
strongest technical resource but one who has learned how to properly balance his technical
knowledge and client skills along with a strong capability to rise to the challenge and take the lead
when faced with difficult situations.

I really hope that these tips can help you in your day to day Java EE production support. Please
share your experience and tips on how to improve your Java EE production support skills.

Published at DZone with permission of Pierre - Hugues Charbonneau, author and DZone MVB. (source)
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags: DevOps Java Tips and Tricks

AROUND THE DZONE NETWORK

ARCHITECTS JAVALOBBY ARCHITECTS JAVALOBBY JAVALOBBY SERVER

Top Posts of 2013: Big Top Posts of 2013: The 5 Things a Java Top Posts of 2013: Singleton Design Best Best Practices
Data Beyond Principles of Java Developer Should There Are Only 2 Roles Pattern – An Ever
MapReduce: Goog... Applicat... Consider This Yea... of Code Introspection w/ B...

YOU MIGHT ALSO LIKE

Beyond JSON: Introducing the Spearal Serialization Protocol

Poll Results Are In: The World's Greatest Programmers

Getting Granular With Microservices, PaaS, Twelve Factor Apps and Docker

The Rise (and Fall?) of NoSQL

Dev of the Week: Vladimir Šor

The Best of DZone: Sep. 30 - Oct. 7

Simple SecurePasswordVault in Java

http://java.dzone.com/articles/8-ways-improve-your-java-ee 5/6
13/10/2014 8 Ways to Improve Your Java EE Production Support Skills | Javalobby

Java Template Engines Revisited Part 1 POPULAR ON JAVALOBBY SPOTLIGHT RESOURCES

Do it in Java 8: The State Monad Essential


· Spring Batch - Hello World
Couchbase APIs:
Comparison of SQL Server Compact, SQLite, SQL Server Express and LocalDB · Is Hibernate the best choice? Open Source
· How to Create Visual Applications in NoSQL Data
How Do Cloud Developers Know When an App is "Done"? (JavaOne 2014) Java? Access from
· 9 Programming Languages To Watch Java, Ruby, and
7 Fascinating Changes That Can Shape the Future of Programming In 2011 .NET
Developing Services with Apache Camel - Part III: Integrating Spring 4 and Spring · Introduction to Oracle's ADF Faces
Rich Client Framework
Boot
· Lucene's FuzzyQuery is 100 times
R: Filtering data frames by column type ('x' must be numeric) faster in 4.0
Practical DNS:
· Interview: John De Goes Introduces a Managing
R: A first attempt at linear regression Newly Free Source Code Editor
Domains for
· Time Slider: OpenSolaris 2008.11 Safety,
Killer Feature Reliability, and
Speed
LATEST ARTICLES

· Exploding Job Offers and Multiple


Offer Synchronization
· Why iOS Developers Still Need to Camel Essential
Know Objective-C Components
· Sharding Pitfalls: Part I DZone's 170th
Refcard is an
· Paper highlights the need for a essential reference to
holistic approach to mobile Camel, an open-
healthcare source, lightweight,
· The Reuse Dilemma integration library.
This Refcard is
· Android Promoted Actions: Floating authored by...
Action Button (FAB)
· Revamping WSO2 API Manager Key
Management Architecture Around
Open Standards
· 8 Reasons Why Customers Benefit
from Online Document Delivery

Search
DZone Topics Follow Us

Refcardz Book Reviews HTML5 Windows Phone Google + "Starting from scratch" is
Tech Library IT Questions Cloud Mobile
Snippets My Profile .NET Java Facebook seductive but disease ridden
About DZone Advertise PHP Eclipse LinkedIn -Pithy Advice for Programmers
Tools & Buttons Send Feedback Performance Big Data Twitter
Agile DevOps

Advertising - Terms of Service - Privacy - © 1997-2014, DZone, Inc.

http://java.dzone.com/articles/8-ways-improve-your-java-ee 6/6

Você também pode gostar