Ian Jackson <ijack...@chiark.greenend.org.uk> writes: > Russ Allbery writes ("Re: support for merged /usr in Debian"):
>> What will kill Debian faster than anything else is to have every idea >> for changing something large, interesting, or possibly revolutionary in >> Debian be met with anger, derision, and attacks. > I know you are engaging in hyperbole, but really, I think this is > quite unjustified. I'm not actually intending to engage in hyperbole, and I do think it's a quite justified fear. Now, there is a legitimate debate about how much that's actually *happening*, and I concur with your critique that I may be overstating how much it happens. But I stand by my statement of the risk. For one specific example, it's become quite clear over the past year that systemd has achieved the same status as abortion debates in US politics. Not only is it clear that we will *never* stop arguing about systemd, opposition to or support of systemd has turned into a tribal identity marker for at least some people. Those who disagree aren't just prioritizing different things, or even just wrong, but are actively evil, horrible people who should be shunned. This is hugely demoralizing and hugely off-putting. While it is by far not the only thing that has led to me not spending as much time on Debian over the past year plus, it's certainly been a factor. This is obviously one of the biggest examples, but I don't think it's the only one. There are numerous large and small examples that show up when people want to change how something has historically worked. > In the last few years I have embarked on a campaign to change the way > Debian manages its source code. Of course it's just me, and even so > it's only getting some of my own effort, so it's not going as rapidly as > it could. > But I have had, in general, good support from almost all quarters. > Almost no-one has tried to discourage me, and there has been no anger, > derision, or attacks. The main limiting factor has been my own > available effort, and the complexity of the task. > Why do you think I have had such an `easy ride' ? I doubt it's because > I'm popular and everyone just naturally wants to help me. I believe it's because it's a different kind of change. You're not changing how Debian systems *work*. You're providing a new tool that can be used in developing Debian itself. This has always been much easier, for numerous reasons. One is that we collectively seem to be much more mentally flexible about our tools than about OS functionality. Another is that debates over tools don't bring in as many people who are not themselves currently contributing to Debian development, but who have very strong opinions about how Debian should function once installed. And a third is that it's far easier to maintain a wide collection of tools and let people choose, because tools pose fewer integration constraints. I was instead talking about changes to the Debian user experience, not just the stuff we use internally inside the project to produce Debian. And the pattern I've seen, time and time again, is that someone will come forward and say "look, I think this aspect of Debian is kind of broken, and has no real plausible path for getting better, and I think we should embrace this other way of solving the same problem." And is met by people who are furious about the fact that the thing that is currently broken is not being fixed instead of putting effort into something new. Often we can even get some agreement that the current stuff is kind of broken, and often they have no more idea of how we can feasibly fix the current system than anyone else. But the idea of admitting that it's broken and isn't likely to get any better, or indeed is likely to get worse, seems to be rage-provoking and produces these huge threads that degenerate into increasing anger, threats to stop using Debian, accusations that other people are destroying Debian by trying to improve it, and so forth. I think people have the mistaken impression that Marco and a few others somehow provoke a disproportional number of these arguments. I don't think they do. I think the difference is that Marco is willing to dig in his heels and keep reiterating (sometimes not all that poltely, I admit) the point he's trying to make, rather than backing down and going away. So you actually notice the argument. If one is less confrontational and willing to take the flamewar, it's much, much easier to just walk away. And then there is indeed no contentious argument... and also no one working on the problem any more, because anyone who was thinking about working on it looks at that discussion and thinks "wow, I don't want any piece of that." > It sees to me that it is because: > * I haven't been giving talks (or writing mailing list messages or > manpages) where I attack people's beloved tools, data formats, or > source code management practices. I could certainly give such > talks, but it would just serve to make me (more) enemies. In fact, you *have* done this occasionally. You've been vocal about things that you think are broken or insane or horrible, using terms like that. I remember hearing several of them in person. :) For example, I recall you not being much of a fan of how 3.0 (quilt) packages work. I think this is entirely natural when you're enthusiastic about fixing something. People usually don't get excited about fixing something that they think mostly works fine. It's the flaws that give one motivation to put a bunch of work into something, and expressing those flaws and one's frustration with them is a very natural part of that enthusiasm. I think people should have some understanding of that emotional dynamic. So I don't mind that you've talked about things that way, and I don't mind that Marco has talked about things that way. As long as it stays on the side of talking about bits of technology you don't like instead of people you don't like, it's not always the best communication strategy, but I think it's human and natural and partly a measure of enthusiasm. > I could mention a couple of other projects in Debian that are fairly big > changes: source-only uploads, and reproducible builds. It seems to me > that the folks doing those exciting and worthwhile projects are, in > general, getting support and encouragement from the project as a whole. > Even multiarch, which is very complicated and was fiercely contested on > the technical level, has now made it in and even involved relatively low > levels of aggro - even though on a technical level we are even now still > working through some of fallout. Of the projects that you list, the only one that affected how the system actually works, as opposed to how we do work, is multiarch. And I recall someone almost resigning from the project over it, and similar angry threads on the topic. And it's a very minor change to how the system actually works; the vast majority of users will never notice. I feel like I understand where you're coming from, and what ideal around change you're striving for. And certainly the folks working on reproducible builds have been *amazing*, a wonderful example of how to achieve change in Debian. But I think the criteria you're applying strongly discourages people from working on changes to the user experience in Debian because it's verbotem to ever acknowledge that a current implementation is not really working for some set of our users, may not be viable in the long run, or is likely to become increasingly broken. We get stuck on these really demoralizing debates about how some magical resources should appear to someone fix structural problems in old systems, because the idea of acknowledging that they probably won't be fixed and putting resources into something new isn't an acceptable change. Another good recent example (well, "recent"; the debate has drug out over *years*, which is typical) is the Debian menu vs. desktop files argument, which went all the way to the TC, got a TC decision, and now still isn't completely settled because there's a separate Policy argument. I agree that there are amazing people in this project who are able to push through change to the user experience, de-escalate the conflict, and even make people feel generally good about the whole process. My point is more that those people are *rare*, and if that's the bar that you have to pass in order to work on those sorts of projects, I think we're in trouble. There are a limited number of people who walk on water in that particular way, and while our project is blessed with a fair number of them, I don't think it's viable to expect them to be involved in every change of this sort. To me, this is far more of a social issue than a technical issue: we're intolerant of innovation, we're intolerant of enthusiastic people who step on toes because they're enthusiastic, and we *love* to endlessly redebate and reargue things in ways that is hugely demoralizing and feels hyper-critical. This is not entirely one-sided. I completely agree with you that declaring other people's much-loved code or configurations to be dead is not a good communication technique and contributes to this problem. But I feel like we have the balance set all wrong here. We're putting all of the weight of the emotional work and communication on the people who want to make changes, and that's how a project stagnates. I'll say it again: enthusiasm is fragile. If we slap down excited people every time they make intemperate comments out of enthusiasm, we lose SO MUCH energy. And I don't think we can afford to lose that much energy from the project. -- Russ Allbery (r...@debian.org) <http://www.eyrie.org/~eagle/>