[Python-Dev] How do we tell if we're helping or hindering the core development process?

Ben Finney ben+python at benfinney.id.au
Tue Jul 28 06:18:41 CEST 2015

Robert Collins <robertc at robertcollins.net> writes:

> On 21 July 2015 at 00:34, Ben Finney <ben+python at benfinney.id.au> wrote:
> > Paul Moore <p.f.moore at gmail.com> writes:
> >
> >> Again, I'm sorry to pick on one sentence out of context, but it cut
> >> straight to my biggest fear when doing a commit (on any project) -
> >> what if, after all the worrying and consideration I put into doing
> >> this commit, people disagree with me (or worse still, I made a
> >> mistake)? Will I be able to justify what I decided?
> >
> > That seems quite healthy to me. On a collaborative project with
> > effects far beyond oneself, yes, any change *should* be able to be
> > justified when challenged.
> Depending on what you mean by justification , this leaves no leeway
> for hunches, feelings, intuition, or grey area changes.

This doesn't address what I've said; or, I've misunderstood what you've

I'm well aware that *most* of the changes we actually work on and
introduce will be based on hunches, feelings, intuition, grey areas,
etc. That can't be expected to disappear.

Indeed, these non-rational ways of reaching a decision are essential to
allow us to act with any kind of speed. Non-rational decision making is
much faster, and necessarily will form the great majority of our
decision making. Good!

What I'm making explicit is: those can't serve as *justification* for
introducing a change. When a change is challenged (by someone to whom we
are answerable), claiming that it just “felt right” is not enough.

I'm not proposing to block every change based on those non-rational
impulses. Those impulses reflect our internalised lessons that we've
learned from experience.

When someone's non-rational decisions prove reliably good *when
challenged* by rational third-party interrogation, we correctly trust
them to make more such decisions.

That's not advocating subjecting a *person* to interrogation, with the
connotations of moral judgement. Be clear: I'm talking only about
interrogating the rational justification for a code change, separate
from judgement of the person.

So: we will inevitably make most of our decisions non-rationally, which
means, among other things, *faster* than explicitly rational decision
making. I don't propose to change that, and our trusted core developers
are not expected to be any exception to this human truth.

It has to be recognised, though, that there must be some third-party
scrutiny, and if no *rational* justification can be presented for a
change – whether tha justification is composed ahead of the change, or
some time afterward, or even at the time of the challenge – then that
change is rather likely to be a poor one.

Again, this is *not* a call to subject every, or even most, changes to
rigorous scrutiny. That would be an intolerably slow and oppressive
environment, which I don't advocate.

What I am rejectiong is the idea, expressed several times in this
thread, that requesting rational justification for a change can be
dismissed out of hand. That's abdicating any accountability, and I was
quite concerned to see that attitute expressed.

No one need feel accountable to me especially, or any other arbitrary
member. Rather, I think it's healthy that core developers feel
accountable to the principle that any change *should* be justifiable,
when challenged by someone with sufficient authority; and that such an
authoritative request is not answered by “it felt right to me”.

> It's also a terrible way to treat people that are contributing their
> own time and effort: assume good faith is a much better starting
> point.

Agreed, we should assume good faith. Most decisions will be reached
non-rationally, and we have no option but to trust some people to make
many non-rational decisions.

Simultaneously, when entrusted with such decisions, we must assume that
any changes we make which can't be justified *when later challenged*
should fall away.

What we mustn't assume is that just because we have made good
non-rational decisions in the past, the next one we make will also be

Especially, we should assume that anyone who *asks* for that rational
justification is also acting in good faith.

 \          “The only tyrant I accept in this world is the still voice |
  `\                                      within.” —Mohandas K. Gandhi |
_o__)                                                                  |
Ben Finney

More information about the Python-Dev mailing list