The Changelog: Software Development, Open Source - A call for kindness in open source (Interview)

Episode Date: October 10, 2018

Adam and Jerod talk to Brett Cannon, core contributor to Python and a fantastic representative of the Python community. They talked through various details surrounding a talk and blog post he wrote ti...tled "Setting expectations for open source participation" and covered questions like: What is the the purpose of open source? How do you sustain open source? And what's the goal? They even talked through typical scenarios in open source and how kindness and recognizing that there's a human on the other end of every action can really go a long way.

Transcript
Discussion (0)
Starting point is 00:00:00 Bandwidth for Changelog is provided by Fastly. Learn more at Fastly.com. We move fast and fix things here at Changelog because of Rollbar. Check them out at Rollbar.com and we're hosted on Linode servers. Head to Linode.com slash Changelog. This episode is brought to you by Vedri, a hiring marketplace that connects job seekers in tech with the hiring managers from top companies in the U.S. And I had a chance to talk with Brian Levy, VP of Product, about one of the most memorable and impactful things about the Job Seekers experience on Vetteri. Every candidate on Vetteri gets assigned their very own talent executive who guides them every step of the way. The talent executives is an internal team that works with candidates as they're coming on the platform, helps them fill out their preferences. We get on the phone with job seekers and talk through their backgrounds
Starting point is 00:00:51 and what they're looking for in their career. And then once job seekers are on the platform, we help them look into roles and companies that they're interviewing with and talk through offers that they get on the platform in order to make sure that they get tailored offers that meet their requirements and their career goals. It sounds like you're holding a candidate's hand through the whole process. Yeah, definitely. Working with a talent executive is essentially having a personal career coach who can help you think through how does the job relate to
Starting point is 00:01:18 your career goals? Like what should I be asking for in an offer? What should I be doing to prepare for an interview? Essentially what a career coach would do. So it's often a very isolating experience. Vetteri has found a way to ensure that job seekers aren't alone in the process. Yeah, that's exactly right. And I think that it's really something that we hear a lot from job seekers on Vetteri is that working with a talent executive is often the thing that is most memorable and most impactful about their experience on Bettery is that they have someone to bounce ideas off of who can help them think through their career goals and decide, is this the right company for me? And if it is, how am I going to land this job? All right. Take that first step. Head to Bettery.com slash changelog to learn more and get started.
Starting point is 00:02:01 Also, our listeners get a $500 signing bonus when you find your job through once again that's vetery v-e-t-t-e-r-y.com slash changelog all right from changelog media this is the Changelog Conversations with the hackers, leaders, and innovators of software development. I'm Adam Stachowiak, Editor-in-Chief here at Changelog. Today, Jared and I are talking to Brett Cannon, core contributor to Python and a fantastic representative of the Python community. We talked through various details surrounding a talk and blog post he wrote titled, Setting Expectations for Open Source Participation, through various details surrounding a talk and blog post he wrote titled setting expectations for open source participation and cover questions like what is the purpose of open source and how do
Starting point is 00:02:51 you sustain open source and more importantly what's the goal we even talk through typical scenarios in open source and how kindness and recognizing there's a human on the other side of every action can really go a long way. All right, we're quite excited for this conversation. Brett, this one comes as a, it's not really an answer to episode 300. You may not know we had Zed Shaw on the show episode 300. As always, Zed, a controversial person. He had things to say.
Starting point is 00:03:25 Probably the most feedback we've had all year has been on that episode. Some people, you know, in the affirmative, some on the negatory. And we had a very well thought out and very nice email from Benjamin Bertrand about that show. He kind of went back and forth with him. And Benjamin, well, he disagreed with some things that had to say and as always from our perspective especially because we're trying to cover so much like to to cover the open source community and kind of like hop in and out of different areas of that community we don't always have full background knowledge we can't really rebut things said we have to kind of take things at face value and specifically in python adam i
Starting point is 00:04:05 don't actually i do know about you we aren't very active in the python community at least haven't been historically and so we kind of have a bit of an outsider's view on things that go on there um so benjamin took issue with a few things that zed said and if y'all are interested definitely go back and listen to that it's definitely definitely an interesting conversation. But Benjamin said, hey, let's get somebody from Python on the show. And we did have a Python show recently, but not specifically talking about sustainability and open source participation and stuff like this.
Starting point is 00:04:34 And so he pointed us towards Brett. And Brett, we looked at your blog post and your lightning talk and thought, okay, this is great. So that's kind of the backstory for how this conversation came together. So I guess we'll just say, Benjamin, thanks so much for your feedback and for your input. And we hope that you enjoy this conversation.
Starting point is 00:04:54 No pressure. Yeah, we hope you enjoy it, but we hope Brett doesn't disappoint. Brett, don't disappoint. I'm going to do my best. Good. So Brett, let's kick right off and say that you recently gave a keynote at PyCon and you have an accompanying blog post, which we will link up in the show notes for everybody who wants to read along, all about setting expectations for open source participation, which is a deep,
Starting point is 00:05:17 deep conversation. It's about a half an hour keynote, so we don't pretend to cover everything in it, but we're going to have a talk about it, and I think probably best, at least from my perspective to, to note that back in 2016, you had a hiatus from open source participation, uh, because of burnout, like, uh, a, you meant like you took some time off on purpose so that you wouldn't burn out. And, uh, that was a little bit of the impetus for this talk. But even before that, let's talk about what all you do in open source and how long you've been involved, because that helps us understand why burnout might become a thing for you. Yeah, so I am lucky enough to actually get to do open source both personally and professionally. So for my day job, I'm the dev lead for the Python extension for Visual Studio Code at Microsoft.
Starting point is 00:06:03 So that's what I would call corporate open source. Basically, there is a company paying my salary and my teammates' salaries to make sure that this open source project is sustained and gets to continue going forward. On top of that, for my personal life, I'm a core developer for Python. They got my commit rights in April of 2003,
Starting point is 00:06:24 so it's been over 15 years now. And that's what I would call community open source. Because basically, if all the volunteers quit, they would more or less not be a Python development team. Because there's no real sustained corporate backing of the project. And so that's basically my open source background. After that, it's just the usual. I submit patches and issues just like anybody else. I'm a little prolific with fixing typos and docs sometimes.
Starting point is 00:06:55 So I think I technically got emerged into over 90 projects at this point. So I've also been exposed to a lot of various development processes, but that's more or less my open source bona fides. Very cool. So let's talk about you and open source then, because obviously you have the professional side now, which we always call living the dream for different definitions of the dream. People who get to work on open source as their day job is definitely a bit of a new thing and very cool when it happens, although not always all that it cracked up to be. That being said, what is it about open source that drew you in? Like, why do you do it? I know some of this goes into the reasons for open source and some of these thoughts that you have around participating in open source. But I think
Starting point is 00:07:35 for everybody, it goes back to the why. And I think a lot of the whys are different. So what brought you to open source and why do you you participate on the community side not on the professional side yeah so there's a slight story behind that so back when i was in uh undergrad i wrote a program for myself to measure uh the amount of time i did data entry for my father's business and i was on windows at the time and there wasn't a function called time.stirptime, which I needed to parse dates to get back the time tuple representation. I figured out a way to do it, and I gave it to what's called the Python cookbook because it just seemed like something other people could use, so I was just trying to be helpful. Subsequently, I had to figure out how to make it work
Starting point is 00:08:24 because, well, I didn't really have to. Basically, it bothered me that you had to input all the locale information. And I figured out how to do it over subsequent months. And actually, as a graduation gift from my undergrad the week following, I solved it and wrote it all out. And I asked Alex Martelli, the editor of the Python cookbook, which had published my original recipe, how do I get this into Python? I think it might help others. And he said, well, email this mailing list, Python dev,
Starting point is 00:08:52 and they'll explain it. I did. And they were very helpful and just walked me through it on how to get a patch sent in to the mailing list to get that all merged in. And I did. And this happened to coincidentally coincide with a year off i was taking between my undergrad and going to grad
Starting point is 00:09:11 school because i have a bachelor's in philosophy but i wanted to go to grad school in computer science and so i was taking more or less a gap year to i guess build a programming portfolio to prove to grad programs that, hey, I do know how to program regardless of what my degree is in. And I realized that open source provided that potential opportunity by being able to say, look, I've contributed to these projects. And I happened to get involved with Python early. It was actually in June of 2002. And I quickly really latched onto the group
Starting point is 00:09:47 and how they function, the people and all that. And I ended up basically spending a good chunk of that year off just participating more and more. I started to write the Python dev summaries, which were a bi-weekly, semi-monthly summary of what was going on on the development list, because obviously email volume meant a lot of people couldn't keep up. That led to me noticing
Starting point is 00:10:12 little issues that needed to be fixed, so I was able to then jump in, learn what was going on, because I had the time, submit patches, get those merged, and I just kept doing it to the point where I said, hey, I can fix this, I just need someone to merge it, and then Guido just wentido just went oh well can't you just merge it yourself like no i don't have commit rights like okay uh someone will give them to you you just merge yourself
Starting point is 00:10:32 and magically i just had commit rights so for me it was mostly uh learning really in the end was just learning how to code and get that exposure and all that. And it just grew into more or less sustaining a connection in the community in Python and my fellow teammates on the dev team and just the community all up and just wanting to be around those people. And you've been involved ever since? Yeah. Basically, honestly, the only breaks I've taken were, really, there was no breaks except for potential vacations. And even then, it's hard not to check your phone until I did my volunteer detox, as you alluded to, Jared, back in 2016. Did you get into open source to be rich? No.
Starting point is 00:11:20 Okay. Just want to check that box real quick to say no. No, no. I got into open source basically as i said just because it was learning experience and i really like the people and it's just continued to be just about the people for me so it was definitely never about the money i honestly never really expected to get any work because of it i mean when i got involved with python and i would tell people oh yeah this is what i do in my spare time it was back when i would
Starting point is 00:11:43 they would ask is that the language where whitespace matters? So I predate Python's popularity. I got involved way before Python's popularity reached its current level. So it was never about any job prospects or money or anything. It was always just enjoyment. And it continues to swell and become,
Starting point is 00:12:00 I mean, Python is so popular. I'm sure you know better than I do. But every time I see the stats, like it's in the Stack Overflow survey or these other, you know, surveys and analyses, the popularity of Python, even today, is just exploding at this point, right? Yeah, honestly, it's still a bit mind boggling. I mean, I remember the days back when I looked at Perl's CPAN in longiness for wanting that level of library and ecosystem support. And ironically, now everyone looks at Python as that place that has all those libraries and ecosystem support. Basically, the way whenever people ask how popular is Python, I basically say I don't know of any language popularity list anymore that doesn't list Python somewhere in the top five, if not potentially at number three,
Starting point is 00:12:48 depending on how they classify like C or C++. Right. And yeah, I'm still constantly astounded at just how popular the language is and how much it continues to grow. I mean, it really hockey-sticked about in 2005 and has just continued to just have astounding growth. Recent growth, I always attribute it to a lot of the machine learning tools. What would you,
Starting point is 00:13:09 maybe you would have more insight on that, but what would you attribute the growth back in 05? I know, you know, Google adopted Python at a certain point and put a lot into it. I think that probably, I remember when I was in college, you know, the question like, which language would you learn and why? Back then, this was around 04, 05, people would say learn Python because Google uses Python. I remember that was a thing that people said to me. So that was my thought is like, maybe Google, but what do you think happened in 05? Or maybe it's just well known and I don't know that made it explode back then. So just to touch actually quickly on that Google tie-in, actually the very first code of parts of Google
Starting point is 00:13:46 way back in the late 90s was actually all written in Python. So Google itself started off as a Python script, ironically. Okay, that's funny. And so that's kind of how Python ended up inside of Google and continues to be one of their officially supported languages. I honestly don't know exactly what led to that growth. If I had to wager a guess, it was partially certain large companies such as Facebook being respected for their technical chops and thus their decisions having weight for people who needed some way to make a decision and going like, well, all right, well, if Google chose it, then that breaks the tie between Python and whatever language. I think the other thing is Python was able to get some,
Starting point is 00:14:33 get a really good web framework through Django at just the right time. So right around when Rails came out, I think Django went public about maybe a year after. So right when the whole web framework explosion happened, Python very quickly got positioned with a good web framework and has continued to have good web frameworks through Django and Flask and Bottle and other ones. And has allowed it to be in the right place at the right time in terms of that kind of growth.
Starting point is 00:15:02 Now, I would like to think it's also just sustained because it's a well-designed good language, but obviously I'm extremely biased and the wrong person to ask on that one. But I would hope it's just the tie of that. And then after that, honestly, Momentum does
Starting point is 00:15:20 a great job of carrying it forward because after that, if you look at the ecosystem and we're well over 100,000 packages on PI or package index. It's very easy to very quickly get drawn in as well based on support of various wrapping libraries, the data science aspect,
Starting point is 00:15:37 as you've mentioned recently, et cetera, et cetera. Yeah, unfortunately, if you look back at programming language history, it's rare. And I don't even, I can't think of one. Well, you can't really say, like you want, if you look back at programming language history, it's rare. And I don't even, I can't think of one. Well, you can't really say, like you want, like you said, the whole meritocracy ideal
Starting point is 00:15:51 that we all strive towards, right? You hope that like pure language design and fundamentals, like the cream raises to the top kind of idea. And you find out when you look back at historical programming languages and why they have proliferation, it's almost always circumstances. I mean, it's a mix, right? But there's always some sort of circumstance, whether it's proprietary or happenstance or a specific framework or tool that brings them in and out of those rises. And so it's always interesting to think why a thing happens and therefore can we reproduce it, right?
Starting point is 00:16:25 I totally think luck plays into all of it, right? It's just right place, right time. I'm not, I mean, I know my personal life, a lot of the good stuff that's happened to me is, once again, just luck being the right place at the right time. And I very much think that's true for Python. I mean, it was around in the 90s. People knew about it, but it didn't really, It was this kind of thing that people knew about, but hadn't really taken off. And yeah, I think just literally people just started to latch on.
Starting point is 00:16:52 We had the right frameworks and libraries at the right moments in history for various things to catch on. I mean, it's definitely handy that it's a general purpose language, so it's not niche in any way, and it's accessible enough for everyone that it can easily be picked up in any corners of the programming world for the needs. And being able to teach building definitely helps. But yeah, it's honestly, we just happen to have the right people find it, that they liked it to develop the right bits that other people then latched onto.
Starting point is 00:17:21 And then it just has a major networking effect. And I think that's led to us to be able to sustain this growth as we have. Well, the one component to luck that you can't discount here is when, at least depending upon your definition of luck, is like preparation meets opportunity equals luck. Right.
Starting point is 00:17:36 Right, so you have to have some preparation there. So something happened, as you said, the network effects. So there's previous work done in and around the Python community, whether it's the language itself, the libraries, or maturity or availability that prepared it for
Starting point is 00:17:49 the luck portion. The way I always view when people say, oh, you've been so successful, usually it's literally the luck of being at the right place, equipped with the right tools, and the willingness to take the right chance. I think we just happen to have all the right tools and the willingness to take the right chance.
Starting point is 00:18:05 I think we just, we happen to have all that at all the right points. So let's get back to you for a second. So we mentioned the time off in 2016, but let's do a hypothetical for today. So today you have a job where you get to work on Python and be involved in Python. But let's hypothetically say that there was no Microsoft job or there was no non, there's no professional reason for you to stay involved.
Starting point is 00:18:30 You mentioned you got into it because you were learning and you were kind of building up a portfolio, but you stayed for the people. And then you have this break, you have a talk all about people, really. And so you're trying to get out there and help us do better as open source people,
Starting point is 00:18:43 not necessarily with regards to the code. Would you still be standing here today? Would you still be involved on the personal community side? Or do you think you would have left if it hadn't been for the professional side? Oh, no, I definitely would have. I mean, my previous work, I mean, doing grad school and all that, I did use some open source in my PhD, but it wasn't really
Starting point is 00:19:06 too heavy um my time at google wasn't open source driven at all um so most of my time actually has not been professionally in any way shape or form tied open source and i should even mention that my dev lead position is only is less than a year old so i think it's actually maybe a year as of maybe this week so for most of my professional life, it has not been driven by open source. And I honestly would still do it regardless anyway, because, and I know this because going to PyCon US and select other conferences are highlights of my year
Starting point is 00:19:40 because I get to see friends. And I really get to call people in the community, actual friends who I get to see once a year, very intensely for a couple of days or up to a week if it's PyCon US and really get to hang out and see them, catch up, see how they're doing and just hang out and have fun with my friends.
Starting point is 00:19:57 And so I would still be doing this regardless just to be able to go see those friends of mine that I only get to see because I'm lucky enough to have made friends internationally across this globe in all corners. And the only way we get together is because we're able to coordinate around this conference and all come together and attend that.
Starting point is 00:20:14 So I would definitely still be involved regardless of whether my employer had me do open source or not. So despite all the hardships and all of the people problems and the drama and all the stuff that you have to deal with, the emails, right? The hurt feelings feelings that will get into some of those details that your friends and the people involved even more so than the code or their projects um have been the reason
Starting point is 00:20:35 why you've stuck around and you would continue to stick around despite you know whether or not there was financial ties yeah completely totally um and honestly the i'm sure we'll get into this the whole reason i've put in the effort into doing the the talk and the blog post and trying to push this kind of uh hopefully pushing away for people to just be able to interact better in open source is specifically because i care so much about the people involved and because i don't want to give it up i want to make sure that I feel like I want to keep coming back. And so I'm doing the best I can
Starting point is 00:21:08 to try to make sure that continues for me personally and for others as well. So they also can have the same benefits I've received. Having the history you have too assumes you have some wisdom, right? And when you set expectations, as your title says for the talk, as well as the blog post,
Starting point is 00:21:23 when you set expectations, it comes usually from a position of wisdom. So you've got a lot to offer. I'd like to think so. I mean, I know there's not a lot of open source projects that have existed for 29 years, right? Like Guido started Python in December of 1989, released it in February of 1981, which actually predates the public release of Linux by a couple months, because that came out in August of 91. So the project itself has a very unique history in terms of having just existed for that long. And then I'm also ended up in this odd position where I remember for the longest time I was the youngest
Starting point is 00:21:54 member of the team and had the smallest amount of tenure. And over time, I've just ended up becoming one of the people with the longest tenure, not the longest. Barry Watersaw, for instance, is still active and he's been active on the project since i think 93 or 94 um but yeah i've been lucky enough to have found motivation and reason and enjoyment enough to yeah i've stuck around for 15 odd years at this point uh with this one project and open source all up and so i'd like to think that i'm not totally uh making things up on the fly and just totally pontificating from a position of no knowledge on all this. Well, I think you're safe in that regard. Tell us the story back in 2016. So we've referenced it a few times,
Starting point is 00:22:36 but you did a detox. You were approaching burnout. Tell us exactly what happened, what led up to that, why you did it, and did did it help just unpack that for us so basically up until 2016 i'd never really taken any form of a break from volunteering on python so i had been doing open source from april 2003 till 2016 more or less with no real stop like i never took maybe more than maybe a week and even then with the advent of smartphones and all that you're staying very connected and so much open source is done through email. It's very easy to not ignore it and stay connected even when you're on vacation. And in 2016, I had a couple rough interactions with some people where basically people were
Starting point is 00:23:20 just flat out had been rude to me. And in ways that I thought were incorrect for the bruness i mean honestly i'd say rudeness is just never reasonable period but the motivations behind the rudeness i thought was incorrect and it happened about every other week for three months straight and i don't think there's any scientific backing of this but um it feels, I've heard the phrase, it takes 10 acts of kindness to undo one negative kindness. And unfortunately, in open source, there are plenty of people who are willing to say how you did something wrong, but people don't necessarily say when you do something right. It's a very, it's a very much a push versus pull, right? People are very much
Starting point is 00:24:01 willing to push negativity towards you by saying you did something wrong, but it's almost like pull action and having to ask people to compliment you because otherwise it's proactive versus reactive, right? People are very proactive about seeing what's not working versus people having to very consciously be reactive to the fact like, oh, hey, you know what? I've been using this thing all day and not had a single problem. I should thank someone for that. And so having some negative um incidents happen consecutively as close as they did over the three months in 2016 this is about that summer um my wife was noticing like she was going like what's wrong because i'd be walking down the street or just waiting for the bus and get a nasty email or something. And my face would just shift.
Starting point is 00:24:45 And she noticed it changed my attitude. And she goes, what's going on? It's like, I got a really bad email. It's like, you just need to stop checking. Why do you still do this? And she's luckily come to PyCon with me enough times that friends of mine have become friends of hers. Like, if I go to PyCon without my wife, usually the second question I get after hello, Brett, is where's Andrea? So, she's
Starting point is 00:25:05 subsequently come to understand it but she was very much uh always has pushed me to moderate my engagement level to make sure that this didn't happen and basically at that point i'd never really worried about my moderation and basically after three months i just went like you know what i'm just starting to not want to check my work. Not my work. I don't want to check my personal email. I don't want to check my open source email. I just honestly am dreading it because I was just waiting for something to happen. And when I realized that is like, all right, this is what burnout is. This is what causes people to just rage quit a project and stop participation. And I didn't want that to happen. As I said, I have friends, I enjoy my
Starting point is 00:25:45 engagement, and I didn't want to just write it off. And so I thought like, okay, what do I need to do here? And I basically decided to take the month of October in 2016 off from volunteering. Now, I was still going to do paid time and very much moderate where I did things such that I could control potential areas where I knew there was potential contention. Like certain mailing lists typically can get a little heated in discussion. So like I ignored that almost entirely. For instance, I would still check issues, but if anyone was in any way cranky, I just ignored it and just walked away.
Starting point is 00:26:22 It's like, no, I don't need to engage. I'm just going to keep myself safe from being too upset. And what I ended up doing was I spent the entire month more or less just reflecting on how did I end up in this position? How did I end up in a place where this project and this community that I basically love was pushing me towards wanting to walk away from it? And I basically just came to the realization that people who were being rude were typically coming from a place where they, I think, had a misunderstanding
Starting point is 00:26:52 of what open source is and how it's maintained and how it functions and what's required to make a function. Because most people, when you point out that they've been rude, they go, oh, I'm sorry, I really didn't mean it or I was having a bad day or whatever. Very rarely is it systemic and actual a core part of their
Starting point is 00:27:08 personality and i just started to think about like what needs to be said to people and to the general open source community and and obviously python in particular for my case to help people understand how open source truly functions and how people need to adjust their expectations attitudes and views such that they don't really ever feel like being rude by accident more or less and how do they make sure that they just come from a perspective of oh it's all okay i just and not trigger themselves to to that potential uh rudeness level and just have everyone just work together better and that's basically what happened and now actually i uh, I do what I call a volunteer detox once a year now for a month to reflect,
Starting point is 00:27:51 see where things are, to make sure I recharge, give myself a chance to more or less recuperate if any negativity is built up over the year. I also try not to read emails one day every weekend to make sure I don't have a trigger, so I enjoy at least one day a week without any potential outside negativity that I might have to deal with. And then my wife tries to also make sure I stick to those said plans so that I don't cheat and try to sneak an email check in on a Sunday or something. What's key there is the two words moderation and expectation right like
Starting point is 00:28:26 you know you're wise enough to recognize that you needed to exercise moderation which i think there's a lot of people who just continue no fault of their own just going through trudging through without self-moderating or realizing that you can't eat Snickers only and live, right? You got to have real sustenance. Well, maybe Snickers though. Well, the commercials would lead you to believe that you can satisfy. There you go. I'm lactose intolerant, so that ain't going to work for me.
Starting point is 00:28:59 I got to find something else. And then the other part is the expectation, right? Like there's so much clarity in communication with yourself and other individuals or community when the expectations are clear. So I mean, I commend you on the self-modeling, but those are, I'll give you a pat on the back. Those are two key components of wisdom, right? Like not everybody gets that right away. It's not a, it's a, it's not a it's a it's not a given behavior it's a learned behavior yeah and unfortunately slash fortunately for me there was multiple cases of burnout in the python community that i noticed in 2016 and having seen that kind of cascade all at once maybe put it in the forefront of my mind is like why is this happening and then when i started to notice happen to myself i was lucky enough to be able to identify that and go like, okay, I see where I'm heading here. And that's not where I want to go. What do I need to do to make this
Starting point is 00:29:52 work? And I realized I just need to basically take a time out and just more or less meditate on what's going on. And what could I do for myself and potentially for the community to help prevent this from happening to anyone else going forward. So once again, somewhat luck that this happened when this was happening to other people so that I was able to see it externally from others and then be able to self-reflect and pick up on that fact and then thank goodness be self-aware enough to realize I needed to you by DigitalOcean. They now have CPU optimized droplets with dedicated hyper threads from best in class Intel CPUs for all your machine learning and batch processing needs. You can easily spin up their one-click machine learning and AI application image. This gives you immediate access to Python 3, R, Jupyter Notebook, TensorFlow, Scikit, and PyTorch.
Starting point is 00:30:57 Use our special link to get $100 credit for DigitalOcean and try it today for free. Head to do.co.changelog. Once again, do.co.changelog. I'm Tim Smith, and my show Away From Keyboard explores the human side of creative work. You'll hear stories sometimes deeply personal about the triumphs and struggles of doing what you love. I got really depressed last year. And the reason it was so hard is because basically everything culminated at once. All these things I'd been avoiding, all these things I'd swept under the rug, they all came out at once. New episodes premiere every other Wednesday. Find the show at changelog.com slash AFK or wherever you listen to podcasts.
Starting point is 00:32:04 All right, Brett. So one of the things that you said that I'd like you to unpack for us, maybe even tell us how exactly you got to this goal, is that the overall goal of open source is to attract and retain people to help maintain an open source project while enjoying the experience. And I think the while enjoying the experience there is key. I don't think you tacked that on by accident there at the end. This is something that you say, and then you go on to say that we're failing this goal in certain ways. So first tell us about the goal. Is this something you came up with? Is this something the Python community agrees on?
Starting point is 00:32:36 Or is this Brett's take? What's with this goal and then following up to that? Why are we as a community failing it? It is definitely Brett's take. Although people have typically told me they agree with it. So yeah, basically coming from a volunteer run open source project and having been exposed to it over 15 years, I realized that there's always going to be somewhat a core set of people who are there to pass along folk knowledge and such and who might be there uh continuously but people come and go right like there are many people who were involved in python heavily when i started and whose names i still
Starting point is 00:33:21 very vividly remember who are no longer active. And then there are obviously new people who have come in and become highly active, but have only been around for like three, five years, or even one. And then there's all those people who just kind of float in and out and are constantly still active but not consistent. But the key thing is there's a flow of people and if you don't make sure you have a mechanism in place to bring people in the uh outflow of people will be at a rate higher than the inflow and you'll basically end up with no one around to help sustain the project and if you can't sustain the project then what are we all kind of rallying
Starting point is 00:34:05 around right at that point we're going to be a community of nothing right like you can have a community around a dog breed but you still got to have that dog breed for instance to actually have that initial connection to make these friendships that you have with these people in that community and the same with python if If Python doesn't exist, we're not going to have a PyCon US where we're all going to get together and hang out. So we kind of have to do something to make sure we have our annual excuse to all hang out, to view it one way.
Starting point is 00:34:35 So it's very much about how do you make sure the people who are there want to stick around because you don't want them burning out and falling off the face of the planet, at least in terms of the project, because the longer someone's there the more knowledge they have the greater abilities they have to help but you also need new people because people will leave whether it's uh hopefully not burnout but just churn dedication like personal time like people have kids like my contribution rate has dropped off because i'm
Starting point is 00:35:05 no longer a student i got married i just things happen um people have unfortunately passed away it just happens it's just life so you need a way to have new people come in to help keep the level on numbers of people contributing to a sustainable level for your project. And then the fun bit is just a very key aspect of when you are volunteering to keep this running, you're not going to do it if it's not fun, right? Why am I going to spend what small amount of time I have on this planet being a live breathing human being doing something that sucks, right? If it's not enjoyable, I'm not going to do it, right? It's very weird to put it in those perspectives, you really i mean if you stop and think about it i have an end date i don't
Starting point is 00:35:53 know what it is but it's there so every moment i spend doing something it's there and it's gone i'm never getting it back so if working on python instance, ever became a total trial and tribulation and just something that was not fun, I wouldn't do it because I've got other things to do with my amount of time I have left on this planet. And there are plenty of other things I could do, right? I could totally be spending time with my wife. I could be having fun with friends. I could be going outside and enjoying the weather while it's still good here in Vancouver. There are lots of things I could be doing instead of working on open source. And if open source does not end up being more
Starting point is 00:36:31 enjoyable than those other things, I just won't do it. Because I have better things to do. And even, honestly, when you get paid for it, if it's not fun, I won't do that job anymore. I will either ask for a transfer to a different team that doesn't work in that community or in open source or what have you, or I will flat out quit and find another job. So it's not even specific to community-based open source,
Starting point is 00:36:55 although that's where you feel it the most. For everyone involved, basically, if you make someone's life not enjoyable for doing something, they won't do it. And so that's why you're right. I did not tack that on just willy-nilly. It was very specifically because people forget that you have to make sure that there are people there both coming in and sticking around to keep a project running.
Starting point is 00:37:16 But you also have to make sure no one comes to regret the time they put in. Because as soon as that happens, that's when people burn out and leave. And then that's where projects die. And we hear it all the time they put in because as soon as that happens that's when people burn out and leave and then that's where projects die and we hear it all the time like you know when i first got into this it was fun you know i was just having i was scratching my own itch i was experimenting i was having you know fun i was trying something to see if it would work and i never expect and it's it's kind of the plight of the successful open source developer right like Like so many of us have these open source projects and we do them by ourselves. And that's not very fun either. You know, like you can code by yourself for so long.
Starting point is 00:37:52 And at a certain point, you're like, oh, it'd be more fun if more people were involved in this. And so you have that side. And so that's why a lot of those things fizzle out and die as well. But then on the other side of success, where you have this massive adoption or, you know, lots of times it grows at a pace that's completely unsustainable for the small team of one or two. It's like this was fun and now it's a job because now it's a burden. Now it's all these other things that it didn't set out to be. Yeah, you were basically trying to do a nice thing for the world by saying, I made this thing.
Starting point is 00:38:21 I found it useful. Maybe someone else will hear you go and you set it free. Maybe you hope some other people come along to help you maintain it because you are using it. Or maybe you're hoping someone will come along to help teach you something new. Like I have a little Rust project I'm doing right now. And I've specifically said like, I'm using this to learn. Please don't send me new feature requests or anything. But hey, if you have a PR to help show me how to do something better, please send those.
Starting point is 00:38:44 And I've had that happen. so that's been really useful but like if this suddenly exploded on me and it's suddenly like i'm getting 10 new issues a day or something and it's just me sustaining it's like i'd just probably burn out and walk away if if the engagement ever became negative because it's just not worth it so i'm kind of in a in a not really sure position but i kind of feel like that's why we do this show, Jared. Like we always say we shine a light or at least we have in the past. It's not exactly our core we are optimistic or at least try to be optimistic about the high sides and the fun sides, the enjoyable sides of open source as a whole. Obviously, we still talk about the negative things and we don't shy away from those things.
Starting point is 00:39:38 But we as you and I and then the change of the podcast, we're really just trying to, you know, share the positive things that are enjoyable and hopefully give people more and more reasons to keep reaching for the positive things. Because when there's enough negativity, it's easy to be drowned out by that negativity and see nothing positive, even if it's right in your face. Yeah, I totally agree. And I think as open source has grown up
Starting point is 00:40:05 over the last, let's just call it decade, I didn't even think I said this to you, Adam, maybe off air a while back, is like, where has some of the fun gone? You know, like, where's the, like, let's rediscover some of the, just the hacks and the crazy experiments and like the one-off things
Starting point is 00:40:21 because there's a lot of like capital B business going on in open source. And that's like part of what we cover as well, because that's like very much relevant to our lives is there's a lot of corporate interest. There's a lot of, you know, posturing there's these,
Starting point is 00:40:38 there's drama. There's just lots of like very much, I don't know. Sometimes it feels like high school, which is not fun for many people. And that makes me almost want to burn out and be like, yeah, it's just, where's all the fun stuff? And it's out there. It's just, I think there's so much other things going on that's not always apparent.
Starting point is 00:40:58 Maybe I have to dig a little bit deeper. But yeah, I agree. I think having these conversations, shining a light on the interesting, the fun, the niche is definitely what we're about. And then also having the hard conversations and, um, and helping us all together, figure out how we can continue to sustain this thing, which has been a huge boon in my life. And I think, and, you know, I think where we could say in your life and Adam is yours as well. So many of us have benefited from open source in one way or the other, whether it's the friendships, whether it's the ability to build a career, which I've very much been able to
Starting point is 00:41:33 build a career on the shoulders of giants and then, you know, give back as, as possible. So we're trying to like keep that going. And so, um, yeah, Brett having you having you on and share your perspective and your opinion on this is the goal. You call it a laudable goal or an admirable goal. I agree with you completely. And then there's lots of ways that we're falling short of that and acknowledging that and then being able to shift or, I don't know, startup land, pivot in startup world. That's what we do, right? We pivot. Just change you know, just change ourselves enough to keep it going is so crucial.
Starting point is 00:42:08 Yeah, it's an interesting situation, right? Where open source is this larger entity or community kind of fell into this success situation, right? Like back in the 80s and 90s, when it really started, it was very much more of a niche fund side thing. And then businesses started to wake up of like, oh there's free quality code out there oh wow and then it just grew and no one stopped to really look at where open source was coming from to set as i've uh set proper expectations for everyone who was coming into it suddenly from the outside but then also making sure that we had the mechanisms in place to make sure that the system and the situation
Starting point is 00:42:49 in the overall open source community was going to continue to be sustainable. Because it all just kind of happens. And if you don't stop and take a look at where it is, it's not going to happen. And Nadia Ekbal, who I know you all know because she had a podcast on the ChangeLog, her big report that she did, I think, was a good step in trying to take a step back and really look holistically at open source as a whole and how has it ended up in the current situation where it is with both corporate and community-based open source trying to work together, but it being such a huge machine
Starting point is 00:43:24 now and how do we keep it all going and within the proper spirit of open source, but also keep it sustainable and everyone basically happy so that they actually want to keep this thing going. It's a hard problem. I had an aha moment talking on a recent Founders Talk with Donald Fisher, who is the CEO of Tidelift. And I didn't, I know this as true, but it wasn't as clear to me as truth until he said it out loud to me. And then obviously the listeners of the show, he said,
Starting point is 00:43:53 as a society, as humanity, we have collectively decided to build our civilization on software. And a lot of that software, if not a majority of it is open source and when he said that and i thought about it i was just like wow and i like we do this like jared and i were deep in open source every single day is just part of what we do but i had never really considered like that and it is paramount that we find ways to do things like you're saying here you know a series of kindnesses you know enjoying it and then ways to sustain it simply isn't a money thing like there's there's a cost as you say everything has a cost in open source and what is the cost
Starting point is 00:44:38 and i don't know about you but that was so profound to hear even though i knew it to be true when i heard it for the first time like that, it had like solidified and cemented itself in my brain. Like that's truth. The next generations are built on today's software and today's software is open source. Yeah. I mean, if you just stop and think about
Starting point is 00:44:57 how pervasive software is, right? Just how much are we willing to hand over to software these days? And then once you realize the scope of that, which is mindboggling to say the least because software isn't everything i mean just making a hang you're a clothes hanger how much software there is involved in like designing it testing the weight the machines that print it press it control the shipping of it get into the stores the pos machine like literally the steps it takes to have a hunk of plastic turn into a clothes hanger
Starting point is 00:45:25 that you end up in your closet. The amount of software is just immeasurable. But then as soon as you think about that, any point of that system is going to have a very large component of home source to it. There's very little pure top to bottom stack bespoke software anymore because it doesn't really make sense when there's that much quality code. But once again, if we don't stop to think about what it's going to take just to sustain this going forward we're going to end up in a real bad spot it's almost you can almost make the
Starting point is 00:45:55 comparison to the environment right like we all know there's an environment problem and we've all just like gone oh it's there it's there it's great let's totally use it and then it's something like okay but there's a sustainability problem here and if you don't stop and worry about that and try to deal with it you end up with either the worries we have of just runaway climate change or you stop put on the brakes look evaluate and go like okay well you know if you shift to green energy we can continue to benefit from the environment without hurting it irrevocably and i think open source is approaching that kind of inflection point of making sure we have to stop and take the time to reflect upon what needs to happen to make sure that this stays sustainable so we don't end up in
Starting point is 00:46:36 a position where suddenly the open source world just says yeah you know what forget it i don't want to deal with this anymore it's not fun it's not enjoyable i'm going to stop doing open source work and then we're back to writing all our software in a bespoke fashion which is going to put a huge break on innovation in the world because suddenly we're going to be writing anything from scratch and that's not it might be fun for a little while but having to rewrite how to search a string for a substring for the bazillionth time is not exactly enjoyable either. No, absolutely. So let's go back to Nadia for a second, because back when we had her on the show and before she had her own podcast request for commits, which had its own run, um, you know,
Starting point is 00:47:16 she wrote that piece even before roads and bridges, which was, I still remember it to certain degrees, how I stumbled upon the internet's biggest blind spot. Something like that was the title. And before that, we weren't really having much of a conversation as a community about sustainability, speaking specifically of monetary. And even when the beginning of Request for Commits, her show, and her Michael show, and the run of that, at the end of that, episode 20, one of the reasons we said this is ending now is because like that was maybe four years ago now that's a conversation we're having right like this is things have changed and now this is something that we talk about and we're
Starting point is 00:47:55 it's not like we have we have all the answers but like there are sustainability i'm specifically speaking of funding options and there are people making moves and like adam you just had tight lift you know they had this million dollars uh initiative for open source maintainers there's money talk happening yeah but what we learned through money talk is that it's actually a kind of a small part of what makes up an ecosystem of sustainability and sometimes money causes more problems than it solves but once you get the funding that doesn't mean we're suddenly sustainable, right? And so, Brett, a lot of the stuff that you're talking about
Starting point is 00:48:29 and we're talking about here today has nothing to do with money. This has to do with people and relationships and kindness. So you said in your talk that we're failing at this goal of making open source something where you're attracting people, you're retaining people, and then you're also keeping it enjoyable. Maybe you help us understand why you think,
Starting point is 00:48:56 and I'm not in disagreement, but start off with why we're failing at it. And then you have some steps towards better, or at least you're offering them up, so let's go there. Yeah, so the example I use in my talk in the blog post is a tweet that Corey Benfield, who used to be very heavily involved in the networking side of the Python community, said where he basically,
Starting point is 00:49:16 I'm paraphrasing, but basically he said open source made him a more bitter, short-tempered individual. And I can relate to that. Like when I was hitting burnout before I took my month off, as I said, my wife noticed. She noticed when I read an off-putting email from someone or something, and my attitude changed. And it's a really horrible position to be
Starting point is 00:49:42 putting people in that somehow our interactions are leading to people such as Corey, myself, or anyone else to actually have a negative result on their personality. Because that not only impacts them, that impacts everyone around them, right? Like, because I choose to volunteer and put my time in open source does not mean my wife should somehow be impacted beyond the time i choose to put in right if she's nice enough to go like hey you know what why don't you go take some time and put a couple hours in this saturday into python okay fantastic when i'm done and i clock off the result of that should not be me in a funk for the rest of the day or even potentially the weekend right like i've lost sleepover problems in the community and that is not fun and it should not impact anyone else on this planet in any way shape or form and so that's where that failure comes from is the fact that we
Starting point is 00:50:38 are not stopping and taking a look at ourselves as to why this is happening to people. Why are contributors ending up in positions where they're literally having to stop and worry about whether their spouse is going to ask them to stop doing open source because it's made them a worse individual. And that's literally what it can do to people. It literally, open source can make you a worse person than you were before open source. And it's something people don't really bring up often, but it happens, right? I will fully admit when my wife has called me out for being in a mood, it's not always because I'm hangry. It has sometimes been because of open source.
Starting point is 00:51:16 And I will fully admit publicly that I am very easily hangry and my wife's very good at calling me out on that. Can I provide an alternative though here real quick? I mean, could you also have the same result though by playing weekend softball not so much from an injury but just from uh lack of enjoyment just drama personalities like i know we're talking about open source here but that can happen pretty much anywhere it's not like it's just open source problems very true just want to be clear about that yes but the the interesting difference with open source is the reachability that you have right sure so let's look at python um python
Starting point is 00:51:52 probably has roughly 10 million users depending on how you count um there's no real good solid number but we'll i've calculated using go's way of calculating and that got us to six seven million and rounding up for people who don't call themselves python programmers we're probably approaching about 10 million when i play softball i have at most probably 20 people if you include subs um between my team and the team we're playing so at most there are 20 there are 19 other people who probably could potentially upset me be rude to me whatever yeah on the internet I have at least 10 million people who could make me upset.
Starting point is 00:52:26 Bigger numbers. Right? Yeah. And if you think about the scalability, right? Like, even if you scale it down to, like, what percentage of the world population are just rude individuals? Just flat out consistently rude, right?
Starting point is 00:52:40 0.1%? I don't know. Do we think one of a thousand people is just consistently rude? At 10 million people, that would mean, if I'm doing my math right, that gets us down to,
Starting point is 00:52:53 what, 10,000 people who very much could be cranky at me at any point in time because of something in Python that they didn't like, that I happened to somehow be involved with. The scale number is just massive. So that's why it's a somewhat unique situation. I see. It's also harder to leave, right? And it's much harder to leave and it's much harder to avoid, right? Like
Starting point is 00:53:13 if you have a bad interaction at like, let's say you try to do a return at a department store and you have that cranky customer service person who's not in a good mood because the person before you was a complete jerk about the return. They're going to probably be cranky. They might take it out on you a little bit. You'll walk away in a huff. You'll be frustrated, but that's it. That's the only interaction you're going to have about that.
Starting point is 00:53:36 You can get over it real quick because that whole interaction was really short. When it's open source, you don't get control when that happens. It's someone pushing off and that crankiness onto you. Like I get to at least prep for when I go to the return desk. I don't get to prep for the cranky email coming into me. And the chance of number of people is much larger. So there's a cascade effect of I may only have to deal with one cranky person in a blue moon for a return,
Starting point is 00:54:02 but I can get a cranky email any day of the week and have it build up. And getting that washed away in my mind of that negativity is hard. It takes a lot. I will fully admit, I've tweeted when I've had a bad interaction, knowing that people would tweet back at me saying, I'm sorry you're having a rough day. I do appreciate what you do. Because otherwise, I'm just sitting here with my cat at home and getting no positive reinforcement that what I'm doing is appreciated or good or anything. And so it's tough. The situation is a mishmash of scale and reachability that makes it kind of unique in the world in terms of how we all work together.
Starting point is 00:54:58 This episode is brought to you by Raygun, who just launched their APM service. It was built with the developer and DevOps in mind. They're leading with first class support for.NET apps, also available as an Azure app service, and have plans to support.NET Core, followed by Java and Ruby in the near future. After doing a ton of competitive research between the current APM providers, where Raygun APM excels is the level of detail they're surfacing. New Relic and AppDynamics, for example,
Starting point is 00:55:22 are more business-oriented, where Raygun has been built for developers and DevOps. The level of detail provided in the traces are amazing, the flame charts are awesome, and allows you to actively solve problems and dramatically boost your team's efficiency when diagnosing problems. Deep dive into root cause with automatic links back to source for an unbeatable issue resolution workflow learn more and get started at raygun.com slash APM once again raygun.com slash APM so I have some pretty awesome news to share we are now partner with Algolia if you've ever searched hacker news teespring medium twitch or Product Hunt, then you've experienced the results of Algolia's search API. And as we expand our content, we knew that one day we'd have to
Starting point is 00:56:12 either roll our own search solution on top of Postgres, or we could partner up with Algolia. And I'm happy to report that phase one of our search is now powered by Algolia. We're able to fine-tune our indexing, gain insights from search patterns and analytics. We can create custom query rules to influence ranking behavior, as well as improve our search experience by adding synonyms and alternative corrections to queries. Sure, we could build search ourselves, but that would mean we would be busy doing that instead of shipping shows like you're listening to right now. Huge thanks to our friends at Algolia for working with us.
Starting point is 00:56:42 Check the show notes for a link to get started for free or learn more by heading to algolia.com. So yeah, a lot of the problems with the open source community are it's difficult to leave. It's a global community. It's constant, right? It's very difficult to part ways in small groups like you can with a softball team. One thing you said earlier on, Brett, that really resonated with me, which I think is worth reiterating, is this idea around how much kindness it is required to undo unkindness. I think it was kind of a 10 to one ratio is what you were saying. 10 acts of kindness versus one act of non-kindness and whether or not that's
Starting point is 00:57:34 scientific or accurate, I think in principle, it's definitely true. And it's something about us as humans is we, we really resonate on the negative and, um, there can be a lot of positive reinforcement, you know, thank yous, appreciations, um,
Starting point is 00:57:54 people saying nice things about our open source work or our projects. And a lot of that stuff doesn't really penetrate our, our thought life very much. It's kind of like it, you know, like you, you you hear it but you don't feel it and i'm just speaking a little bit personally but i think this is something a lot of people say and then like one act of of negativity right one rude thing one buddy calling you stupid
Starting point is 00:58:17 or ripping on your project it like tears you apart right and so there's this huge there's this huge imbalance there and we need to recognize it yeah and it takes very little to i mean especially if you're a caring individual who want who wants to make people happy right like i'm canadian it's just part of me uh to try to just keep people happy and so when people say i'm not happy i kind of do somewhat take that personally i've tried not to over the years to work on that. But I mean, it is going to take at least 10 cat videos to get over that, right? It's not, it takes effort.
Starting point is 00:58:52 It's not a small number. It's not a one-to-one ratio, as you point out, Jared. Like, look at the news. It's not like they're showing us one negative thing on the news because they just can't. It's because they know your brain latches onto that. And that's also why they don't try to show you positives because it's not going to be a one-to-one ratio. They've got to show a lot of positive aspects in the world to equate out to the reaction you get with that one negative.
Starting point is 00:59:15 So yeah, I mean, my blog post referenced one study where a psychologist seems to think that if you have arguments with your spouse and it's a five to one ratio of positives negative comments and an argument chances are you're heading towards divorce and wow so even if you go down to five to one that's still a decent number of positive actions that have to occur to undo that one negative so it's still not and as i said earlier positivity in open source and complimenting people is very much a reactive thing you have to consciously stop and think to do it it's not like negativity where it's very proactive when you hit that bug you instantly know that you're
Starting point is 00:59:57 unhappy and you instantly are triggered by it versus having to stop and think oh yeah it's really nice like i i don't want like I don't want throwback Fridays anymore online. I want thank you Thursdays, right? Like something to cause us to stop and reflect upon, you know what, who should I thank this week for doing something nice for me that I just normally wouldn't stop to think about? We did it in standups and retrospectives.
Starting point is 01:00:21 You know, after a sprint, we would, you know, retrospectives don't exactly call for this. It's not part of the agile manifesto. But I was like, we should be, we should call out the wins. You know, who do you want to thank? And it would be the person or persons thinking in the same right. You also don't want too many highlights of the same person. But if they deserve it, they deserve it, right?
Starting point is 01:00:39 Right. But it's very interesting that you point that out, Adam, because if you notice, we've actually had to bake that into our development process now to make sure that we actually do this, right? Like, we've started doing retrospectives on my team at work as well, and we have the what went well, what didn't, and then the action items. but the fact that we actually have to put that into our processes to make sure we actually do that as individuals with our co-workers is very telling about how not purposely difficult but just based on just human nature it how difficult it can be to prompt people to take the time to just say thank you good job or whatever positive reinforcement you want to give. There's two things here. So I think there's a good majority of people. I'm not sure why, but they tend to thrive in conflict. And it's either perpetual because of just human nature or culture or change or whatever it is.
Starting point is 01:01:39 But people just tend to sometimes thrive in conflict. And then just being able to say thank you to your team or whatever is one thing. But I believe that there's a constant tear, especially at teams that are, you know, highly connected, motivated together and all that good stuff to tear them apart. It's part of the design of the system, right? Is to pull you apart because if I can't get along with Jared and he can't get along with me, then what we do doesn't work well. And so he and I have to recognize that and other members of our team have to recognize that and see with yours that there's this force, something is trying to pull you apart and make you unsuccessful. And the daily fight is to fight back against that. Well, yeah, and honestly,
Starting point is 01:02:26 as soon as something negative happens, the instinct is to minimize that happening in the future versus putting the huge amount of effort it is to not avoid it, but try to fix the root cause and make it so that that doesn't happen again in the future. I'm not just talking about error tracking. Root cause analysis, that's fun stuff. Yeah. Where does this begin? Let's happen again in the future. I just talked about error tracking, root cause analysis. That's fun stuff. Yeah.
Starting point is 01:02:46 Where does this begin? Let's go back to the commit. You just need history debugging and you're all good. That's right. Yes. Technical solutions to people problems always work very, very well. Uh-huh.
Starting point is 01:02:56 So what can we do? I mean, I guess the, the overall call is to be kind to one another. Um, does it get more specific than that with you brett or is that like because i because i believe in my heart of hearts that that's part of the solution and yet i it's difficult to actually act on that kind of advice because it's so generic as to
Starting point is 01:03:15 almost sound cliche or tepid or something yeah it's and it's been one of the most frustrating bits about the conclusions i reached is like when i've given this talk, I've had people come back and say, well, can you give us a call to action? And it's like, no, people are just flat out hard. It doesn't work that way. I can't just give you a technical solution of, you know, if you just follow these five rules, suddenly the whole world will do better. If we knew what those five rules were, we wouldn't be following them already. It just doesn't exist. So the way I try to view it is you're right that the general thing is just, we just literally need to be kind to each other, right? It literally comes down to just kindness. There is no need ever to be rude, right? Why are
Starting point is 01:04:02 people rude? Usually people are rude either because they're frustrated or because honestly they're trying to bully someone down to win the argument. It's a power play. And so it's really not necessary, right? Like in these technical communities, you often hear like, oh, everything should be based on the technical aspects of the discussion and nothing else. But these people who come in or rude are trying to gain the system by forcibly trying to talk down other people by being rude enough that they want to walk away or not participate or blow their stack or, and what have you,
Starting point is 01:04:34 and just have them lose that argument. So for me, it's trying to be kind while realizing the root cause of why we need to be kind. So for me, as I said earlier, open source is all about trying to help keep a project running, bringing new people in, sustaining them, keeping everyone happy. But the other thing to realize is open source owes no one anything, right? Like, let's say you use Python. I don't owe you anything.
Starting point is 01:05:10 I gave you a gift of software that I put my limited time on this planet into to try to make it useful for you. You took it. You used it. Fantastic. That is the end of it. I have a legal obligation to let you use that software based on the open source license. And that's where it stops.
Starting point is 01:05:28 And people, I think, forget that fact. They come and they think I owe them bug fixes or I owe them new features or I owe them another release. I owe, I owe, I owe. There's somehow a feeling people come to open source as somehow there's an obligation on my part beyond the code that I put out there with the license saying you're allowed to copy and use this as long as you keep this license with the software. And there isn't. There is no obligation.
Starting point is 01:05:57 And I think if more people would come to open source realizing that there is no obligation, the interactions would be better. Because then suddenly you don't come from a position of demand, you come from a position of request, right? You're not going to come to me and demand I fix a bug if you realize I have no obligation to help you with that bug. But if you realize I could help you if you requested nicely because I choose to put my time and effort into helping you, your interactions only shifts, your expectations shift, how you choose to work with someone shifts and i think that's the key here is it's the conclusion is be kind to one another which i know is as you said borderline a cliche but i think the key is understanding how do we try to
Starting point is 01:06:38 reframe the position of open source such that we all kind of naturally reach for the kindness result. And I think the key there is setting the proper expectation for open source and its participation by remembering no one owes anyone anything. And I know that really ruffles some feathers with some people because they suddenly think, well, where's the motivation? How are people going to help? People who think in terms of numbers and stuff, it's like, oh, there's got to be some ulterior motive or some driver for people to participate in open source. And it's like, you know what? No. Open source is kind of a hippie, dippy thing when you really think about it. It's literally people just doing it for the fun of it and just to be kind to other people to
Starting point is 01:07:22 give out software that they think others might like. They don't need any other motivation. And this is something I think people forget is as long as you don't destroy that motivation, people will just keep doing it regardless. And so making sure that we remember that there is no obligation and we just need to be kind to these open source contributors to have them keep doing what they do and giving us the software that we benefit from would go a long way towards helping us with the sustainability problem because if we were just nice to each other this burnout problem goes away if you just understand that you know what you guys the two of you don't owe me another podcast if you do another episode awesome i will happily listen and I will appreciate it. But there is no obligation on your part.
Starting point is 01:08:11 Just like I have no obligation to fix any more bugs in Python ever in my life. I really don't. So you're telling me there's no more seasons of Office coming? Yeah, I'm afraid not. Unless they decide to do a reboot. And they already did the English reboot of the british version i don't know where they go from the english version so gosh they shouldn't the american versus the yeah the the american version was great compared to the british version i love them both but i don't
Starting point is 01:08:33 know where you go from the american one so you're saying there's boundaries to things though right like that's the point is like there's boundaries clear boundaries that that need to be understood and that's the expectation is like you know don don't get mad at Brett because his obligation was met. Anything else he does or decides to do or anybody else decides to do is like back to the kindness factor of like, you know, you are, you're hopefully enjoying yourself,
Starting point is 01:08:58 hopefully not upsetting your wife because your mood has changed or whatever. And if everyone just took the step of leading with kindness, you know, there's something that my wife and I say, and we learned, and it's to remember that I have, and she has goodwill for me, right?
Starting point is 01:09:15 Like sometimes I might say something that's critical, but understanding comes from me. I have goodwill for you. Not requires the, the, I have goodwill for you aspect of it. Cause not everyone in the general public haswill for you aspect of it because not everyone in the general public has that however you know if if we can somehow inherit that a little bit
Starting point is 01:09:31 the kindness and leading with that and having goodwill for somebody i think you're right i think that obligation bit is really key like how much did you pay for python nothing so why does the fact that you somehow ended up with this thing that I gave you, this gift, somehow make you think that it's okay to berate me because there's a bug, or say it's stupid, or it should be done this way, or what have you, or be in any way really critical in a negative fashion? There's constructive criticism, and that's fine, but it needs to be constructive. And people just don't stop and think about the fact that all of us in open source are literally giving things away and that you would not be critical
Starting point is 01:10:10 to someone who gave you a nice little gift you can say oh thank you but not it's not for me that's fine like i'm totally fine if you don't use python in your ruby user for instance or you prefer node whatever i'm fine with that you just don't need to be rude to me about it. And that's it. It's such a surprisingly simple concept. It is a simple concept. Be nice. Yeah, exactly. Be nice. Understand the obligation that you seem to think is
Starting point is 01:10:36 there really isn't. You paid nothing for open source. There is no expectation on anyone's side at all. That basically means everyone's i used to phrase this as not kindnesses but favors but i felt it was a little potentially loaded because when you ask someone for a favor you sometimes expect it to be paid back but you kind it's kind of you can metaphorically think of as like basically when you come to me with the bug
Starting point is 01:10:59 report you're basically asking me to do you a favor to look at it triage the issue and potentially fix it right go into that because that's the if you're an HR metaphor, you got there. Yeah. So, my wife is an HR. So, that kind of helps understand where I phrase this. It's understanding that when you engage with people, you need to really remember what you're asking, right? If you come to me with a bug report, you are literally asking me to do you a favor. And as I've said spend what little time i have and what little free and take free time away from my wife and my cat my friends and my family to help you fix that bug now if you really stop and think about that that's
Starting point is 01:11:35 a significant ask right like you were literally asking me to not do something fun to fix that bug for you and that goes all the way to pull requests when you ask me to do a review it's not necessarily going to be entertaining for me to do a pull request review but you've sent me this pr and you're asking me to review it now it's great that you sent it to me and i appreciate it but you've got to realize that there is a cost on my end as well of time and effort to do it and the way uh in my talk and blog post I phrase it as is when you talk to people, a good way to kind of catch yourself to make sure you're communicating in a good way that shows the kindness that you're requesting of someone is basically realize you're asking a favor of the other person. And then after that, make sure you phrase it in such a way that neither your boss nor your family would be upset with how you asked, right? Because I'm going to assume
Starting point is 01:12:29 either you care about your job or you care about what your family thinks of you. Because if you don't stop yourself sometimes, it's very easy to blow your top, which I understand when you're frustrated, especially when you've hit a bug and it's like, oh my, oh, I need this to work. Why is this bug? Oh, this software is horrible. There's this bug. How the heck has it survived for 28 years with this bug? Oh my, it's the end of the world. Fix it. But you've got to realize that you're basically asking me a favor to fix this because guess what? Over my 15 years of being a core developer and the three years prior to that I was a Python user, I didn't hit this bug or else I would have fixed it.
Starting point is 01:13:04 So it doesn't impact my life, but you're still asking me to help you. And then also realize that, by the way, I know probably who you work for based on your email address. So do realize you do represent your company when you're making this request. And I remember, I have a good memory. I have a list of companies I have had bad interactions with in my head. And so I remember and I do prioritize who I help based on who is being nice to me and who's not.
Starting point is 01:13:32 And then after that, if you just need guidance, is this how you would teach your children to talk to someone? Is this how you would want your spouse to talk to you, your parents, anybody in your family? Is this the example you'd want to set for them on how you communicate? If it's not, then why are you talking to strangers like that? It's just a way to provide kind of guidance for people if they just need a way to phrase it in their head of just realize you're asking a favor, realize you're a represent your employer, whether
Starting point is 01:14:01 it's directly for work or not, because I'll still know, is that company still chose to hire you. And then really think about what kind of example you want to set and what your family would think about how you're communicating. And if you keep those in mind, I would hope for most people that would cause them to communicate in a very empathetic, sympathetic manner with people in open source such that we set, once again, these proper expectations that there are no requirements on anyone,
Starting point is 01:14:30 there is no obligation, and that we're all just trying to basically do kindnesses for everyone to keep this whole crazy thing we call open source running. All well said. Let me throw in something a little bit different into the mix,
Starting point is 01:14:40 which has to do with the way that we communicate. I've heard elsewhere that the medium is the message. I'm not sure if that statement even applies to what I'm trying to say here, but it's resonating in my head. You know, what we have on the internet is basically a text area. And sure, we have emoji and we have grammar and we have ways that we go about communicating. But text only, even with the help of emoji is a very low fidelity form of communication there's so much nuance
Starting point is 01:15:08 even just voice inflection that we have the advantage of here on this show I like Brett better today than when well reading his blog post I can hear him yeah or watch his talk it's a completely different message
Starting point is 01:15:21 between reading the blog post and watching the talk even though the content is pretty much the same. You will get more out of the talk, even though you have to dedicate a half an hour of looking at a screen and listening. So it's, it takes more time, but there's so much more transmitted between the speaker and the, and a listener than there is between one person reading and one person writing. And so I think the more that we can get our community into, you know, meet space, so to speak, or even simulate that, like the more real life relationships we can form,
Starting point is 01:15:55 the more conversations that we can have, the more we don't have to remind ourselves that there's a person on the other side of that text area, because you're looking at that person in the face and talking to them it no longer becomes a stranger on the internet who ruined your day because their open source project had a bug in it it becomes this this person i know brett who works for python works on python and i'm going to speak to brett in a different way right after having heard his, seen where he's coming from, these kinds of things. And so maybe not necessarily a scalable solution for all open source everywhere, since it's such a huge community, but something that we can keep in mind, if all we have is a
Starting point is 01:16:34 text area, we can at least think of like, would I say this out loud to somebody that, you know, that I was standing in front of? Cause sure there are conflicts in real life and there are, you can be rude you know in a real in a face-to-face conversation but it's a lot harder and you're way less likely and if we can't actually have voice and video conversations although I would advocate for more of those if we can't we at least need to be thinking to ourselves as we write how could this possibly be read so that it's worse off than the way i'm saying it because so much of our problem is just misreading text right there's
Starting point is 01:17:11 two things that i actually say to that one is um a simple way to help make people realize at least when they're talking to you that there's a person on the other end is to actually use a photo of yourself as your profile photo like on gith, because that little bubble will be there, and you will see the other person's face. And it's a little harder to be rude to that person's bubble when you realize that, oh, that's an actual human being. It's not the random little set of squares that GitHub assigns on default or some picture of some actor from your favorite movie or something.
Starting point is 01:17:43 When it's an actual picture of you, it does help hit home that there is a human being on the other side of this issue, for instance. The other thing I would say is, basically, nothing in open source needs to happen now. There's nothing that has to happen today, this moment, where you can't stop and take the time to proofread. There's no reason why you need to do anything today. You could stop. Like, if you're having a bad day, just don't reply. Just wait till tomorrow. If you have to write yourself a note, do it. But there's absolutely no reason why you have to hit that reply button now.
Starting point is 01:18:16 Yeah. And just take the time to realize that, you know what? I can wait. It's okay. The world's not going to end if I don't reply to this email thread today or tomorrow or honestly ever. You can reply to that issue later. You can file the bug tomorrow because guess what? Even if it gets fixed today, chances are it's not going to get to you the next day because releases just typically don't work that way. So, giving yourself even just an hour or until after lunch or just the next day
Starting point is 01:18:49 is not really going to impact anyone's life in any way, shape, or form almost in any way measurable. And yet, it'll still put you in a better headspace to make sure that what you communicate through online, through text, because as you point out, Jared, text is very hard to be expressive. This is why it is so difficult to be a good writer, because it is not easy to express oneself or one's feelings or whatever. As you guys said, it's very different to read that blog post than it is to see my talk or hear me right now, because it's very hard to get inflections, any sense of humor through it, and to make sure that there's no miscommunication versus be able to hear my voice.
Starting point is 01:19:31 You can very much pick up when I'm joking and when I'm not. And it's just hard. And so it's like, you know what, if you're going to have to take the time to be very clear and not rude because it's so hard to get this right, then just take the time to get it right and just wait and just be, then just take the time to get it right and just wait and just be free and just wait until you're in the right headspace that you're willing to put that time and effort
Starting point is 01:19:50 into that response. You need to make a cooling off period. Hothead is said for a reason. Hothead, you just need to chill out. Yeah, we've- Even if you're right, chill out. We've joked about what would happen to online interactions if we restricted everyone to one email response per thread a day.
Starting point is 01:20:10 Like, what would that do to mailing lists? Like, the volume would drop significantly, which honestly is not always a bad thing. But it would also cause everyone to have to think a lot more about what they say. Limit the amount of characters and limit the responses. Twitter. about what they say because limit the amount of characters and limit the responses twitter yeah the character one can be a little hard but at least the one per day i don't know if anyone will ever try that but it's for this exact reason it's been at least an enticing idea of how do you try to really force people to actually take time to respond it'd be a good exercise for a period just like you do your detoxes yeah do it uh as often as it makes sense just to let people know you know this is how it
Starting point is 01:20:53 could feel if we really got out of hand so i actually kind of do this already um what i do in my email is i filter everything in gmail to a. I make sure the label is not viewable in the label list. And I only check those once a day. So I see it, I read it, I catch up, I do my response and then I'm done. And that's it. It's also very intentional too. You're very intentional with how you deal with certain things
Starting point is 01:21:17 because of, like you said, your triggers and or just your sheer desire to maybe deal with some conflict. You know, like the whole 10 things you mentioned. They realize this will get you riled up. So maybe you're in the mood to get a little riled up. So you check your labels. Exactly.
Starting point is 01:21:33 So you just force, if you have to, force yourself to only interact once a day. And a lot of times something that would have upset you has already been dealt with by the time you see it. Right? I mean, the internet's 24-7. Chances are there are going to be responses 24-7 and something that comes in could quite easily be dealt with later on if you just give it some time. How about this? We'll close the show by telling listeners, leave this show. If you've listened this far, leave this show by going and spreading kindness in some way, shape, or form. Either take a lot of the advice that's
Starting point is 01:22:06 been given here or different stories being shared, but walk away from this with some sort of resolution to be kind and to give yourself a cooling off period the next time you can't be kind in the moment. And to become more self-aware of certain things, moderate yourself, set expectations for people around you, give yourself some buffer so that, you know, you don't get into those zones. Cause when you get in those zones, it's pretty easy to let your mouth just go. Right. And so walk away from the show. That's what I'm going to do. I'm going to, I've always kind of ebb on the, this kind of teetering to this, like always being aware of what, how I'm speaking or this and that. So
Starting point is 01:22:45 I'd like to personally live with just more awareness on being kind, responding with kindness and giving myself that cool off period. Jared knows it. He's much better at responses than I am sometimes. And I just like, I wait for Jared to respond because I might not respond so nicely. And Jared doesn't. I'm like, dude, thank you so much because your email was so much better than mine would have been, at least in that moment. If I gave myself a day, maybe I could match his kindness, but he's pretty good at it. Thank you.
Starting point is 01:23:14 What do you think, Brad? I think it would be awesome. I think it would be great if we all just walked away from this podcast. If any other message of just be kind and just, if you have to take take time until you are able to be kind great brett thank you so much for your time it's been so much so much of a pleasure to have this conversation with you and kind of walk this road with you
Starting point is 01:23:36 thank you uh i don't personally use python every day i'm sure there's lots of software i use that uses python so thank you for all your hard work. If you haven't gotten a thank you today, you're getting it right now. Thank you for all your hard work over the 15 years you've done what you do. Please keep spreading this message. Please keep being the kind person you are. You are appreciated.
Starting point is 01:23:55 And when you feel like you're not, come back to this podcast, come back to this moment and listen. Well, thank you to both of you. I appreciate it. And as I said privately, I am a fan of the podcast and I do appreciate what the two of you do with this podcast and the message you try to get out there so thank
Starting point is 01:24:08 you for that thank you we appreciate it all right thanks for tuning into this episode of the change log assuming you love this show do us a favor go into itunes give us a rating give us a review go into overcast and favorite it doing either of those things truly helps the show to get discovered by others. Of course, we want to thank our sponsors, Vetteri, DigitalOcean, Algolia, and Raygun. Also, thanks to FASI, our bandwidth partner. Check them out at
Starting point is 01:24:35 FASI.com. Also, Rollbar, they help us move fast and fix things. Rollbar.com slash changelog. And of course, we host changelog.com on Leno cloud servers. Learn more at Leno.com slash changelog. And of course, we host changelog.com on Leno cloud servers. Learn more at leno.com slash changelog. Myself, Adam Stachowiak and Jared Santo host the show. The show is edited and mixed by Tim Smith. Music is by the mysterious Breakmaster Cylinder. If you want to hear more shows just like this, subscribe to our master feed changelog.com slash
Starting point is 01:25:04 master or go into your podcast app and search for changelog.com slash master, or go into your podcast app and search for ChangeLog Master. You'll find it. Plus, you'll get all of our shows, as well as some extras that only hit the master feed. Thanks for listening. We'll see you next week. And you are off the Changelog hot seat Boom Wasn't that hot though No
Starting point is 01:25:33 Not at all That was a good show That was fun Good That was fun I enjoyed that As long as you're As long as you're not disappointed
Starting point is 01:25:42 That's all I care about Well I mean The The elongated first break really solidified it for me the show was whatever I learned so much about Keanu Reeves today I know right
Starting point is 01:25:54 jeez the man's history is crazy I like him so much more now I know I have so much more respect for the man based on his troubled childhood and he still turned out to be a nice guy that's what happened with me and the driver I know I have so much more respect for the man based on his troubled childhood and he still turned out to be a nice guy wow that's what happened with me and the driver I can't remember his first name right now
Starting point is 01:26:10 but from Star Wars I think it's Michael Mike Driver Adam I should know it oh Adam Driver oh yeah he was in the armed forces Marines
Starting point is 01:26:24 he was in combat and had to the Marines. Marines. Yeah. He was in combat and had to leave because of an injury, and he tore him to pieces to do so. And it wasn't until after that he became an actor. He gave a TED Talk about it, but I had no idea. But, you know, your like or dislike for his character in Star Wars may make you like or dislike him. And, you know, I wasn't exactly a huge fan of Kylo Ren. And I think even when I was in the theater, when he took off his mask, people laughed.
Starting point is 01:26:52 Rather than be like, oh, you know, that's Darth Vader. And I was, it's not, obviously. So, I mean, he was somewhat of a disappointment in that role to some. And, but but you know, I, that's not my true feelings. Cause I know he's creative and that's really where it stems from.
Starting point is 01:27:10 It's like, you know, got to respect anybody who's creative, but knowing his true personal story made me like his character and who he was playing the character better. Yeah. You know, it gave me a new appreciation.
Starting point is 01:27:23 Yeah. I think he really nailed that character. He really, yeah and i gave you a new appreciation yeah i think he really nailed that character he really i think the problem was is when that happened in the movie i don't think people had enough backstory of the character to realize that he is just a kid who's just right he's torn yeah torn from his parents and the world he knew has been twisted and contorted into the meanest negative person he has this internal conflict that you don't know about till the end really where he has the whole scene with his father but you don't realize that like yeah he kind of looks like this kid because he is he's not
Starting point is 01:27:54 darth vader this grizzled pissed off human being because his whole he thought his whole world was pulled away from him and basically killed. So it was just lack of context and everyone just kind of living in the moment and not stopping to think that there might be more to this story later on and just trying to just like go with it and just like, let's see where it ends up. And the, Oh yeah.
Starting point is 01:28:19 There's a reason. Meet their expectations. Exactly. Yeah. See, it's all about them expectations. I'm telling you, the solution to most things is proper expectations. Exactly. See, it's all about them expectations. I'm telling you, the solution to most things is proper expectations.
Starting point is 01:28:28 Exactly. So many more people would have come out happy with The Last Jedi. Yeah. I mean, you can't get upset if your expectations were in alignment with, to some degree, the outcome. Or at least aware that the outcome you got was a possibility and potentially even likely it's the whole risk the idea of risk like you know lost all your money in bitcoin over over the holiday season you're idiot you know i mean like there's people they're pissed bad expectation like what do you expect the market wants you to put your money in so they can keep it they can keep it that's true it's just like movie sequels right everyone comes in with the expectation that it's going to be just
Starting point is 01:29:11 like the previous one it's like yeah you know what it ain't gonna happen there is no way history is going to repeat itself that way it might be better it's it could be worse but it's going to be different regardless and by the way even your expectation that it's going to be different regardless. And by the way, even your expectation that it's going to be the same will make you disappointed because it's more of the same. Like it's like the weather, right? You just go in knowing you're going to be disappointed. You should go in knowing you're going to be disappointed.
Starting point is 01:29:34 Regardless of it's good or bad. Exactly. The weather might look good now, but you're going to complain. You could still complain about something and human beings being as negative as they are. You're going to find it and it's going to make you cranky. Yeah.
Starting point is 01:29:49 Ten good days of weather in a row, and then one bad day ruins the whole thing. What's wrong with you? The weather. The weather. Ten to one ratio. Weren't you just at the beach and enjoying your life three, four days, five days in a row? Yeah. Oh, my God.
Starting point is 01:30:01 It's raining. It's like, oh, it's raining. Oh, well, at least i had those that five full straight days of gorgeous weather gotta find the good gotta find the good well just yesterday so we had an amazing weekend uh just last weekend great weather just fun yeah we had just i don't even go to the details it was a great weekend just regular weekend and then yesterday sucked just at home and rachel and i are both kind of pissed off just at life. And I was just like, this weekend was awesome.
Starting point is 01:30:31 She's like, yeah, yeah, it really was. I'm like, let's just think about that for a little bit. And she's like, yeah, good idea. Cause like, I'm thinking about the day and today is not going so well. And that kind of helped. I had to remind ourselves. Yeah. You got to take stuck with your
Starting point is 01:30:45 things before that's for sure yeah well as i mean as uh adam said earlier right it's like whenever you get in an argument with your spouse it's always just stop remember there's no ill will and you do love this person and there's a reason how you you married them and ended up in this point just remember all the positive before this stupid argument over what movie you're going to watch today tonight and it helps put a lot of it in perspective now whether you can remember to do that in the moment is a totally different question but at least afterwards be able to reflect back and be like yeah that was a stupid argument i should never gotten that upset over this it really was not necessary that's so true so true my friend

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.