OpenJDK GB Minutes: 2007/7/17
Mark Reinhold
mr at sun.com
Thu Oct 4 12:06:20 PDT 2007
Attached please find the minutes of the second meeting of the Governance
Board. The minutes are also available on the web:
http://openjdk.java.net/groups/gb/2007-07-17.html
To answer an obvious question: These meetings were held way back in July;
why are the minutes only being published today? Summer vacations, busy
schedules, and a series of unforeseeable non-work calamities conspired to
induce this delay. As Chair of the GB I will endeavor to produce minutes
in a more timely fashion going forward.
Respectfully submitted,
- Mark
-------------- next part --------------
OpenJDK Governance Board Minutes: 2007/7/17
Mark Reinhold <mr at sun.com>
The second meeting of the OpenJDK Governance Board took place via conference
call on Tuesday, 17 July 2007 at 16:00 UTC, with the following agenda:
1 Timeline for work
2 Definition of quorum
3 Constitutional principles (cont'd)
4 Conclusion and administrivia
5 Summary of principles
All GB members were present: Doug Lea, Fabiane Nardon, Dalibor Topic, Simon
Phipps, and Mark Reinhold.
The intent of these minutes is to capture the conversational flow of the GB's
discussion and also to record agreed-upon resolutions. If you are interested
only in the latter then search for the word "AGREED" throughout the text.
1 Timeline for work
Mark opened this topic by observing that, according to the OpenJDK Charter,
the Interim Governance Board will dissolve on 8 May 2008, one year after it
was created. This duration was intentionally written into the Charter so as
to motivate the GB to complete its constitutional work in a timely fashion.
The work could, theoretically, go on for longer than a year, but in order to
get the Community fully up and running it'd be far better to finish sooner
rather than later.
Mark then suggested that the GB aim to have a draft Constitution by February
or March of 2008, with a ratification election shortly thereafter, so that
there's a good chance that the work can be finished before the GB dissolves.
Simon proposed the more aggressive goal of having a draft document ready in
December, saying that ratification is a very tricky problem, and we'll need
plenty of time to discuss it and define the process. Dalibor agreed, and
said that November would be even better so that there would be six months for
the discussion and the process.
Simon elaborated on the OpenSolaris experience, in which that GB didn't
publicly define and discuss the constitutional ratification process until
after their Constitution was written. The initial OpenSolaris GB, like the
initial OpenJDK GB, was appointed rather than elected. It had intended that
the first elected OpenSolaris GB should review the Constitution and, if any
mistakes were found, correct them and then re-ratify the resulting revised
Constitution. This intention was, however, not widely communicated, and as a
result the ratification process was highly contentious because many people
thought the initial Constitution was defective.
Simon went on to say that, in terms of bootstrapping, the thinking in the
OpenSolaris GB was that it first had to define freestanding rules by which
the constitution could be changed, decree that they were in force, and then
run the ratification process according to those rules.
Reflecting on these experiences, Simon suggested that one of the first
deliverables for this GB should be an initial definition of the ratification
process. That would allow plenty of time for open discussion and revision,
so that by the time the ratification process actually begins it will be
widely understood and trusted.
Simon then proposed a high-level timeline, which after some discussion
became:
October 2007: Draft of ratification process
December 2007: Draft of entire Constitution
January-March 2008: Discussion period
April 2008: Ratification vote
It was then unanimously
AGREED: To adopt the above timeline for the work of this GB.
2 Definition of quorum
Mark stated that he'd prefer not to run these GB meetings using formal rules
of order, but even so we should agree upon the definition of a quorum. An
easy answer would be to say that everyone must be present, but that could
lead to intractable scheduling problems as we move from the summer vacation
season into the busier parts of the year.
Doug suggested that all-but-one might be a suitable compromise. Fabiane
agreed. Dalibor agreed and proposed further distinguishing between
decision-making meetings and brainstorming sessions, saying that all-but-one
should be required for decision making but any number would be suitable for
brainstorming.
Simon argued against this proposal. His view, based on past experience, is
that when the total number of members is small then a formal vote should
require that all members be present, though discussions need only require
three.
Mark observed that, although GB members are always free to speak with one
another, if a brainstorming meeting is held then it should still be taken at
least somewhat seriously, and in particular minutes should be generated even
if no decisions are made.
Dalibor suggested raising the discussion quorum back to four, on the basis
that two members absent is nearly half the membership of this small group,
and that it's easier to keep everyone in sync if most members are present for
on-the-record discussions.
The GB then unanimously
AGREED: Formal votes shall require all members to be present.
AGREED: On-the-record discussions shall require at least four
members to be present.
3 Constitutional principles (cont'd)
The constitutional principles discussion then resumed, with Mark proposing
P8: The number of roles in the Community should be minimized.
Mark observed that some open-source communities tend to create lots of
structure with lots of different roles, usually with little tangible benefit.
The OpenJDK Constitution should define as few roles as possible, and not
allow new roles to be created gratuitously. There was general agreement on
this point.
Mark then proposed his final principle:
P9: Decisions at all levels should be made by informal consensus,
calling votes only when absolutely necessary.
Mark elaborated that this principle should apply not only to the GB but to
all other bodies in the Community that need to make decisions. He said that
his proposal of this principle was driven partly by his perception of the
decision-making practices of some other open-source communities, and in
particular those of the Apache Software Foundation, to be overly formal and
not all that conducive to constructive collaboration.
Simon argued that Mark's perception was incorrect, saying that in fact the
Apache model works quite well because, although it is precisely defined, it's
treated as lazy consensus most of the time and, further, casting a negative
(-1) vote is not seen as a blocking move but rather as volunteering to solve
a problem that you've identified. In actual use the Apache system is very
relaxed and lightweight and, in Simon's opinion, about as close as possible
to facilitating casual consensus while still having the rigor required to
resolve difficult disputes. He explained that this was consistent with Roy
Fielding's view, expressed to the OpenSolaris GB, that the role of the
constitution is to act as the boundary to acceptable behavior; most people
operate far away from the boundary, but if you don't define the boundary then
when boundary conditions occur you're left with no guidance.
Simon went on to say that it's important that we not simply to adopt the
voting rules of Apache, or indeed those of any other existing community, for
use in OpenJDK, precisely because of this common kind of misperception. It's
difficult to understand how a community's decision-making rules work unless
you've been part of that community, so the OpenJDK Community should develop
and evolve its own set of rules, in accordance with its own needs and style.
Mark replied that he was happy to have his perception of the Apache model
corrected, and that he agreed that what Simon had said made sense.
In turn Simon replied that he actually agrees with this proposed principle,
it's just that it's important to recognize the need to have some rigor behind
the notion of "informal consensus" so that when it fails there is something
upon which to fall back.
At this point Doug asked for clarification as to what kinds of decisions this
principle is meant to apply. Mark replied that it should be universally
applicable, from low-level things like code reviews, to feature and release
decisions, and on up to higher-level community-governance sorts of decisions
such as recognizing new community members, creating new groups and projects,
electing GB members, and ratifying and revising the Constitution.
Simon gave the example of a recent vote in the Apache Harmony project which
used the second-most relaxed style of that community's four voting styles to
come to a decision on building a regression-testing framework. A vote on a
more serious issue in Apache, e.g., modifying the constitution, would use a
more rigorous voting style that requires a longer review period and restricts
whose votes are actually counted. In an Apache discussion anyone who wants
to can vote, and even though only some votes count it's unusual for a vote to
complete without all of the negative votes having been discussed, regardless
of who cast them. Every kind of decision in the Apache community is made
using one of their four voting styles, each of which has a different level of
rigor and places different responsibilities upon voters.
It was generally AGREED that this principle should be adopted, revised
thusly:
P9: Decisions at all levels should be made by informal consensus
whenever possible, but there should also be rigorous voting
rules upon which to fall back when informal consensus fails.
The discussion then turned to Fabiane's proposals, the first of which was
P10: Leaders of Community groups should participate in
Community-wide decisions.
Mark noted that this principle seems to imply that community-wide decisions
would be made not by everyone in the community who has a vote but rather just
by the leaders of the community's groups. Fabiane indicated that having
everyone vote could lead to problems of scale in a large community, and that
it made sense to her to have group leaders with some sort of privileged vote.
In reply Mark observed that identifying the leader, or leaders, of a group
can actually be a bit of a problem. The social dynamic within the Sun JDK
team is that there's not a well-defined leader for every group, and in fact
there are some groups whose social nature is such that if you tried to
identify a leader then their members would get very upset.
Doug agreed that trying to identify people as leaders does invite social
friction, and it'd be nice to avoid that, but somebody has to be in charge of
some things.
Mark agreed, and explained further that this is why the interim rules for
Groups and Projects use the concept of a Moderator rather than that of a
leader. A Moderator is more of a contact point and coordinator rather than
someone with some extra kind of decision authority that goes beyond those of
the members of the group.
Dalibor asked Fabiane how this works in the java.net Tools Community, which
she herself co-leads. Fabiane replied that in java.net each community has a
leader, or set of leaders. When a java.net-wide decision needs to be made,
e.g., on whether to approve the creation of a new community, the community
leaders are the ones who vote. Each community has its own rules on how to
select its leaders. People don't fight to be community leaders; usually it's
a matter of finding someone who will accept the position.
Mark suggested that this issue be tabled for now, suspecting that whether or
not we need strong group leaders with special voting privileges will become
clearer over time as we develop a better sense of the sorts of community-wide
decisions that will be made.
Fabiane agreed to this. Doug noted that probably the best thing we can do is
arrange things so that natural group leaders, or moderators, can emerge on
their own and have the freedom of action they need in order to be effective.
OPEN ISSUE: Should the Constitution grant special powers to identified
leaders of community groups? Should community-wide decisions
be made by group leaders rather than by all participants
with appropriate voting rights?
Fabiane's next suggestion was that the Constitution will have to define
processes for creating and dissolving groups, projects, and other kinds of
Community entities. It was agreed that this will be necessary.
Fabiane's third suggestion had been discussed and agreed earlier, as P3.
Fabiane's next proposed principle was
P11: Participation in the Community shall be free of charge.
She said that she thinks this idea is pretty obvious yet important to make
clear, since some communities that she's worked in do require payment for
participation. Everyone agreed to this principle.
Fabiane's final principle was:
P12: All decision-making processes and discussions should be
as transparent as possible.
She clarified that she didn't mean to suggest that the entire community
should be involved in every decision, but rather that it must be possible for
everyone to see what decisions are being made at every level, and why, and be
able to voice their opinions in order to try to influence them even if they
don't themselves have a vote. This principle was readily agreed to, given
that it echoed the resolutions adopted earlier with regard to the working
style of the GB itself.
This concluded the GB's two-part discussion of constitutional principles.
4 Conclusion and administrivia
To move forward, Mark suggested that a useful way to start thinking about the
Constitution as a document would be to list all of the concepts that we think
we need to define and then start drafting definitions so that we can consider
the relationships between them. This can largely be done in e-mail, with GB
meetings called only as needed.
After additional discussion, and confirmation in e-mail, it was
AGREED: The GB members shall hold one hour open, at 0800 Pacific time
every Thursday, for a potential GB conference call. Any member
may call an actual meeting during this hour by giving two days'
notice to the membership. If no such notice is given then no
meeting will be held.
At this point the GB adjourned.
5 Summary of principles
In its first two meetings the GB membership AGREED to the following initial,
though non-exhaustive, set of constitutional principles:
P1: The Governance Board is a legislative and judiciary body;
it is not an executive.
P2: Community participants are individuals, not corporations.
P3: The investments made by the employers of Community
participants should be acknowledged publicly.
P4: Community privileges are granted on the basis of proven
merit, as judged by peers; they are not granted on the
basis of one's employer.
P5: One need not have proven merit in order to start
participating in the Community.
P6: Community privileges do not last forever.
P7: Community governance is distinct from project governance.
P8: The number of roles in the Community should be minimized.
P9: Decisions at all levels should be made by informal consensus
whenever possible, but there should also be rigorous voting
rules upon which to fall back when informal consensus fails.
P11: Participation in the Community shall be free of charge.
P12: All decision-making processes and discussions should be
as transparent as possible.
[end]
More information about the gb-discuss
mailing list