Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Game Theory and Agile Software Development

Game Theory and Agile Software Development

This item in japanese

Game theory was initially developed in economics to understand behavior of firms, markets, consumers etc. Since then, its scope and use has expanded to various fields like politics, sociology, psychology and Agile software development.

Alistair Cockburn initially compared software development to a cooperative game as in game theory. He characterized software development as a co-operative game of invention and communication. According to Alistair, every project is a game and that it fits into a larger game of corporate strategy.

Victor Palau added that the application of game theory becomes pretty obvious in collaborative software development where the collaboration is based on trust. He compares such a collaboration to the classic prisoner's dilemma. Prisoner's dilemma demonstrates why two people might not collaborate even if it is in their best interests to do so. Victor suggested his view on how to make the collaboration successful which works well with the Agile principles. According to Victor,

  • Iterated the Game as much as possible: Ensure the collaboration is not based on a one-off interaction. The easiest way to do this is to have a multiple-deliveries integration plan vs big bang approach.
  • Raise the stakes: The prisoner's dilemma is based on the fact that the reward of defecting is far larger than cooperating. You can alter the situation by raising the stakes for mutual cooperation, making it much more attractive to both parties. (i.e. in a situation where “if nobody talks, you are both free” there is no dilemma)

Mike Griffiths suggested the application of game theory to align PMO's. According to Mike, since project is a collaborative game, team members need to collaborate to be successful. PMO should act as a supporting body to this team game approach. Viewed through this lens the roles of a PMO become much clearer and more useful. Some of the roles, for a PMO,  suggested by Mike were,

  • Monitor and control project performance – track the game performance, are we winning, how much time do we have left, are the players OK?
  • Develop and implement standard methodologies, processes, and tools – support the game, build and maintain facilities, provide equipment.
  • Develop the competency of project personnel, including training and mentoring – train and coach the players, identify future captains.
  • Multiproject management, including program and portfolio management, coordination and allocation of resources between projects – manage teams, tournaments and leagues to make sure everything stays co-ordinated.
  • Strategic management, including participation in strategic planning and benefits management – game development, new rules of play, league development.

Simon Bennett suggested the application of Game theory to Agile contracting. Simon demonstrated how traditional software development contracts are not appropriate for Agile projects. Keeping in line with the prisoner's dilemma Simon suggested that though contractual agreement has the potential to results in an optimal deal but leads most of the time to the worst possible scenario.

Jurgen Appelo mentioned the game theory to suggest that there will never be a one best way of developing software. According to Jurgen,

An evolutionary stable strategy (ESS) is any combination of practices that enables a system to be successful and survive, in some environment. The ESS is a concept defined in game theory, but it applies just as well to economics, biology, psychology, and software development. Evolutionary stable strategies depend on their environment, and on any other ESS-es in that same environment.
With the possible exception of adaptability, there is no other single property that every ESS needs to have in order to survive. Game theory teaches us that there cannot be one best strategy for all participants in an environment.

As various Agilists suggested, game theory has a strong connection to the way Agile teams work. The key, resulting in the successful outcome for the development game, lies in maximizing team goals as compared to individual rewards. According to Martin Proulx,

As is stated in the Agile Manifesto – “Customer Collaboration over Contract Negotiation” would almost always give better results than aiming to maximize individual rewards. Unfortunately, our irrational (and sometimes greedy) nature doesn’t allow the maximum outcome to be reached.

Rate this Article