FSOSS, teaching open source, and golf

In two days I get to watch a year's worth of work burst into life.  FSOSS, the open source event I help run, is happening on Thursday and Friday, and for the first time in some years, I'm actually getting to speak!  I'll be part of a panel on Teaching Open Source from the perspective of a professor who has done it.  I'm really excited to share some of what I know, having done it for the past 3 years with Mozilla.

David Eaves is moderating our panel, and he's asked the three of us to come-up with three key lessons about how to teach open source.  As I read my way through the web this morning, I was struck by an article about golf, and I thought I'd get a head start at thinking about what I'll say.

Let me start by saying that I don't golf, probably won't ever golf.  I did in fact golf once, and it was not pretty: a group of six year olds snickered behind me as they waited to take their shots.  I'm not actually interested in golf as golf, but in something else about its culture.

A few weeks ago I was reading a story about Tiger Wood's caddie, Steve Williams, and the role of the caddie has stayed with me ever since.  Today it resurfaced when I read this story, about Tiger Woods returning to Torrey Pines as a caddie for a contest winner:

Here's the quote that really got me:

"He showed me things I never even thought about. Like when he walks into a sand trap, he feels with his feet. It was just so neat. It really was."
I'm fascinated with the idea of the caddie, and the model it provides.  Long ago, reading Illich and Girard, I became aware of the importance of Models.  It has come to permeate how I live, how I raise my children, and how I teach.  Because I don't encounter it in practical terms on a regular basis outside my philosophical readings, I was thrilled to (re)discover the caddie.

The caddie and the golfer are not exactly a team, they are not exactly peers.  Rather, they compliment one another and provide a way for the other to exist.  They form a whole, a single intent, whose aim is realized through partnership.  "A caddie carries a golfer's clubs," while a true statement, is not quite the whole truth.  A caddie will often provide advice, challenge choices, becoming a sounding board for difficult shots and strategy.

I've had the great pleasure to work with some of the best software developers in the industry, and I can tell you that I know exactly what "He showed me things I never even though about" means.  I've become convinced of the value of putting competent, but not professional, developers together with world-class engineers, giving them both a common goal, a single intent, and letting the relationship develop a bit at a time, much as golf moves stroke by stroke across 18 holes.

I'd go so far as to say that it's not only a good way to teach, but the best way.  There are things you need to know that you can only get by doing something with a pro.  I don't know how else a professor or teacher can expect his/her students to achieve a knowledge of professional practice by reading books and working on made-up assignments.  I don't give tests anymore.  Instead I insert students into an atmosphere that tests them every day.

I can't imagine how intimidating it must have been to play golf with the likes of Woods: "I wasn't as nervous after maybe the third or fourth hole."  It's no different when you take software developers who are learning and put them into a code base that is among the largest and most complicated in the world, and then ask them to work shoulder to shoulder with the best developers there are.  They will be nervous.  They will make a lot of mistakes.  And they will learn faster by being inspired and treated as peers than by any other way you can teach them on your own.

Abel said the one thing he took away about Woods was "how much of a down-to-Earth guy he really is."
My experience has been very similar, working in the largest open source projects with students.  Having them see that regular people attain things that seem so difficult is the first step to having them try to do those same things themselves.