I admit I kept my eyes off this ball for a while. Naturally, I'm surprised
at this change.

My understanding was that this change is being considered as a reaction to
those two concerns:

> 1. Kohsuke as the BDFL introduces a problematic bottleneck to the process
>    (there are way more of us, than there are of him).
>
> 2. JEP-1 introduces a different way of decision making than has been
>    traditionally followed with the Governance Meeting
>    (https://jenkins.io/project/governance/#meeting)

I prefer the original "BDFL + Delegate" model. I'd like to explain the
reasons, and why that model adequately address those concerns. This is
going to be a long post.


First, the bottleneck point. As Bobby said in this thread and was discussed
in the contributor summit, I understood my role in this process to be more
like British Queen or Japanese Emperor, in the sense that I'm expected to
designate Delegate in each area and let them lead those areas, as opposed
to Supreme Court Justice who preside over individual cases. That is, the
idea is to influence Delegates instead of influencing JEPs. In this manner,
I don't think BDFL will be a bottleneck.

The obvious question then would be how I pick Delegate. I think most area
has natural leads that owns the spaces. For example, Daniel leads security
related things, Oleg leads remoting, Jesse leads Pipeline, and so on. Those
people currently have implicit influences, and we know who they are. I
intend to designate them as Delegate. I will discuss that designation
beforehand to eliminate any chance of surprises.

This brings me to one of the reasons why I'm supporting JEP. Today, people
who lead various efforts do so solely based on implicit influence. But this
scheme doesn't work well as we scale up. I see the Delegate title as a way
to make those implicit influences more explicit, so that people who are not
spending as much time in the project or contributors from organizations can
easily identify them as the primary go-to guy. Put differently, I want the
Delegate title to help those people lead more effectively. The officer
title worked very well with this regard. I think of Delegate as technical
version of it. Obviously, we don't want Delegate to be dictators any more
than you want BDFL to be actual dictator.And that spirit is captured in
JEP. We expect Delegate to understand implicit influences of other people
in neighboring areas and bring them in as appropriate.

One of the problems I have with the proposed self-nominated Reviewer scheme
is that it does not help with this regard. There's no explicit title like
"Delegate" to clarify the role of leads. Those leads still need to rely
solely on implicit influences.


Back to how to pick Delegate. When we start a new effort, in the area where
there's no existing effort, say Jenkins 2 or pluggable storage, I expect
the initial JEP to capture goals and high level requirements of that
effort. I will be the reviewer of that initial JEP, but as a part of that
JEP I expect the Delegate to be determined for that space. Oftentimes the
sponsor of that JEP should be the obvious choice as the Delegate as the
leader of the effort. Other times we may need to have more discussions
among the core developers to determine that person. Subsequent JEP in that
space, to the extent it stays within the charter of the initial JEP, should
be presided by that Delegate.

This brings me to another reason why I'm supporting JEP. Organized
contributors (aka companies putting their people into the project, as
opposed to individuals participating on their own initiatives) need this
kind of marking the space in which they execute in. Before driving a
non-trivial effort, there needs to be discussion and consensus that the
project accepts the idea (e.g., "there should be Jenkins 2 whose goals are
this and that".) Once that idea is agreed upon, we need to respect the
authority of the group who's working on it. They can't work on anything non
trivial if there's some sense that the work will be accepted in the end.
And often, people who lead those efforts have limited visibility in the
project. This came up multiple times in my conversation with potential
corporate contributors outside CloudBees.

One of the problems I have with the removal of Delegate is that we lose the
tool to help make this authority explicit. And likewise, we lose the
continuity of Delegate. I hope we will have a lot of different Sponsors
trying to drive changes in the same area, and we need Delegate ensures that
there's some consistency and continuity, which requires a stable Delegate.


As for the second concern of the decision making structure outside the
governance meeting, I think what I'm describing above is very much in line
with how we have been operating on technical matters. We never really used
the governance meeting as a venue for technical decision making, and that's
the way I think it should be. It obviously provides a great place for
synchronous communication to bring people to some consensus faster, like
new LTS base version, but only a specific subset of people who work on
Jenkins are there.

One of my goals in JEP is to clarify the path of technical decision making.
The original proposal does this by symbolically rooting the chain of
authority to BDFL (like how Queen and Emperor symbolically empowers the
elected government.) The removal of BDFL + Delegate tries to root the chain
of authority to "consensus of core contributors", but that fails to achieve
this goal because "core contributors" is not a group with clear boundary,
and we don't know how far "consensus" needs to be reached.


So there it is. I argue we should accept #12
<https://github.com/jenkinsci/jep/pull/12> without #18
<https://github.com/jenkinsci/jep/pull/18>.

On Wed, Oct 18, 2017 at 4:45 PM Liam Newman <bitwise...@gmail.com> wrote:

> In the latest change, I've proposed removing the BDFL role.
> https://github.com/jenkinsci/jep/pull/18 to see the changes.
>
> (Note: in a previous PR I replaced the BDFL-delegate role with a
> "Reviewer" role and had expanded the description of BDFL.)
>
> I got it this far, but I'm out of bandwidth to make further changes this
> week.
> Oleg had some valid questions, and said he'd try to submit a PR addressing
> them.
> If anyone else wants to pick up a little of the load here, that'd be great
> - comments welcome, PRs preferred.
>
> Thanks,
> Liam Newman
>
>
>
>
>
> On Tuesday, September 19, 2017 at 10:12:29 AM UTC-7, R Tyler Croy wrote:
>
>> (replies inline)
>>
>> On Wed, 13 Sep 2017, R. Tyler Croy wrote:
>>
>> >     https://github.com/jenkinsci/jep/tree/jep-1/jep/1
>>
>>
>> Since I'm sure not everybody has been following along with some of the
>> pull
>> requests and changes while we've been hammering out JEP-1, I would like
>> to
>> provide a little bit of an update and solicit some help. This topic is
>> very
>> important, so please read this email!
>>
>> First, thanks to reviews from a number of folks including Oleg, Owen,
>> Daniel,
>> and others, we have been able to tighten the proposal up quite a bit.
>> Mostly
>> thanks to Liam's diligent slicing and dicing of text :)
>>
>> While I had hoped we might be able to get some consensus in time for
>> tomorrow's
>> project meeting, I don't think we are quite there yet. There has been
>> lots of
>> helpful feedback on the review and decision-making process
>> (BDFL/BDFL-delegate):
>>     https://github.com/jenkinsci/jep/tree/jep-1/jep/1#review
>>
>>
>> To summarize the primary, and valid, criticisms if I may:
>>
>>  1. Kohsuke as the BDFL introduces a problematic bottleneck to the
>> process
>>     (there are way more of us, than there are of him).
>>
>>  2. JEP-1 introduces a different way of decision making than has been
>>     traditionally followed with the Governance Meeting
>>     (https://jenkins.io/project/governance/#meeting)
>>
>>
>> I would like to guide the discussion towards addressing these. I also
>> want to
>> ensure our process is sensitive to contributors around the world,
>> especially
>> those in Australia and Asia who are typically asleep during the scheduled
>> project meetings and rely on asynchronous mediums like email.
>>
>> If you have an example structure for technical decision-making from
>> another
>> project, which you think is applicable, please chime in!
>>
>>
>> Personally, what I'm thinking right now is to flip the Python model
>> upside
>> down: when the JEP Author creates a draft they (or a JEP Editor) list a
>> "Delegate" who would be somebody with good standing as the maintainer of
>> that
>> subject area, other than themselves.
>>
>> For example, if I were proposing a design on Remoting, Oleg would be the
>> obvious Delegate. If Andrew were proposing some design around Pipeline,
>> Jesse
>> would be a reasonable Delegate. Rather than expecting a BDFL to be
>> "plugged
>> into" each JEP, we self-select more (which I think we're all capable of
>> doing).
>> For the times when we might have conflcit, then we can use the Governance
>> Meeting process to resolve who the appropriate Delegate for a proposal
>> may be.
>> To help new comers, including a list of "Suggested Delegates" in the JEP
>> repo
>> could also be helpful.
>>
>> I think that could avoid the problems with the current BDFL proposal,
>> while
>> reducing the need to run every JEP through the Governance Meeting
>> process,
>> where not all the stakeholders will necessarily be present.
>>
>>
>>
>> Of course, I'm open to more suggestions and discussion. Like I said at
>> the
>> beginning of the email, I think getting this right is important.
>>
>>
>> Cheers
>> - R. Tyler Croy
>>
>> ------------------------------------------------------
>>      Code: <https://github.com/rtyler>
>>   Chatter: <https://twitter.com/agentdero>
>>
>      xmpp: rty...@jabber.org
>>
>
>>   % gpg --keyserver keys.gnupg.net --recv-key 1426C7DC3F51E16F
>> ------------------------------------------------------
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jenkinsci-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/78ac83c8-6290-41f9-98f9-7e977ec6004b%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-dev/78ac83c8-6290-41f9-98f9-7e977ec6004b%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
-- 
Kohsuke Kawaguchi

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAN4CQ4zKdBdEX76yEsknd1APybE8tOrmYX8TvzCU8Zd2mVJ7yg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to