Robert Collins email@example.com writes:
On 21 July 2015 at 00:34, Ben Finney firstname.lastname@example.org wrote:
Paul Moore email@example.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 said.
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 well-justified.
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