[Numpy-discussion] What is consensus anyway
Mon Apr 23 17:17:19 CDT 2012
On Mon, Apr 23, 2012 at 3:08 PM, Travis Oliphant <firstname.lastname@example.org> wrote:
>>> Linux: Technically, everything you say is true. In practice, good luck
>>> convincing Linus or a subsystem maintainer to accept your patch when
>>> other people are raising substantive complaints. Here's an email I
>>> googled up in a few moments, in which Linus yells at people for trying
>>> to submit a patch to him without making sure that all interested
>>> parties have agreed:
>>> Stuff regularly sits outside the kernel tree in limbo for *years*
>>> while people debate different approaches back and forth.
>> To which I'd add:
>> "In fact, for [Linus'] decisions to be received as legitimate, they
>> have to be consistent with the consensus of the opinions of
>> participating developers as manifest on Linux mailing lists. It is not
>> unusual for him to back down from a decision under the pressure of
>> criticism from other developers. His position is based on the
>> recognition of his fitness by the community of Linux developers and
>> this type of authority is, therefore, constantly subject to
>> withdrawal. His role is not that of a boss or a manager in the usual
>> sense. In the final analysis, the direction of the project springs
>> from the cumulative synthesis of modifications contributed by
>> individual developers."
> This is the model that I have for NumPy development. It is my view of how NumPy has evolved already and how Numarray, and Numeric evolved before it as well. I also feel like these things are fundamentally determined by the people involved and by the personalities and styles of those who participate. There certainly are globally applicable principles (like code review, building consensus, and mutual respect) that are worth emphasizing over and over again. If it helps let's write those down and say "these are the principles we live by". I am suspicious that you can go beyond this in formalizing the process as you ultimately are at the mercy of the people involved and their judgment, anyway.
I think writing it down would help enormously. For example, if you do
agree to Nathaniel's view of consensus - *in principle* - and we write
that down and agree, we have a document to appeal to when we next run
into trouble. Maybe the document could say something like:
We strive for consensus [some refs here].
Any substantial new feature is subject to consensus.
Only if all avenues for consensus have been documented, and exhausted,
will we [vote, defer to Travis, or some other tie-breaking thing].
More information about the NumPy-Discussion