Java industry review 2012

This is a pretty interesting survey of the Java industry in 2012 from over 1100 respondents, undertaken by Zeroturnaround, well known for giving us JRebel.

You need to signup to read it, though I’ve posted a summary below1.

Key stats

  • Eclipse, Maven and Subversion are the de facto standard in the Java world, used by over 2/3 of respondents.
  • Jenkins, Tomcat Spring, Hibernate used by 1.2 of respondents, also de facto standard kit.
  • Java 6 adopted by over 88% of respondents.
  • Java 7 at 23% uptake.
  • Java 1.4 dropped to 6%. Almost phased out.
  • Groovy is pretty popular as a Java based scripting language.
  • 67% of developers use Maven, 48% use Ant.
  • 59% of developers use Tomcat.
  • Web frameworks are pretty widespread, Spring MVC the winner at 30%. JSF just behind it, my favourite Wicket at 7%, along with quite a few others.
  • App frameworks have Hibernate and Spring at 50% each. A few other frameworks with minor market share.
  • JPA most popular standard for Java EE, EJB 3.0 at  23%, OSGi at 8%.
  • Jenkins has 49% of the share for continuous integration servers
  • Code quality tools have PMD, check style and find bugs around the 20-30% mark each.
  • Subversion used by 66% of developers, Git climbs to 33%.

How do developers spend their time?

  • Finding #1: Devs spend less time writing code than you might think. The median is 15 hours, programmers spend about 3 hours each work day writing code.
  • Finding #2: Devs spend more time on non-development activities than you might think. For each coding hour, devs spend nearly 30min in meetings, reporting, writing emails and dealing with timesheets (7 hours to 15 hours).
  • Finding #3: Devs spend more time fighting fires than building solutions.

Developer efficiency

“What aspects of developer life makes you more/less efficient?”

  • Too much multi-tasking – 53%
  • Boring tasks? – 39%
  • Bad management – 30%
  • Buggy software – 26%
  • Lack of motivation – 26%

“The majority of respondents felt that Too Much Multitasking was the primary reason for not getting work done. Over 1/3 of devs also mentioned that Boring Tasks where responsible for under-efficiency in the cubicle.

This begs the question whether or not it is better to get “boring” tasks over and finished as quickly as possible, but we all understand how feeling uninspired to attack your work with enthusiasm will lead to procrastination.

It is fair to conclude that Boring tasks, Bad management and Lack of motivation are indicative of a sizable gap in communication between management and development teams, or, more interestingly, a lack of self-management for organizing one’s time, one’s mind and one’s life.”

What keeps developers up at night?

  • Making deadlines – 25.00%
  • Application performance issues – 24.10%
  • Is my code good enough? – 23.70%
  • What new stuff do I need to learn? – 23.50%
  • Did I do X in the best way? – 22.50%
[1] If you feel that posting this summary violates your copyright, get in touch.