Use of JCP site is subject to the
JCP Terms of Use and the
Oracle Privacy Policy
|
Spec Lead Guide Operating a Consensus-Driven Small Expert Group: JSR 80 Case Study
Specification lead Boyd Dimmock guided the development of JSR 80 with an expert group of ten corporate and individual members from around the world. With a simple email, web site, and telephone infrastructure, she led by consensus, employing polling techniques, a professional tone, and an even-handed manner to see her team through the challenges inherent to the task. At IBM in Raleigh, NC, senior technical staff member, Boyd Dimmock,
saw the handwriting on the wall: Universal
Serial Bus (USB) rules. Or it will pretty soon. Already every laptop
now shipping includes a USB port to enable hot plug-ins of external
disk drives, speakers, joysticks, entertainment systems, security
cameras, and so forth. While the serial port has a Java extension,
there was none for the up-and-coming USB until Dimmock got the ball
rolling as JSR 80 specification lead.
"We thought that going into the future there would be great business
need for at least having the level of functionality for USB port that
already exists for serial," says Dimmock. "There are a variety of real
needs in the industry to use USB, but the Java (TM) programming language
currently can't get you there." IBM, for example, has a point-of-sale
(POS) cash register with USB ports, so the company's business
motivation was strong to enable business partners to develop applications
that could use USB-connected peripherals to enhance their solutions.
About a year ago, Dimmock proposed JSR 80. Its goal was to create a
Java interface to USB devices. The interface would allow programmers
to write a device service in the Java language and make it portable
across platforms. With such a service, USB device attachments could
be integrated into the business logic of the solution.
Recruiting Experts
Dimmock recruited participants for the JSR 80 expert group from a
variety of sources. In addition to posting the JSR on the Java Community
Processs (SM) Program (JCP) web
site (jcp.org), she had a notice sent of the proposed work to a USB users
group
(www.usb.org) and to some of the retail industry standards groups
who had significant interest in USB. The expert group
remained open for an extended period of several months, during which
people applied to join by submitting their credentials.
Dimmock knew what kind of expertise was required for the team to
succeed. She explains, "We were looking for people who were already
designing for the Universal Serial Bus. We thought that between Sun and
IBM,
we would bring enough knowledge of Java technology to the table. So
we were looking for people who understood the technology that we were
interested in, and typically these were people who were doing USB
work in some other language."
Dimmock acknowledged everyone who applied, and she accepted nearly anyone
who professed some knowledge of USB. After
being accepted, however, some were never heard from again; after
several months, Dimmock removed their names from the roster.
Ultimately, the JSR 80 expert group included four participants from
Sun Microsystems, three from IBM, and one each from Fujitsu Limited,
Wincor-Nixdorf, and Apple Computer. In addition, five individuals
served on the expert group.
Timeline The original JSR 80 schedule called for release of the community
draft in November, 2000, but the expert group missed that date by six
months. Why? "Well, we had several unexpected technical issues to
arise, and I think we took the high road in working to pursue an
excellent design to resolve them," Dimmock explains. "It was also
true that none of the expert group members were truly full-time on
this effort, and they were managing other commitments concurrent with
the JSR 80 work. The USB architecture is complex, and the API is
certainly nontrivial."
In addition, the original dates were put in place without a great
deal of project management rigor. "We were optimistic, and I guess I
felt that missing an aggressive target was as good as making a padded
conservative date. We had a conference call on March 22 that was
pivotal in our agreement that the version of the spec that we had was
adequate for an initial release of the API," says Dimmock. She adds,
"Of course, some compromises had to be made, since we are still
thinking of ways to make the API better. Some things will need to
wait for a second release. I would also say that the quality of the
community draft, which we heavily invested in, brought the public
specification out sooner."
Overall, the timeline for Dimmock's group was actually:
Dimmock launched the expert group with a face-to-face meeting held at
her home location, but she was disappointed in the low turnout. "Other
than the IBMers who already worked in Raleigh, we just had two
other participants. We realized that people did not have
the travel funds and travel time to invest," says Dimmock. From
then on, the group relied on email and conference calls as their
primary means of communication.
Conference call meetings were more successful in terms of turnout. A
week in advance, all the experts were invited to participate by
dialing in at a specific time. Calls were typically held when Dimmock
felt there were key decisions to make, and she wanted to give
participants an opportunity for voice debate in order to build
consensus.
Email was an essential forum for communication. The alias mailing
list that the JCP set up enabled group-wide conversation about
specific technical issues. "A lot of mornings I would come in, and
there would be ten notes in the reader," Dimmock recalls. One topic,
for example, was the great debate about how to make the Java API
generic enough to communicate with anyone's external hardware. That
discussion lead to the next thread on how to test successful
communication with anyone's hardware. Through the email discussions,
group members identified some appropriate boards to use for testing.
Email is not necessarily the best means of communication, however.
When people feel strongly about a topic, emotions can heat up their
messages. In addition, frustration levels may rise when a person
deals with someone who is not known personally, who is time zones
away, and who represents another culture. To counteract these
tendencies, Dimmock modeled a professional tone in her own
communication and expected the same of her colleagues. "We worked
very hard at keeping the communications professional on the alias. In
fact, we had some discussions along the way," Dimmock understates.
She adds that it's just not helpful to technical discussion to imply
'I'm smarter than you are' with ego-centric remarks.
Dimmock's professional ethic also requires that she treat group
members even-handedly and openly. Especially in an inter-industry
work team, Dimmock believes that "you have to acknowledge the other
party's right to speak and demand that everyone listens." It's easy
to pick favorites, she says, but that's a recipe for disaster as it
breeds hostility among members. Dimmock deliberately avoided the
hub-and-spokes method of communication, where individuals talk only
to the leader. "I try to direct my communications to the alias more
so than to individuals, so that everyone at least sees what the
discussions are and has an opportunity to influence what's going on,"
she says.
For the benefit of those lurking without comment in the group,
Dimmock would occasionally poll the experts, usually during a
conference call. If it had been a while since a given company
had spoken up, Dimmock might ask, "Are you still interested in this
JSR? What position would you take on [a particular point]?" It's to
be expected that a few experts participated consistently, with the
majority contributing more sporadically. When lurkers would join a
conference call and respond to a direct question, Dimmock took it as
an encouraging sign that they'd been more or less monitoring group
discussions and hadn't commented because they were content with the
decisions being made.
Occasionally communications would grind to a heated deadlock. To get
things moving again, Dimmock would warn, "We are never going to get
done if you guys can't come to some agreement on this point." Then
she would pick a side, not necessarily reflecting her own technical
preference. Ultimately, the group always reached consensus, even when
it meant someone had to give in. The closest Dimmock ever came to
declaring, "I'm the spec lead and this is how it's going to be!" was
with her own IBM guys when they were reluctant to follow the group's
decision.
Historical Perspective
As a project winds through its various debates, decisions, and
deadlines, it becomes increasingly useful to refer back to a formal
history. Dimmock sighs, "We didn't set up -- and I somewhat regret
this -- a mechanism where all emails were traced, some forum where
we kept a historical perspective." She assumes most participants
created their own records, but there is no formal repository of
threaded email discussions or of the conference call minutes that
were emailed to the alias from the early discussions.
The need for a complete history became more apparent to Dimmock when,
very late in the process, one corporation withdrew an employee from
the expert group and inserted a new person in his stead. The new
member will read the spec, of course, but there's no formal history
of the project for him to research why decisions were made and who
participated in them. In such a situation, it will be hard for the
newcomer to catch up with the team.
Dimmock Dispenses Advice
Spec leads, keep the communication channels wide open and avoid
picking favorites.
Dimmock is no lone ranger. As spec lead, she wrote not one line of
code. "My participation has been at a higher,
what-are-we-trying-to-do-here level," she says. Strong technical
participants at IBM and Sun provided the deep, multiple skills needed
to hammer out the API. Much of the test board work was done by a
knowledgeable Swede who could explain to his colleagues how testing
was done. "The primary author of the API is Michael
Maximilien of IBM, and he deserves a lot of credit for our progress."
The JCP PMO helped out, too, by working through the expert group's
need for dual web sites. "We have set up a web site where we are
going to release the Java code under an open source license," says
Dimmock. Several URLs link the standard JSR 80 web site
http://jcp.org/ja/jsr/detail?id=80 with the open source web site
http://oss.software.ibm.com/developerworks/projects/javaxusb.
While the standard web site is fairly static (primarily tracking
the status of the JCP process), the technical news, information,
architectural documents, specifications, and such will flow from
the latter web site.
Dimmock admits that the JCP's well-defined timeline has been "a
driving force" to get the JSR out. "Certainly I think the spec is
better for having had multiple companies participate in it than it
would have generated by only one. Questions are asked early in the
development that maybe we might have missed with just a single
implementation group. The inter-company open participation in the
design makes for a better spec," she says. |