by jcannon on July 03, 2006 02:30pm

I see my last couple posts were about ambiguity, so I thought today I’d blog about something, IMO, that is not ambiguous at all—and the topic would be a fitting hat tip to Sara and Korby and all the folks involved with CodePlex

Brief background: We had to buy our own combination padlocks on our lockers in my high school.  I used to forget the combination all the time (—I still have nightmares about that).  I finally solved this by writing my combination in hex on the back of the lock. (I figured there was only one other kid in my class who  would know what 0F was in base-10, so if anything was ever missing, I’d know where to look. ) 

I tell this little anecdote because it made me think about the lack of a community of folks with similar interests in my little world back then.   The only reason I knew hex* went back years earlier to a similar lack of community: I couldn’t get a game I was writing on my Commodore 64 to do some things fast enough in BASIC,  so I asked my Dad what else I could do and he explained what Assembly language was, and from then on there were lots of nights when I was supposed to be asleep, sitting there in my pajamas, banging away in 6502 Assembly land—by myself.

This was long before the concept of a home modem would have ever occurred to us, never mind the modern Internet’s enablement of community and collaborative development--but I can’t help but wonder what a difference it might have made to me (never mind the quality of that game!) if there had been a more readily accessible community of folks interesting in collaborating and mentoring at that time.

What does this have to do with praising open source developers? This week, inspired by CodePlex, I was looking back at two of the most important studies of the motivations of open source developers.  In the two studies (Ghosh in 2002 and Lakhani (PDF) in 2004—both are available online), although slightly different sets of questions were asked, by a notable margin the leading  responses were “Learn and develop new skills” and “Share knowledge and skills” (Ghosh) and “Code for project is intellectually stimulating to write” and ‘Improve programming skills” (Lakhani).   What’s even more striking about this is comparing these types of motivations—about learning and sharing—with more “confrontational” motivations.  Developers could choose multiple answers in both studies, and, for example, in the Lakhani study four times as many volunteer developers  chose “Improve programming skills” as a reason for joining an open source community than “Dislike proprietary software and want to defeat them.” 

To be clear, anybody’s reason is valid to them--but I am a person who would rather learn than win.  That’s true when I write code, it’s true when I play soccer; I think that is a good way to view the world—and from all the research I’ve seen, the evidence is compelling that folks who voluntarily participate in open source development communities place very high value on learning and sharing their knowledge with others.  I don’t have comparable data at hand, but I’m willing to believe it is well higher than the average person in the population at large.  And for that—kudos.  I think that means there are far more opportunities for kids like I once was not just because of technological advances, but because of people—maybe people like you reading this post.

*I actually can’t remember if I stumbled across hex first in Traveller, where, as I recall the descriptive strings for character attributes and planets where in hex—come on, don’t snicker, you know you played it too…