This episode is sponsored by Instrumental application and server monitoring!
Instrumental’s goal is to help developers answer application performance questions FASTER, with a powerful query language, real-time metrics, blazing interface, and automatic metric collection.
Sign up for a free developer account at InstrumentalApp.com!
00:16 – Welcome to “Greater Than Crabmeat” …we mean, “Greater Than Code!”
01:02 – Steve’s Background, Origin Story, and Superpowers!
06:00 – Contributing to Open Source
11:07 – Succession Planning
20:12 – Organizing Groups of People in a Non-Authoritarian Way
36:23 – Avoiding Using Language with Political Connotation
Want to help keep us a weekly show, buy and ship you swag,
and bring us to conferences near you?
Support us via Patreon!
Sponsors Needed: Please download our Sponsorship Prospectus
and share it with your employers!
39:46 – Is anarchy equally accessible to everyone or is it only accessible/available to a privileged class?
43:11 – Problems with One-upmanship and “Shittalking” in Communities
50:39 – Seeking Out Different Environments and Building Environments People Want
Jamey: Leadership and how important it is to not put too much power in the hands of a few people.
Rein: How do you build systems of governance that don’t depend for their success on the goodness of the rulers?
Lorena: How do we learn to speak with others in ways that are inviting and create a safe space for us all?
Coraline: The notion of intentionality.
Steve: Jargon and exclusion.
Are you Greater Than Code?
Submit guest blog posts to email@example.com
Please leave us a review on iTunes!
CORALINE: Hello everyone and welcome to Episode 50 of ‘Greater Than Crabmeat.’ I’m here with the lovely and talented, Jamey Hampton.
JAMEY: Thank you, Coraline and this is the 50th episode of Greater Than Code and I’m here with Rein Henrichs.
REIN: Hello, thank you and I’m here with Lorena Mesa.
LORENA: Hi and it may have been a while but today we have a fantastic person we’ll be chatting with today. Steve Klabnik work at Mozilla, is in the core Rust Team and leave the documentation [inaudible]. He’s a frequent speaker at conferences and he’s prolific open source contributor and previously working on projects such as Ruby and Ruby on Rails. Welcome, Steve. We’re excited to have you today.
STEVE: Yeah, thanks so much. This gives me a lot of fun. I’m really glad to be here.
CORALINE: Steve, we’d like to open up the show with getting to know our guest a little bit better, getting to know the person behind the public profile and we generally start with the question, what are your superpowers and when did you discover them?
STEVE: That’s an interesting question. I actually have a story about this, which is I once had the worst superpower ever. I no longer have it though. A long time ago, I used to shave my head into a Mohawk and then I let it grow out so it kind of wore it down to the side, instead of being up in spike. It kind of looks just like I had part of my head shaved. This was also ended up being around the time that Skrillex became popular as the musician and since I also wear dark-rimmed glasses and all black, people used to joke that I look like Skrillex.
Now, at one time I was living in LA and a friend of mine was working at a music startup and he had a party to go to at Skrillex’s record label and there was a chance that Skrillex was going to be there so he invited me along because he thought that would be really funny if we could get a photo of me and Skrillex and be like, “Steve is different than Skrillex. He’s not actually the one.”
I walked into this party and I described it as having the most boring superpower ever, which is I could tell who knew Skrillex and who did not know Skrillex at that party because the people that did know Skrillex would look at me and just be like, “Oh my God, what a fanboy. This is so dumb,” and all the people who did know Skrillex would look at me and be like, “Is that Skrillex?” You just see either total contempt or total hopefulness in their eyes of everyone I saw at this party. That was my totally useless superpower. I no longer have that haircut so I don’t get the comparison anymore but it was pretty hilarious at the time.
LORENA: Just because I have to know, was there anyone that you were surprised [inaudible] hopeful eyes that you were Skrillex?
STEVE: I didn’t really know anybody that was at this thing so it was mostly just like a Saturday barbecue at this record label so I didn’t know anyone except for the friend that brought me.
REIN: I’m sorry. I’m just trying to imagine Skrillex at a Saturday barbecue because that doesn’t seem his —
LORENA: Like the place?
CORALINE: The barbecue sauce and the shirt, yeah. Big smear across his face.
LORENA: Hey, it’s LA. You’ll never know, right? I’m hoping you weren’t in ecopark [inaudible].
STEVE: Yeah, this is in downtown, unfortunately.
CORALINE: What about today, Steve? You still have superpowers, right? You’re still a superhuman?
STEVE: If I had to pick my superpower today, I guess it would be one of continuing to post on the internet far after I should stop. I should be able to get away from the internet but I seemed to be everywhere all the time and that is sometimes, very useful and sometimes, very harmful.
CORALINE: I have to confess that years ago I followed you on Twitter and you just overwhelmed my tweets streams and now you’re a little less and I don’t follow you anymore.
STEVE: Yeah, it’s cool. I used to tell people when I would meet them, they’d be like, “I’ll follow you on Twitter,” and I was like, “I’m really sorry.” Twitter is like just a stream of consciousness for me, basically so it is a lot and I tend to fall people who also tweet a lot so it’s totally weird how there’s this different segments of Twitter. It seems good.
LORENA: So mental note: watch out when 280 characters are starting in AB testing because you may completely overwhelm my [inaudible].
REIN: Can I tell a funny Twitter story? It’s a short one. A friend of mine was talking to one of his friends and he said, “Do you know, Rein H?” and his friend said, “The Twitter socialist?” I really feel like my brand is getting out there and I’m really happy about that.
JAMEY: That should be in your bio, for sure.
STEVE: I tweeted earlier today, “Can’t wait to start all my tweets with ‘—PGP signature—‘ and there’s sign all of my tweets with the extra space.
CORALINE: I think my favorite suggestion for how to use all the extra characters was bringing back UseNet sigs.
JAMEY: My Twitter story is that the first time that I was going to a phase where I was putting a lot of jokes in my bio and my first conference that I was speaker at was AlterConf and I had totally forgotten that a few days before, I changed my Twitter bio to ‘Christian, husband, father,’ so everyone who saw my first conference saw and then want to follow me on Twitter. They just saw my face and it said, ‘Christian, husband, father.’
CORALINE: Nice. I tweeted out a job opening at Stitch Fix and was reaching out specifically to marginalized people in tech and then my director pointed out that my Twitter name was ‘abrasive AF.’
LORENA: That was so great.
JAMEY: I like to read AF as ‘as foretold.’
CORALINE: Nice. Steve, you’ve been a very strong presence in the open source community for a very long time, for as long as I’ve been aware of you, at least and a prolific contributor. I often wondered if you ever slept. What got you started in contributing to open source.
STEVE: This is basically, entirely by accident. Long ago in Ruby world, there was a person who went by the name ‘why the lucky stiff,’ like W-H-Y, the question. Then he dropped off the face of the planet. I had really, really admired his work. He actually came to the town where I was living at a time but I couldn’t show up and I was like, “I’ll just catch him some other time,” and then he disappeared so I never actually got to meet or talk to Why. But he disappeared and I thought his projects are really important. At the time I was really heavily focused on programming education and teaching people how to code. That’s always something I was scared about at the time, that was pretty much everything.
His biggest project in my mind and the thing that all the rest of his work was building up to, is a thing called Hackety Hack. Hackety Hack was basically a Ruby IDE but it also contains interactive lessons for learning how to program in Ruby. You actually started off with the entire DSL just for Logo. You started off by writing Logo code but in Ruby instead and then it would do all the Logo stuff and then, eventually it gave you the power of the full language.
That was really important and I didn’t want it to die so when it disappeared, the broader Ruby community kind of said like, “Who’s going to pick up all of his old projects,” and I decided that I wanted to help whoever came along to work on Hackety Hack. I basically said to the person who is handing out commit bits on these projects, “I don’t want to be in charge of this but I would love to help whoever comes along and does want to be in charge of this,” and he said, “Cool. Here you go,” and then no one else showed up. I kind of just de facto became in charge of Hackety Hack.
I had a lot of struggles with it at first. One of the things about Hackety Hack is it’s technically a C program with the Ruby interpreter embedded inside of it so it reach really deep into the guts of Ruby and this was Ruby 1.8 and for Ruby 1.9, they completely rewrote the interpreter entirely so all that code was completely invalid. Plus on a Mac, it use bindings to the old Carbon APIs and I had just gotten a shiny new MacBook that had the first version of MacOS that no longer contain those deprecated AIs.
The first six months of working on Hackety Hack was me just trying to get the darn thing to build at all and somebody who did Ruby all the time, I was not really that well versed in fixing C compilation errors and all that kind of shenanigans. That was really the initial part of it and that’s where work eventually led to me talking at conference. Somebody was like, “You should submit a talk to RubyConf about this,” and I was like, “The people want to hear about this at a Ruby Conference. I don’t know,” so I submitted it and people were so excited, I got asked to speak at a couple other conferences about it. From there, I continued working on Why’s projects. That sort of the origin story.
CORALINE: When I started with Ruby in 2007 or 2008, one of the first resources I came across was Why’s Poignant Guide and that was instrumental in me learning Ruby. If you haven’t seen it, you should track it down. I think it’s still available all over the place but it’s probably the most fun introduction to a programming language I’ve ever seen. It’s still sort of a cartoon, it’s a very tongue-in-cheek, it’s very whimsical but it really gets to the heart of what makes for Ruby-Ruby and it’s an amazing resource. I missed Why. He did a tremendous amount for the Ruby community in his formative years and I hope that wherever he is now and whatever he’s doing that he’s successful and happy.
STEVE: Same. To continue that story briefly, eventually I had to stop working on Hackety Hack and Shoes to underlying GUI toolkit. There are still some people working on Shoes now but Hackety Hack is effectively dead and I had a lot of conflicting feelings about working on this project because you’re basically taking someone else’s life’s work and making it your life’s work. I spent a lot of the time in the early days being like, “What would Why want me to do with this project, but if he was gone and it’s my project now then I should have done what I wanted to do with it. I have said a really complicated feelings so I’m sort have gone from all that stuff now and it was really big complicated.
I’ve lots of feels and eventually, he did come back and publish another work. I had no title but I call it, ‘Closure,’ and I also gave a talk about it because similar to the Poignant Guide, it is full of whimsy and instead of teaching programming, it’s more personal. It’s more of a pure story than it is a learning programming kind of thing.
CORALINE: I think one of the things that that story [inaudible] Steve is that with a lot of projects, at least in the Ruby world and I imagine in another communities as well, they started as one-person efforts. Eventually, people lose interests or people move on and there isn’t a lot in terms of succession planning for these things. That’s why organizations like Ruby Together have been formed to say, “Oh my God. This person who is working on Ruby Gems or whatever is no longer contributing anymore and this is really critical to our infrastructure. Somebody has got to do something.” Do you have thoughts on succession planning?
STEVE: Yeah. My thoughts are mostly I am often the successor and then end up abandoning it myself. That’s what happened with Hackety Hack. That also happened with Resque so that was originally written by Chris Wanstrath at GitHub and then went to Terence Lee and then went to me and now, I have handed it off. All of those things were like a situation where at some point time, I showed up and was like, “I want to work on this now,” and they’re like, “Thank God. Somebody wants to do this. Here, have the keys of the kingdom.” It’s hard and there’s no plan.
It’s tough to even have a plan though because you can’t know what people are going to have the time and energy to work on, both personally but also professionally. Part of the reason why I’ve been able to do this for so long is I’ve always worked at jobs where work on open source is part of that, like part of the job so if that was not true, I definitely would not have gotten merely as involved in open source and that’s a huge barrier, I think to a lot of people being able to work on open sources.
I made an analogy before and it’s like you don’t ask a jackhammer to continue jackhammering the sidewalk on the weekend for fun. This is our professional job but it’s also a thing we do for fun. It’s hard to know what life has in store in the future. I don’t know… Like succession stuff.
CORALINE: That brings to mind something, Steve a criticism that, I think [inaudible] makes an open source quite a bit is that it is a capitalist exportation of free labor.
STEVE: Absolutely. There is an old interview of me that maybe the internet is really mad a while back where I said that open source is a mega capitalist conspiracy. What I meant by that was not like a conspiracy in the sense of a bunch of men huddled around a table in some dark room, making evil plans but a group of people whose interests aligned them to work together against other people. This actually goes back to the foundations of open source.
Open source itself, again part of the reason why I said open source specifically is that open source was created as a way for companies to profit off of free software and it was deliberately neoliberalized in general but made a political and immoral and less restrictive so that companies could get richer. There’s a really great article in The Baffler called The Meme Hustler about this. It goes through some of these history. It was like originally created by mega libertarians so the companies could steal your work.
CORALINE: You said apolitical. Do you really believe that?
STEVE: That is what they presented. I don’t believe that anything as apolitical, personally. I think that liberalism presents itself as being apolitical as a political strategy.
LORENA: I think though the metaphoric to what you’re talking about earlier is around the idea of a jackhammer and really, we don’t give pause and think about the where’s that line, where’s me, where’s my labor and if you bring that with you or there’s kind of a continuity because it’s a part of your identity. I’m curious, can you give us some idea as having been the successor, what are some lessons from the trench that you’ve learned if you are talking to someone who might be taking on that role as a successor when there isn’t a clear succession plan? Maybe if not lessons, maybe just some things to observe or watch for.
STEVE: I think that part of it is knowing why you want to get involved in open source in the first place. It’s really easy to just like want to contribute to open source because that’s a cool thing or something or maybe people told you that it’s fun. But I think that if you have a strong understanding of why you want to do it, then that can be helpful in preventing things like burnout. It can also induce burnout. For example, the reason I work on open source, and generally sort of what my career trajectory has been, is that I want to work on increasingly bigger and bigger things that affect more and more people, to have more and more impact on the world.
For me, like Resque for example, I don’t actually care about Resque. I don’t have a passion for a job queue, server or projects but I do know that Resque was being used by hundreds of thousands of people and had no support or whatsoever so I figured I could do a lot of good by getting involved with Resque and helping out. It’s also why I have used to work on applications and then I started working on libraries and then I started working on frameworks and now, I’m working on a programming language and all of those things are moving down the stack of being more fundamental and therefore, reach more people.
If I write a web application in Ruby, only my users of my web app are going to be affected by it. If I write a library, then some other people that are in Ruby will be able to actually use my work so I go from an audience of basically no one to an audience of a lot of people. If I write a framework and gets popular, a larger chunk of programming community gets affected. If I work on a language, then literally every user of that language is affected by my work. That’s just me but I think that knowing why you want to do it can help.
JAMEY: I was really struck by what you said earlier about taking someone else’s life’s work and then making it your life’s work. I wonder if you have any advice on how to hit the right balance, I guess between being respectful to the original creator but also, bringing your own unique perspective to what you’re doing?
STEVE: Yeah. I was reading a blog post recently and I’d wish I remembered whose it was but I can’t remember it at the time. But the point of the post was communities are formed by creating shared values. If you want to work on another project and bring your attention to it, I think that by understanding the values that the project was originally created with and help you figure out what your answer to the situation was.
STEVE: Yeah. Maybe. It might have been. I’ll find it later. Maybe, you’d look at the show notes and maybe we’ll laugh because it actually was you. But for example, taking over the Hackety Hack, Why’s core values were fun and whimsy and learning so if I had made Hackety Hack fitting where there was an ad on the sidebar that was like, “Take your programming lessons with whoever and started like making money off of it.” That would be an inauthentic continuation of the projects because it would be going against what they originally wanted. The way that I would express fun and whimsy and learning is different than the way that Why would do so, so it is like making my own project to a degree but it’s still within that original framework and vision.
Sometimes, things are just broken and you have to start over. I also think that if your vision of the project is significantly different, then forking it and renaming can be a really great strategy to making a project your own, while saying explicitly, “We have a significant enough break from the past that we’re now turning it into this other thing so I think that also can be a useful tool.” You don’t have to be totally bogged down by the weight of your predecessor like if it’s yours, you can do what you want with it. Sometimes that just means moving on and sometimes that means really significant changes. It just really depends.
CORALINE: You think that happens in response to communities becoming toxic?
STEVE: I have definitely seen it happen in response to community becoming toxic for sure. IO is the latest instance of that that I can think of. The other funny thing about this, which I’m sure all of you appreciate but I think it’s worth reiterating is that none of this has anything to actually do with the programming or code or textual aspect of these projects. That’s one of the reasons why this is difficult. I often think, if you go to school for this job, you’ll learn all these things but those are not the actual skills that I use every day. I’m not trained in conflict resolution or managements or any of these kind of things but are really, really important to running these kinds of projects.
CORALINE: That’s why this podcast exists. We don’t talk about tech. We talk about what it takes to make tech and the people behind it. That’s right along within our values.
STEVE: Yeah. I thought it was worth reemphasizing. Yes, clearly already true in this room.
REIN: One of the things that we talked about last week that everyone will get to hear soon when we release that episode is how do you organize a large group of people in a non-top down hierarchical authoritarian way. Let’s say you have an engineering group that has 150 people in it. How do you get work done? How do you collaborate in an effective way without resorting to totalitarianism?
STEVE: There is this article that is very old and I always get the dude’s name wrong. I always think it’s one of them and it’s always the other so it’s probably incorrect but I’m going to go with Bakunin because I think that’s right but I might be wrong. A famous quote from a noted anarchist, Bakunin back in 1800s and the essay is called, “What is Authority.” Authority is obviously a question that anarchist are really concerned with. Basically, the famous part of that essay is there is a difference between leadership and authority. You can lead as a leader. A lot of people call this ‘leading by example’.
An example he uses is a bootmaker. He’s like if I needed a new pair of boots and I go to a bootmaker to buy them and I ask his opinion on what boots I should buy, is that him having authority over me or am I taking into account the work that they have done and that’s a form of leadership. This person has worked to make boots their entire life, therefore they have expertise so I’m going to follow their lead when that comes to these boots or whatever.
Falling back to just ‘I’m in charge and therefore you must do what I say’ is not an effective way to lead people. At least, I don’t believe it as effective way to lead people. The best way to do it is to demonstrate what you want other people to do to inspire them to do the same so I feel like that is a much less authoritarian means of leadership, rather than just like, “I’m the boss so do it.”
CORALINE: Recently, as of the recording day of this podcast, we got into a Twitter battle with Robert Martin better known as Uncle Bob. It struck me that we hold certain people in our various communities as leaders, even when they don’t demonstrate leadership capabilities or even good judgment.
JAMEY: Yeah. He’s a jerk face and also, solid as in very good. Go at me.
STEVE: I believe I was involved with someone adding you on this very topic so I feel you.
CORALINE: Yeah, so how do you address when leadership is granted to someone or grandfathered into a leadership position, when they really have no business being a leader?
STEVE: I think this is extremely tough and it leads to all kinds of problems. I think that one of the best ways to defend against this is to not give that one individual that kind of status in the first place. It also ties in honestly, to the succession thing we’re talking about earlier like a long time ago, there was a Ruby Conference in Athens, Greece. I went there. I was really excited and one of the things that some of the people there had told me, they were like, “Steve, we’re really worried about you. You really need to take some time off and chill out. The reason that this is true is that you do so much right now in the Ruby world and if you burnout and disappear, then stuff is going to get bad. If you can manage to give away some of that, the system will overall be more sustainable.”
They were simultaneously concern about me as a person but also about this question of sustainability. I think when you have these people who are leaders that have too much specific power, then that can lead into these kinds of situations where it’s like, “What do you do to remove them? They’re the person in charge of everything so you can’t get rid of them?” Or sometimes communities keep around people who are toxic because they are so pivotal to the project that removing them would effectively be the death of a project so the solution there is to not have been relying on one individual so heavily in the first place.
Obviously, this is difficult when most open source projects are literally run by one person so obviously, they just by default, are completely in charge but as projects grow, I think that not putting the power in the hands of one person is most important. Basically, I don’t want to work on any project that has a BDFL anymore. I think that leadership model is inherently flawed.
CORALINE: That’s ‘benevolent dictator for life.’
REIN: Didn’t something like this happen recently with the DSA where I’ve actually only ever seen his name written — Danny Fetonte?
STEVE: It’s not really inherently about that. DSA is Democratic Socialists of America. They had a situation recently where the Austin chapter elected a person who was a cop to be on their leadership. That became very controversial for a number of reasons. To me, it was not so much about him having too much power. It was more of a question of like, “Can you put someone in charge of a socialist organization who is a member of the police?” I guess that could be construed as police have too much power in some sense.
REIN: Yeah. For me, I was more referring to the way that they went about trying to remove him from power and trying to deal with that situation.
STEVE: Part of the problem was that he was elected and then there was questions about whether or not he had covered up the fact that he was a cop. In his little advertisement for people to vote, he had said that he organized government employees when he could have said organized police and things like that. Then there’s the question, which came out after the vote like, “We have a democratically elected leader. Many people do not want him anymore. What do we do?” I don’t follow the DSA close enough to fully appreciate the nuance of how that process went down. I do know eventually, he decided to resign and kind of complained about it as he did so.
CORALINE: There’s one thing for the organizations to have a structure like a no-confidence vote or something like that but I think a lot of the leaders, at least in open source, they’re not there because they’re elected. They’re not serving at that… Oh, shit. What’s the word?
STEVE: Pleasure of a queen?
CORALINE: They’re not serving at the pleasure of their communities. They just happen to be the person who created something or they happen to be the person who stepped into that role or they happen to be the author of a popular book and you can’t remove them.
REIN: And these communities are also generally built by people who have no idea how to manage communities like that. They just accidentally happened upon that role for other reasons.
LORENA: That’s an uplifting metaphor but I do like to think about it as kind of like the fish at the bottom of the barrel. I think when people get so passionate about things and you get much more of these smaller group of people who are very, very opinionated about things, that regrettably how I see that. I’m curious, have you ever experienced anything like that yourself, Steve or if not, how can you be mindful of observing, “We have someone who’s grandfather [inaudible],” and how did you start a discourse to really push that idea at the top, like why are we doing this, how do we think about this, how do we tried to maybe change our position toward this pattern and moving at a different direction.
STEVE: That was really tough because in many instances, the happy path here is that leadership is reflective enough to understand that this is happening and then address it. For example, Rust, the programming language that I work on, originally had a person who created it. His name is Graydon and Graydon is a wonderful person and as such, he dislikes the BDFL model and he explicitly said, “I am not the BDFL of Rust. That’s not a person I want to be,” so when it became bigger than him, he end up creating a team of people to share the leadership responsibilities so we had a core team for a while and that’s pretty common on open source projects.
Eventually, the core team became a bottleneck, I guess is the right way to put it. It turns out that the project was working so fast that when you require all major decisions to go through, even a group of we have eight people at the time, that can become a significant hindrance so we actually restructured our governance so that now, it’s like a federated governance structure instead so actually, 60 people who are in charge of Rust. That enabled us to move forward in a good way but also, it’s like acknowledgement like, “One person or group of people has too much power. Let’s figure out how to spread that around a little bit.”
The first one was because he was expressly mindful of this. The second transition was partially us recognizing it. I was on a core team at the time and partially that enough people in the community who are agitating for it that made sense to do so. That’s ultimately the way that it happens if leadership is not insightful enough or also just doesn’t care because they don’t want to give up the reins, you pretty much have to agitate for change and if the powers of [inaudible] that don’t want to listen to you, then there’s a historical solution [inaudible] and that’s happened to a lot of projects recently.
REIN: Also known as revolution.
STEVE: Yeah, right.
CORALINE: It sounds like in the case of Rust, there was a strong sense of shared values, going all the way from the originator, to the core team, to the group of 60, to the federation and then —
STEVE: Yeah. He had a code of conduct in the first commit, in the very first part of the repo, for example so it’s spelled out from the beginning.
CORALINE: Then in other cases, there’s a mismatch either by other people coming in the community and a different idea of what the community values are that spreads, maybe from the grassroots up.
STEVE: And that can be both good and bad. For a long time before Rust 1.0, we’re worried like we really like the community we’ve built but as we bring more people in, how can we be sure that they’re not going to be jerks basically, because sometimes that’s a thing. People get involved and then it turns out that you don’t get along and things are bad. Every community has problems. I’m not going to say that Rust is free of problems but I guess, I’m just saying like it’s not just the leadership is bad, therefore I’m an agitate for good things. Sometimes it can be, “Leadership is good but I’m a bad person so I’m agitating for bad things,” and you also have to deal with community members who want to take the project on the direction of the rest of people don’t want to.
CORALINE: I worked in a lot of startups and I’ve seen a similar thing happen where at the beginning, there’s this sense of shared values and they start hiring a lot of people. Then you hire a lot of Chads because the market’s flooded with Chads. For those who don’t know, Chad is our playful term for the 25-year olds software developer who has no awareness of systems of oppression or other social justice issues. He’s very focused on the code and believes in meritocracy.
As Chads come into your organization, even well-intentioned Chads, you have a values draft. I think some of that comes down to communities not knowing how to communicate their values, not knowing how to express their values in a way that new community members can evaluate maybe before joining and evaluate their own behavior as they get involved to make sure that they’re fitting in with those cultural mores.
STEVE: Yeah. I think that sometimes too can get even more complicated in the sense that sometimes values are clearly articulated but it feels like no one understands that that’s true. The way that I feel about Rails is that David has been extremely upfront about his values and where wants the project to go but people don’t seem to notice. I got involved in Rails and had a very different idea of what Rails should be and what it should work on and that’s one of the reasons why I ultimately stopped working on Rails because I realized like, “Wait a minute. David has been saying for years what he wants this project to do and I disagree with that so what am I doing?” I feel it’s very strange sometimes, then you realize that there can even be people who project values onto a project and they’re not even in the stated ones, even if it’s not actually muddy and it expresses itself in a number of different ways too.
LORENA: I’m a little curious because you mentioned that the core team starts to recognize itself as a bottleneck. I’m curious because one thing, I think that’s [inaudible] Python community is you might have people who’ve been working with a tool or working from language for a long time and they just don’t have knowledge of where to go [inaudible] their concerns or where they can bring their [inaudible]. I’m serious, was this more be self-directed [inaudible] or was there kind of a push and pull from multiple faces? Can you walk us through that a little bit?
STEVE: Yeah. Part of the reason that this happened is a little bit of both is sort of the short answer. Longer answer is that Rust institutes this process called the RFC process on major changes to the language. Now, they can’t be backwards compatible so major additions to language, I guess at this point. Historically speaking, the core team was in charge of accepting or rejecting any RFCs. It was not just a feeling that was true but you could literally look at the metrics of, “There are now 60 RFCs that are waiting for us to review. There are 100 RFCs that are waiting for us to review. There’s 120 RFCs…” We’re clearly not keeping up with this influx of things that need to have decisions made on them.
We already had structuralize the way that people wanted to make changes and that made it easier to notice and this was actually happening. Again, this goes back to this diffusion of leadership, like even people on a core team are required to write RFCs. No one gets to just make whatever changes they feel like it so it’s all like pseudo-democratically designed in the first place. That’s also helpful in terms of not letting things get off the rails but it was really that but the RFC is piling up is like, “Oh, man. We clearly can’t be the only people making a decision here.”
JAMEY: I’m curious of the team of 60 people. I totally get why that’s convenient for not creating a bottleneck. When you’re giving so many people the keys, how do you prevent a single person from making unilateral decisions that other people don’t agree with?
STEVE: To get slightly more of the details to have this work so I think it’s relevant, there still is a core team and our job is basically cross-cutting concerns and big picture vision and stuff. Then in theory, resolving ties if there are tie breakers. One of the requirements for spinning up a team on Rust governance is that a core team member has to be on the team. They start the team off. This is partially to keep tabs on this kind of thing but also, if your job is cross-cutting concerns, you need to be paying attention to everything all the time. If that was the whole core team’s job and that still would reintroduce the bottleneck, the way that you do it is have someone whose job is basically like, “This probably needs to be brought to other teams as well because this particular initiative is equally about the docs team and the language team,” or whatever and making sure that coordination happens.
REIN: What you’re describing there, it sounds a lot like syndicalism.
STEVE: Yes, it is. I don’t say these things to those people. They don’t know. I like to joke that Rust is an Anarcho-Syndicalist Project but we just don’t use those words at all because it’s a structure that works. It was never expressively that and in fact, most of the people, I also should say that the Rust teams in general are politically, very ideologically diverse so it’s not like everybody on the Rust team is super anarchist or whatever. It just turns out that people that think about how to diffuse power have some solutions for how to do that so you use their ideas and modify them. We’ve constantly evolve the way governance works and are going to continue to do so in the future.
LORENA: I actually am very, very interested if I say, I might be describing these things and we’re seeing here some consensus like, “You’ve got anarchism.” I’m curious, are you purposely intentful on not using words that may have political connotation when you’re working in maintaining and a project or making decisions? If you are purposely trying to stay away from like that, I’m curious why you may try to stay away from language that might have a little bit of a political charge to it.
STEVE: I am expressly focused on not introducing this kind of thing into Rust spaces. There’s a multiple reasons for that. The first one is that you describe as a charge and that’s true. I think that a lot of people, if it was described in those words, would never want to do it but when it’s not described in those words, do and I care more about the doing than about using the right words. That is part of it. It goes back to my lead by example stuff for sure in the past to some degree.
The other reason that I do it honestly is there’s two other good reasons. I’ll do the boring one, then the interesting one. The one that is boring is that it’s actually off topic, I think. This is really complicated and I’m going to say it in the same broad terms and it’s maybe a little weird but bringing expressed politics in that way into an open source projects leaves to derailment. I don’t mean that in the sense of any kind of politics. Again, literally everything is politics like this is inherently politics. But when you use words that people have strong reactions to, it can distract from getting the goal done and I don’t always believe that that is the right way to do it. I generally think that I’m known as the person who’s usually being too over the top about bringing these kinds of things so I definitely agree that different strategies work in different times and places. But I think that it would actually obscure getting the work done, basically is a second reason.
The third reason is because as someone who has relatively extreme political views, given that I’m someone with a minority position on certain political at things, it’s simply self-defense. I don’t need people coming after me due to my personal politics. One of the easiest ways to prevent harassment on this angle is to just not ever actually use those words and just do my best. Then that way, I take less crap for it. I think those things are all intertwined.
CORALINE: That kind of lead to a new question that someone in our Slack community has. Before I get to that, I want to say Greater than Code is listener supported and you can support our program and support conversations like we have and received, by going to Patreon.com/GreaterThanCode. Pledge at any level. You get access to our Slack community, which is wonderful. We are also looking for sponsors and this episode is actually sponsored episode and sponsored by the Instrumental application and server monitoring platform. Instrumental’s goal is to help developers answer application performance questions faster with a powerful query language, real-time metrics, blazing interface and automatic metric collection. You can sign up for free developer account at InstrumentalApp.com.
That being said, Steve we had a question from someone in our wonderful Slack community about whether you have opinions on whether anarchy is equally accessible to everyone or only accessible and available to a privilege class?
STEVE: I think this is also probably a good time to briefly mention that I don’t consider myself to strictly be an anarchist. This is probably too long to get into at the moment but I used to and I don’t anymore. I definitely agree with the sentiment overall that there is a tendency on the left to rely on what’s effectively a meme culture so it’s like, “Oh, you recognized this book written by that one dude that one time,” or, “You know this slogan that has been around forever and if you don’t, you’re not a real leftist.” I’m shaking my head while I’m saying this basically and this creates a culture of exclusion, specifically. I think that that is definitely a problem on the left.
It’s also difficult just in general. This comes across in programming a lot that jargon is necessary for people to have high bandwidth communication between experts but is therefore also exclusionary into nonexperts and this is a question I grappled with a long time with Rust for example and that whole shenanigans. That’s deliberately exclusionary because once you get to a certain level on a topic, you want to not constantly re-litigate the basics so you invent jargon so you’re on the same page with someone. But then, when it becomes all about the jargon, you’ll leave out all the people and you don’t get people room to grow into it.
I definitely think that anarchism and other forms of leftism have a problem with being exclusionary. I don’t think that it’s intentions but as we all know, that doesn’t actually matter. It’s just is so —
CORALINE: Intentions [inaudible] magical.
STEVE: Yeah, exactly. I think that understanding is not intentional. It’s a way to lead a path forward, rather than an excuse for the way that it is currently. To some degree, that’s why I try not to get super into the books or citing a specific details about, “Did you read this and that?” Because then, lots of people have written lots of books and lots of topics and they disagree with each other. I’ve had arguments that people that are basically both of us just citing books that were citing each other back at each other before and that’s boring and not interesting and not productive. I definitely feel the left needs to work on this as an issue.
REIN: It’s like that scene in Good Will Hunting, in the bar.
STEVE: Yeah, definitely.
CORALINE: What scene is that?
REIN: There’s a scene where Matt Damon’s character encounters a pretty snotty college bro dude who tries to humiliate Matt Damon’s character’s friend by being smarter and then Matt humiliates him by being smarter and it’s all like, “You’re in this year of history so you probably read this book. Well, next you’re going to read this book, which will demolish the position of the previous book that you read.”
STEVE: Specifically, he wasn’t even trying to be smarter. He was repeating an argument from a book as his own argument and Matt Damon’s character is like, “Oh, I saw you read that book, which is why you’re parroting its argument. Well, guess what? In the future, you’re going to learn that some other books demolishes that.”
CORALINE: Do you think that bleeds over into these sort of jargon ideas like one-upmanship? Do you that bleeds over into conflicts within communities but also between programming communities?
STEVE: Definitely and it also bleeds into our leadership celebrity culture example because again, if jargon is exclusionary, a great way to be perceived as an expert is to create new jargon because then if your jargon catches on, you’re the person who coined the term so you get to be the authority of it forever and no one can ever question your interpretation of that particular thing because you’re the one who said it the first place.
STEVE: Yeah, or Rust or SOLID. This has reference earlier —
JAMEY: You guys are saying jargon words and I can also say jargon words. I mentioned thinking about how the person who coined the term ‘GIF,’ thinks incorrectly that it’s pronounced as ‘JIF.’
REIN: Fight me.
CORALINE: This can definitely lead to lots of problems interpersonally. This is something I’ve been thinking about a lot, which I’ve been referring to as ‘shittalking’ between programming language communities, is that often new communities and their excitements of their new technology will create new jargon. Then people get old man at the cloud about it and they don’t like the new jargon so then they get upset about the jargon and start criticizing it for no good reason. This breeds contempt, which I think is very harmful to communities overall.
There’s a book thing but maybe I’ll explain it without referencing whose ideas this is because again, we’re trying to be not exclusionary here. I read a thing one time and it pointed out this difference between, you can express values in an active or a reactive way. Active values are all based on like, “I believe X. I want to do Y.” Reactive values are like, “That person’s values are dumb and that’s what my value is.” A reactive value is inherently about building your values off of what you perceive to be the problems of others values.
This is what I think that Rails got wrong with Node and also as one of the examples of the situation, again as somebody who’s had a good job of articulating his values, DHH really values tearing down other programming languages and language communities to the point where I have been on stage at a Ruby conference and been like, “You all do know that you’re not the cool kids anymore. You making fun of Java, makes you sounds really out of touch.” It’s a bad look for a number of different reasons so —
REIN: At the O’Reilly conference with 2000 people.
STEVE: Yeah. It’s one of those things where this then gets perpetuated and causes the repetition. Fundamentally, it creates and in-group and directs hate towards an out-group and if you want to become part of the in-group, you also target hate at the out-group as a way to gain social currency. That creates this really nasty feedback loop that is not only abhorrence ethically but also I believe leads to incorrect technical decisions. I think that’s one of the reasons why Rails has kind of fallen behind the wayside because DHH expressly does not care about investigating other people’s stuff. He misses out on a lot of things that are positive about those things that could help build Rails, for example. It seems like he’s chilled out lately, incidentally I’ve heard. Again, I’m also basing this on multi-years ago of situation of him.
One of the reasons I stopped working on Ruby is that I feel like it made me unhealthy as a person. It’s not because Ruby in general is not great and Ruby people aren’t generally great but there is just this culture of trash-talking other projects and it made me a jerk frankly and I didn’t like it. I saw this opportunity with Rust to sort of reboot how I interact with people in many ways because I didn’t want to be a jerk but my jerkish tendencies come out, instead of making them go away. We’ve been really mindful in Rust world that I will just not say something if I don’t like it, instead of saying that it’s the worst thing ever created, basically and it’s just a healthier way to be for all around in general for everyone involved.
JAMEY: I totally agree with everything you just said, Steve and I think that negativity breeds so much more negativity around it. People do this not in the tech community too. I’m using it in real life with air quotes around it but I know a lot of people who literally define themselves and their personalities by like, “These are things I don’t like,” instead of like, “These are things I really love,” and it’s so tiring to listen to people talk like that. It’s not interesting to have conversations about that. I think the same thing is happening in our communities and it’s making our communities tiring and uninteresting also.
LORENA: Yeah and then, I guess just because we’re all looking at it from different vantage points but I think what’s been really interesting to me as I come to arrive at spaces I felt comfortable, it is actually when I learned probably incorrectly early on in my programming career that if I didn’t come with strong convictions, if I wasn’t there with the five things to save for every one line of code written, that I was doing something intrinsically wrong. That kind of world view that outworker question to understand why as a programmer, that’s a very precarious situation at the end. It’s very fascinating to hear your story from working with Rails to growing into observing what it is that truly makes you happy and maybe sometimes, the absence of wrong positions that actually allows us to get more comfortable. I’m not sure if that’s exactly giving justice to what you’ve expressed but I think that there’s something there that we could dig more into it.
JAMEY: You don’t have to have a hot take on every single thing.
STEVE: Yeah and it also comes with the recognition that because I’m this way as a person or as Coraline put it, destructive tendencies in this regard, it also means that I will occasionally slip up and I need to, either apologize for those things or just figure out ways to catch myself from going into that thing. It’s also really tricky because criticism, I think is important. It’s a matter of what the criticism is. It’s not about not ever saying that something is bad because there are bad things but there’s the right way to go about it and a wrong way to go about it. It’s more complicated than just simply nothing is ever wrong. This give me a whole another gigantic long thing so I just leave it that, I guess.
REIN: You mentioned earlier about you chose to move to the Rust community — I think I’m paraphrasing you inaccurately here — because you felt like the community your in before it enabled these behaviors that you didn’t like and you wanted to move into a community where this behavior enabled the way you wanted to be. I think that’s really interesting for me because we know that humans mirror each other. We mirror our emotions. We mirror our behaviors. The way a community acts has a lot of influence on the way its members act.
When you see someone around you doing something, you think it’s okay. It becomes part of the norms. I guess my question is how do you gain the sort of metacognizants to realize that about yourself and to want to seek out a different environment? And how do you build such an environment where the behaviors that are unable are the wants that you want?
STEVE: I think this ties back in all of the other things that we had. This is an excellent thing. One thing I’ll say is that I didn’t actually come to understand this until after it had happened. I made this move for a number of reasons and it only later came to me that part of my underlying motivation were these aspect of things. Part of that was also, I had a couple of personal situations that caused me to reflect heavily on some things. That was also part of, not only the big move of things but also realizing the stuff that was a thing that made me reconsider a lot of stuff. That’s the metacognition part of it. It’s not like everything you do can ever be thought through. Sometimes, you’re just realizing why you did a thing after the fact.
In terms of building this kind of situation, I think that this goes back to early discussions about intentionality and values building. Again, Rust is not perfect. We have many flaws in this, just like anybody else, have tried to lead by example and bring other people on in leadership positions who share that same values that we hold. If somebody was trash-talking other people’s projects all the time, we would not put them on a team or take them off a team, if that was a thing that turned into that. I think that leading by example in that way holds it together.
Things are still relatively young so there’s always time for things to break and also, things are not perfect but I think that the problems that I see in the Rust world are like an extremely toned down version of the things that I used to feel happens in the Ruby world so it’s not like, “This person is being a massive jerk.” It’s like, “This person consistently gives unstructured criticism, instead of structure criticism and it would be much more helpful if they would give structured criticism instead.” It’s a difference of degree.
I realized sometimes and I go back and look at historical things, I look at GitHub thread or Ruby Mind thread or something and be like, “I used to think this was normal.” The problems I have today don’t seem nearly as bad as the ones I had back then because it’s not as intense but some of that just comes down to doing it for the long haul. Like I said earlier, a lot of this is about doing good things and not doing bad things and doing that over a sustained period of time is difficult.
The way that I present myself on forums is extremely different than the way that I used to and doing that over long periods of time is really the only way to pay more than lip service to a value, I guess. I don’t know, I guess that was a little rumbly but I hope that vaguely got into there. I guess I don’t really know of any other way to do it, other than find other people who want to do it and do it together and then eventually, other people who agree with what you’re doing will join up and you just keep including the people that share what you’re trying to get done on the world. I think that applies to everything, not just software.
LORENA: Yeah. That’s a great advice. Thank you.
CORALINE: I think that’s a great note to end on to, Steve. At the end of our show, we’d like to do reflections and talk about the things that we found most interesting or most poignant about the conversations we had and maybe some actions that we individually would like to take to enact before learning that ahead on the show. We’re going to move in to reflections. Who would like to go first?
JAMEY: I think I’ll go first. I feel like the theme that really struck me from this show was about leadership and how important it is to not put too much power in the hands of a few people. I had thought about this before, particularly in terms of the bus factor, which I was talking about recently with some non-tech friends. The bus factor is like if someone on your team got hit by a bus tomorrow, how would your team be able to go on. The idea is like one person cannot be the one source of knowledge in your team or your company.
I’m talking about this with some non-tech friends and they were kind of horrified that I was talking of people getting hit by buses, which also made me think that this metaphor is normal to me that I was just like, “Yeah, well what if?” It’s a really mean thing to say about your co-workers. But it’s not just in case if something happens to someone or if they decide to leave your organization but it also gives you and your community the power to remove people that are bad for your community. I had never really thought about the bus factor in that sense. It’s not just about security for our process. It’s also about power to make sure that we have a community that we feel good about and we don’t get stuck with contributors that make us feel uncomfortable. That’s what I was thinking about, I guess.
REIN: I can go next because actually, what I was going to say is pretty similar, I think to what Jamey was saying. It’s kind of funny, Steve that you were talking about moving away from anarchism because I think we’re sort of ships in the night in that regard and I am starting to incorporate more anarchist thought into my own beliefs. One of the things that I struggle with a lot is how do you build systems of governance that don’t depend for their success on the goodness of the rulers. You were talking about in Rust, you had a ruler who basically said, “I’m going to step down and give away a lot of my power,” and that only happens if you have a good ruler, right?
REIN: So how do you build systems of governance that are resilient to evil rulers and don’t depend on further success on having good people, being lucky enough to have good people in leadership position because you eventually won’t.
CORALINE: Lorena, do you have thoughts?
LORENA: Yeah. I’ve been re-watching Star Trek Next Generation and the whole part with the Q continuum, being both judge and jury and [inaudible] and who are you to judge us? But I think there’s something very real in that part of the conversation and I really appreciate that I was brought up to say, was how do you learn to speak with others in a language that is inviting and creates a safe space for us all. The idea that we might have strong ideas and convictions and beliefs but maybe because of loaded jargon or maybe falling into patterns of your community that could exclude others by knowing that and then how do you put yourself to a higher standard to try to create that kind of space, when you yourself try to both observe the community and make sure things don’t happen but also preventing yourself from being that person who might be reifying some of those structures.
I guess for me, that’s always an idea of learning to reflect on your own, be mindful of your own world and how these things can unfold. It means that you’re on open source and you’re thinking about, “How am I [inaudible] in this. Am I here for the right intentions? Am I actually working on this project because I care about it?” The idea that you’re caring open source just for the sake of being an open source that actually the right for you or as we heard story today, if you develop the eternal guideline for you how you’d get back to open source, then you can understand and check in with yourself. It’s about respect your personal space but also respect the community at large.
CORALINE: These are great points. One of the things that got out of the conversation is the notion of intentionality. That sort of touches on the importance of establishing values around an open source project, leading by example, which I thought was a great point and then figuring out how to communicate community values to new members of the community. I think all of that ties into this theme of value resilience, how do you maintain this values over time as the leadership changes, as members of the community change. I think you have to be intentional about those things, otherwise you’re going to drift into chaos. Steve, what are your thoughts?
STEVE: While this was a thing that I gave an answer to, it was also a thing that is leading me to more questions. The question about, not about jargon but was about this inaccessibility of much of leftist thought is a thing that has been rolling around in the back of my brain and having that question asked, lit some things up that allowed me to give that answer but I definitely am going to be continuing to think about, again with this idea of understanding things after they happen. I’ve been very interested in some people’s efforts recently to do things like discounted groceries drives or feed the people programs and Food Not Bombs and these kinds of inherently accessible political organizing because it’s not actually about what book you read but it’s about, “You need to eat some food, let’s make this happen.” Thinking about that as a non-exclusionary politics is very interesting to me and probably something I’m going to think about more.
My brain draws connections between things and I like to explain those connections. So often, I’ll bring jargon into a conversation because something will remind me of a book I’ve read and then I get excited about it and then I’m like, “There was this book,” but that is an attitude that can be exclusionary and that’s something I’m going to have to think about.
REIN: I also don’t know how you balance that with essentially, anti-intellectualism. One that I often mention books, at least in my mind so that I appear well-read, so that people know that I’m not the only person who’s ever thought of this. There is in fact a place you can go if you want to learn more about the thing I’m talking about.
STEVE: Yeah. I have totally had people mention a book and then I go and read it and I read everything else the author has ever written because I’m like, “This is really great,” but that’s a contextual thing. It’s not always perceived that way.
REIN: I would actually like to know what the book was that you wouldn’t tell us earlier.
STEVE: That was specifically Nietzsche and I totally forget which book specifically it is but the concept of the ressentiment and master slave morality.
CORALINE: Awesome. I think we all have some work to do and we all going to need some time to process. This has been a wonderful conversation, Steve. Thank you so much for joining us.
STEVE: Yeah. That’s great. Thank you for having me.
CORALINE: This episode marks, like I said, the 50th episode of the podcast. We have been doing this podcast for about a year now and we’re looking forward to more years of serving our community and bringing interesting conversation to you. Thanks, Steve for being a part of that and thank you everyone for listening and we will talk to you again very soon.
This episode was brought to you by the panelists and Patrons of >Code. To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode. Managed and produced by @therubyrep of DevReps, LLC.
To make a one-time donation so that we can continue to bring you more content like this, please do so at paypal.me/devreps. You will also get an invitation to our Slack community this way as well.
Amazon links may be affiliate links, which means you’re supporting the show when you purchase our recommendations. Thanks!