[Pulp-dev] Improving technical decision making

Robin Chan rchan at redhat.com
Fri Apr 6 16:14:26 UTC 2018

I observe that the main things that aren't working for the lazy consensus
method right now are:
1. Technically, our PUPS don't cover how a new feature or major design
change would go through a process:
    - our process is really just PUP for process changes, not actual use of
proposing features, right?
    - Need a way to enforce sticking to the process like ensuring time
frames are included in initial proposals and how to get better "substantive
arguments" accompanying a "-1" vote. I think we need some skills
development in the area of communication here, but the process being more
rigid would help set better expectations and allow us to focus on the
technical discussions.
          - We have allowed some issues (Jeremy's example) to go on far too
long - the length and way that it dragged could be alleviated by a more
rigid process
    - we are sort of working in this way already, so this is not a urgent
need. Just important. I would like us to work on the actual working through
2. Looks like the "-1" vote is something people feel less comfortable with.
    - Not sure if this is because we've tried this out a few times and the
team now feels that this is too powerful? There needs to be a way to move
forward when we do not have 100% consensus? (ala team lead or tie breaker
or some other vote counting)
    - Or if we need some accountability here - like what do you do if you
have a voter who is often voting "-1" or not following the substantive
argument requirement?
    - There is something here that feels a bit wrong here to me in that if
someone has come up something that they are going to own and implement -
how do we weigh the input of others of various levels of involvement
against someone who as spent the most time investment on an idea in a fair
way that balances the responsibility of the owner and the team that will
own it going forward?

Another thought I have here is what Brian mentioned but actually a
different tact. The responsibility to act as a technical lead is quite time
consuming. Spreading this out to all the parts of the team and expecting
that everyone with a commit bit for the Pulp Core team is dedicating the
time to act in this capacity is not happening and leading to proposals
stalling or taking a long time to be worked out.

Here is a proposal with some compromises:
1. Come up with some guidelines on times for proposals. Small bug fix (2
days), large feature (1 week). After -1, rinse & repeat proposal or
withdrawal/be done.
    NOTE: We are in a weird spot with a major re-write, we have constraints
and not all the time in the world. And I could see net new features vs
major change to existing functionality might require different levels of
2. For core, everybody continues to vote. But if there is any -1 vote(s),
then we go to a 3 people to settle the vote by majority. I'll put it out
there that I think this should be Jeff, Brian, and David. This also means
that these folks need to take greater responsibility in evaluating and
dedicating themselves to getting to consensus.

Let's recognize that there is great opportunity in putting Pulp 3 together
but that this also leads to a lot of pressure to make it perfect and
capitalize on the opportunity to change things that we wouldn't be able to
change in Pulp 2, but we all want to put the best solution forward and we
can't take forever to figure out what that is. It will not lead to us
getting feedback from usable software if we take too long to make decisions.


On Thu, Apr 5, 2018 at 9:26 AM, Dana Walker <dawalker at redhat.com> wrote:

> I agree with Austin that whether we choose a tie-breaking individual or
> simply a voting system, we need an official process to prevent punting
> decisions forever down the road.  Discussion and community involvement are
> great and still happening.  Dissenters are not getting ignored and
> overruled.  Making a decision does not mean we can't pivot and code up a
> different solution down the road if the user feedback says that needs to
> happen.  But we *do* need to make decisions and move sooner rather than
> later ("Release early, release often"), not only so that QE and others
> downstream have time to plan and act on that knowledge  and provide
> feedback but also simply to devote more time to work and less to repetitive
> meetings that don't end in a decision.  This does not mean we will rush
> decisions, and we should still have other discussions on standards of
> process and quality and whatnot, but time boxing is necessary.
> --Dana
> Dana Walker
> Associate Software Engineer
> Red Hat
> <https://www.redhat.com>
> <https://red.ht/sig>
> On Wed, Apr 4, 2018 at 5:57 PM, Austin Macdonald <austin at redhat.com>
> wrote:
>> On Wed, Apr 4, 2018 at 12:48 PM, Brian Bouterse <bbouters at redhat.com>
>> wrote:
>>> The lazy model is lazy, but I don't think it's ineffective. If there are
>>> issues with the lazy consensus model, let's talk about what those are.
>> I dub this problem the "lazy veto". If there is a choice is between "do
>> something" and "don't do something" anyone who is -1 does not have an
>> incentive to engage in discussion. "Default to punt" is the opposite of our
>> intention, which we agreed was "default to change".
>>> Adding a new, second process to-the-side I think will only muddy the
>>> water.
>> The idea is that a good tech lead would only act when there is a stalled
>> decision. How could that muddy the water?
>>> I believe in the benefit of asynchronous decision making for open source
>>> projects. Moving to a single-person role moves us to a centralized decision
>>> making model. There is some related content in this video [0] from fosdem:
>>> "Asynchronous Decision Making -- why and how. How Asynchronous Decision
>>> Making works and why it's essential"
>>> [0]: https://fosdem.org/2018/schedule/event/community_decision_ma
>>> king_why_how/
>> I watched the video, and it was interesting. Whether we move forward with
>> a tech lead, or a voting system, or whatever, we must have an official
>> process.
>> On Wed, Apr 4, 2018 at 12:27 PM, Daniel Alley <dalley at redhat.com> wrote:
>>>>> My opinion is that we have stalled and punted several very important
>>>>> issues when lazy consensus was too lazy. This has slowed our progress
>>>>> enough that I am interested in fleshing out alternatives.
>>>> +1
>>>> On Wed, Apr 4, 2018 at 11:14 AM, Austin Macdonald <austin at redhat.com>
>>>> wrote:
>>>>> On Wed, Apr 4, 2018 at 9:01 AM, Brian Bouterse <bbouters at redhat.com>
>>>>> wrote:
>>>>>> I'm not ready to pursue a single decision maker model for Pulp's
>>>>>> technical decisions or community leadership.
>>>>> OpenStack tech leads aren't "single decision makers", they are a
>>>>> fallback for when consensus isn't reached. In theory the role *could *scope
>>>>> creep to "single decision makers" depending on the style of the individual,
>>>>> but elections prevent that if the voters are responsible.
>>>>>> I also have concerns about those positions being rotating roles since
>>>>>> typically they require much experience. This would also be a departure from
>>>>>> the lazy consensus decision making model we use for community decisions
>>>>>> (the pup process itself).
>>>>> A "rotating role" is different than an elected position. I'm not sure
>>>>> what Milan meant by "time boxed", but I imagine this would just be another
>>>>> election, not a term limit. I think if this is done well, it would augment
>>>>> the lazy consensus model, not replace it.
>>>>>> There would need to be a lot of discussion with input from many
>>>>>> people around what the issues currently are so we can be sure that changes
>>>>>> would resolve those issues.
>>>>> +1  We should set this up carefully. I think a PUP is the right way to
>>>>> do that.
>>>>> My opinion is that we have stalled and punted several very important
>>>>> issues when lazy consensus was too lazy. This has slowed our progress
>>>>> enough that I am interested in fleshing out alternatives.
>>>>>> On Wed, Apr 4, 2018 at 4:54 AM, Milan Kovacik <mkovacik at redhat.com>
>>>>>> wrote:
>>>>>>> Oh I'd forget that we actually don't really have a formal process to
>>>>>>> recognize and retire active contributors yet;
>>>>>>> how about the technical lead proposes both the recognition and
>>>>>>> retirement anytime they find reason to do so, for the former
>>>>>>> situation, with a pre-approval of  other active contributors, propose
>>>>>>> folks publicly, for the latter situation, try reaching out to the
>>>>>>> retiring contributor before going public to avoid frustration.
>>>>>>> Folks of course would ideally announce their intention to retire, the
>>>>>>> formal process would be conducted by the technical lead.
>>>>>>> The insignia of an active contributor would be the commit bit on any
>>>>>>> of the Pulp projects.
>>>>>>> The first ever technical and community leads would be elected by
>>>>>>> folks
>>>>>>> with the commit bit, the election would be organized by our current
>>>>>>> community representatives.
>>>>>>> Unless there are objections, I'd file a PUP to summarize these
>>>>>>> points.
>>>>>>> Cheers,
>>>>>>> milan
>>>>>>> On Tue, Apr 3, 2018 at 6:02 PM, Milan Kovacik <mkovacik at redhat.com>
>>>>>>> wrote:
>>>>>>> > On Tue, Apr 3, 2018 at 3:47 PM, Austin Macdonald <
>>>>>>> austin at redhat.com> wrote:
>>>>>>> >> Interesting proposals Milan!
>>>>>>> >>
>>>>>>> >> I am forking Brian's email so that thread can focus on
>>>>>>> communication,
>>>>>>> >> redmine, etc.
>>>>>>> >
>>>>>>> > Thanks, I guess it would best go hand-in-hand with the process
>>>>>>> update
>>>>>>> > proposal for the Technical specifications/blue-prints PUP:
>>>>>>> >
>>>>>>> >>> I'd add that many a time, an e-mail based technical discussion
>>>>>>> gets
>>>>>>> >>> messy and unfolds in multiple branches over multiple months.
>>>>>>> >>> I'd like to propose we adopt a Technical Specification concept,
>>>>>>> living
>>>>>>> >>> in a separate GitHub repo, similar to the PUP process.
>>>>>>> >>> This would take advantage of our review process, preferably
>>>>>>> requiring
>>>>>>> >>> multiple (core) reviewers acks before merging, allowing Redmine
>>>>>>> to be
>>>>>>> >>> used for planning/tracking the (design) work.
>>>>>>> >>> I think it's easier to manage the life-cycle of  a larger
>>>>>>> Technical
>>>>>>> >>> Specification in a revision system document than an e-mail
>>>>>>> thread and
>>>>>>> >>> a single Redmine issue.
>>>>>>> >>> It also helps (feature) documentation and provides context.
>>>>>>> >
>>>>>>> >>
>>>>>>> >> On Tue, Apr 3, 2018 at 8:13 AM, Milan Kovacik <
>>>>>>> mkovacik at redhat.com> wrote:
>>>>>>> >>>
>>>>>>> >>> I'd also like to propose formal Project Technical Lead and a
>>>>>>> formal
>>>>>>> >>> Project Community Lead roles to be able to decide in case of
>>>>>>> competing
>>>>>>> >>> (technical) ideas or planning priorities.
>>>>>>> >>> These would have to be time-boxed (half a year) and folks would
>>>>>>> elect
>>>>>>> >>> the leader for a period based on leader's program, such as focus
>>>>>>> on
>>>>>>> >>> particular goals for instance testing or refactoring.
>>>>>>> >>> Any single person would be able to perform either the Community
>>>>>>> or the
>>>>>>> >>> Technical Lead role in any given period but not both at the same
>>>>>>> time.
>>>>>>> >>> The Community Lead role would take care for organizing the
>>>>>>> Technical
>>>>>>> >>> Lead elections and vice versa, the Technical Lead would take care
>>>>>>> >>> about organizing the Community Lead elections.
>>>>>>> >>> The electorate would be the active contributors for both the
>>>>>>> roles.
>>>>>>> >>> The candidates would be the active contributors too.
>>>>>>> >>>
>>>>>>> >>> This would open up the decision making process for anyone from
>>>>>>> the
>>>>>>> >>> community, would encourage transparency, accountability and
>>>>>>> >>> responsibility and would allow us to come to a decision on
>>>>>>> competing
>>>>>>> >>> (technical) ideas or planning issues in case we'd got stuck.
>>>>>>> >>>
>>>>>>> >>> Cheers,
>>>>>>> >>> milan
>>>>>>> >>>
>>>>>>> >>> On Mon, Apr 2, 2018 at 8:38 PM, Brian Bouterse <
>>>>>>> bbouters at redhat.com>
>>>>>>> >>> wrote:
>>>>>>> >>> > I agree the decision process for core itself needs discussion.
>>>>>>> For now,
>>>>>>> >>> > I'm
>>>>>>> >>> > only able to offer facilitating a convo that focuses on the
>>>>>>> >>> > communication
>>>>>>> >>> > aspects not the decision process. I would like to improve the
>>>>>>> >>> > transparency
>>>>>>> >>> > into the features that will and won't be in any given release
>>>>>>> for our
>>>>>>> >>> > stakeholders. I hope we do discuss decision process as its own
>>>>>>> >>> > discussion;
>>>>>>> >>> > it's certainly deserving of a pup of its own.
>>>>>>> >>> >
>>>>>>> >>> > For the communication issues, soon I will share a basic
>>>>>>> outline of one
>>>>>>> >>> > way
>>>>>>> >>> > we could use Redmine for release planning. This would be a
>>>>>>> starter idea
>>>>>>> >>> > towards a solution for us to modify together.
>>>>>>> >>> >
>>>>>>> >>> >
>>>>>>> >>> >
>>>>>>> >>> > On Mon, Apr 2, 2018 at 9:08 AM, Austin Macdonald <
>>>>>>> austin at redhat.com>
>>>>>>> >>> > wrote:
>>>>>>> >>> >>
>>>>>>> >>> >> I agree with the problems that Brian listed, but I hope we
>>>>>>> can focus on
>>>>>>> >>> >> the decision making process itself in addition to how those
>>>>>>> decisions
>>>>>>> >>> >> are
>>>>>>> >>> >> communicated.
>>>>>>> >>> >
>>>>>>> >>> >
>>>>>>> >>> >
>>>>>>> >>> > _______________________________________________
>>>>>>> >>> > Pulp-dev mailing list
>>>>>>> >>> > Pulp-dev at redhat.com
>>>>>>> >>> > https://www.redhat.com/mailman/listinfo/pulp-dev
>>>>>>> >>> >
>>>>>>> >>
>>>>>>> >>
>>>>> _______________________________________________
>>>>> Pulp-dev mailing list
>>>>> Pulp-dev at redhat.com
>>>>> https://www.redhat.com/mailman/listinfo/pulp-dev
>> _______________________________________________
>> Pulp-dev mailing list
>> Pulp-dev at redhat.com
>> https://www.redhat.com/mailman/listinfo/pulp-dev
> _______________________________________________
> Pulp-dev mailing list
> Pulp-dev at redhat.com
> https://www.redhat.com/mailman/listinfo/pulp-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20180406/1b7b70b5/attachment.htm>

More information about the Pulp-dev mailing list