Differences between revisions 12 and 13
Revision 12 as of 2007-11-06 14:47:11
Size: 7544
Editor: px4o
Comment:
Revision 13 as of 2007-11-06 20:31:28
Size: 8461
Editor: BrettCannon
Comment: optional response from BC.
Deletions are marked like this. Additions are marked like this.
Line 47: Line 47:
(out-of-interview note: you can comment, too, Brett, if you'd like. I'm fishing for something to get people over the hump of hmm-well-maybe-I'll-think-about-it.) BC: While I can't speak directly for the Jython sprint, I do remember my first time sprinting back at PyCon 2003. I was extremely intimidated! Here I was, really traveling for the first time on my own (all the other instances someone I knew was meeting me at the airport), attending a conference for the first time. But before the conference even began, I needed to walk into a room full of people who I not only knew by email only, but idolized as these great programmers who had developed the Python programming language. Definitely had the small-fish-in-big-pond feeling!

But my fears were for naught. Everyone was extremely friendly, both people I had communicated with on top of people I had never met before. I got to pair-program on developing a new opcode with Thomas Wouters who I had never met before until that sprint.

And I think it is key to remember that people are just genuinely nice in the Python. You should not feel intimidated about sprinting. It's basically sitting around for hours on end with really friendly people, programming on fun stuff.

This will be an article demystifying Python Sprints. We hope to publish it in a major journal in time to contribute to the PyCon 2008 publicity effort and to encourage first-time sprinters to take part.

Interview participants:

CD: Catherine Devlin : never sprinted; interviewer

BC: Brett Cannon : Python core sprint coach/participant

JB: Jim Baker : Jython sprint co-coach/participant and first-time PyCon sprinter

Begin interview


*Development sprints gather small groups of people for bursts of face-to-face cooperation to advance software projects. They're increasing in popularity in the open-source world, but many developers still don't know whether or how they could take part. We speak with experienced and rookie sprinters to get a better feel for the phenomenon.*

CD: Brett and Jim, can you start by telling us a little about your backgrounds?

JB: I've been all over the place: academia (I'm an ABD in CS), IT consulting, software development, software startups, and recently open source as a community - and not just a place to get generously licensed quality software. As a result of asking some questions, I found myself leading the Boulder Python Users Group (FrontRangePythoneers), which lead into sprinting. What prompted that was the Arlington Python User Group was sprinting, that looked quite interesting, and that eventually lead to our first sprint on Django. We have had several since then (BoulderSprint). The last was participating in the world-wide Django sprint. Our goal remains the same: everyone who walks in learns the project, and we get some usable contribution out of that day.

Finally, 12 years ago a friend suggested I use Python. About 4 years ago, I finally heeded his advice. It became increasingly clear to me that writing software is many things. It includes not only communicating to the computer, it's also about communicating that intent to other developers. Python excels in combining code clarity with code conciseness. If you think about that, these are virtues especially valuable in a peer activity like sprinting.

BC: Currently, I am attending the University of British Columbia where I am working towards my Ph.D. in computer science (hopefully only two or so years left). I am researching some Java-related security stuff after trying for over a year to come up with a thesis topic that could involve Python. Previously I got my masters in computer science at California Polytechnic State University, San Luis Obispo (Cal Poly SLO for short). And before that I got my bachelors in philosophy at UC Berkeley. Basically I have been in school for a long time. =)

My involvement in Python started with me getting a pure Python implementation of time.strptime() accepted into the standard library in the summer of 2002 after I graduated with my bachelors. I enjoyed learning about Python and being on the python-dev mailing list so much that I started writing the Python-Dev Summaries that August and continued to do so until PyCon 2005. Got my commit privileges for Python the month after PyCon 2003 when Guido got tired of checking in patches for me. And as of PyCon 2006 I have been on the board of directors for the Python Software Foundation. Python is basically what I do with my free time.

In terms of PyCon and sprinting, I have attended every PyCon since its inception. I have also sprinted on Python's core at every PyCon and been the coach for the core sprint in some capacity at every PyCon since 2004.

CD: Wow. Meanwhile, I'm a complete rookie - I'm planning to attend a sprint for the very first time at PyCon 2008. Help me understand what to expect - what will it look like, what will I do?

BC: It looks like a bunch of programmers sitting at long tables, hunched over laptops with the occasional food break, having fun just programming; not much of a sight, I know, but it is fun when you are a part of it. =)

In terms of what you will do varies from sprint team to sprint team. Some spend the first half of the first day giving people an introduction to the project for those that have no experience with the code base. Others just have you start coding the instant you sit down. But in general you find your group, introduce yourself, and ask how you can help.

Then the sprint coach or group suggest something (unless you come with an idea of what you want to work on, which is great and encouraged). Some teams come in with a list of things they need done, varying based on difficulty, required experience, etc. For the core sprint, for instance, this has varied from having people rewrite tests to use unittest or doctest instead of an old-style test that is really archaic to writing the new string interpolation implementation for Python 3.0. The knowledge for this stuff ranges from just knowing how to program in Python to understanding C extensions. Pretty much anyone at any skill level can help.

You just need to come motivated. At least in the core sprint the core developers come with a list of stuff they want to try to accomplish, so they won't be hovering over you constantly asking if you need help. That being said, everyone in the sprint is quite happy to answer questions when asked! It's rather cool to be working on a bug and having the person who wrote that part of Python actually sitting at the table meander over to you, plop down next to you, and discuss the bug and the possible fix.

JB: The Jython sprint shared many of these qualities. But it had some fundamental differences, due to the succession challenges we have seen in Jython development. It was not too long ago that the project had been given it up by many (including myself), as yet another dying open source project - despite its fairly wide adoption in enterprise apps.

So our sprinting was a bit different. Often, we were trying to figure out how to wrangle a brilliant codebase that had not been touched in many places for probably 8 years. (This not legacy code where you say, I could write this so much better myself in my sleep or whatever, although a good deal is dated.) So there was not only a lot of trying out of code, there was a significant amount of discussion going on. The sprint also was an opportunity to expand the ranks of developers. And the whole time, Charlie Groves did a good job of staying on focus for bug fixes for the 2.2 release he was leading.

So while successful sprinting is going to look more or less the same as an intense peer activity, the dynamics of the underlying project are going to be significant factors as well.

CD: Working with top coders, revitalizing a whole project - it sounds exciting, but kind of intimidating, too. Jim, was it hard to decide to jump in and join a sprint?

BC: While I can't speak directly for the Jython sprint, I do remember my first time sprinting back at PyCon 2003. I was extremely intimidated! Here I was, really traveling for the first time on my own (all the other instances someone I knew was meeting me at the airport), attending a conference for the first time. But before the conference even began, I needed to walk into a room full of people who I not only knew by email only, but idolized as these great programmers who had developed the Python programming language. Definitely had the small-fish-in-big-pond feeling!

But my fears were for naught. Everyone was extremely friendly, both people I had communicated with on top of people I had never met before. I got to pair-program on developing a new opcode with Thomas Wouters who I had never met before until that sprint.

And I think it is key to remember that people are just genuinely nice in the Python. You should not feel intimidated about sprinting. It's basically sitting around for hours on end with really friendly people, programming on fun stuff.


end interview

Possible questions (depending on how the "flow" actually goes:

What is sprinting?

What sort of tasks are accomplished at a sprint? How do sprints benefit the project? The community? The participants?

Where do sprints take place?

What does a sprint in action look like?

What is required of a sprinter?

First-time sprinters, how did you decide to sprint? Were you nervous about sprinting? What surprised you about the experience? How has sprinting effected you as a programmer? What would you say to others who've never sprinted?

AdvocacyWritingTasks/Sprinting (last edited 2008-11-15 13:59:51 by localhost)

Unable to edit the page? See the FrontPage for instructions.