A Game Theory Perspective of Teamwork


A Game Theory Perspective of Teamwork

We end this chapter by highlighting the topic of software teamwork from a game theory perspective. Generally speaking, game theory analyzes human behavior and uses for this purpose different theoretical fields such as mathematics, economics, and other social and behavioral sciences. Game theory is concerned with how individuals make decisions when they are mutually interdependent and attempts to describe how people interact in their attempt to win in such cases. In game theory situations, the participants want to maximize their profit by choosing particular courses of action, and that each player s final profit depends on the courses of action chosen by the other players.

Task  

Review www.gametheory.net or another comprehensive game theory Web site for further information about game theory.

  • Summarize five lessons you learned from this review.

  • Suggest connections or implications of game theory to software engineering in general and to software teams in particular.

Within game theory, we focus in this chapter on one framework: the Prisoner s Dilemma. This framework illustrates why people tend to compete even in situations in which they might gain more from cooperation. This behavior is explained by lack of trust. In its simplest form, in each turn of the game each of two players has a choice between cooperation and competition. The working assumption is that each player does not know how the other player behaves and the two players are unable to communicate. Depending on the two players decisions, each player gains points according to the payoff matrix presented in Table 3.2, which describes the dilemma from A s perspective.

Table 3.2: The Prisoner s Dilemma

Action of B
Action of A

Cooperate

Compete

Cooperate

+ 5

“10

Compete

+10

“5

The values in Table 3.2 are illustrative . However, they do indicate the relative benefits one gains from each selection. Accordingly, the table indicates that when a player does not know how the other player behaves, it is worth choosing competition. In other words, if A does not know how B behaves, in both cases (whether B competes or cooperates) A will get more if it chooses competition. However, as can be seen, if both choose the same behavior, they will gain more if they cooperate rather than if they compete.

Game theory is named for police scenarios in which two partners in crime are placed in separate rooms at the police station. Each is offered a similar deal; if the first implicates the other, the first may go free while the second receives life in prison . If neither implicates the other, both are given moderate punishment, and if both implicate the other, the punishment for both is severe. They have to make a decision without knowing their partner s choice.

As it turns out, such cases happen in many real-life situations in which people tend to compete instead of cooperate, when they might gain more from cooperation. The fact that people tend not to cooperate is explained by people s worries that their cooperation will not be reciprocated and they will lose more (than if they compete and their partners cooperate). As has been indicated, this happens (in most cases) because of a lack of trust between partners.

Task  

Visit the http://www.gametheory.net/ Web site. Select one of the Java applets that illustrate the Prisoner s Dilemma and play with it. What was your strategy? Did you win? What did you learn from this game?

In what follows we use the Prisoner s Dilemma to illustrate that the source of some of the problems in software development is competition among team members . For this aim, let us first observe that cooperation (and competition) can be expressed in software development environments in different ways, such as information sharing (versus information hiding), using coding standards (versus not following these standards), writing clear and simple code (versus developing a complicated code), and so forth. It is reasonable to assume that such expressions of cooperation lead in most cases to a project s success, while such expressions of competition may lead to a project s failure.

Because cooperation is so vital in software engineering processes, it seems that the Prisoner s Dilemma is strengthened in software development environments. To illustrate this fact, let us revisit the reward issue and examine a story in which a software team is promised that if it completes a project on time, it will get a bonus allocated according to the individual contribution of each team member. To simplify the story, let us assume that the team comprises two developers, and let us construct the payoff table (see Table 3.3).

Table 3.3: The Prisoner s Dilemma in Software Development Environments
 

B Cooperates

B Competes

A Cooperates

The project is completed on time, and A and B get the bonus. Their personal contribution is evaluated as similar and they share the bonus equally: 50% to A; 50% to B

A s cooperation leads to the project s completion on time and the team gets the bonus. However, as A had to dedicate part of the development time to understanding the complicated code B wrote, A s personal contribution to the project is evaluated as smaller than B s. As a result, B gets 80% of the bonus and A gets 20% of the bonus

A Competes

A similar analysis as when A cooperates, B competes, but the allocation in this case is reversed : 20% to B; 80% to A

Because both A and B compete, they do not complete the project on time, the project fails, and no one gets a bonus.

The difference between Table 3.3 and the original Prisoner s Dilemma table (Table 3.2) lies in the cell in which the two team members compete. In the original table this cell reflects a better outcome for each than the cell in which they cooperate and their partner competes, but in this case, which refers to software development situations, it is the worst for both of them. This fact is explained by the vital need for cooperation in software development processes. As can be observed , in software development environments there are cases in which partial cooperation is preferred over no cooperation at all.

As it turns out, in many software development environments, team members are asked to cooperate even when they cannot ensure that their cooperation is returned. In such cases, as the Prisoner s Dilemma table indicates, each team member would prefer to compete. Because the reciprocation of cooperation is unknown, each team member cannot trust the other teammates, and all compete. As Table 3.3 indicates, in software development environments, such behavior gets the worst result for all team members.

Discussion

Discuss possible ways to increase trust among software team members, and how these ways might enhance cooperation among software team members.

Task  

Review the eXtreme Programming practices (see Chapter 2). In your opinion, which of the XP practices may increase trust among team members? Using the Prisoner s Dilemma framework, explain in what ways this trust might lead to cooperation and how the team members will gain more from such cooperation.