Evan Czaplicki, the creator and maintainer of the Elm project (a project that I love by the way) gave a great talk at Strange Loop last month called “The Hard Parts of Open Source.” I really enjoyed and valued this talk, and I encourage everyone who is involved in open source to watch it. You can find on YouTube here.
In particular, I got a lot of value out of his identification of three specific harmful patterns of behavior in the open source community, and of his geneological work tracing the origins of those behaviors through the history of the “hacker” subculture. I think I’m going to be utilising these patterns a lot when trying to understand unpleasant interactions I have in connection with my open source work.
In case some readers decide not to watch Evan’s talk, I want to highlight those three patterns here:
- “Why don’t you just..” People sometimes propose solutions to problems that are very obvious, but have nuanced and non-obvious problems. Often, these proposals are made with an intonation that the project maintainers - who have thought about the domain a great deal more than the person making the proposal - have completely overlooked this obvious solution.
- “On whose authority?” People sometimes will attempt to subvert and undermine the authority of project leadership. Sometimes they go as far as suggesting ulterior, untoward motivation for decision-making (usually having to do with the project’s financial sponsor). Sometimes they undermine the competence and capabilities of people leading the project.
- “All discussion is constructive.” While the previous two patterns were forms of outright attack on project maintainers, this pattern is more subtle. It is the attitude which ignores the negative externalities of discussion, the way that producing more discussion content can be harmful to the project’s goals. Sometimes it goes so far as to say that discussion containing negative behavioral patterns is still constructivebecause behind the attacks there might be good ideas.
As I’ve said, I think Evan’s talk is quite good and worth watching, but I do have an objection, which is why I’ve written out this whole blog post. In the final segment of the talk, it shifts from disecting these social phenomena into a sketch of a proposed discussion platform designed with the goal of producing more positive discussions.
Evan points out, rightly, that many of our discussion tools are not designed to encourage constructive outcomes: instead, they’re usually designed to encourage engagement by users, regardless of the outcome of that engagement for users (upsetting users is, in fact, a great way to keep them engaged). Evan proposes an alternative design which attempts to guide conversations toward positive outcomes. Setting aside whether or not this design would be good (I have no strong opinion), I believe that the talk would have been better rhetorically if the presentation had concluded in a different way.
As an open source maintainer in a somewhat similar position to Evan, what I want people who watch this talk to takeaway is an awareness of these problematic behavior and of the way the culture they participate in encourages these behaviors. I want everyone to think about whether they perform these behaviors and how they contribute to a climate in which these behaviors are normalized and encouraged. By turning the talk toward technical solutions at its conclusion, the audience has been enabled to refocus the discussion on technical problems, sidestepping their ethical responsibility to think about the behavior they are enacting.
Moreover, this kind of sidestepping from the ethical into the technical is a classic behavior in our community that I think is itself very problematic. It’s well known that the medium, tools and interface people are provided with has a huge impact on their behavior (and Evan explores this fact excellently in the talk), but that does not allow us to abdicate on engaging with one anothers as thinking beinds capable of value formation. Indeed, earlier in the talk exactly this kind of cybernetic solutionism is decried as one of the root causes of the harmful behaviors he is identifying in open source (citing critically Norbert Weiner’s offensive argument that emotions are “useless epiphenomena”.)
Watching this talk, I was reminded in some respects of another great talk by Allison Parrish, called “Programming is Forgetting: Toward a New Hacker Ethos”. In this talk, Allison similarly traces the geneology of some ethical beliefs common to the hacker subculture, identifying the ways they have lead to harmful outcomes. One difference, though, is that in conclusion she doesn’t propose a technical solution, but instead a new way of framing the ethical problems we encounter as part of our technical work.
Hoping I haven’t come off as too harshly critical in my remarks, I want to conclude with a restatement of my position as a productive remark. My hope is that people who watch Evan’s talk will not allow themselves to take the easy offramp into brainstorming the design for discussion platforms, but instead will sit with the questions Evan raises about conduct and culture. I hope that we can reframe our values within the community of open source software practitioners in a way that will contribute to more positive outcomes for all of us.
As an initial proposal toward that reconsideration, may I recommend that we recognize that there exists not only an open source techne, but also an open source ethos. This ethos will exist whether we think about it or not, I argue we have a responsibility to be conscious about how we maintain and develop it, just as we would be conscious about the maintainance of our technical artifacts.