The Changelog: Software Development, Open Source - A call for kindness in open source (Interview)
Episode Date: October 10, 2018Adam 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)
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
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
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.
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
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.
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
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.
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.
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,
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.
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,
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.
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
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
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,
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
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
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
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
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.
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
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,
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,
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,
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
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,
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.
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
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,
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
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?
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.
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.
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.
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
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.
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.
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,
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
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
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.
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.
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
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
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,
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
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,
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
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
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.
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
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
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.
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
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
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,
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
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.
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
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.
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.
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?
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
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
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.
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
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
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
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,
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.
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.
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.
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.
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.
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
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
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,
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.
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
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.
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
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
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,
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
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
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
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
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
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,
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
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
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,
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,
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
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
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.
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
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.
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?
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,
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
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.
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,
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.
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,
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
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.
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
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,
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
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.
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.
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
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.
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?
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.
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,
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.
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.
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
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
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,
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.
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.
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.
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
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
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.
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
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,
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?
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
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
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
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
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
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
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.
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.
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
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,
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,
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
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
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,
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
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
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.
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.
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
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.
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
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.
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
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
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.
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
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
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.
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
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.
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
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
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
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
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
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
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
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
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.
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.
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.
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
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.
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.
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
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.
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.
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.
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.
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
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