views:

930

answers:

11

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"

+13  A: 

Rather than convince him that there are no risks, I would suggest instead working with him to come up with a risk mitigation strategy.

In other words, agreeing that if you can show that the system running under Java 6 passes tests X, Y and Z he'll be happy to upgrade.

Visage
+27  A: 

Java 5 is now well past its end-of-life date. Sun/Oracle will no longer issue public updates to it.

Java SE 5.0 is in its Java Technology End of Life (EOL) transition period. The EOL transition period began April 8th, 2007 and will complete October 8th, 2009, when Java SE 5.0 will have reached its End of Service Life (EOSL).

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.

skaffman
That's a valid point, I also addressed it at the beginning of last year for the first time.But the client said:"Java 5 is running fine for more than four years, why should this change in the future?".
MRalwasser
@MRalwasser, you can bring up anything you want, but if you haven't quantified the costs of staying on an older version, against moving to a newer one, an internet forum is not likely to give you any answers. If this is a critical application that the bank is using, and one that has required updates to Java 5 for correct functioning, then people are more likely to listen. Put in $ values for pros and cons, for it takes effort to roll out a newer platform (all applications need to be tested again). If the bug history of the product "projects" a need for Java 5 updates, you can bring this up.
Vineet Reynolds
@MRalwasser If (1) "Java 5 is running fine for more than four years, why should this change in the future?" means it has been more than four years since the last malfunction in the application attributable to Java 5 and (2) I did not feel the need for new program functionality, then I would also be reluctant to upgrade. My inner bank president is telling me that the upgrade is more about your need for billable hours than anything else.
emory
@skaffman unfortunately, (2) is not true in my case. The application is extended /changed in functionality and legal changes quite often. This is one of the reasons I really want to go the java 6 way
MRalwasser
This is banking, so security is important. That makes the biggest issue around end of life the lack of fixes for new security issues.
Darron
+15  A: 

From the source:

Q: How is Java SE 6 different from the previous version (J2SE 5.0): what are the improved and updated areas, such as functionality, security, performance?

A: Anyone who has existing Java applications, will benefit immediately from the performance, reliability, and UI improvements in Java SE 6. Coupled with the expanded monitoring and diagnositics capacities built into the platform, the release delivers dramatic out-of-the-box benefits without any coding changes or even a re-compile necessary. Simply running existing Java applications on this latest release is all that is needed.

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?

Leniel Macaferi
+12  A: 

Over time, the client will increasingly need to upgrade because of things like:

  • Java 5 not being supported on some new hardware platform,
  • poor performance relative to newer Java releases,
  • greater coding and testing costs relative to newer Java releases,
  • increasing cost of Sun / Oracle support; e.g. to get security patches,
  • difficulty of retaining Java developers to work on Java 5 projects,
  • third party Java libraries no longer being developed for Java 5,
  • and so on.

But the longer the client delays upgrading, the larger the Java version jump involved, and more work (and potentially pain) that will be involved.

And the longer the client delays, the larger the accumulated costs of things like hardware provisioning, developer costs, deferred projects and so on.

To illustrate, suppose that you had waited 10 years to upgrade from Java 1.1 to Java 1.2. That would mean that you would have spent extra 10 years developing applications that used Hashtable and Vector as their primary data structures. And when you finally upgraded you would have 10 years worth of additional "legacy" code that is more difficult to maintain than if it had been written using Java 1.2 collections.

But the bottom line is that if the client insists on staying an old version of Java, you need to either go along with their wishes (and make sure that you pass on the extra costs!), or find a way to exit your contractual relationships with the client.

Stephen C
+9  A: 

Staff recruitment/retention becomes an issue if the application is seen to be old fashioned. Developers do not usually want to stick around if they see no progression.

Paul McKenzie
+1 Interesting. One has to be careful, though, that it doesn't come off as "*I* won't want to stick around."
Justin K
I'm not sure how much this applies to the banking sector. Pretty much everyone already assumes "old-fashioned and unexciting" when they think "banking".
Mr. Shiny and New
+1  A: 

In Short Java 6 is more optimized,better performance ,reliable and currently supported. It also provides advance options like diagnostics, debugging etc.

Most of Java based technology are already migrated or migrating to Java 6. Even they would stop support for earlier versions.

YoK
+3  A: 

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. :)

Thierry-Dimitri Roy
A: 

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.

wobblycogs
+3  A: 

Since you seem to be aware of all obvious benefits of java 6, and the client has good reason to be conservative, all that's left is to stress that not switching to java 6 will hamper development.

Development will be slower because you will undoubtedly spend time on implementing functionality you get for free in newer releases. And perhaps worst of all, not upgrading on a regular basis makes an upgrade more painful as time goes by, up to the point where it becomes practically impossible.

Typically, overdue upgrades result in a highly unpredictable scenario, with a resulting production loss across the entire company over a longish period of time. (assuming the software impacts a large enough user base within the company)

jvdneste
A: 

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.

Gilbert Le Blanc
+1  A: 

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.

David Corbin