2011 In Review: The Python Portion

December 30th, 2011 § 1 comment

As I said in my post this morn­ing — “2011 in Review: The Per­sonal Por­tion” — it’s that time where we’re all tak­ing stock and reflect­ing back on 2011.

In this post’s case, I’m tak­ing stock of the things that changed for me — things that stick out in my mind and projects I’ve either started, floun­dered or run com­pletely into ground.

Design and Expe­ri­ence Matter

Per­haps the biggest shift for me in Python-as-a-whole is a move­ment more towards the social / man­age­ment aspects. I’m a Python Soft­ware Foun­da­tion board mem­ber, so obvi­ously me need­ing to take a “big­ger view” isn’t that sur­pris­ing. What has been sur­pris­ing to me is that every­where I turn, I see things we as a whole can do better.

Now, before you think I’m about to go off the deep end; let me assure you — I wouldn’t trade the com­mu­nity I’m lucky to be part of for any­thing, as I’ve said more elo­quently before. How­ever, only a fool believes that any­thing is per­fect, and only the insane only focus on the flaws.

Tak­ing a step back, I’ve seen more and more things that I think we can do a bet­ter job at, and these real­iza­tions all revolve around my con­tin­ued “tran­si­tion” from more back-end to more front-end design and cod­ing. As I’ve become more focused on the users/community and those who are new, I’ve grown to inter­nal­ize the fact that design and expe­ri­ence mat­ter not only in code, and in a GUI, but they mat­ter to a com­mu­nity and lan­guage as a whole.

I’ve spent the bet­ter part of this past year focused on issues around this — encour­ag­ing peo­ple to get involved in the “softer” side of things — help­ing out with doc­u­men­ta­tion, men­tor­ship and edu­ca­tion, try­ing to get peo­ple to think more about one another and those just get­ting started and intro­duced to things.

I think that we as a com­mu­nity — and I mean every­one — from Django to Plone, from Twisted to Tor­nado, from PyPy to cPython can take a look at the “more human” aspects and find things to improve. Some­times it requires fresh eyes to show you what’s bro­ken — peo­ple who do code reviews reg­u­larly know this.

For an exam­ple, look at Ken­neth Reitz’ Requests mod­ule — billed as “HTTP for Humans” — this might be a per­fect exam­ple of the point I’m try­ing to get across. Built on top of “less friendly” libraries, it’s API is a joy to use. It’s sim­ple, it’s clear — the doc­u­men­ta­tion is well done and the entire project feels very wel­com­ing. Per­haps “Wel­com­ing” is the best word for what I’m look­ing for.

I get stuck in want­ing to fix “all the things” — and I can’t help but get mired down in the details of how we make every­thing more wel­com­ing and the expe­ri­ence bet­ter, how do we lower the bar­rier and reduce fric­tion. The result is that I’ve bro­ken my promises to myself and taken on more things than I can pos­si­bly hope to do justice.

How do we make things more wel­com­ing, how do we help the new peo­ple, how do we help those of us grow­ing stuck in our ways to find and explore new things? How can we do this as a com­mu­nity to lift us all up? What I think we need is a series of small, pos­i­tive changes. Lit­tle things like, say:

  • User friendly READMEs and Doc­u­men­ta­tion. Yes — I said friendly — don’t assume your users are mag­i­cal super smart engi­neers and users. While the arti­cle is more web focused, I enjoyed “The Myth of the Sophis­ti­cated User” — please don’t assume peo­ple are run­ning bleed­ing edge ver­sion of every­thing, and please don’t assume every­one knows 20 years of Python pack­age development.
  • Men­tor­ship! Set up some­thing within your project or team that is focused on men­tor­ing peo­ple to a point where that per­son is com­fort­able to be a con­trib­u­tor.
  • Stop the vit­riol. If you find your­self angry when you’re typ­ing that reply to a mail­ing list; walk away. If you see oth­ers being hos­tile or just flat out rude, call them out on it (pri­vately first, no rea­son to be a jerk). Aim to be polite and welcoming.
  • The next time you’re putting some­thing up on the web? Take a moment to think about or learn about mak­ing some­thing — yes — pretty and usable. Even if it’s some­thing sim­ple, take a moment to real­ize that you’re build­ing some­thing that may be your future user’s first expe­ri­ence with you. It may be as sim­ple as pick­ing up “Design for Hack­ers” (which I quite liked) or just going with some­thing with sane defaults — like twit­ter boot­strap.
  • Speak­ing of sane defaults — please be opin­ion­ated. When a new user wants to install some­thing, don’t give them the com­plete his­tory of pack­ag­ing, just gen­tly explain to them how to do it. Even if I don’t agree with the way you do that, it’s a far cry from 20 years of devel­op­ment his­tory being dumped on some­one when a sim­ple pip install <blah> could work. The same goes for your soft­ware: Pick sane, ratio­nal defaults and abstract away as much as you can. Put exam­ples of usage before the API in documentation.
  • APIs and syn­tax mat­ter: your com­mu­ni­ca­tions chan­nels to your users are APIs and syn­tax just as much as your actual code and libraries.

Mov­ing on — I hate to say it this way; but think of the Users and tar­get audi­ence. Remem­ber, you — the per­son read­ing this — and I — are in a tiny minor­ity of the pop­u­la­tion where soft­ware (for the most part) isn’t magic, we under­stand his­tory and we’re very tol­er­ant of unfriendly things and fail­ures because that’s how we “grew up”.

Not every­one knows how to build an inter­preter; or a web frame­work — it doesn’t mean they still can’t contribute.

The Python Soft­ware Foundation

As most of you know — I am one of the direc­tors of the Python Soft­ware Foun­da­tion, and have been the past two years. 2011 was another year where the PSF got to do some pretty cool things. I’ve been stress­ing and push­ing more and more that the PSF has to be focused not just on the “IP” of Python, or just on cPython devel­op­ment — we have to take a larger view of the entire com­mu­nity — this means encour­ag­ing projects such as PyPy, out­reach work­shops, con­fer­ences, etc via grants and support.

You should really take a look at the Python Soft­ware Foundation’s blog — Doug Hell­mann, Brian Curtin and oth­ers have done their best to doc­u­ment and show­case what the PSF has been up to, and where we’re try­ing to help.

My pri­mary focus has been encour­ag­ing things such as the Out­reach and Edu­ca­tion com­mit­tee, and work­ing behind the scenes with a lot of peo­ple to improve the Python.org infra­struc­ture. More recently I’ve been work­ing on a project which should hope­fully become pub­lic soon — but is tied to my first point about Design and Expe­ri­ence and the PSF.

I want the PSF to grow in the good works it per­forms — more grants as we can afford it, get­ting bet­ter host­ing for things as needed, help­ing out projects like Read The Docs or help­ing push for­ward Python 3. The PSF is the Python Soft­ware Foun­da­tion — we need and should be sup­port­ing and help­ing every­thing from PyPy to PyPI, cPython to Scipy.

I think the best way for me to help here is to pick up where I left off doc­u­ment­ing the PSF. Once again — the design and inter­face matter.

The Sprints Committee

As part of my board work back in 2010 I helped start the Python Sprints project — and under Brian Curtin’s guid­ance in 2011, it has con­tin­ued to make small dona­tions in places it mat­ters. In 2012, I’d like to see if I can spin back around and help it grow more and flour­ish, per­haps even be able to pro­vide more money where it’s needed. It’s growth has been slow — but that’s also due to us see­ing less sprints over­all it seems.

GetPython3.com

Started as a side project (yes. another one. sigh.) Get Python 3 is meant to serve as a pile of infor­ma­tion and resources about Python 3 — and as many of the aspects of Python 3 as pos­si­ble. Where to get fund­ing, how to port, what is ported. I’ve actu­ally got­ten some excel­lent help from oth­ers (see github) and I’m hop­ing to grow it more. I’ve got­ten pretty good feed­back on it — and I never turn down a patch!

Python (Core) Mentorship

Dri­ven from my expe­ri­ence with the first point about being wel­com­ing, I’ve done my best to spin up the Python Core Men­tor­ship group, a team / list focused on men­tor­ing new peo­ple into con­tribut­ing to core Python. To quote the home page:

The mis­sion of the Python Core Men­tor Pro­gram is to pro­vide an open and wel­com­ing place to con­nect stu­dents, pro­gram­mers – and any­one inter­ested in con­tribut­ing to the Python Core devel­op­ment. This project is based on the idea that the best way to wel­come new peo­ple into any project is a venue which con­nects them to a vari­ety of men­tors who can assist in guid­ing them through the con­tri­bu­tion process, includ­ing dis­cus­sions on lists such as python-dev, and python-ideas, the bug tracker, mer­cu­r­ial ques­tions, code reviews, etc.

While traf­fic is low, I think it has done it’s job — as with every­thing else on my list, I’d like to see growth — as it is, due to every­thing else on my plate, oth­ers have stepped up to help lead and guide the group. As it is, I’ve run into a case where as I’ve found with many other projects like this — peo­ple are already “tapped out” — myself included. More on resource con­tention later — and I should really do a poll and gauge the list for the rel­a­tive level of suc­cess they feel the group has engendered.

Python Speed Project

Another side-burner project is the Speed.python.org project — this one makes me sad(der) than my other time-starved projects. While we have finally been able to set it up as a PyPy build slave and have it feed­ing results to speed.pypy.org (see the speed-python results), it has not taken off as much as I hoped. We have a beast of a machine (see my ini­tial announce­ment) — but we’ve hit the resource wall like every­thing else. Not enough peo­ple with enough time and the right skills.

The Ele­phant in the room: PyCon 2012

My sin­gle biggest project this year has been get­ting PyCon 2012 ready to fly — every­thing from get­ting the new web­site launched, the staff assem­bled, writ­ing a code of con­duct, and pro­vid­ing white-glove ser­vice and sup­port (and get­ting) our amaz­ing list of spon­sors.

I can’t really esti­mate how many hours I’ve “worked” on Python — but I can tell you every hour has been worth it. Even though it’s sucked my time from other things and projects, it looks like it’s going to be an amaz­ing con­fer­ence. We have robots, we have amaz­ing talks, amaz­ing keynote and ple­nary speak­ers (Paul Gra­ham and Stormy Peters for starters). We have awe­some tuto­ri­als and even more to come.

PyCon rep­re­sents the sin­gle biggest “com­mu­nity act” that the Python Soft­ware Foun­da­tion per­forms — not only does the PSF fund PyCon, but it man­ages it, assumes the risk, etc. I wrote about it in detail in my post “Mak­ing the Case for Spon­sor­ship” and in the “Every­body Pays” post. I’m hop­ing to con­tinue to write up more and more of the details of the inner work­ings of PyCon, as I think it’s an impor­tant series of data points and lessons. Remem­ber — any funds “left” from PyCon go the PSF which allow the foun­da­tion to issue grants to other con­fer­ences, to devel­op­ers, groups and work­shops. It helps us help you.

PyCon 2012 is the thing I am most proud of; we have 80 spon­sors and part­ners (Such as Open­Hatch and PyLadies), we have a solid team of orga­niz­ers work­ing together to bring PyCon 2012 to fruition. We have a robust finan­cial aid pro­gram as is tra­di­tion. I can only hope that I have the tenac­ity and will to see it come together and be able to look at a sea of 1500 Python­istas — new and old in Santa Clara.

ps: You can reg­is­ter here. :)

Blood from a Stone

How do you get more time from peo­ple who are busy? Time and Time again, I’ve found myself ask­ing that ques­tion. Each one of the projects I’ve listed has hit the same issue over and over again. How do you get the vol­un­teers nec­es­sary to help? Heck, even my call for help with mul­ti­pro­cess­ing in August fell on a mostly flat note — prob­a­bly due to me.

I no longer feel “ok” ask­ing for help with new projects sim­ply due to the fact that I know every­one is busy — it’s insane of me to ask peo­ple to take their time away from their projects or fam­i­lies or jobs.

What that means how­ever is that I have com­pletely failed in the not-taking-on-new-things depart­ment — and I don’t see this chang­ing much with­out me flat out learn­ing to tell myself “no”. I believe in this com­mu­nity — I believe in the peo­ple, the friends I have, the lan­guage and every­thing involved. It’s not just another tool for me; it never has been. I’m still learn­ing, and mostly fail­ing (or flail­ing, depends on where I’m standing).

Fin­ish­ing this one off

Look­ing at the list I’ve typed out above, I sud­denly have the feel­ing that I didn’t actu­ally do much last year, I know thats wrong (a nasty look from my fam­ily mem­bers would eas­ily remind me of that). I have been able to help out where I can mak­ing things more friendly, more wel­com­ing and to reach out when and where I can to offer help, and support.

I’ve watched the com­mu­nity change in some dra­matic ways, I’ve looked on as PyPy has gained amaz­ing momen­tum, more and more ven­dors and com­pa­nies have come out with Python sup­port and stat­ing that they’re using Python (and are hir­ing). I’ve got­ten to work with PSF mem­bers, the board, and many, many oth­ers — all I can do is keep at it, and hope I do things justice.

  • Alex

    Amaz­ing job bro. Keep it up.

What's this?

You are currently reading 2011 In Review: The Python Portion at jessenoller.com.

meta

  • Categories

  • Recent Posts