Open Source Community Organizing
Published October 16, 2015
This video features Alex Gaynor at Django Birthday 2015 in Lawrence, Kansas, USA.
Alex Gaynor
http://www.pyvideo.org/video/3655/7-years-with-django-to-core-developer-and-back
https://djangobirthday.com/talks/#7yrs-w-django
One night, in September 2007, I read every page of Django's documentation and the entire (then draft) Django Book. Over the next few years I became a frequent contributor to Django, including becoming a core developer and later a member of the DSF board. Now I'm largely uninvolved with Django's development. This talk is the story of my time with Django. This talk is a walk through my time with Django -- from emailing Adrian to ask about attending a sprint that had already happened, to contributing patches, to the multi-db GSOC, to Eric Florenzano's keynote, becoming a core developer, joining the board, to slowly fading away and becoming an emeritus developer.
Alex Gaynor recounts finding Django in 2007 after being frustrated by framework documentation, then learning the project by reading its docs and building a blog. He gradually contributed patches, worked on aggregates, the admin, and multiple-database support, joined the core team in 2010, and helped establish an online code of conduct. As his jobs and interests changed, he stopped using Django and moved toward other Python projects, eventually becoming an emeritus core-team member, but says the Django community and its people remained a lasting influence.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
Speaker 1: Welcome, Alex.
Speaker 2: Hi, everybody. So yeah, uh I'm Alex and this is This is kind of a talk about the last seven years I've spent with Django. So uh one of the uh chat services I use has this cool convention uh where you if you prefix a message with With I comma I it means I don't really have a particular point I'm trying to make here. Uh I'm just talking. So I uh I don't have a point here. Uh I give a lot of talks and They're basically all of the form. How do you do code review? Why should you use PyPy? I have a point. I want to teach something. I'm trying to convince you of something. Here I'm gonna tell you a story about the last seven years I spent with Django, and maybe you'll find it interesting.
Speaker 2: Maybe there's a lesson in it. I I don't really have one. Uh I guess before I dive in, like I'm pretty sure I missed important events from Django's history, from my history with Django. Gmail search is optimized for a lot of things. Reconstructing like major events from your life was not one of their design goals, it turned out. So I tried to include everything I remember. Maybe you'll remember something I missed. Uh anyway, in 2007, uh I was teaching myself PHP and hanging out in Pound Facebook on on uh Freenode, which was where like the new Facebook platform where you could write apps that like lived inside your profile was. And like I was learning a ton about like making web applications there. And I did let you put your favorite video games on your profile.
Speaker 2: And eventually like I met uh someone who wanted to build like a full video game social network and we were chatting. And he said, uh I'm using Django, which at the time I'd never heard of. Um and I started to like hear about these web framework things And started trying to learn those. And it turns out that like basically every framework at this time, their idea of documentation was like a list of classes that was sorted alphabetically. That's not like the most useful thing ever. Uh particularly like if you don't know the language this thing is written in, you have no background. So I like I bounced off of probably like half a dozen frameworks Like went to like rubyonrails.
Speaker 2: com documentation like A active support, active something else. B like it just bounced off of it like the same experience with a couple PHP frameworks. So like finally I don't even know like this is several months after I was first told about Django, but I I went to check it out and I had the same experience. experience uh Eric did. I read the entire documentation in one night. I read the Django book. Like I didn't I didn't even have a computer at the time that I could program on. This is just a computer I'd borrowed some from someone else. So like I was just reading these docs like as pros, not even as like, let me do this exercise Uh I think I watched Adrian's talk at uh in Chicago, the Snakes and Rubies video. Like I like just consumed all this material that I could about
Speaker 2: Django. Uh and then I sent uh Adrian an email uh asking uh there was some sprint planned in Chicago uh that was mentioned on like the Django blog and I asked like, hey, like you needed to get on the list to get through security. So it's like, hey, I'd like I'd barely know Django, but I want to attend the sprint to see what's up. And Adrian's like, uh actually the sprint was yesterday, but like Here is uh here's the URL to the contributing docs. Uh and I didn't really get to contributing to Django for a while, but mostly I thought that was hilarious. retrospect that like my first interaction with the project is not having a great grasp on how calendars work. And like everyone else at the time, like the first thing I wanted to build was a blog with Django, because that was the thing you did.
Speaker 2: So I was hanging out in Pound Django at that point. like asking all sorts of like newbie questions about Django and Brian Rosner like uh expressed interest in like this blog I was building and like he's actually like put the code that we worked on online. like. Also he encouraged me to like get involved in GitHub super, super early, which was awesome. But eventually like through working on this blog, I found some feature that I wanted for I don't even know why I wanted this feature, but I I wanted uh the file path field to support listing folders as well. And he encouraged me to file a ticket and like try to contribute a patch. So this is like the first patch I ever contributed to Django. It was landed like five years after I originally submitted it. And it's pretty cool actually the
Speaker 2: The place I landed it was uh my university, this is you know, several years ago now, uh, but uh we ran like a course on how to get involved in control. So like I used this patch to like talk about my history of involvement with Django and like landed it at that event. So that was pretty cool. The first patch I wrote that was ever actually uh landed was this uh typo fix on the query set refactor branch. One character. Um But so the reason I actually started to get involved enough to like contribute this is I didn't realize that like you could subscribe to an issue and get emails when stuff changed. So every day I'd go back to like Django's track and see if there's an update to my issue. And over time I started to see like
Speaker 2: other issues that were related that I could contribute to or I'd notice two issues uh that I didn't know anything about but that I could tell were related. Uh but I don't really remember w w how I got like super involved. Like I remember writing this patch and like going to track a whole bunch, but eventually I found myself like contributing a ton. Like the next thing I remember is uh like I'm helping out uh getting aggregates landed for Django one point one uh and like working on a bunch of features For the admin and starting to do other Python open source stuff. But I I don't really remember how that happened, which is kind of unfortunate. Like the next major thing I got involved with was doing multiple database support for Django, which is a GSOC project and by now we're in two thousand nine, so like
Speaker 2: a year and a half, two years into like being involved in the Django community. And so this was like a huge project uh that I worked on for a summer with uh Russell Keith McGee mentoring and then like tons of feedback from the community. I think I forced Justin Braun to like rewrite all of Geo Django to like deal with these refactors. Uh we forced like the Oracle folks to like completely redo their work. Uh this is like ton of folks like contributing and getting involved. Uh at some point uh I participated in this podcast, Django Dos, with Eric Florenzano and Brian Rosner, uh so like talking about all the stuff that's happening in the community. This is I think the first time I really got involved in more of the less software, more community side of Django. And then like
Speaker 2: again, I don't really remember a whole lot of what's going on other than like I'm writing lots of software on Django. And some other Python open source now. So in 2010, uh Eric uh gives a keynote, the uh the classic Why I Hate Django at uh DjangoCon this year. And like one of his slides is asking uh why I'm not a core developer. Uh and so a couple months later, I don't I don't know how related uh I I got uh the commit bit for Django. Uh so I actually got commit all my birthday, which is pretty awesome. Uh then next commit like an hour later, fixing a typo in my biography.
Speaker 2: Yeah, I I make a lot of typos. Uh and so then like for the next several years I spend a bunch of time working on random features in Django ebbing and flowing. Uh one of the weird things for me is The like there's this mantra that open source is like driven by people working on the features they need. Almost nothing I ever did on Django was because I had a need for that feature. It always just just seemed like a cool project or someone else needed this, needed a hand like making it happen. Um so I none of this stuff at this point is like motivated by what I was working on personally. Uh like I was a student so I didn't like have any real projects. Um At some point, uh
Speaker 2: this is probably now like 2011 or 2012, I joined the board of the Django Software Foundation and got involved in sort of the organizing side of the community, I guess. Uh I also around this like I got a new job where I stopped using Django altogether. Uh so that led to like a decrease Of involvement. Even though my work was not really motivating the features I worked on, it was like a thing that was keeping me attached to the community and like reminding me to work on stuff. Uh one of the things I was like most proud of that we uh got done was getting a code of conduct instituted for the Django community We'd had them at events and stuff for a while, but one to cover our online spaces was really important I think. So
Speaker 2: working to uh get this drafted, draw inspiration from all the other like uh documents like the ADA initiative and like the Ubuntu community comp Uh code of conduct, drawing inspiration from all those and producing something for our community was really important. And now I'm like super excited because this document is now being used by like the Go community and the Twisted community. uh as the basis for a lot of what they're doing, uh which is awesome and just uh super gratifying. Uh but uh eventually I recognize this is This is in 2014, September. I recognized that like I was actually contributing very little uh substantively to Django at this point. I'd stopped committing basically entirely, and so I converted myself to an emeritus member of the core team. Which I think I was probably the first person to actually explicitly do this in a very long time.
Speaker 2: Like a lot of folks just hung out, like we we'd all like for months I had like not committed anything and like I know those true of a lot of other folks, but uh I don't I don't remember what motivated me but I wanted to like recognize that uh I was not contributing on a regular basis. Uh and so like from this that point forward and really before that even like I ended up just spending most of my time doing random other Python open source stuff, getting involved in CPython and PyPy, uh other projects like that. So in like the seven years I spent with Django, almost everything about my life changed many, many times. Like I moved across the country twice. I went to college, I graduated, I got a job. I
Speaker 2: like changed jobs twice. Basically nothing about my life is the same as it was in two thousand seven when I first found Django, except I still hang out with a lot of the same people on IRC Which is pretty great. So don't have computers, uh have communities. They seem to be a lot uh longer lasting Uh so I wish this was like a much more coherent story, but my experience with Django was just a complete mishmash of working on problems I found interesting. uh very occasionally working on problems that directly impacted me but mostly just trying to help out the Python and Django open source communities because I was so indebted to them when I first found Django that night in 2007 where I read all the docs.
Speaker 2: Like at that point I was a high school dropout who'd like wasn't really sure what he wanted to do. So Django has like been with me since then through a lot of stuff, so I d I don't know. Maybe somebody here found that story interesting. I can't imagine what you would ask, but if you have questions, I can try to answer them. You'll learn. Yeah, question. Wait your turn.
Speaker 3: It's actually totally unrelated to everything that you told me. talked about um and has to do with the US digital service. I hear that there is a reserve and I cannot for the life of me figure out how you sign up for Do you know?
Speaker 2: Uh yes, talk to me after this talk.
Speaker 3: Okay, cool.
Speaker 2: If anyone else is interested, also feel free to talk to me afterwards. If nothing else, I have stickers. Uh my employer.
Speaker 4: I I was just curious, um what kind of drove you towards um working on on standardizing the code of conduct. I mean because that is something that, you know, that level of interaction can be touchy. And I I mean w was it was it a personal experience or was this just just another problem that you saw that needed to be uh dealt with and resolved and you just decided to take it on.
Speaker 2: Uh So I think the reason I got interested in it, uh to be frank, like very early on when a lot of the Python community was making a lot of its inroads on diversity issues. I wouldn't say it was on the fence about the concept of diversity, but I wasn't really sure how I felt about like the approach of like groups like Pie Ladies and Honestly, watching them be successful and how big that impact uh they were having was convinced me that like some of the institutions institutional side was really important and I I'd read lots of accounts of like how they were important uh at in-person events so it just it seemed like a very natural extension uh that it was important in online spaces as well. Well, all right.
Speaker 1: Well thanks, Alex.
Speaker 2: Thank you.
He first learned Django by reading its documentation, then built a blog and filed a ticket for a feature he wanted. Tracking that ticket and related issues gradually led him to contribute more patches, including work on aggregates, the admin, and multiple-database support.
Discussed at 3:54His work included multiple-database support, aggregates, admin features, and community efforts such as establishing an online code of conduct. He also participated in Django community discussions and served on the Django Software Foundation board.
Discussed at 5:12He usually worked on projects because they seemed interesting or because someone else needed help, rather than because he personally needed the feature. He also wanted to give back to the Python and Django communities that had helped him.
Discussed at 7:45By September 2014, he realized he was contributing very little substantive code and had essentially stopped committing. Since he was spending his time on CPython, PyPy, and other Python projects, he changed his status to emeritus.
Discussed at 10:04His interest grew after seeing diversity-focused efforts in the Python community succeed and realizing that institutional support mattered. He viewed a code of conduct for online spaces as a natural extension of the protections and guidance used at in-person events.
Discussed at 13:07Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.
Published October 16, 2015
Published July 16, 2015
Published July 16, 2015
Published July 14, 2015
Published July 12, 2015
Published July 12, 2015