[python-committers] An alternative governance model

Alex Martelli aleax at google.com
Tue Jul 17 23:33:58 EDT 2018


Barry, you offer truly compelling arguments for a new BDFL as GvR's
successor -- FWIW, you've convinced me.

And Brett would be an absolutely outstanding pick as that "new BDFL" -- on
this, I need no convincing.


Alex

On Tue, Jul 17, 2018 at 7:08 PM Barry Warsaw <barry at python.org> wrote:

> I’d like to propose an alternative model, and with it a succession plan,
> that IMHO hasn’t gotten enough discussion.  It’s fairly radical in that it
> proposes to not actually change that much!
>
> TL;DR: I propose keeping a singular BDFL and adding a Council of Advisors
> that helps the BDFL in various capacities, with additional
> responsibilities.  I also have someone specific in mind for the NBDFL, but
> you’ll have to read on for the big reveal.
>
> Why keep a singular BDFL?  I think it’s clear that no one can completely
> replace Guido, and neither should we try, nor do we need to.  The
> discussion to date has explored refactoring many of the roles that the BDFL
> has, and that’s all excellent, especially to reduce the burden and burnout
> factor of the NBDFL.  But I think having a singular BDFL making the tough
> decisions, with the support and help of the community, is in the best
> interests of Python over the long term.
>
> A singular BDFL provides clear leadership.  With a council of elders, it
> will be more difficult to communicate both to the Python community, and to
> the larger, more peripheral user base, that any particular individual has
> the authority to make decisions.  Regardless of size, there would
> ultimately be some one person communicating any council decision.  There
> will inevitably be ambiguity as to the authority of said decision.  How
> will folks, especially on the periphery, know that Alice Jones or Bob Smith
> are members of the council and can speak authoritatively on decisions for
> the language?  “Bob Smith, on Behalf of the GUIDO” is IMHO less obviously
> and unquestionably authoritative than “Alice Jones, BDFL”.
>
> This also comes into play for shutting down discussions early.  With a
> committee, it’s possible that you’ll have some disagreement among the
> members as to whether a discussion is fruitful or not, whether it rehashes
> settled questions, or whether the change fits into the overall direction
> for Python’s evolution.  Alice Jones may say “No, that’s not gonna happen”
> only to be overruled or undermined by Bob Smith’s “That’s a good idea”.
>
> Taken together, these fall under the umbrella of having one voice for the
> decision making process.  It may be possible for consensus within the
> council to come across as a single voice, but I think it will generally be
> harder.  A council also opens the door for more back-channel lobbying of a
> sympathetic member.  Yes, such lobbying is possible with a BDFL, but at
> least there should be less contention.
>
> I also think a council will be much more risk adverse than a singular
> BDFL, and that’s not necessarily a good thing.  While moratoriums and a
> more conservative approach to change may be appropriate at times, I would
> prefer those to be deliberate decisions for a specific purpose, rather than
> the unintended outcome of groupthink or lack of consensus.  A singular BDFL
> with support from the community will have more authority to make decisions
> which probably will never be universally accepted, and much less prone to
> vapor lock due to lack of consensus or internal bickering.
>
> I hope Guido won’t mind me relating a comment of his that has really
> resonated with me over the last few days, and for which I think a singular
> BDFL will be much more adept at communicating and shepherding.  The
> question for any new leader is:
>
> What is your vision for Python?
>
> This question keeps coming to mind as I think about how the evolution of
> the language will be governed over the next few years or decades.  Yes,
> Python is a mature language, but it’s far from stagnant.  Guido always had
> a very clear vision of what Python should be, where it should go, and how
> new proposed features (or other changes to the Python ecosystem) fit into
> that vision, even if he didn’t or couldn’t always clearly articulate them.
> The NBDFL will necessarily have a different vision than Guido, and I think
> even he would agree that that’s okay!  A strong vision is better than no
> vision.  Python must continue to grow and evolve if it is to stay relevant
> in a rapidly change technology environment.  As an almost 30 year old
> language, Python is already facing challenges; how will that vision address
> those challenges, even if to explicitly choose the status quo?
>
> Will a council be able to articular, express, communicate, adapt, and
> follow through on that vision?  Will a council be able to evaluate a
> proposed change as it supports or detracts from that vision?  Will a
> council be able to break out of a primarily maintenance position, to
> actually move the language and its primary implementation forward?  I’m not
> so sure.
>
> For these reasons I propose that we retain a singular BDFL.
>
> The formation of a formal Council is still a good idea!  I just think that
> it shouldn’t be the ultimate arbiter of decisions for Python.  So what
> would the Council do?
>
> - It would serve as a check on the BDFL.  If Bob Smith were one day
> employed by Evil Corp. and started making decisions that were directly
> detrimental to Python, the council should be able to effectively impeach.
> There should be checks and balances on this power, the BDFL shouldn’t
> continuously fear a coup, and impeachment will hopefully never be invoked,
> but the council can serve as the voice of the community for when the BDFL
> is abusing their power.
>
> - The council would select the next BDFL if and when that time comes.  No
> one will serve forever, so a clear succession plan should be in place.  To
> avoid the tyranny of the majority, the council would serve similarly to a
> board of directors.  They’d search for candidates, match them against well
> defined criteria, conduct interviews, serve as the voice of the community,
> and eventually select the N+1BDFL.
>
> - The council would serve as trusted advisors to the NBDFL.  The BDFL
> won’t be out there all alone!  The council will provide advice when
> requested, and back up the BDFL when needed.  The council helps legitimize
> the BDFL and their decisions.
>
> We can debate how the initial council is selected, its make up, number of
> members, term limits, etc.  I think much of the current discussion about a
> BDFL-like council would satisfy the requirements for a Council of
> Advisors.  It’s just that the roles and responsibilities would differ.  The
> COA wouldn’t make the decisions, but it would help the BDFL make the best
> decisions possible, and have their back against any detractors.
>
> I definitely have my own thoughts on an initial make-up of said council,
> but I’ll reserve that for later.
>
> If you’ve read this far - thank you!  Now for the big reveal.  I think the
> Next BDFL should be… (drum roll)…
>
> Brett Cannon
>
> I’ve long said — somewhat in jest, since I never expected Guido to
> actually ever retire! — that Brett would be my choice for the next BDFL.  I
> think he’s the perfect candidate, and he’s already demonstrated qualities
> that I think make him a fantastic leader.  He’s smart, compassionate,
> passionate, respectful, young, tall, and has the right mix of technical
> excellence and social skills.  He believes deeply in diversity and
> community.  As he’s shown with the decisions to move first to Mercurial,
> then to git/GitLab, he isn't afraid to make difficult decisions that he
> knows not everyone will agree with (and I say that having advocated the
> losing choice more than once :). He’s not afraid to say what’s on his
> mind.  I think he can clearly articulate a Vision.  He shares many of these
> same qualities with Guido, while being a different person with different
> sensibilities.  And that is not only fine, but IMHO a *good* thing.  We can
> trust his stewardship, and he already has legitimacy as a senior decision
> maker in the Python ecosystem.  He has a wide technical knowledge of Python
> and its C implementation, and yet he knows what he doesn’t know.  He has
> good relationships with most core devs, and is a well-known voice within
> the wider community.  He’ll be able to delegate where appropriate, and make
> definitive pronouncements where needed.
>
> Before you ask, yes I did check with Brett before making this proposal and
> he didn’t shoot it down.  He may have specific requirements for accepting
> the position, but I’ll let him articulate those.  I’m confident they would
> come across as completely reasonable. :)
>
> To summarize:
>
> * We retain a singular BDFL to lead Python
> * A Council is selected to serve as advisors to the BDFL, a selection
> committee for succession, and a check against the BDFL.
>
> That’s it in a nutshell.  Thanks for listening.
>
> Cheers,
> -Barry
>
> _______________________________________________
> python-committers mailing list
> python-committers at python.org
> https://mail.python.org/mailman/listinfo/python-committers
> Code of Conduct: https://www.python.org/psf/codeofconduct/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-committers/attachments/20180717/0d689634/attachment-0001.html>


More information about the python-committers mailing list