Some of the most challenging areas are in project and production management, arrangements with clients and scheduling. Another thing is the selection of architectural and infrastructure solutions or tools. It’s not easy or cheap to make changes here so it’s vital to be very strategic about how you implement a Java app.
One thing that’s specific to Java is that there’s such a large selection of tools that the trick is to select the ones that will be the right for your job. But in general, Java is developing fast (there are new releases every six months), it is good to write libraries and a lot of frameworks. There are few other technologies that offer such a wide range of tools.