The Java Community Process (JCP) program applauds the community's Star Spec Leads.
These leaders earned this honor through their efficient, prompt, and transparent
communication with their Expert Group, the Program Management Office (PMO), and the
Executive Committee (EC). They used community web pages, observer aliases, and other
tools to communicate with their expert group, the JCP program community, and the public.
They kept their Java Specification Requests (JSRs) on schedule by making sure their team
stayed focused and felt appreciated. The JCP program congratulates and honors these Star
Gavin King has a bachelor of science in mathematics from Monash University in Australia. He was well on his way through a PhD program when he dropped out after three years and “accidentally found himself in the Java world.” His first professional job, in 2000, was with a Smalltalk shop. In the years since, he has been involved in Web application development, and framework design and development, as a developer, project lead, and vendor.
Gavin is currently a fellow at JBoss, a division of Red Hat Middleware LLC, where he is the architect of Hibernate, an open source Object Relational Mapping (ORM) tool for Java, and of Seam, an open source application framework for the Java Enterprise Edition (EE) platform. He has co-authored three books: Hibernate In Action (2004), Java Persistence with Hibernate (2006), and NHibernate in Action (2009).
In 2004, Gavin got involved in the Java Community Process (JCP) program when he joined the Java Specification Request JSR 220, Enterprise JavaBeans (EJB) 3.0 Expert Group in order to work on what eventually became JSR 317, Java Persistence 2.0 API (JPA). For a time, he also served on the Expert Group for JSR 314, JavaServer Faces (JSF) 2.0. He continued participating in the subsequent Expert Group for JSR 318, EJB 3.1, and he became Spec Lead of JSR 299, Contexts and Dependency Injection (CDI) for the Java EE Platform.
Navigating the Minefield
As Spec Lead of JSR 299, Gavin aimed to dramatically simplify the programming model for web-based applications written in the Java language by combining the best features of JBoss Seam, Google Guice, and the Java EE platform. This would lay the foundation for a more consistent and better integrated EE platform. JSR 299 was potentially a political minefield, but Gavin collaborated with the interested parties to accomplish the lofty goal.
Experience has taught Gavin that “a good spec isn't something that writes itself out of a whole bunch of undirected feedback from a whole lot of people who aren't paying much attention.” Moreover, he finds democracy an essentially useless mechanism for decision-making. What he relies on is “very focused attention from a smaller number of people who really truly understand the problem.” We all know it’s impossible to make everyone completely happy, and in order to accomplish the greatest good Gavin is willing to lose some people along the way. “That's just something you have to accept,” he says.
For Gavin, the process boils down to working with people who are focused on the task. He taps two entirely different sets of people. One group has other EE vendors and Executive Committee (EC) members who will implement the spec in their product. The other group includes people who have proven themselves -- “a bunch of folks whose judgment I trust, who are more users of the technology than vendors: Expert Group members, some folks for the Seam community, some folks from inside JBoss, and a couple of guys who gave excellent input in response to the Early Draft Review for JSR 299.”
Gavin went to great lengths to reconcile the areas of overlap, bouncing ideas and problems off of these two groups. “I'm pretty proactive about actually hassling people with phone and IM and email,” he says. The combination of transparency and tact, along with relentless determination, makes a powerful combination. The result improved platform harmony, spun off two additional specifications (the Managed Bean specification as part of the Java EE 6 JSR and the Interceptors specification under the EJB JSR), and aligned with other technologies, including JSR 303, Bean Validation; JSR 313, Java EE 6; JSR 314, JSF 2.0; JSR 318, EJB 3.1; and JSR 330, Dependency Injection for Java.
Gavin was also aggressive in his communication with the community, posting regularly on his blogsite, where he wrote about spec design issues and described proposed solutions. He educated the public by posting tutorials and changelogs about the specification. He spoke about the specification at events such as the JavaOne conference, JBossWorld, and Java User Group (JUG) meetings as another way to gather feedback. He also interviewed with notable news sites such as InfoQ and DZone to help promote JSR 299. He even worked with the OpenWebBeans and Resin implementations to help them grasp the usefulness of the specification.
One of the JCP members who nominated Gavin as JCP Outstanding Spec Lead for 2010 said of his work with JSR 299, “He was not only able to work through disputes and objections to the evolving programming model, but he resolved them into solutions that were more technically sound and which gained support of its pundits. Each effort [to integrate the disparate technologies] required rewrites to the specification document. . . . But never did Gavin allow this work to block changes which were required to gain consensus. Instead, he diligently reworked the text, then turned it around for review as soon as possible.”
He frequently circulated drafts of the specification, both as a formal part of the JCP program’s required review cycle and also as an informal way to encourage the Expert Group and public to review the drafts and give immediate feedback. Gavin says, "I'm a big fan of Early Drafts." JSR 299 became final at the end of 2009, putting to rest the community’s concern that Java EE was not flexible enough to be extended.
Keeping the Passion
Gavin views developers as having central importance in the high tech industry. He is excited about praising the benefits of type safety and making it possible for developers to write more elegant code. Regarding his nomination as Outstanding Spec Lead and Star Spec Lead for 2010, he says, "I feel honored, but the real reward is hearing from people that they are actually enjoying using technologies like CDI, JPA, and EJB3."
At the end of the day, Gavin unwinds with motorcycling and Latin dance. He claims both Mexico and the United States to be his home.
Go to the Star Spec Lead Program page for more information.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .