Latest News

Game Theory as a Tool for Resolving Complex Conflict Situations in Software Development

Game Theory as a Tool for Resolving Complex Conflict Situations in Software Development

About the author: Pavel Ianonis, a Senior Software Engineer with more than seven years of experience in the fintech industry, has been invited by the TechBullion editorial team to provide his expert analysis on the application of game theory in software development. Pavel’s extensive background in fintech, combined with his deep understanding of software engineering challenges, makes him uniquely qualified to explore this topic. His practical experience in resolving complex conflict situations within development teams and his proficiency in applying theoretical models to real-world scenarios are invaluable for shedding light on how game theory can be leveraged to enhance decision-making processes. Through his analysis, readers will gain insights into how this powerful mathematical framework can be employed to navigate the intricate web of stakeholder interests, project variables, and strategic choices inherent in software development.

Decision-making in software development is what makes or breaks a project. Speed and correctness of decisions are crucial to being competitive in the modern digital environment. However, making decisions in software development is usually very complex as it always involves many different stakeholders and variables. No wonder that a universal recipe for efficient decision-making is what every company seeks. Game theory may well be such a recipe. And in this article, I will explain why. 

What are the key difficulties in software development?

Software development unites various stakeholders who work across various domains such as project management, strategic planning, quality control, and more. Each person has personal goals in addition to shared project goals, which can contradict each other and cause conflicting situations. Game theory is one of the tools that can help neutralise emerging conflicts, some of which can harm the success of software products.

What is game theory?

To put it short, game theory is a framework that helps understand the decision-making processes and interactions of different stakeholders. It uses mathematical models (which are called games) to deal with a wide range of problems involving various stakeholders with conflicting interests. Its key goal is to find strategies that will align different interests to achieve common project goals.

It is applicable in various areas like business management, strategic planning, economic decisions, and policies, all of which can be components of software development.

Game theory revolves around the concepts of games and strategies: 

  1. A game is a scenario in which players interact with each other.
  2. A strategy is a behavior that a player chooses within a given game.

What are key types of games?

There are various types of games in game theory, with the most notable being zero-sum games, cooperative games, non-co-operative games, and shared-gain games:

  1. In zero-sum games, one player gains exactly what another one loses, with the total sum of gains and losses always being equal to zero. Poker and chess are classic zero-sum games. The opposite is a non-zero game where the gains or losses of one player don’t affect the other directly.
  2. Cooperative games suggest players unite to achieve common goals. In this model, a team develops a common team strategy and shares rewards according to roles. Examples include business partnerships and R&D collaborations. In non-cooperative games, each player is guided purely by self-interest, trying to maximize their own payoff at the expense of others. Rock-scissors-paper is a classic example of this type of game.
  3.  Shared-gain games revolve around strategies that can benefit all involved parties. The end goal is to achieve results that are, in one way or another, beneficial to everyone. This model includes scenarios like public health initiatives.

These are just the most common types of games that I list here to give an overall picture.

How game theory works: Examples

Game theory aligns best with agile software development, which often includes areas like product backlog prioritization, capacity planning, resource allocation, testing, and quality assurance. Each of these areas is prone to conflicts that lie in the levels of intra-personal communication, decision-making logic, varying perceptions of shared goals, etc.

Consider an example of game theory applied to solve one of the typical tasks in agile software development: product backlog prioritization.

This is a key stage that defines the sequence of task execution. It involves an assessment of the expected value and risks associated with every feature of the task implemented. And the assessment process in this case is prone to conflicts because the balance between value and risk is not clear from the start.

Game theory offers the “Expected Value Game” for task prioritization. In this game, the team assigns the expected value and risk score to every task. After that, they compare tasks and make a fact-based decision on which ones should be prioritized.

For example, there may be cooperation between project team members on task allocation and scheduling issues. In this case, game theory provides a way to achieve optimal results by analyzing how this cooperation can be best organized. Likewise, conflicts in the software development process can also be analyzed and resolved using game theory.

Another common task every company solves daily is resource allocation. In software development, this problem arises when the company looks for an optimal way to assign developers to projects to maximize productivity and reach project success. However, management and developers may have varying views on this process, which may lead to conflicts. 

A “matching game” exists to solve this problem. In this game, developers rank their preferred projects based on their career goals, and project managers rank their preferred developers based on their skills. After that, the Gale-Shapley algorithm is used to find stable matching and make the optimal decision.

How to apply game theory: Step-by-step guide

So how does the algorithm for applying game theory in practice work? Here are the key steps:

  1. At first, the players and their strategies in the conflict (or game) should be identified. For that, you need to determine the key stakeholders and understand their behavioral scenarios in different situations. In resource allocation, for example, players can be project managers, developers, and clients with varying strategies that can include moving deadlines, reallocating resources, etc.
  2. After that, you have to analyze where various combinations of strategies can lead and what results will be close enough to the set goals. To find it out, you can use payoff matrices, which help compare varying results against each other. For example, you can use them to assess how the use of different technology products can impact project cost, development time, and performance.
  3. The next phase is determining the so-called equilibrium solutions. They suggest that none of the players can improve their situation by unilaterally changing their strategy. A client agreeing to a phased software deployment in exchange for additional features in future iterations can be a good example of an equilibrium solution.
  4. At last, it is critical to always seek the right balance between cooperative and non-cooperative approaches. For example, a cooperative approach with team meetings to prioritise tasks together can help in resource allocation conflicts, while formal negotiations may work better in a non-cooperative approach.
Comments
To Top

Pin It on Pinterest

Share This