升级到Java 6的非技术决策者(在客户端)的原因和优点

我想从Java 5升级到Java 6.我们都知道技术上的优势和好处,但是:

我有一个问题,一个主要客户拒绝从java 5升级到java 6,因为“风险”和“对我们来说没有/太less好处”(银行部门)。

对于客户端的非技术性决策者来说,什么可以回答他将从升级中得到什么好处 – 否则,如果他将继续使用Java 5,可能会出现哪些问题/后果?

这不是一个“消失和忘记”的产品,它是积极扩展的新function/特性 – 开发将会不断发展 – 开发团队将明确从jdk 6特性/工具中受益。

编辑: Java 5到达的EOL确实是一个有效的点,但它并没有说服客户端,因为他正在使用IBM JRE / JDK 5 ,这似乎还没有达到其生命的尽头 。 除此之外,客户表示:“Java 5运行良好多年,不可能出现新的,看不见的问题”

随着时间的推移,客户将越来越需要升级,因为这样的事情:

  • 在某些新的硬件或操作系统平台上不支持Java 5,
  • 与较新的Java版本相比性能较差,
  • 与较新的Java版本相比,编码和testing成本更高; 例如由于旧API的“笨拙”,不能使用stream等
  • 增加供应商支持的成本1 :你必须支付获得安全补丁的支持 ,并且越早支付(我认为)越多,
  • 保留Java开发人员在Java 5项目上工作的困难,
  • Java 5不再开发和支持第三方Java库,
  • 合规问题; 例如https://stackoverflow.com/a/3434063/139985
  • 等等。

但是,客户端延迟升级的时间越长,所涉及的Java版本越大,涉及的工作(可能会很痛苦)越多。

客户延迟时间越长,硬件configuration,开发人员成本,延期项目等累计成本也越大。

为了说明,假设您已经等了10年,从Java 1.1升级到Java 1.2。 这意味着你将花费额外的10年开发使用HashtableVector作为主要数据结构的应用程序。 当你最终升级时,如果使用Java 1.2集合编写代码,那么将会有10年的额外“遗留”代码难以维护。

但底线是,如果客户坚持要留下一个旧版本的Java,那么你需要按照他们的意愿去做(并且确保你传递额外的成本!),或者find一种方法来退出你的合约关系与客户。


1 – 生命周期/服务终止date因供应商不同而不同,但是AFAIK所有主要供应商现在都有EOL'd Java 5。 事实上,Oracle也拥有EOL的Java 6和Java 7。

现在Java 5已经过时了 。 Sun / Oracle将不再发布公共更新。

Java SE 5.0处于Java技术终结(EOL)过渡期。 EOL过渡期从2007年4月8日开始,将于2009年10月8日完成,届时Java SE 5.0将达到其使用寿命(EOSL)。

如果你现在在Java5中发现了一个bug(例如热点崩溃 – 它们确实发生了),那你就搞砸了。 如果您与Sun / Oracle有一个专门的支持合同,他们为那些被淘汰的版本提供支持,那么他们可以为您解决这个问题。

您可能会争辩说,留在不受支持的平台上的风险大于迁移的风险(更易于pipe理)。

来源 :

问:Java SE 6与以前的版本(J2SE 5.0)有什么不同:function,安全性和性能方面有哪些改进和更新的方面?

答:任何拥有现有Java应用程序的人都将立即从Java SE 6中的性能,可靠性和用户界面改进中受益。加上平台中内置的扩展监视和诊断function,该版本提供了大量的开箱即用没有任何编码改变的好处,甚至不需要重新编译。 只需在最新版本上运行现有的Java应用程序即可。

更多关于同一问题(可能有助于向客户详细阐述):

升级到Java 6的十大理由

为什么要升级到Java 6?

与其说服他说没有风险,我会build议与他一起制定风险缓解策略。

换句话说,如果你能certificate在Java 6下运行的系统通过testingX,Y和Z,他会很乐意升级。

如果申请被认为是老式的,员工招聘/留职就成了一个问题。 如果开发人员没有看到进展,他们通常不会坚持。

只要告诉他这是一个小升级:使用"-version"命令向他显示版本从1.5到1.6。 🙂

由于您似乎意识到了Java 6的所有显而易见的好处,并且客户端有理由保守,所以剩下的就是强调不切换到Java 6会阻碍开发。

开发将会变得更慢,因为您将无疑花费时间来实现您在新版本中免费获得的function 。 也许最糟糕的是, 没有定期升级,随着时间的推移,升级会变得更加痛苦,直到实际上变得不可能

通常情况下,过期的升级会导致高度不可预测的情况,导致整个公司在相当长的一段时间内造成生产损失。 (假设软件影响公司内足够大的用户群)

总之,Java 6是更优化的,更好的性能,可靠和当前支持。 它还提供诸如诊断,debugging等高级选项。

大多数基于Java的技术已经被迁移或迁移到Java 6.即使他们会停止对早期版本的支持。

我们去年从1.4升级到1.6。 这对发展有很大的帮助,但并非没有打嗝。 虽然这不是我们的动机,但是今天我们需要通过PCI(信用卡处理要求)“跟上时间”。 您的应用程序可能运行平稳,但是我相信Java 1.5有一些安全漏洞,自1.6版以来已经修复。

我将从客户的angular度回答。

我们的系统开发商店仍在使用Java 5.要迁移到Jave 6,我们必须testing我们的整个产品组合。

当我们从Java 4移动到Java 5时,这个过程需要6个月时间,并涉及一些代码更改(主要是将枚举variables名更改为枚举)。

在这个时候,我们的系统开发商已经决定了Java 6的好处是不值得迁移的痛苦,

你的银行客户感觉是一样的。 他们不会迁移,直到他们被迫迁移到Java 6。

去年我们和一个客户有过这个问题,我们坚定地表示,未来的发展(Java 1.4发生的时候)至less会在未来显得更加昂贵,随着时间的推移,我们甚至可能不再可以和我们在一起。 这是一个风险,但我们觉得这是值得的,因为它使我们能够大大降低开发成本。 显然,我们并不像开幕式那样直言不讳。 我们向客户展示了为什么它会像现在一样保持高昂的价格。