Diffblue surveyed 450 IT leaders to learn more about their opinions on application modernization and how their organizations are approaching it. One thing was clear: there’s an awful lot of work to do on Java apps.

At Diffblue we talk to a lot of people who are looking for a way to solve the challenge of effective Java unit testing at scale

But why are they searching? After all, most Java teams have spent years balancing delivery against the (always too full) backlog with getting/keeping good unit test coverage.

Among all the business-specific reasons, application modernization - the need to update Java systems so they can support a 21st-century business more effectively - comes up more and more often, so we decided to take a closer look. 

The latest Diffblue survey of the Java community explores just how much of a challenge application modernization is for Java teams, how they plan to approach it, and what they expect the key challenges to be.

Some of the results were surprisingly emphatic. Like the fact that enterprises plan to modernize over 80% of their Java apps (which could means hundreds). Or the idea that all that work might consume almost half of all the available developers. For at least five years on average - and perhaps even longer.

The full findings are available in the survey report, but here are some headlines:

  • The biggest barrier to successful Java modernization is… code quality. 46% picked it as one of the biggest issues, and 18% said it’s the single biggest blocker.
  • It looks like engineering leaders believe their Java applications are not secure enough. 56% believe that ‘improving application security’ is a key modernization driver (the most common choice).
  • Modernization = automation. For 58% of respondents the terms mean the same, and 90% expect modernization to need more automation. 
  • The human cost of not modernizingis real and recognized. 40% of IT leaders think not doing it will increase staff turnover.

A summary of these highlights is available here but let’s look at a few more details.

Java isn’t going anywhere

Java has been used to build enterprise software for the better part of thirty years; in that time many new languages have arrived, and some have fallen away, but Java is still found in all sorts of places. No surprise there, but for an illustration of scale some survey respondents said they still run more than 1,000 separate Java applications! Half the people asked have more than 100.

The survey made it clear that enterprises see these Java systems as a key part of their future IT strategy. Almost all respondents (96%) said that Java applications are critical to their organizations and 87% believe modernizing Java applications is a higher priority than other IT projects. 

Almost everyone said they already have funding allocated to modernization activities, much of it dedicated. Whether it’s likely to be enough to cover the effort required remains unclear…

Code quality is the biggest challenge

Java modernization is no easy feat. Many barriers to success exist, but maintaining code quality topped the chart in our survey (46% said it was one of their biggest challenges and 19% picked it as most important of all). Why might that be, given other concerns like the focus on security? It’s likely because of what modernization means - the application needs to keep working at least as well as it always did, no matter what you change. 

That’s often tough to ensure when you’re working on undocumented code written 5, 10, 15 (or more) years ago by someone who left the company long ago. 

Unit testing is recognized as a powerful way to address the code quality challenge. Unit tests provide fast feedback to developers and excel at identifying regressions when changes are made to existing code – two critical goals during application modernization. 

97% of survey respondents said unit testing is extremely or very important when modernizing operational software but 87% believe a high or extremely high amount of developer effort would be required to achieve the ideal coverage level.  

The importance of automation in modernization

More and more responsibility is ‘shifting left’, from testing to security to ops. Sometimes that means more load for developers. Sometimes it’s supported by teams that are more cross-functional (the DevOps paradigm). Either way, automation is key.

However, the survey seems to indicate that either teams don’t have the automation to make application modernization successful: 90% said modernization projects will be the catalyst to adopt more.

Perhaps more interesting is the stat I mentioned earlier on - 58% of IT leaders think modernization means automating more processes. It’s the very reason for making the effort (or at least one of the key ones). 

That area of unit testing I just mentioned - identified as so important by the survey respondents - is an area ripe for automation. On average, writing a single unit test can take a developer 10 minutes. Over the course of an application modernization project, thousands of tests may need to be written – certainly a definition of ‘extreme’ amounts of developer effort!

Fully autonomous unit testing

Luckily for the developers (and other team members) who are going to do all that work over the next few years, AI-powered tools are increasingly providing the means to make some of the most repetitive, tedious modernization tasks faster and easier.

Unit testing is a case in point. Diffblue Cover uses reinforcement learning AI to autonomously write Java unit tests that are indistinguishable from those created by a developer. It can write each test in seconds without any need for human input or review, helping to deliver the high levels of test coverage needed to manage the code quality challenge and make application modernization a success.

What next?

Conversations with our customers told us that application modernization was on the roadmap of many IT leaders - it’s why some of them adopted Diffblue Cover in the first place - but the scale of the task still raised eyebrows at Diffblue HQ. 45% of developer resources represents not just a huge monetary cost but also a potentially massive missed opportunity - think of all the other work they could be doing.

To get the full story about how your peers and competitors are approaching Java application modernization, download the full survey report.

And whether or not you’ve embarked on your modernization journey, why not try Diffblue Cover for free to see how it can help you increase test coverage and developer productivity?