The article represents some of the challenges that an enterprise might face in relation to the adoption of Java 8 across different line of businesses (LOBs).
Buy-in from Business & Technology Stakeholders
Unlike previous Java releases, Java 8 release has come up with some unique features which are there to sort out some of the existing technical challenges (such as Lambda expressions, Collector APIs for map-reduce transformations, Nashorn engine etc) and, challenges in relation to making Java friendly to different devices and modular (compact profiles) in coming future. The primary issue that business and technology stakeholders are going to face is to find out and get convinced with business and technology relevance and ROI that they will get as a result of adoption of some these Java 8 features.
From business perspective, following are some of the key challenges:
- Determine strong and convincing reasons to migrate when all business applications are working great and business do not want to disrupt anything.
- Get the buy from key stakeholders from different line of businesses (LOBs) to collaborate and migrate
- Most importantly, get ready to bear the cost that would be incurred in testing of existing applications if they decide to migrate entire (very remote possibility) or only a portion of it. In addition, they may have to allocate some cost in training of the developers.
- General issues in relation with instability of the release. Technology stakeholders would want to wait for sometime to see how stable and secured the release is and then go for planning the adoption.
- Educate/train the developers with new concepts in Java 8, the primary being the concepts around functional programming when they have been used to object oriented programming. Given the not so steep learning curve of average developers, it may prove to be an cumbersome task.
Costly & Challenging Migration
One of the key challenges that migration to Java 8 will face is agreement from key business and technology stakeholders from different LOBs within an enterprise. The primary reason for difference in opinions would be associated costs that would be required to be invested in following:
- Education of developers around concepts of functional programming (for lambda expressions).
- Different testing approach given some of the flagship feature of Java 8 such as Compact Profiles which allows different set of libraries (profile1, profile2, profile3) to be deployed depending upon the needs of the application and the devices.
Developers’ Learning Curve
As mentioned above, even if business and technology stakeholders give their buy-in to adoption of Java 8, it would prove to be an uphill task to get the developers buy-in, get them trained and have them apply the programming techniques recommended by Java 8. This is primarily because the developers have been very comfortable with object-oriented programming. Given that fact, the average developers would find it difficult to adopt functional programming concepts.
How to Get Expert Trainers
Given all the above in place, it would be an interesting problem to tackle to find the experts with Java 8, both internally and externally. This is because it would take some time for any decently expert java developer to come up with proper business use cases and relevant and related examples to educate other fellow developers in a great manner.