The Thrill of Pair Programming

I have a lot of different passions, which is lucky in a lot of ways, and unlucky in others. It’s lucky because it makes life incredibly fun. It’s unlucky, because life is finite, and I don’t have time to delve as deeply into things as I would like. It’s why I knew I would never become a professional programmer.    (JZB)

This past year, I spent most of my time doing field work and thinking about social processes. When I switched into technical mode, it was as an architect or a pundit, not as a programmer. And that’s the way it should be. It’s the right mode for me professionally and personally. Besides, the less time in front of a computer, the better.    (JZC)

However, that’s changed these past few months, as I’ve had to wear my coding hat for a variety of reasons. And I have to admit, it still gets me going. My skills have degraded a lot over the years, more from disuse than age, but I can still get it done. It makes me feel like one of those clean-cut, Midwestern types who comes home from his nine-to-five job, then plays poker all night at some seedy underground club. It’s liberating.    (JZD)

In particular, I had fun Pair Programming with Peter Kaminski a few weeks ago and with Brian Ingerson last night. Both of those efforts were toy one-offs, but they were great fun nevertheless, and it got me thinking. Coding with others, and pairing in particular, is one of the most intense, enjoyable collaborative experiences one can have. Read Evan Henshaw-Plath‘s account of his recent Ruby On Rails sprint with Blaine Cook and Kellan Elliott-McCrea, and you’ll see what I mean. It’s the sort of thing I never get to do anymore.    (JZE)

I know a lot of great coders, and I love talking shop. And, I still want to spend as little time as possible in front of a computer. But, I’m going to make a concerted effort to pair with folks at least once every few months. If you’re in the Bay Area and are in the mood to code up something that is small, cool, and will improve collaboration some way, somehow, let me know.    (JZF)

Social Implications of Data Sharing

A few weeks ago, Evan Henshaw-Plath was explaining to me his epiphany about 43people, where an aggregation of different services tied together by Social Networks was starting to look very compelling. He then said that the next natural step for the folks at The Robot Co-op was calendaring. If anyone knows about calendaring, it’s Evan, who started a calendaring company with Kellan Elliott-McCrea in a past life. (Evan, you need Purple Numbers in your blog. Everyone needs them, dammit!) Trying to find relevant event information works much better when tied to Social Networks. Folks are starting to recognize this en masse, and the industry is reacting accordingly.    (JV3)

In an ideal world, Social Networks wouldn’t be tied to a particular site. Instead, that information would be distributed, and users would control the distribution. I’d love to tie my Google searches with my social network profile at LinkedIn, for example. That’s not going to happen unless Google acquires LinkedIn, or unless there are specs and a culture for distributed data sharing.    (JV4)

The culture is the tricky part. For as long as I’ve known him, Ross Mayfield has had an email signature that says what recipients are allowed to do with that email. (The choices are “bloggable,” “ask first,” and “private.” I think “ask first” is his default.) That, my friends, is a link contract.    (JV5)

Andy Dale has been working on the technical details of distributed data sharing with his XDI work. XDI is hairy stuff, but it’s graspable. Recently, Andy blogged about the form that link contracts and data sharing agreements might take. Victor Grey has said many times that we need a Creative Commons for data sharing agreements — simple, understandable, reusable, and legally enforceable contracts for our data.    (JV6)

That’s just a start. What will the user interface for specifying these agreements look like? Will users pay any more attention to these then they already do to Terms of Agreement on web sites?    (JV7)

Election Redux: A Call for Conversations

Trudging through the surge of commentary in the blogosphere following the elections, Kellan Elliott-McCrea‘s post jumped out at me. He wrote:    (4Q2)

There is a political theory that says that people who disagree with you aren’t fundamentally bad people, but misguided, or perhaps coming from different backgrounds. Having just spent a couple of hours talking to someone who voted for Bush I’d have to say I disagree. He is superficially a good person, but deep down firmly believes that might is right, American lives are more important then any other lives, that policies which discriminate on race make statistical sense, human rights are a privilege but capital rights are inalienable. How do you answer that? We can quite civilly agree to disagree, and go back to our regular neutral pleasant conversations not to mention a few moments of uneasy solidarity making fun of Christian fundamentalists, but the chasm of understanding is so vast I can’t imagine what crossing it would look like.    (4Q3)

I know many people who feel the same way as Kellan, and I find this troubling. Is intelligent discourse truly a lost cause? Are we as polarized as those red and blue maps make it seem? Is conversation pointless?    (4Q4)

No, no, and no!    (4Q5)

Lakoff on Framing    (4Q6)

I’m a huge admirer of George Lakoff‘s work. He’s part of the canon of thinkers who strongly influenced The Blue Oxen Way (along with Doug Engelbart, Christopher Alexander, and Richard Gabriel). So when I saw that Lakoff was speaking the same day I was at last weekend’s Green Festival in San Francisco, I decided to show up five hours earlier than scheduled so I could hear what he had to say.    (4Q7)

In a nutshell, Lakoff’s thesis (detailed in his books, Don’t Think of an Elephant! and Moral Politics) is that conservatives have effectively hijacked the language of public policy. When we use terms like “tax relief” and “pro-life,” we are implicitly framing the debate from a conservative standpoint (e.g. “Taxes are an affliction,” and “Pro-abortion implies anti-life”). Progressives, he argues, must learn to reframe issues if they’re to have a chance at swaying the so-called swing-voters.    (4Q8)

I’ve read Lakoff’s thesis many times, but this was the first time I heard him talk about it in person, and what I heard troubled me. Obviously, he was not speaking to a bunch of cognitive scientists. He was speaking to a bunch of fired-up activists looking for something to cheer about, and he did a good job playing to that crowd. But heard live (and obviously simplified), his thesis seemed to suggest that we were on the road to further polarization, a zero-sum game where a small minority of the country would determine which extreme would win.    (4Q9)

If you read Moral Politics, it’s clear that Lakoff’s thinking is not that simplistic. But I couldn’t help calling him on it anyway. After his talk, I asked him, “What about framing the issues so that the two sides can talk to each other rather to their own constituents?” Lakoff’s response was that a progressive framing would do just that by balancing the language of public policy, which is heavily slanted towards conservatives right now.    (4QA)

A Diverse Community of Deep Thinkers    (4QB)

Okay, I can buy that. Lakoff is positioning framing as a winning strategy for progressive politicians, but it can also be seen as leveling the playing field for intelligent, balanced discourse. The problem is that it’s not enough to facilitate the latter. In the first place, we need to talk to people who think differently from ourselves. In the second place, we need to be deeper thinkers.    (4QC)

The latter is the harder problem. For starters, we have to know the facts, regardless of how they are spun. Whether or not you believe that the Bush administration knew there were no weapons of mass destruction prior to invading Iraq, or whether or not you care, the fact was that they weren’t there. Yet a large percentage of Americans still don’t realize this. If so many people can’t get these facts straight, how can we even talk to them about deeper issues, such as whether or not Bush is a good conservative, or why so many conservative publications (The Economist, The New Republic, The Financial Times, The American Conservative) endorsed Kerry?    (4QD)

Well, my answer isn’t going to satisfy most people, but it’s the best that I can offer: The road to deeper thinking starts by talking to folks who are different from ourselves. Talk is not cheap. We can’t and shouldn’t expect to persuade everyone, at least not easily, but what we can do is encourage people to think differently. If we start there, bigger things will follow.    (4QE)

Start with your immediate friends and families. Diversify your blogrolls and reading lists. Travel. Watch old episodes of Firing Line. (You read that right. I consider William Buckley, Jr.‘s old show television’s highest and brightest beacon of intelligent discourse in my lifetime. As right-wing and as forcefully opinionated as Buckley is, he always made it a point to interview people with very different views, which he did with respect and wit.)    (4QF)

Let’s break the divide and talk to each other more, and then let’s see what happens.    (4QG)

Advocacy Developers Convergence in San Francisco

I enjoyed the Advocacy Developers Convergence last week, where about 40 super-passionate folks — mostly developers of advocacy tools — gathered in the Presidio to discuss ways to collaborate. Among those represented were Advo Kit, CivicSpace, IndyVoter, Groundspring, Identity Commons (one of three hats I was wearing), and many, many others. Aspiration organized and facilitated the event, and Blue Oxen Associates provided the Wiki.    (1JJ)

While the scope of projects represented — most of which were open source — impressed me, I was really taken by the collective energy in the room. These weren’t your average techies. These folks cared about improving the world, and their passion was palpable. Even the most hardened cynic would have walked away from that gathering with at least a smidgen of hope about our future.    (1JK)

I wore three hats. First, I was there to facilitate Wiki usage during the event. In this regard, I basically did nothing. Most of the people there were already highly Wiki-literate, and the rest picked it up quickly. Second, I was there to help Fen Labalme talk about the Identity Commons system and to identify other potential early adopters. Third, as always, I was there both to share what I knew about collaboration and to observe and learn from others. I was particularly interested in watching Gunner’s (Allen Gunn) facilitation technique. Gunner, who recently took over Aspiration along with Katrin Verclas, used to work for Ruckus Society, and has facilitated a number of interesting events, including several international Open Source boot camps.    (1JL)

Mapping the Space; Emergent Goals    (1JM)

One of Aspiration’s stated goals for the event was to begin mapping the space of advocacy tools. That begged the question: What exactly is an advocacy tool? It was a question most of us conveniently avoided. Some tools are clearly and specifically designed for supporting the needs of grassroots advocacy, such as email campaigns, volunteer organizing, and friend-raising. Several (most?) other tools used by advocacy organizations (such as MoveOn) have multiple applications — mailing lists, contact databases, and so forth.    (1JN)

We never reached a collective solution to this problem, but we seemed to be moving in the direction that Blue Oxen has already gone in determining how to map the collaborative tool space: Map functions (or patterns) rather than tools, and show how different tools can be used for different functions.    (1JO)

The other goal for the event was to identify and pursue opportunities for collaboration among the participants.    (1JP)

Aspiration’s stated goal for the event was to begin mapping the space of advocacy tools and to facilitate collaboration among the participants. A number of interesting projects emerged:    (1JQ)

  • Several people expressed interest in incorporating the Identity Commons protocols into their tools for Single Sign-On and Data Sharing (all with user privacy built-in).    (1JR)
  • An Open Source legislative contact database that activist groups could freely use.    (1JS)
  • Face-to-face code (and other) sprints. A small group is planning a VoIP sprint somewhere on the East Coast later this summer.    (1JT)
  • Internationalization working group, basically a support group for folks internationalizing their code. One of the great things about the attendees was that international representation was reasonably good. There were folks from Poland, Uruguay, and Canada, and people dealing with many other countries.    (1JU)
  • Technical outreach to organizations. Connecting these groups with the right tools, and explaining to them the virtues of open source. A group is planning to use a Wiki to generate a Nonprofit Open Source Almanac.    (1JV)

The challenge with events like these is sustaining the energy afterwards. Face-to-face events that go well are often victims of their own success, because they create a level of energy that is simply impossible to match online. That said, there are certain things that can help assure continued collaboration:    (1JW)

  1. Individual commitment to shared goals.    (1JX)
  2. Group memory.    (1JY)
  3. Shared workspace.    (1JZ)

This group has all of the above. People were super action-oriented. Tasks were getting accomplished on the spot. Requests for information were often followed a few seconds later by shouts of, “It’s in the Wiki” — music to my ears. In general, folks who easily acclimate to Wiki usage — as this group did — are already inclined to share knowledge and collaborate.    (1K0)

Facilitation    (1K1)

Gunner is both high-energy and easy-going. He’s got a goofy, infectious grin and is quick to drop gut-busting witticisms. It would be easy to ascribe the effectiveness of his events to his personality, but that would be largely inaccurate. A well-meaning and amiable person can easily kill the energy of a group by under- or over-facilitating. Gunner has a strong fundamental understanding of self-organizing systems and very good instincts for when to sit still and when to perturb.    (1K2)

Every good event I’ve attended with large groups of people followed MGTaylor’s Scan Focus Act model, and this was no exception. The beginning of these events are always about discovery and Shared Language. Discovery (or “scan”) is inherently messy and unsettling, but when done correctly, “action” naturally emerges. Most bad events I’ve attended are bad because they try to skip this first step.    (1K3)

Each day consisted of several breakout sessions with groups of three to five people, followed by report-outs, yet another pattern of effective face-to-face events. The agenda for the later breakouts emerged as the event unfolded.    (1K4)

The first day began with a game called A Strong Wind, which was an excellent way both to build energy and to get a sense of who was there. Following that and at the beginning of the subsequent days were In Or Out exercises, a way to get a sense of everybody’s mood and to build individual commitment to the collaboration that would follow. The first day, Gunner asked people to describe their moods in one word. The second day, he asked for colors that described their mood. The third day, he asked people to describe the most beautiful place they knew, be it a geographical location (e.g. California) or a situation (e.g. time spent with family, friends).    (1K5)

As a way to accomodate a number of demos, Gunner organized a Speed Geeking session on Tuesday morning. I’m not sure yet whether I liked it or not. On the one hand, I enjoyed the interaction and the energy. On the other hand, it was incredibly draining for the people giving demos (including me), who also missed out on the demos happening simultaneously to theirs. I think the Planetwork Forum model of eight demos — four minute presentations (PowerPoint highly discouraged) and two minutes of Q&A — followed by two hours of unstructured socializing/networking is more effective, but I’m not ready to discount Speed Geeking entirely.    (1K6)

Good Folks    (1K7)

The most important prerequisite for good events and good collaboration is having the right mix of people. I really like MGTaylor’s strategy for achieving this: The larger the group, the more likely you are of having that mix. This group was relatively small (40 people), and I suspect that Gunner and Katrin’s people instincts played a huge role in making sure we had a good group.    (1K8)

I hate to single people out, because I really liked and was very impressed by everybody there. Nevertheless, I can’t help but mention two people. First, I was glad to finally meet Kellan Elliott-McCrea, the author of Laughing Meme, in person. Time and again, I meet folks whose blogs I enjoy regularly and whose work I admire, and I constantly walk away even more impressed with their authenticity and their decency. It’s how I felt when I first met Ross Mayfield and when I met Seb Paquet, and I felt it again when I met Kellan.    (1K9)

Second, I was glad to meet Mark Surman, who’s based in Toronto. Mark founded the Commons Group several years ago, which is very similar in spirit to Blue Oxen Associates. I meet a lot of like-minded people, but it’s a rare treat to meet someone doing similar work. Mark and his group are doing great stuff. They’re an organization folks should keep their eyes on.    (1KA)