Transparent decision making in Debian; the ongoing init discussion by the Technical Committee

The Debian project’s Technical Committee (TC) is showing us how to deal with an issue like sysvinit vs. systemd vs. upstart: an issue where positions are frequently presented in ways almost deliberately or gratuitously meant to provoke anger and retaliation. The TC is discussing the issue transparently, in public and without personal attacks. (And, since the discussion takes place on a mailing list, people do not top post, instead they post replies inline or at the bottom of the reply. With a mailing list, you also can have threaded sub-discussions.) Right now, the TC has 8 members. Debian’s Organizational Structure

The TC ‘makes the final decision on technical disputes in the Debian project’ and resolves disagreements, both technical and non-technical, including offering advice or overruling a Developer. See the section Technical Committee in the Debian Constitution. ‘Discussion, draft resolutions and amendments, and votes by members of the committee, are made public on the TC public discussion list.’ . Anyone can subscribe to the mailing list, and the TC mailing list archives are publicly available.

This discussion had begun months earlier on the debian-devel mailing list/ and on many other places on the ‘net. A resolution couldn’t be reached on -devel. Discussion of the relative characteristics of the alternatives on -devel had been going on for quite a while and didn’t seem to be getting any closer to a resolution. (When I say characteristics I don’t mean advantages since often people’s contributions to the discussion didn’t address the advantages, instead comments expressed opinions about motives and contained unbalanced remarks, like the PHB does in the 2014-01-03 Dilbert strip: ‘You are terrific but everything you do is exactly what a moron would do.’)

So, Paul Tagliamonte opened bug #727708 on the Bug Tracking System and while -devel continued their discussion, the TC began theirs. The second paragraph of Paul’s email says in part ‘it’s clear no consensus is coming out of the discussion.’ Way back on 31 Jan 2013, before a lot of this happened, Russ Allbery (a TC member then and now) wrote a blog post ‘Consensus Failure’.

Here’s a quote relevant to the init system debate:

toxic flaws at the heart of a consensus-based process completely destroyed [Usenet newsgroup creation] and, as a side effect, destroyed the community of people who had formed around it. I will never again invest my time and energy in a community that operates solely via a consensus process unless that community is small enough that consensus can actually work (which means not much more than twenty people). Consensus decision-making in large groups destroys communities and hurts people. … [O]n the surface, it may look like Debian also uses a consensus-based decision-making process. But while Debian decision-making has some problems, it’s much healthier for a few reasons that are useful to examine: … Debian operates less by mass consensus and more as a federation of semi-autonomous fiefdoms … there are several people in Debian who are perceived as having clear authority to make timely and relatively final decisions, who are almost never overruled, and who can therefore effectively end arguments … There is a well-established ultimate appeal (a General Resolution), the ultimate appeal process is very specific and concrete, there is little or no ambiguity or human interpretation involved in analyzing the results, it is time-limited, and it’s almost universally respected.

A project as large as Debian is cannot hammer out a consensus to reach a decision: if a consensus is required, ‘it’s impossible to ever end an argument, and there is no incentive for anyone to shut up. As a result, it is nearly impossible to get the decision-making to cohere into something that is timely, consistent, unambiguous, and final.’ Allbery believes maybe twenty people is the maximum for a workable consensus-based group. Twenty or less, fine, use consensus, more than twenty, use something else.

At this time, the TC votes look to be 3 for upstart and 2 for systemd. (upstart: Steve Langasek, Colin Watson, Ian Jackson; systemd: Bdale Garbee and Russ Allbery) Three TC members haven’t announced their decision, afaict.

If you aren’t subscribed to the debian-ctte mailing list, and you don’t want to read the bug thread via web mail you can download the thread in mbox format and use your favorite mail client to read the thread ( ‘ mutt -f bug_727708.mbox ‘ is what I do).

As to other projects, I’m an ignoramus about if a decision whether to move from sysvinit to something else was discussed transparently (publicly and with the opportunity for anyone to participate), who in the project decided, and how the decision was announced. If readers have information about other projects. please make a comment. Of course, if I’m wrong (especially if I’m hilariously wrong) about anything here, please correct me.