I recently received questions from Oracle ACE Director (ACED) Tim Hall on upgrading to JDeveloper 11.1.1.7.0, not necessarily asking about the 'how' but rather the 'why should we upgrade to the latest version beyond new features?' Oracle has a close relationship with its ACED members, and overall the questions that we receive from the ACE Directors are well thought out and indicative of what the wider customer base are interested in, so we’re more often than not willing to address their concerns. As such Tim and I thought we’d collaborate to write and publish the questions and answers for everyone to benefit from.
Tim Q1) Assuming we don't need the extra functionality in ADF 11.1.1.7, what is the advantage of moving to it? Are the bug fixes and maybe browser compatibility changes enough to warrant the upgrade?
Chris A1) Of course Oracle would love you to look at the new features and we hope they are compelling enough reasons on their own to get you to upgrade. Probably the most exciting parts are the 'eye candy'components (cough, DVT controls) such as the Sunburst, TreeMap, TimeLine and Code Editor. However for programmers the PanelGrid, ListView and new (returned?) pagination support in Table’s will also make ADF UI development easier, and who doesn’t want an easier job?
Possibly a more compelling reason is the optimisations introduced under the covers which might not be overly obvious, but will make your users happy with the responsiveness of the app migrated to 11.1.1.7.0. In this release Oracle has introduced a new skin 'Skyros' which to some people will be 'just another skin'. Yet this skin introduces CSS3 with its graphics rendering support to replace the 10s, if not 100s of images we used to include with each skin for the overall application chrome. This means your user’s browsers now download far less bytes, the browser and CSS3 can use the graphics processes of the users’ PCs for faster interactions, the end outcome, faster apps, happier users.
Not enough on the optimization front? To prove my point about optimizations under the covers, check out the bug fix list and note the DOM optimizations (e.g. bug 14015969) to make components more 'HTML-light-weight'. The ADF programmer won’t see this in their day to day coding, but it will make a performance difference to the applications as the browser has less HTML to review and DOM to process.
Yet I agree, this and the other new features might not be enough. So let’s address your other points.
Between releases Oracle does put it in significant effort addressing JDeveloper and ADF bugs, as well as behind the scenes optimizations that you get for free and we don’t necessarily publicize. Admittedly we also introduce in a few new bugs, but lets be realistic, that’s the nature of modern complex software, there’s always going to be bugs. The goal is of course to reduce the amount and this is something Oracle pursues at length. Since starting at Oracle 1 year ago I’ve lodged just over 100 bugs and ERs, and have worked at length with our developers who are committed to addressing these issues, something all our team members do daily. With all this in mind, from experience in having talked to external development teams who have upgraded in the past, generally speaking when quizzed about the quality of the IDE and ADF, I’ve not yet heard a customer say they wanted to go back versions. So overall my opinion, is yes, you should diligently plan to upgrade when new releases come out.
In turn you mentioned browser compatibility. One goal of ADF Faces is to remove the mess of programming and testing for different browsers and versions. This problem for everyday HTML, CSS and JS programmers has got worse in my opinion with the acceleration of browser releases and even mobile browsers thrown into the mix (have you read Webkit might be the next IE6?). So one thing we’re doing behind the scenes on every customer’s behalf is testing and fixing issues of all our components on each browser release as they become available. As an exception that hopefully proves the rule, have a look at the 11.1.1.7.0 release notes and read all the different browser issues Oracle has detected and have bugs listed for, Oracle continues to make these sort of issues a priority. Why? We’ve a vested interest in fixing these too, our applications are all written in ADF, all rendered in browsers, we need this to work for our products too otherwise our customers wont use them.
Arguably some readers might say that they don’t have to upgrade to pursue the latest browser fixes as their application only runs internally to their organization where the browsers are pegged to a certain vendor and version. I think this used to be relevant argument, but is becoming less so now with the BYOD mobile movement, where staff are accessing internal systems via their own tablets and smartphones. It’s only a matter of time till your CEO sends a nasty email that she can’t access the systems from her latest Android or iOS device. Oracle includes optimizations & fixes for these devices, indeed 11.1.1.7.0 introduces better support for Android Chrome to address the mobile browser market issues too.
At this point in re-reading my answer, I feel like I’ve been drinking the Oracle cool-aid a little too much. So let’s address reasons why you shouldn’t upgrade at this stage.
Depending on the scale of your ADF infrastructure (code, servers, developer PCs, CI engines), the act of upgrading can be substantial across the organization. Undertaking an upgrade while your part of the organization is under deadlines might not be the wisest thing to do. If you’re just about to go to production with your latest ADF application, and the dev teams are under pressure to get it out the door, throwing in a new JDev/ADF release at the last moment could be disastrous to your milestones, & even the quality of your software if the QA team doesn’t have time to do a full regression test.
As most readers will be aware, regression testing is an important process of ensuring between upgrades a system doesn’t introduce any new bugs, something you definitely should pursue when upgrading your ADF infrastructure or anything else for that matter. Yet at many sites they’ll attempt to do this testing manually, which with any large system will be difficult, time consuming, and prone to missing issues. As such in chasing the ADF release cycle, with any system of size, it’s well worth pursuing automated regression testing through tools like Oracle Application Test Suite or similar.
Finally, recognize that Oracle is going to continue to release new versions of ADF, with new features, fixes and optimizations. As such it seems prudent to me that any organization serious about software development shouldn’t be planning these upgrades on an adhoc basis, but it should be something built into their plans. The browser world is going to continue to churn, Oracle is going to continue to innovate and fix issues, why are customer’s inadvertently drawing a line in the sand after each upgrade to not consider planning for the next?
Tim Q2) Is there a significance in upgrading as far as support lifecycle is concerned?
Chris A2) Good question, and yes, something I’ve written about before, Do you know your ADF "grace period?". In brief while Oracle agrees to support ADF for considerable time, your grace period for bugs and fixes to the 11.1.1.6.0 release is now ticking.
Disclaimer: I’m paraphrasing the Oracle support policies here and it is important Oracle customers keep up to date with these policies themselves. Please read the previous blog and research the associated support notes.
Tim Q3) Is the upgrade likely to break anything that has already been converted for 11.1.1.6?
Chris A3) Well, we'd hope not ;-) Oracle doesn't deliberately release software that is designed to break our customers' software, but as we admitted together earlier on in this discussion, modern software is a complex business and Oracle will have bugs in its software, to say otherwise will be a lie. But that’s why I put the emphasis on regression testing and automated regression testing early on, not just for Oracle! … but also you. The grace period gives you a year to upgrade your systems in your test environments, and lodge bugs and get fixes from us, before you upgrade.
As a final note some customers will be asking why Oracle has two current JDeveloper versions, 11.1.1.7.0 and 11.1.2.3.0? This older blog post, though talking about 11.1.1.6.0 and 11.1.1.2.0 is still relevant and worth a read for anybody confused about the two releases.
Image courtesy of pat138241 / FreeDigitalPhotos.net