Differences between revisions 6 and 7
Revision 6 as of 2013-03-18 08:28:04
Size: 3270
Editor: MikeMüller
Comment: Fixed typo.
Revision 7 as of 2013-03-29 12:59:50
Size: 24003
Editor: VanL
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
= The New PSF Membership Model =

The newly proposed PSF membership model is a great idea and the
echo from the PSF members is overwhelmingly positive.

There are quite a few details. A picture may help to make these easier
to understand. This is an attempt to visualize this. Instead of using a
graphics drawing application, I generated the diagram below with a Python
program. The source is also attached.

This is by no means complete but can serve as a basis for coming up with
further details. The advantage is that all these familiar tools and
procedures such as version control, pull request and tests can be
applied.

So far there is no code in methods. It should be possible to
add algorithms and make the membership rules executable. Since code
is primarily a means of communication between humans and only in the
second place instructions for the computer, this little program
may help to better understand what we want to express.

 {{attachment:classes_membership_model.png||align="middle"}}


{{{#!highlight python

#! /usr/bin/env python3

"""The new PSF membership model in code.
= The New PSF Membership Model (v.1.1.1) =




== Organization ==

The new membership model includes a open, self-initiated membership
class that anyone can join. Within that broad membership, there would
be four (possibly overlapping) special categories of Members that include
additional privileges: Supporting Members, Sponsor Members, Managing
Members, and Fellows. Members would be able to move in and out of the
special categories as described below.

=== Basic Membership ===

Under the new membership model, anyone who wants to become a Member of
the Python Software Foundation will have the opportunity to join,
simply by signing up on the new pydotorg website and agreeing to the
CoC. The process would be similar to the process currently used for
the Openstack Foundation. By signing up, anyone will have the
opportunity to declare their part in the broader Python community and
their support of the PSF.

By making the regular membership a declaration of affiliation, we make
the PSF the natural home of anyone that wants to declare their support
for Python and be associated with the Python community. If someone
wants to just be a Member, there are no other requirements and no
other duties.

=== Special Categories of Membership ===

We have seen that there are a number of people that want to do more
for the community than just be affiliated with it. We want to give
people a number of ways in which - should they want to - they can grow
and contribute within the PSF. The special membership categories
described below are designed to allow people to voluntarily take on
responsibility--and to be recognized for their additional support for
and work within the community.

The different categories of membership also include mechanisms for
organizing the workvof the PSF so that we keep complexity down at the
organization level.

==== Organization of Special Categories ====

Speaking very broadly, there are three ways that we envision that
people would support the Python community: Creating, Coordinating, and
Funding. There are membership categories associated with each of
these ways of supporting the community. These categories of membership are
not exclusive; a person could be a member of all of them, none of them, or
any subset. Also, as a person's contributions and time commitments
change, a person could move in and out of these special categories.

There are two special membership categories for Funding: Supporting
Members and Sponsor Members.

Certain individuals that have demonstrated exemplary commitment to the
PSF and Python community may become Fellows of the Python Software
Foundation following the Fellowship procedure described below.

==== Supporting Members (Funding) ====

A Supporting Member is an individual who supports the PSF by helping fund
its operations. This is an expansion and slight reworking of the current
Associate Membership. Those who wished to contribute to the PSF
financially would have the opportunity to be Supporting Members. The
Supporting Membership would be fashioned along the NPR model in the United
States: Once or twice a year, the PSF would have a membership drive
encouraging Members to move up to being Supporting Members (at a
suggested cost of $100/year). Those that became Supporting Members
would receive an exclusive gift each year while they were supporting
members, including at minimum 1) a custom Tee-shirt each year, and 2) some
other Python-themed toy, gadget, or item. We would also work with our
business members to see if there would be special discounts that could
be made available to the Supporting Membership (discounts on books,
etc). Supporting Members could opt out of receiving the T-shirts and gifts
if they so chose.

Only natural persons would be eligible to be Supporting
Members. Supporting Membership would be active for a full year,
starting on the date of the contribution. A person could also become a
lifetime Supporting Member by paying a fee (suggested at $2000).
Supporting Members would be eligible for voting privileges as described
below.

==== Sponsor Members (Funding) ====

A Sponsor Member is an organizational member of the PSF. A Sponsor
Member could join at one of a number of different levels, with the
price at different levels set by the Board (initially suggested at
$3K, $6K, $12K, and $25K). Each level would provide a number of
benefits - such as 1) a number of designated Sponsor Delegate members
in the PSF, 2) preferential placement of jobs on the Python jobs board,
and 3) discounts to PSF-sponsored and PSF-run events. Other benefits
could be proposed by special working groups and ratified by vote.

Only organizations would be eligible to be Sponsor Members. Sponsor
Membership would be active for a full year. The designated Sponsor
Delegates would be eligible for voting rights as described below.

==== Managing Members (Coordinating) ====

A Managing Member is an individual who supports the PSF by spending
time coordinating, teaching, and serving others. This could be time
spent helping run conferences, running a user group, managing
infrastructure, or performing some other work on behalf of the PSF. To
become a Managing Member, a Member of the PSF would need to declare
their intention to be a Managing Member and sign up for one or more
working groups within the PSF. A working group would focus on some
specific aspect of the PSF's infrastructure or community. Managing
Members would be expected to put in 5-10 hours a month working in
their working group to maintain their Managing Member status.

Ever year, each Managing Member would be asked to list the working
groups they are involved in and to affirm that they have been putting
in the time with their groups as agreed. This periodic recertification
would have two purposes. First, it would gently remind those who had
signed up as Managing Members that they had accepted responsibilities
to go along with their privileges. Second, it would help the PSF keep
an up-to-date list of which members would be available to help, and in
what capacities. For example, there would be no more guessing about
who might be available to help with website updates. Those who chose
not to recertify their participation would move out of Managing Member
status.

On a limited basis, participation in other community-focused groups
(for example, the Plone Foundation or NumFOCUS) may make a person
eligible for Managing Member status. For PSF-internal administrative
reasons, an interested member within the PSF would still need to submit
a pro-forma charter to get the work recognized within the PSF.

Managing Members would receive some sort of recognition each year and
would be eligible for voting privileges. Managing Members would be
eligible to become Fellows.

More information about the working groups is located below.

==== Contributing Members (Creating) ====

Contributing Members are those who support the Python community with
contributions of code, tests, documentation, design, or other results
of creative effort. There are many people out there that contribute
code, or docs, or tests. In order to become a Contributing Member, a
person would need to announce what open source project(s) they were
working on and commit to spend 5-10 hours a month working on them.

The self-certification for Contributing Members would serve the same
purposes as for Managing Members. It would remind those who had signed
up to be Contributing Members that they had made a commitment to
publicly contribute to the community. Second, it would help the
community know who was working on which projects.

The requirement that Contributing Members be working on open source
projects comes directly from the community-oriented nature of the
PSF. Proprietary code can be useful for many things, but it is not
available to the community and therefore isn't a contribution.

Contributing Members are eligible to vote and are eligible to become
Fellows.

==== Fellows ====

A Fellow is the highest level of PSF membership and confers privileges
for life. It should be granted on those who have consistently served
the PSF and Python Community over a substantial period of time and
have made notable contributions.

To preserve the merit-based nature of becoming a Fellow, the procedure
for becoming a Fellow would mirror the current mechanism for becoming
a PSF member: a person would need to be nominated by an existing
Fellow, and then confirmed by a secret supermajority vote following
the nomination and voting procedure described below.

For Fellows, the criteria would be as follows:
Line 32: Line 179:

import abc


class Member(metaclass=abc.ABCMeta):
    """A member of the PSF. An abstract concept.
    """


class IndividualMember(Member):
    """A personal member.

    Anyone how would to be associated with the PSF can sign up.
    """
    order_of_magnitude_range = 1e4, 1e5


class InstitutionalMember(Member, metaclass=abc.ABCMeta):
    """An institutional member of the PSF. An abstract concept.
    """

    def vote(self):
        """Elect board members.
        """


class SponsorMember(InstitutionalMember):
    """Organization that pays to be a member.

    These can be companies or other institutions.
    """
    order_of_magnitude_range = 1e1, 1e3


class OrganizationMember(InstitutionalMember):
    """National organizations that are somewhat equivalent to
    the PSF, but operate in other countries.

    These organizations should have or work comparable to having a non-profit
    status.
    """
    order_of_magnitude_range = 1e1, 1e2


class VotingMember(IndividualMember, metaclass=abc.ABCMeta):
    """An individual member with voting rights.
    """

    def vote(self):
        """Elect board members.
        """


class SupportingMember(VotingMember):
    """A member who gives money.
    """
    order_of_magnitude_range = 1e1, 1e3


class ManagingMember(VotingMember):
    """A member who gives time.
    """
    order_of_magnitude_range = 1e1, 1e2


class ContributingMember(VotingMember):
    """A member who gives code, documentation etc.
    """
    order_of_magnitude_range = 1e1, 1e2


class Fellow(ManagingMember, ContributingMember):
    # No sequence of parents intended but need to specify one.
    """Elected from among the members.
    """
    order_of_magnitude_range = 1e1, 1e2


class BoardMember(Fellow):
    # No sequence of parents intended but need to specify one.
    """Elected from among the fellows.
    """
    order_of_magnitude_range = 1e0, 1e1


class WorkingGroup:
    """A working group.
    """
    """
}}}
For those who have served the Python community by creating and/or
maintaining various creative contributions, the following statement
should be true:

"[Nominated Person] has served the Python community by making
available code, tests, documentation, or design, either in a Python
implementation or in a Python ecosystem project, that 1) shows
technical excellence, 2) is an example of software engineering
principles and best practices, and 3) has achieved widespread usage or
acclaim."

For those who have served the Python community by coordinating,
organizing, teaching, writing, and evangelizing, the following
statement should be true:

"[Nominated Person] has served the Python community through
extraordinary efforts in organizing Python events, publicly promoting
Python, and teaching and coordinating others. [Nominated Person]'s
efforts have shown leadership and resulted in long-lasting and
substantial gains in the number and quality of Python users, and have
been widely recognized as being above and beyond normal volunteering."

[Nominated Person] is an example of what we aspire to be in the Python
community.
"""

Although the Fellowship is designed to be a rare award, it is expected
that core contributors to Python and other widespread Python
implementations would meet the "creating" criterion. The principal
contributors to many Python ecosystem projects would as
well. Similarly, it is expected that the key organizers of large
conferences, authors of multiple successful books, and leaders in
community outreach efforts would meet the second "coordinating"
criterion.

Fellows would be eligible for voting privileges. Fellows would be
selected following the nomination and voting procedure described
below, with existing Fellows participating in the vote. If there is a
concern about regional or community representation in the Fellowship,
the eligibility of voting for Fellows may be selectively extended to
longtime Managing Members as recommended by a specially chartered
working group.


== Mechanics ==

There are a number of structures and practices that would need to be
put in place to realize the new membership model.

=== Implementation schedule ===

The current ballot (March 2013) would include the following statement
for approval/disapproval by the membership:

"""
The new Board of Directors is directed to implement the necessary
bylaw changes to change the membership model as described in the new
membership model, version 1.1.1, as documented on the private PSF
Wiki at [[http://wiki.python.org/psf/NewMembershipModel|http://wiki.python.org/psf/NewMembershipModel]].
"""

The target for completion of all necessary changes would be three
months, so that the new open membership would be available and open
for new members starting at Europython (July 1-7, 2013).

=== Voting privileges ===

The most important new practice under the new membership model would
have to do with voting privileges - who could vote and what they would
vote for.

Under the new model, voting (in any capacity) would be an obligation,
not a right. Voting privileges would be reserved for those who had
demonstrated some sort of commitment to the foundation - either by
contributing time, money, or code. Voting privileges would also not be
perpetual - members (of any class) could move in and out of voting
status.

Voting privileges would be orthogonal to membership categories.

Every year, the PSF would send a message to all voting-eligible
members. Those who would like to vote would need to respond
affirmatively. (For those in the United States, voting eligibility
would work like open enrollment for health care.)

Voting-eligible members who responded would vote on the following:

 * Composition of the Board of Directors
 * Admission of new Sponsor Members to the PSF
 * Matters of overall PSF policy recommended for ratification by the Board
 * PSF governance issues
 * Chartering of working groups
 * Any other matters designated for membership vote by the Board
 * Sponsor Member benefits proposed by working groups

Votes would be held on a rolling basis over the Internet. All voting
privileges would be extended on a "use it or lose it" basis - missing
two votes during a year would end voting privileges until the next
eligibility period.

The PSF's goal would be to encourage every member to be voting
eligible and to exercise that vote, but we understand that many
members would prefer just to be affiliated or to not worry about
governance issues. This would allow any interested and committed
member to vote, but would not obligate those who chose not to be
involved in that way.

A person that is eligible to vote for more than one reason (being both
a Supporting Member and a Contributing Member, for example) would
still have only one vote.

The one exception is that the eligibility for voting as a Sponsor
Delegate is separate from any voting rights that accrue to an
individual. Thus, a natural person participating in the voting
procedure could be eligible to vote both as an individual (if
appropriate) ''and'' as a Sponsor Delegate.

Sponsor Delegates that fail to declare their intention to vote or
who fail to vote would not have voting privileges until the next
eligibility period, just like individual members.

=== Fellowship Nomination and Voting Procedure ===

The PSF Fellowship would work according to a set procedure to
make the process as free from politicking and bias as possible.

All nominations would be made via a web form. The identity of the
nominator would be secret, and including identifying information in a
nomination would invalidate the nomination. Nominees would not be
notified that they had been nominated, and only Members could be
nominated. Notification is not required since membership (which will
be easy for any interested person to obtain) indicates interest.

The web form would ask for the name of the nominated person, would
include a brief prose description of the contributions of the person,
and would include spaces for as many URLs as necessary to demonstrate
the suitability of the person for the proposed award. There would be
no discussion of the nominees. Instead, each voting Member would individually
focus on the criteria for the award.

The vote would be by secret ballot. To pass, the vote would require a
supermajority (at least 2/3, adjustable to 3/4 by the Board) of those
participating in the vote to agree with the applicable criterion.

=== Nominations to the Board ===

A Board Member could be self-nominated or nominated by another
person. The only requirement for nomination would be that the person
was at least a Member of the foundation. Any person serving as a Board
Member would automatically meet the qualifications to be a Managing
Member of the PSF.

=== Working Groups ===

In order to be a Managing Member, a person would need to participate
in one or more working groups as described above. Initially, the
working groups would correspond to existing functions and committees
already identified by the PSF - the Board, the Infrastructure
Committee, PyCon-Organizers, etc. Additional new working groups could
be proposed by any Member. The scope of each working group would be
defined by a charter, which would include 1) the purpose of the group;
2) the length of time the group would be active; 3) the end goal or
product of the group; 4) the methods of communication that the group
would use; and 5) any sort of internal governance statement.

The procedure for creating a working group would be as follows:
 * One or more people would identify a need and propose a working group charter
 * The working group charter would be proposed to the voting-eligible Members, who would approve the charter (or not) to create an official working group
 * If needed, a budget allowance would be provided to the new working group by the Board.

Each year, the working groups would be evaluated by the
voting-eligible Members (with possible assistance from the Board). The
working groups would either be recertified or would be dissolved for
lack of interest, Members, etc.

PSF Members that were contributing to other user groups (AfPy,
BayPiggies) could have their efforts with their existing local groups
certified as a working group. One special working group would be the
technical advisory committee, which would provide guidance for the PSF
on any technical matters.

=== Transition ===

Every current Nominated Member of the PSF would have the opportunity
to be recognized as a Fellow without following the balloting
procedure. Individual Members would have the opportunity to decline if
they didn't feel it was appropriate based on the criteria for Fellow
described above. Current Associate Members would automatically become
Supporting Members under the new membership model.

Emeritus Members would become regular members, unless the membership
is refused.

Efforts would be made to make existing user groups and other informal
organizations working groups under the new model. Legally-recognized
entities that are Python-focused would be invited to become PSF affiliates
or have their activities recognized under the working group model as
described above.

Q&A:
-------

'''Q: Why are we doing this?'''

'''A:''' There are many reasons. The most important reason is that we have
moved away from a clear conception of what it means to be a member of
the PSF. I hope that through the reformulation of the membership, we
will be able to give a clear conception and purpose for the PSF that
will take us through the next twenty years of Python.

That is not the only reason, though. There are other benefits to the
new membership model.

One clear benefit is that this new model will help us protect Python's
intellectual property better. In the recent trademark dispute, one of
the key pieces of evidence was whether the PSF had members in the
various EU countries. It was a mark against us that we did not have
members in every EU country - and even when we had members, we had ten
or twenty members, not thousands.

This is in clear contrast to the widespread support that came to us
from Pythonistas in every EU country. If all those Pythonistas had
been part of the PSF already, we could have pointed to our widespread
membership as evidence of the PSF's stewardship and representation of
Python.

Another benefit is that we remove the arguments about who should and
should not be a Member of of the PSF. Under the new model, the PSF
welcomes anyone who wants to be affiliated with Python. We expand our
membership to truly represent the broader Python community.

A third benefit is that the new membership model allows for both
growth and change in the Python membership. A person can become a
Member, have voting privileges for a time, then become a Supporting
Member, and go back to basic membership anytime they want. We don't
kick people out and make them "emeritus" members. They are still
members of the Python community. There are just members who are taking
an active (or passive) role in the community at the moment.

'''Q: Isn't a "Supporting Member" just the same as the current Associate
Membership program?'''

'''A:''' The primary difference between Supporting Members and the existing
Associate Membership is the explicit plan for giving back some benefit
to these Supporting Members. Right now there is not much difference
between simply donating to the PSF and becoming an Associate
Member. This plan would make the benefit clear.

Supporting Members would also be eligible for voting privileges, where
current associate members are not.

'''Q: What happens to regional or national organizations, like the German
Python organization?'''

'''A:''' As described in the transition plan there would be three outcomes.
Legally organized entities that are purely Python-focused would be invited
to become affiliates of the PSF and represent the PSF in that particular country
or locale.

Legally-organized entities that are not purely Python-focused could choose
to adjust their focus and become PSF affiliates, or could have interested
members submit charters for recognition of the other-entity efforts as
working groups, or could do nothing at all.

Informally-organized entities would become working groups.

The PSF would would seek to keep existing institutions intact wherever
possible. Of course, there would be no requirement for any organization to
affiliate with the PSF.

As for the members of those organizations, they would either become
Members of the PSF (if the organization decides to affiliate with the
PSF) or they can hold memberships in both organizations (if not). The
PSF would recognize work within these local user groups as a working
group, so that people could become Managing Members in the PSF for
their efforts running a meetup, organizing Gothpy, etc.

'''Q: Does this mean that you can't do stuff on your own, outside of a
"working group"?'''

'''A:''' No, of course not. People will always be able to go off on their
own and do their own thing. The working group process will just be
used if a person 1) wants their activities to be recognized by the PSF
for Managing Member status, and 2) wants to use PSF resources (money,
hosting, pydotorg space, etc). If people want to have access to PSF
resources, then the chartering process for working groups would help
the PSF understand what would be in scope and out of scope for a
particular activity.

'''Q: Isn't the Fellows program too exclusive? Doesn't that make it
susceptible to being an exclusionary club?'''

'''A:''' One of the things that some members really value about their
current membership in the PSF is the affirmation by their peers that
they have done excellent work. That affirmation is valuable - and to
keep being valuable, it needs to mean something that a person is
selected to be a Fellow. It needs to be exclusive.

On the other hand, we definitely don't want the title of "Fellow" to
be exclusionary. That is the reason why the criteria for becoming a
Fellow are so tightly defined - so as to provide a relatively
objective measure of who should be eligible for Fellowship.

If there are concerns, the Board can charter a working group to selectively
increase the voting group that selects Fellows.

'''Q: What would become of psf-members?'''

'''A:''' The PSF-Members mailing list would become a social-only
list. Announcements from the PSF would come through
PSF-Announce. Discussions of other business would be off-topic, and
would instead be the province of working group mailing lists or other
fora. And yes, that means people could unsub from PSF-Members if they
wanted - although we hope that these changes would help the
PSF-Members list be a more pleasant place to be.


----

Note: The original text has been moved to MembershipModelVisualization.

The New PSF Membership Model (v.1.1.1)

Organization

The new membership model includes a open, self-initiated membership class that anyone can join. Within that broad membership, there would be four (possibly overlapping) special categories of Members that include additional privileges: Supporting Members, Sponsor Members, Managing Members, and Fellows. Members would be able to move in and out of the special categories as described below.

Basic Membership

Under the new membership model, anyone who wants to become a Member of the Python Software Foundation will have the opportunity to join, simply by signing up on the new pydotorg website and agreeing to the CoC. The process would be similar to the process currently used for the Openstack Foundation. By signing up, anyone will have the opportunity to declare their part in the broader Python community and their support of the PSF.

By making the regular membership a declaration of affiliation, we make the PSF the natural home of anyone that wants to declare their support for Python and be associated with the Python community. If someone wants to just be a Member, there are no other requirements and no other duties.

Special Categories of Membership

We have seen that there are a number of people that want to do more for the community than just be affiliated with it. We want to give people a number of ways in which - should they want to - they can grow and contribute within the PSF. The special membership categories described below are designed to allow people to voluntarily take on responsibility--and to be recognized for their additional support for and work within the community.

The different categories of membership also include mechanisms for organizing the workvof the PSF so that we keep complexity down at the organization level.

Organization of Special Categories

Speaking very broadly, there are three ways that we envision that people would support the Python community: Creating, Coordinating, and Funding. There are membership categories associated with each of these ways of supporting the community. These categories of membership are not exclusive; a person could be a member of all of them, none of them, or any subset. Also, as a person's contributions and time commitments change, a person could move in and out of these special categories.

There are two special membership categories for Funding: Supporting Members and Sponsor Members.

Certain individuals that have demonstrated exemplary commitment to the PSF and Python community may become Fellows of the Python Software Foundation following the Fellowship procedure described below.

Supporting Members (Funding)

A Supporting Member is an individual who supports the PSF by helping fund its operations. This is an expansion and slight reworking of the current Associate Membership. Those who wished to contribute to the PSF financially would have the opportunity to be Supporting Members. The Supporting Membership would be fashioned along the NPR model in the United States: Once or twice a year, the PSF would have a membership drive encouraging Members to move up to being Supporting Members (at a suggested cost of $100/year). Those that became Supporting Members would receive an exclusive gift each year while they were supporting members, including at minimum 1) a custom Tee-shirt each year, and 2) some other Python-themed toy, gadget, or item. We would also work with our business members to see if there would be special discounts that could be made available to the Supporting Membership (discounts on books, etc). Supporting Members could opt out of receiving the T-shirts and gifts if they so chose.

Only natural persons would be eligible to be Supporting Members. Supporting Membership would be active for a full year, starting on the date of the contribution. A person could also become a lifetime Supporting Member by paying a fee (suggested at $2000). Supporting Members would be eligible for voting privileges as described below.

A Sponsor Member is an organizational member of the PSF. A Sponsor Member could join at one of a number of different levels, with the price at different levels set by the Board (initially suggested at $3K, $6K, $12K, and $25K). Each level would provide a number of benefits - such as 1) a number of designated Sponsor Delegate members in the PSF, 2) preferential placement of jobs on the Python jobs board, and 3) discounts to PSF-sponsored and PSF-run events. Other benefits could be proposed by special working groups and ratified by vote.

Only organizations would be eligible to be Sponsor Members. Sponsor Membership would be active for a full year. The designated Sponsor Delegates would be eligible for voting rights as described below.

Managing Members (Coordinating)

A Managing Member is an individual who supports the PSF by spending time coordinating, teaching, and serving others. This could be time spent helping run conferences, running a user group, managing infrastructure, or performing some other work on behalf of the PSF. To become a Managing Member, a Member of the PSF would need to declare their intention to be a Managing Member and sign up for one or more working groups within the PSF. A working group would focus on some specific aspect of the PSF's infrastructure or community. Managing Members would be expected to put in 5-10 hours a month working in their working group to maintain their Managing Member status.

Ever year, each Managing Member would be asked to list the working groups they are involved in and to affirm that they have been putting in the time with their groups as agreed. This periodic recertification would have two purposes. First, it would gently remind those who had signed up as Managing Members that they had accepted responsibilities to go along with their privileges. Second, it would help the PSF keep an up-to-date list of which members would be available to help, and in what capacities. For example, there would be no more guessing about who might be available to help with website updates. Those who chose not to recertify their participation would move out of Managing Member status.

On a limited basis, participation in other community-focused groups (for example, the Plone Foundation or NumFOCUS) may make a person eligible for Managing Member status. For PSF-internal administrative reasons, an interested member within the PSF would still need to submit a pro-forma charter to get the work recognized within the PSF.

Managing Members would receive some sort of recognition each year and would be eligible for voting privileges. Managing Members would be eligible to become Fellows.

More information about the working groups is located below.

Contributing Members (Creating)

Contributing Members are those who support the Python community with contributions of code, tests, documentation, design, or other results of creative effort. There are many people out there that contribute code, or docs, or tests. In order to become a Contributing Member, a person would need to announce what open source project(s) they were working on and commit to spend 5-10 hours a month working on them.

The self-certification for Contributing Members would serve the same purposes as for Managing Members. It would remind those who had signed up to be Contributing Members that they had made a commitment to publicly contribute to the community. Second, it would help the community know who was working on which projects.

The requirement that Contributing Members be working on open source projects comes directly from the community-oriented nature of the PSF. Proprietary code can be useful for many things, but it is not available to the community and therefore isn't a contribution.

Contributing Members are eligible to vote and are eligible to become Fellows.

Fellows

A Fellow is the highest level of PSF membership and confers privileges for life. It should be granted on those who have consistently served the PSF and Python Community over a substantial period of time and have made notable contributions.

To preserve the merit-based nature of becoming a Fellow, the procedure for becoming a Fellow would mirror the current mechanism for becoming a PSF member: a person would need to be nominated by an existing Fellow, and then confirmed by a secret supermajority vote following the nomination and voting procedure described below.

For Fellows, the criteria would be as follows:

""" For those who have served the Python community by creating and/or maintaining various creative contributions, the following statement should be true:

"[Nominated Person] has served the Python community by making available code, tests, documentation, or design, either in a Python implementation or in a Python ecosystem project, that 1) shows technical excellence, 2) is an example of software engineering principles and best practices, and 3) has achieved widespread usage or acclaim."

For those who have served the Python community by coordinating, organizing, teaching, writing, and evangelizing, the following statement should be true:

"[Nominated Person] has served the Python community through extraordinary efforts in organizing Python events, publicly promoting Python, and teaching and coordinating others. [Nominated Person]'s efforts have shown leadership and resulted in long-lasting and substantial gains in the number and quality of Python users, and have been widely recognized as being above and beyond normal volunteering."

[Nominated Person] is an example of what we aspire to be in the Python community. """

Although the Fellowship is designed to be a rare award, it is expected that core contributors to Python and other widespread Python implementations would meet the "creating" criterion. The principal contributors to many Python ecosystem projects would as well. Similarly, it is expected that the key organizers of large conferences, authors of multiple successful books, and leaders in community outreach efforts would meet the second "coordinating" criterion.

Fellows would be eligible for voting privileges. Fellows would be selected following the nomination and voting procedure described below, with existing Fellows participating in the vote. If there is a concern about regional or community representation in the Fellowship, the eligibility of voting for Fellows may be selectively extended to longtime Managing Members as recommended by a specially chartered working group.

Mechanics

There are a number of structures and practices that would need to be put in place to realize the new membership model.

Implementation schedule

The current ballot (March 2013) would include the following statement for approval/disapproval by the membership:

""" The new Board of Directors is directed to implement the necessary bylaw changes to change the membership model as described in the new membership model, version 1.1.1, as documented on the private PSF Wiki at http://wiki.python.org/psf/NewMembershipModel. """

The target for completion of all necessary changes would be three months, so that the new open membership would be available and open for new members starting at Europython (July 1-7, 2013).

Voting privileges

The most important new practice under the new membership model would have to do with voting privileges - who could vote and what they would vote for.

Under the new model, voting (in any capacity) would be an obligation, not a right. Voting privileges would be reserved for those who had demonstrated some sort of commitment to the foundation - either by contributing time, money, or code. Voting privileges would also not be perpetual - members (of any class) could move in and out of voting status.

Voting privileges would be orthogonal to membership categories.

Every year, the PSF would send a message to all voting-eligible members. Those who would like to vote would need to respond affirmatively. (For those in the United States, voting eligibility would work like open enrollment for health care.)

Voting-eligible members who responded would vote on the following:

  • Composition of the Board of Directors
  • Admission of new Sponsor Members to the PSF
  • Matters of overall PSF policy recommended for ratification by the Board
  • PSF governance issues
  • Chartering of working groups
  • Any other matters designated for membership vote by the Board
  • Sponsor Member benefits proposed by working groups

Votes would be held on a rolling basis over the Internet. All voting privileges would be extended on a "use it or lose it" basis - missing two votes during a year would end voting privileges until the next eligibility period.

The PSF's goal would be to encourage every member to be voting eligible and to exercise that vote, but we understand that many members would prefer just to be affiliated or to not worry about governance issues. This would allow any interested and committed member to vote, but would not obligate those who chose not to be involved in that way.

A person that is eligible to vote for more than one reason (being both a Supporting Member and a Contributing Member, for example) would still have only one vote.

The one exception is that the eligibility for voting as a Sponsor Delegate is separate from any voting rights that accrue to an individual. Thus, a natural person participating in the voting procedure could be eligible to vote both as an individual (if appropriate) and as a Sponsor Delegate.

Sponsor Delegates that fail to declare their intention to vote or who fail to vote would not have voting privileges until the next eligibility period, just like individual members.

Fellowship Nomination and Voting Procedure

The PSF Fellowship would work according to a set procedure to make the process as free from politicking and bias as possible.

All nominations would be made via a web form. The identity of the nominator would be secret, and including identifying information in a nomination would invalidate the nomination. Nominees would not be notified that they had been nominated, and only Members could be nominated. Notification is not required since membership (which will be easy for any interested person to obtain) indicates interest.

The web form would ask for the name of the nominated person, would include a brief prose description of the contributions of the person, and would include spaces for as many URLs as necessary to demonstrate the suitability of the person for the proposed award. There would be no discussion of the nominees. Instead, each voting Member would individually focus on the criteria for the award.

The vote would be by secret ballot. To pass, the vote would require a supermajority (at least 2/3, adjustable to 3/4 by the Board) of those participating in the vote to agree with the applicable criterion.

Nominations to the Board

A Board Member could be self-nominated or nominated by another person. The only requirement for nomination would be that the person was at least a Member of the foundation. Any person serving as a Board Member would automatically meet the qualifications to be a Managing Member of the PSF.

Working Groups

In order to be a Managing Member, a person would need to participate in one or more working groups as described above. Initially, the working groups would correspond to existing functions and committees already identified by the PSF - the Board, the Infrastructure Committee, PyCon-Organizers, etc. Additional new working groups could be proposed by any Member. The scope of each working group would be defined by a charter, which would include 1) the purpose of the group; 2) the length of time the group would be active; 3) the end goal or product of the group; 4) the methods of communication that the group would use; and 5) any sort of internal governance statement.

The procedure for creating a working group would be as follows:

  • One or more people would identify a need and propose a working group charter
  • The working group charter would be proposed to the voting-eligible Members, who would approve the charter (or not) to create an official working group
  • If needed, a budget allowance would be provided to the new working group by the Board.

Each year, the working groups would be evaluated by the voting-eligible Members (with possible assistance from the Board). The working groups would either be recertified or would be dissolved for lack of interest, Members, etc.

PSF Members that were contributing to other user groups (AfPy, BayPiggies) could have their efforts with their existing local groups certified as a working group. One special working group would be the technical advisory committee, which would provide guidance for the PSF on any technical matters.

Transition

Every current Nominated Member of the PSF would have the opportunity to be recognized as a Fellow without following the balloting procedure. Individual Members would have the opportunity to decline if they didn't feel it was appropriate based on the criteria for Fellow described above. Current Associate Members would automatically become Supporting Members under the new membership model.

Emeritus Members would become regular members, unless the membership is refused.

Efforts would be made to make existing user groups and other informal organizations working groups under the new model. Legally-recognized entities that are Python-focused would be invited to become PSF affiliates or have their activities recognized under the working group model as described above.

Q&A:


Q: Why are we doing this?

A: There are many reasons. The most important reason is that we have moved away from a clear conception of what it means to be a member of the PSF. I hope that through the reformulation of the membership, we will be able to give a clear conception and purpose for the PSF that will take us through the next twenty years of Python.

That is not the only reason, though. There are other benefits to the new membership model.

One clear benefit is that this new model will help us protect Python's intellectual property better. In the recent trademark dispute, one of the key pieces of evidence was whether the PSF had members in the various EU countries. It was a mark against us that we did not have members in every EU country - and even when we had members, we had ten or twenty members, not thousands.

This is in clear contrast to the widespread support that came to us from Pythonistas in every EU country. If all those Pythonistas had been part of the PSF already, we could have pointed to our widespread membership as evidence of the PSF's stewardship and representation of Python.

Another benefit is that we remove the arguments about who should and should not be a Member of of the PSF. Under the new model, the PSF welcomes anyone who wants to be affiliated with Python. We expand our membership to truly represent the broader Python community.

A third benefit is that the new membership model allows for both growth and change in the Python membership. A person can become a Member, have voting privileges for a time, then become a Supporting Member, and go back to basic membership anytime they want. We don't kick people out and make them "emeritus" members. They are still members of the Python community. There are just members who are taking an active (or passive) role in the community at the moment.

Q: Isn't a "Supporting Member" just the same as the current Associate Membership program?

A: The primary difference between Supporting Members and the existing Associate Membership is the explicit plan for giving back some benefit to these Supporting Members. Right now there is not much difference between simply donating to the PSF and becoming an Associate Member. This plan would make the benefit clear.

Supporting Members would also be eligible for voting privileges, where current associate members are not.

Q: What happens to regional or national organizations, like the German Python organization?

A: As described in the transition plan there would be three outcomes. Legally organized entities that are purely Python-focused would be invited to become affiliates of the PSF and represent the PSF in that particular country or locale.

Legally-organized entities that are not purely Python-focused could choose to adjust their focus and become PSF affiliates, or could have interested members submit charters for recognition of the other-entity efforts as working groups, or could do nothing at all.

Informally-organized entities would become working groups.

The PSF would would seek to keep existing institutions intact wherever possible. Of course, there would be no requirement for any organization to affiliate with the PSF.

As for the members of those organizations, they would either become Members of the PSF (if the organization decides to affiliate with the PSF) or they can hold memberships in both organizations (if not). The PSF would recognize work within these local user groups as a working group, so that people could become Managing Members in the PSF for their efforts running a meetup, organizing Gothpy, etc.

Q: Does this mean that you can't do stuff on your own, outside of a "working group"?

A: No, of course not. People will always be able to go off on their own and do their own thing. The working group process will just be used if a person 1) wants their activities to be recognized by the PSF for Managing Member status, and 2) wants to use PSF resources (money, hosting, pydotorg space, etc). If people want to have access to PSF resources, then the chartering process for working groups would help the PSF understand what would be in scope and out of scope for a particular activity.

Q: Isn't the Fellows program too exclusive? Doesn't that make it susceptible to being an exclusionary club?

A: One of the things that some members really value about their current membership in the PSF is the affirmation by their peers that they have done excellent work. That affirmation is valuable - and to keep being valuable, it needs to mean something that a person is selected to be a Fellow. It needs to be exclusive.

On the other hand, we definitely don't want the title of "Fellow" to be exclusionary. That is the reason why the criteria for becoming a Fellow are so tightly defined - so as to provide a relatively objective measure of who should be eligible for Fellowship.

If there are concerns, the Board can charter a working group to selectively increase the voting group that selects Fellows.

Q: What would become of psf-members?

A: The PSF-Members mailing list would become a social-only list. Announcements from the PSF would come through PSF-Announce. Discussions of other business would be off-topic, and would instead be the province of working group mailing lists or other fora. And yes, that means people could unsub from PSF-Members if they wanted - although we hope that these changes would help the PSF-Members list be a more pleasant place to be.


Note: The original text has been moved to MembershipModelVisualization.


CategoryHomepage

NewMembershipModel (last edited 2013-06-05 07:40:13 by MarcAndreLemburg)

Unable to view page? See the FrontPage for instructions.