Earlier this month, the Program Office of the JCP announced a new version of the Java Community Process, JCP 2.6 (JSR 215: http://www.jcp.org/en/jsr/detail?id=215). The changes were based on collective feedback of the Java community and the Program Office has made some significant alterations to make the whole process of developing Java Technology Specifications more community focused, transparent and efficient.
There has been much criticism about the previous versions of the JCP, by all representing members of the community. Individual contributors felt left out of the process and relatively .voice-less. compared to major vendors that participate in the JCP. The public at large was not allowed access to certain stages of the specification lifecycle thereby feeling that the process was not really community driven but rather the sole domain of the Specification Lead. Participating vendors felt that due to lack of controls over timelines and acceptance ballots, many JSR.s were simply taking too long to reach major milestones causing significant stalls in the evolution of Java technology. Finally a consensus was forming that though it.s called a Community Process, it.s largely driven by vendors with vested interest in the technology and not completely democratic.
In order to address the concerns of the community, JCP 2.6 took shape. Using the criticism as a starting point for the evolution of the process, it has been in development for the past year. JCP 2.6 has gone through various revisions, feedback phases and modifications to come to a perfect balance.
The goals of the new JCP were to make each JSR's work-in-progress easier to access, and offer more ways for the community and public to actively participate. According to Aaron Williams, the specification lead for the JCP 2.6 JSR, "The modifications contained in JCP 2.6 are designed to increase public participation, process transparency, specification visibility, guideline availability, and operational efficiency of the JCP itself".
A significant change in JCP 2.6 to support the goals is opening up the first draft review of a specification to the public. Prior to JCP 2.6, only a restricted set of the community had access to the first draft. This often resulted in specification leads delaying the release of the draft to the community until a majority of the issues within the specification were sorted out. JCP 2.6 encourages developers to review and provide feedback on the specification from the first draft itself. This effectively increases the community.s participation and allows specification leads to expedite the release of the first draft. It also helps build robust specifications at outset itself, by allowing specification leads to incorporate feedback early on in the process. Overall, it is envisioned that this will half the time it takes for a specification to go into review and significantly decrease the amount of time it takes for a JSR to go through the lifecycle stages.
In order to provide maximal process transparency to the JCP Executive Committee members, community, and the public each new JSR must now include a transparency plan, which outlines the tools and techniques that the Specification Lead will use during the creation and development of the specification, for communicating JSR progress at each stage. These tools and techniques may include web pages, wikis, mailing lists, weblogs, RSS feeds etc. The JCP website may also provide such tools to Specification Leads though details of such are not yet available.
Changes in the Program Office.s management process have also now made it easier than before for individuals to join JSR Expert Groups and lead them, and even become involved in the JCP's Executive Committees. This will encourage individual contributors and smaller companies to join and participate in the JCP.
The new rules also simplify the processes of the Reference Implementation (RI) and Technical Compatibility Kit (TCK) associated with a JSR, which has been a relatively sticky topic in the past. The provisions now offer specific guidelines for developing a TCK. There is also a required substantiation of the TCK's quality and sufficiency based on test results.
In a move to increase flexibility, JCP 2.6 allows JSR.s to be filed under multiple Java platform committees, J2ME (Java 2 Micro Edition), J2SE (Java 2 Standard Edition) and J2EE (Java 2 Enterprise Edition) as certain specifications cut across all Java platforms.
As of March 9th, all JSR.s under JCP 2.5 have been upgraded to use JCP 2.6.
Overall, the community has welcomed the changes to the JCP. Critics have taken a wait and watch approach to see if the changes will actually translate into a more productive and efficient standards process. In any case, this version of the JCP is the most transparent, streamlined and community focused ever.
Making the first draft specification available to the public is a call to all Java developers to take an active part in shaping the future of the Java platform. You too can be a part of history! Follow the JCP and make a difference.
Anyone, including you, can participate and contribute to the JCP. For starters, you can go the JCP website to view and provide feedback on posted JSR.s. If you would like to submit new JSR.s or collaborate in the development of existing JSR.s, you can become a member of the JCP (free for individuals, nominal fee for commercial organizations and academic institutions). If you would like to gain voting rights and actively mentor the development of JSR.s you can nominate yourself as an expert member. There is much flexibility in participation and I urge you to become an integral part of this collaborative effort.
The JCP website: http://www.jcp.org
An excellent explanation of the JCP timeline: http://www.jcp.org/en/introduction/timeline
Detailed information on how to participate: http://www.jcp.org/en/participation/overview
FAQ that answers common questions on the JCP: http://www.jcp.org/en/introduction/faq
The JCP Process Document: http://www.jcp.org/en/procedures/jcp2
JSR 215 (JCP 2.6) http://www.jcp.org/en/jsr/detail?id=215
Do you have any questions about the JCP? Do you have any suggestions for the JCP? Do you have any criticism about the JCP? Feel free to email me jcpwatch at jcpwatch.com