In the recent 2022 Java Developer Productivity Report by Perforce, data reveals that development teams have not yet harnessed the full potential of microservices and Continuous Integration/Continuous Deployment (CI/CD) practices. The findings indicate that developers often find these technologies decrease productivity rather than enhance it.
42% of CI/CD users reported build completion times longer than five minutes, with the most frequent response (33%) being build times exceeding 10 minutes. A substantial 35% of respondents commit code more than five times daily. This downtime accumulates rapidly, affecting productivity over extended periods.
The CI/CD technology leaderboard sees Jenkins (46%) as the clear front-runner, followed by GitHub Actions (16%), Bamboo (7%), TeamCity (4%), CircleCI (3%), and Travis CI (1%).
Furthermore, 61% of surveyed developers observed an increase in their microservice-based applications' startup time within the past year. Among these developers, 13% experienced an over 50% increase, 30% recorded a 10-50% increase, and 17% reported a 0-10% increase. Overall, 60% of respondents noticed an increase in startup time compared to 35% documentation no change.
In response to the findings, Rod Cope, CTO at Perforce Software, commented that teams embracing CI/CD and microservices still experience hurdles tied to time wasted on long commit and redeploy times. Cope emphasized that companies must prioritize equipping their Java teams with the appropriate tools to avoid recruiting difficulties and reduced developer morale. Otherwise, developers may opt for organizations that meet their toolset preferences.
Regarding microservices application users, Perforce's report points to similarly high redeploy times. An alarming 44% of these users reported redeploy times of at least five minutes. Curtis Johnson, Product Manager at JRebel by Perforce, underscored the importance of implementing proper tools to counteract this issue and maximize the benefits of microservices architecture for Java applications.
Participants were asked how they would allocate an additional 10% available time during workdays. A mere 4% mentioned recreational activities, while the majority prioritized functional responses such as adding new features (28%), improving application performance (20%), or enhancing test coverage (19%). Other focus areas included improving development processes (17%), starting new projects (6%), and advancing launch dates (6%).
The study further shows that 44% of respondents currently have fully microservice-based applications, 44% are transitioning to microservices, 10% are discussing the possibility, and only 2% have tried but failed. In the realm of microservices application frameworks, Spring Boot has a dominant 74% adoption rate.
When it comes to the number of microservices in developers' primary applications, 30% reported having 1-5, 24% had 5-10, 16% had 10-20, and 22% had 20 or more. The study also highlighted trends in other areas, including the predominant use of Java 8 (37%), followed by Java 11 (29%), with just 12% using Java 12 or newer.
Regarding JDK version upgrades, 62% of those with existing plans aim to adopt JDK 17 within the next 12 months. The leading factors determining upgrade decisions are Long-Term Support (LTS) (25%), security (23%), performance (20%), new features (18%), and compliance (14%).
Among JRE/JDK distributions, Oracle Java (36%) is the top choice, followed by Generic OpenJDK (27%) and AdoptOpenJDK/Adoptium (16%). For build tools, Maven (68%) holds the top spot, with Gradle (23%) and Ant (6%) lagging behind. In terms of integrated development environments (IDEs), IntelliJ (48%) is the preferred choice, followed by Eclipse (24%) and Visual Studio Code (18%).
CI/CD and microservices remain critical trends in the software development domain, and companies like AppMaster.io are stepping up as powerful no-code and low-code platforms to easily create web and mobile applications. AppMaster offers innovative capabilities like rapid application development, API management, and a scalable, cost-effective approach to software development that empowers developers by eliminating technical debt and reducing wasted time.