Caring about software, public goods games, and our present state

Jason Gorman wants people to pledge that they care about software and that they’ll act on that caring. An impressive roster of people have signed the pledge. So why do I feel discouraged? It’s because of this:

[I pledge to] Offer moral and practical support to those who care as much as I do to help them do the right thing

What does that mean? How will it play out?

Start with this:

One of my favorite experiments exploring human cooperation involves so-called “public goods” games. The idea is simple. You have, say, ten volunteers in the experiment who start out with $10 each. The game proceeds through a series of rounds, in each of which each individual decides how much they’d like to contribute to a “public fund.” The reason you might contribute is that you might get something back from it. The experimenter makes it clear that, after everyone has made their contribution, he or she will take the total in the fund, multiply it by two, and then distribute it back to everyone equally.

So, if everyone contributes their full $10, you’ll have $100 in the middle. The experimenter will double that to $200, and then return $20 to each person, giving each a profit of $10 (the $20 minus the $10 they put in). Everybody wins! But there’s trouble lurking, because each individual might be able to make even more by cheating. Suppose, for example, that everyone but me contributes $10, and I put in nothing. The total will then be $90, yielding a double of $180, with $18 being then returned to each person — including me. Now I’ve made a profit of $18 rather than just $10. (The name “public goods” comes in because the experiment mimics the situation we face collectively in trying to build roads, support an army etc. If we all pay our taxes, we can all have excellent schools and good roads; but if I can avoid paying taxes, I can still enoy those things, and more money too.)

What happens in real experiments (such as those conducted a few years ago by economists Ernst Fehr and Simon Gachter) is fascinating. In the first round, almost everyone does contribute a large share of their money. Instinctively, we’re prepared to be generous and to do our part in helping the group. But the cooperation doesn’t last. Not everyone is so cooperatively minded, and in round one a few people do cheat. In doing so, they set the seeds for the demise of the entire group. For in the second round, some of those who gave generously in the first round, seeing that some others did not, refuse to be cheated again. They don’t contribute as much. As the game continues, more and more of participants see others cheating and adopt the same behavior — after all, who wants to by one of the few supporting the cheating many? After about ten rounds, no one any longer contributes anything.

What the experiment implies is that cooperation in such a scenario is not stable. It won’t last, even though most people are cooperative and ethical, because some people cheat. […] Indeed, some recent experiments in psychology suggest that about 2% of the population act more or less like sociopaths, with no feeling whatsoever for others (I can’t now recall where I saw this, but I’m seeking the link). No amount of education, I suspect, will weed out this 2% who feel no compunction about cheating and stand ready to kick off the inexorable slide toward collective non-cooperation.

The non-sociopaths in the experiment are lucky: they have the same power as anyone else. In real life, as the Shirley MacLaine character in one of my favorite movies, The Apartment, puts it: “Some people take, some people get took. And they know they’re getting took and there’s nothing they can do about it.”

But for the moment, let’s go back to the experiment.

Of course, this is in large part precisely why we have laws and regulations, both within companies and in society, to control those not adequately constrained by internalized social norms. Indeed, Fehr and Gachter, in their experiments, explored variations in which the participants, after each round, could pay a small fee in order to punish anyone who they thought hadn’t contributed adequately (the punishment was a fine against that person). Although orthodox economics would say that no one would ever choose to act this way (paying out personally, to punish someone else, while getting nothing directly in return), many people were in fact willing to do so. Consequently, cheating became more costly and those tempted to cheat ceased doing so. With the possibility of punishment in place, the group’s level of cooperation remained high indefinitely.

This reminds me of the iterated prisoner’s dilemma, where the best strategy is tit-for-tat with a touch of forgiveness. In that strategy, you begin by signaling the desire to cooperate in reaching a globally optimal outcome. If your counterparty cooperates, you continue to cooperate. But if the counterparty cheats, you punish her by cheating back on the next iteration, thus signaling that you won’t let the cheater prosper (much) at your expense. (”Forgiveness” adds a small random chance of cooperating even if the counterparty just cheated. That gives the two of you a chance to exit from a loop of mutual cheating.)

This might not work with sociopaths, but it should work with a rational actor familiar with the game.

This all comes to mind because of my floundered effort to refocus the Agile Alliance. From the discussion on Agile Forums and other conversations, I concluded that there’s not enough commitment to taking a “tough love” stance when it comes to the forces and people that push against successful and sustainable Agile projects. In iterated prisoner’s dilemma terms, our favored strategy seems to be Shirley MacLaine’s: cooperate, cooperate, cooperate, cooperate, …

Actually, that’s not quite right. The favored strategy is really “exit”, in the sense of Hirschman’s Exit, Voice, and Loyalty (description here). That is, the average software person first signals that something’s wrong in what seems to her a bold and forthright way—but one that’s likely heard (by those who need to act) as having the force of a deferential cough. After some ineffectual time in a “voice” stance, she exits: sends out her resume, goes independent, or “exits internally” by giving up.

Here are the people job-hopping because their jobs aren’t good enough:

Job hopping envisioned as brownian motion

Hirschman points out that exiting leaves the exited organization with little information about how to improve. Now, a little might still be enough. Does the Invisible Hand sum all these individual low-information events together into a force that moves organizations toward a work practice that both Agilists and post-Agilists can agree is more joyful and more productive? — organizations that have both their own institutional culture and also share in a national or even global business culture? — organizations staffed not by H. economicus chicagus but by mere mortals driven by social forces roughly as strong as their fiduciary duty to shareholders or even their own economic self-interest?

For me, the evidence is pretty clear: that Brownian motion in the picture ain’t gonna move those macroscopic blocks very far, nor in any direction we can influence. The stable result of all those exits is a pessimal commons where the approaches we favor do the least well that they can.

But all need not be lost: there are better strategies for the iterated prisoner’s dilemma than tit-for-tat:

[Southampton University] submitted 60 programs to the competition, which were designed to recognize each other through a series of five to ten moves at the start. Once this recognition was made, one program would always cooperate and the other would always defect, assuring the maximum number of points for the defector. If the program realized that it was playing a non-Southampton player, it would continuously defect in an attempt to minimize the score of the competing program. As a result, this strategy ended up taking the top three positions in the competition, as well as a number of positions towards the bottom.

This strategy takes advantage of the fact that multiple entries were allowed in this particular competition. In a competition where one has control of only a single player, Tit-for-Tat is certainly a better strategy.

Here, we have the many sacrificing themselves for the few, which is not so appealing—but also not the only way. I’ve proposed that the Agile Alliance establish itself as an organization that funnels small sacrifices by the many into a force that can push back against the inertia we face, titting when it tats.

Brownian motion supplemented with a push

However, my rather under-thought and under-described ideas along the lines of collective action didn’t provoke much response. Now, I’ve long accepted that what leadership abilities I have are entirely restricted to one-on-one conversation, ideally with keyboard and screen as the focus. In that scenario, I think I do a pretty good job of “[offering] moral and practical support to those who care as much as I do to help them do the right thing.” And I think a lot of other people do, too. We can help each other. But that will not change the current state, which is that really good projects are mostly evanescent soap bubbles. When they pop, the people scatter into other soap bubbles—some of which turn out to be really good, some of which turn out to be the kind of snake pit that some call “agile in name only.” (And sometimes, through zealotry, ambition, or second-system syndrome, the refugees themselves become snakes.)

Fleeing a popping bubble

It’s a tragedy in Whitehead’s sense: “The essence of dramatic tragedy is not unhappiness. It resides in the solemnity of the remorseless working of things.” The reason The Apartment is a tragedy as much as a comedy is that what the sympathetic characters achieve in the end—a chance to huddle together with kindred spirits during moments of peace—is also the best they can achieve.

The Agile Manifesto, and the Agile Alliance, was a rare case of a herd of cats coming together and thereby having outsized influence. The reason I’m discouraged by the I Care About Software pledge, and by post-Agile, is that it’ll pull the attention of the very best away from a quarter-finished project. Jason and Jonathan Kohl ought to take over the Agile Alliance and remold it. The Agile Alliance ought to sponsor the pledge. We ought to be handing out fliers about it to all Agile2007 attendees, or something.

I fear we’ve missed our chance to alter the status quo: People who land in the uncommon great projects will carpe that old diem, gather those rosebuds. Those who don’t will have to, as the last line of The Apartment puts it, “Shut up and deal.”


  • Actually, I don’t think the problem is so much that 2% of us are sociopaths as that each one of us is a sociopath 2% of the time.

  • And, to emphasize again: I do not think of us as in a conflict between management and labor, or between the little guy and Big Business. Part of what makes a good tragedy is some element of irony. The irony in our tragedy is that I truly believe good Agile teams are more committed to the ostensible purpose of the business than the typical business is. We take the oracle seriously, but it does nothing to stop the downfall. It can even hasten it.

4 Responses to “Caring about software, public goods games, and our present state”

  1. tomm Says:

    thoughtful analysis, to be sure.

    I know that if I worked in a place where a lot of people had signed this petition, I would feel pressure to sign it as well, lest people start using words like “evidently” when questioning my “passion” about software (or my flair count for that matter.) Besides, as you (I think!) allude to several times in the article, most people who don’t care about quality probably would have no problem saying they did, and many may even believe that they do care.

    Another note– I think saying Agile should go to the “post-Agile” crowd in this case is similar to arguing that Ruby should go to Rails community because they are drumming up a lot of excitement that ruby hadn’t generated prior. I think I’ll take joy over passion. Joy, unlike passion, is seldom a response to unhealthy practices.

  2. JEDI » Blog Archive » links for 2007-08-06 Says:

    […] Exploration Through Example » Blog Archive » Caring about software, public goods games, and our pr… (tags: testing) […]

  3. Who cares about software? « Offshore Software Testing Says:

    […] cares about software? Brian Marick has an interesting explanation not only of group dynamics and psychology, but also of how it relates to economics and the market.  I’m fascinated by the differences […]

  4. Ceterum censeo, Carthago delenda est » About my theory of process advocacy Says:

    […] I’ve taken ‘joyous’ from Brian Marick… he’s been mentioning it a few times recently, as an explicit quality he wants in software […]

Leave a Reply

You must be logged in to post a comment.