I'd like to upgrade from Java 5 to Java 6. We all know about the technical advantages and benefits, but:
I have the problem that a major client refuses to upgrade from java 5 to java 6 because of "the risks" and "no/too few benefits for us" (banking sector).
What can be answered to a non-technical decider at the client what benefits he'll get from an upgrade - or otherwise which problems/consequences may arise if he'll stay with java 5?
It's not a "fire and forget"-product, it's activly extended with new functionality/features - the development is and will be constantly going on - the dev team would definitly benefit from the jdk 6 features/tools.
EDIT: The reached EOL of Java 5 is a valid point indeed, but it doesn't convince the client because he is using the IBM JRE/JDK 5, which seems that it has not reached its end of life yet. And, beside that the client stated: "Java 5 is running fine for years and its unlikely that new, unseen problems arise"
I'm going to answer from the point of view of the client.
Our systems development shop is still using Java 5. To migrate to Jave 6, we have to test our entire portfolio.
When we moved from Java 4 to Java 5, the process took 6 months, and involved some code changes (mostly changing enum variable names to enumerate).
At this time, our systems development shop has decided that the benefits of Java 6 are not worth the migration pain,
Your bank client feels the same way. They will not migrate until they are forced to migrate to Java 6.
Java 5 is now well past its end-of-life date. Sun/Oracle will no longer issue public updates to it.
If you find a bug in Java5 now (e.g. a hotspot crash - they do happen), you're screwed. If you have a dedicated support contract with Sun/Oracle, which they do offer for those stuck on obsolete versions, then they can fix it for you.
You could argue that the risk of staying on an unsupported platform is greater than the (more manageable) risk of migrating.
Just tell him that's it's a minor upgrade: show him that the version goes from 1.5 to 1.6 using the
"-version"
command. :)We've had this problem with a client last year and we stood firm and said that future development (against Java 1.4 as it happens) would at a minimum be significantly more expensive in the future and as time went on we it may no longer even be possible with us. It was a risk but we felt it was worth it as it allowed us to greatly reduce our development costs. Obviously we weren't as blunt as the opening line makes out. We showed the client all the reasons why it would get progessively more expensive to stay as they were.
We upgraded from 1.4 to 1.6 last year. It's been a tremendous help for development, but not without its hiccups. While this was not our motivation, today we are required to "keep up to date" by PCI (credit card handling requirements). Your app may be running smoothly, but I'm sure that Java 1.5 has some security holes that have been fixed since in 1.6.
From the source:
More on the same matter (may be of help to elaborate more to the client):
Top 10 Reasons to Upgrade to Java 6
Why should I upgrade to Java 6?