The Game Theory of Software Decision Making

Rate this content
Bookmark

As we’re working to build the best possible software engineering solution, we encounter many decisions we must make. Daily. Sometimes this involves very active and passionate conversations, which might sometimes go down the negative path, creating a bad atmosphere in the team. On top of that, it’s a huge waste of time. But what if those daily decisions could be much easier and simple? In this talk I’ll try to attack and eliminate the pain points of decision making in software engineering and will show how I helped my team benefit from a lighter decision making process.

FAQ

The Game Theory of Software Decisions involves using principles from game theory to maximize benefit in software development by managing conflicting situations and making logical decisions. It focuses on not treating decisions as zero-sum games where one party's gain is another's loss, but rather on achieving mutual gains and effective decision-making.

Siv Levy utilizes the quick and critical decision-making skills required in medical emergencies to improve decision-making in software engineering. By applying the same methodology, focusing on training, experience, and goal-oriented approaches, he addresses software challenges more efficiently.

To reduce drama, Siv suggests focusing on whether a decision is reversible, setting clear KPIs to evaluate decisions, consulting a neutral 'jury' if decisions cannot be made within a time frame, and keeping discussions professional without personal bias or ego.

Sosters over coding practices, such as tabs vs. spaces, Siv recommends defining the criticality of issues upfront, maintaining transparency, and prioritizing the team's collective goals over individual preferences to minimize unnecessary conflicts and focus on productivity.

Game theory principles can help software engineers by providing frameworks to analyze and optimize decisions involving multiple stakeholders with conflicting interests. It encourages looking for strategies that enhance overall gains, promote cooperative outcomes, and streamline decision processes.

Siv Levy emphasizes that ego can lead to detrimental effects on team dynamics and decision-making. He advises leaving ego out of professional discussions to ensure decisions are made based on data, best practices, and what is best for the project and team, rather than personal preferences.

Siv Levy has over ten years of experience in the software industry, with a significant part of his career spent developing new products at Wix. His diverse background including DJing and volunteering as a paramedic enriches his approach to software engineering and decision-making.

For non-critical issues, Siv Levy suggests setting up regular team meetings to discuss and resolve these matters in a relaxed, non-confrontational environment. If no significant issues are raised, the meetings can be postponed, ensuring that time is used efficiently.

Ziv Levy
Ziv Levy
18 min
09 Mar, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Today's talk is about the Game Theory of Software Decisions, exploring how game theory can be applied to software development. The speaker shares tips on creating a productive team environment and effective decision-making. They emphasize the importance of letting go of unimportant things and focusing on what's best for the project. The talk also discusses handling coding dilemmas and decision-making, suggesting strategies such as defining KPIs and consulting a neutral jury. The speaker concludes by emphasizing the importance of staying rational, bringing data, and maintaining professionalism in software development.

1. Introduction to Game Theory of Software Decisions

Short description:

Today's talk is about the Game Theory of Software Decisions. I'll share tips on creating a productive team environment and effective decision-making. I'm Siv Levy, a DJ and a paramedic first responder. Let's dive into the world of game theory and its application in software development.

Hi, I'm Siv. Thank you for joining my talk today about the Game Theory of Software Decisions. I hope you could take some tips on how to create a more productive team environment while tackling the day-to-day challenges with decision making.

A little bit more about myself, I'm Siv Levy. I've been working at Wix for the past five and a half years. I'm also a DJ, I mix dark 80's and techno music. You may find my live DJ sets on YouTube, enjoy it. And I'm also volunteering as paramedic first responder and I will expand more on that later today.

For those of you who are not familiar with Wix, Wix is a platform for website building for a variety of types of users, whether you are advanced developer or a newbie, Wix gets you covered with great features for your business and online presence. So I'm part of Wix engineering group. It's a group of very talented engineers, but also as we see here, very diverse in many, many ways. And you know, it's okay because we are all human after all. Within my work at Wix, I was lucky to start a brand new Wix product. I've done it multiple times and for multiple types of users, whether they are users of the company or internal users. Starting a new product from scratch is a great adventure actually for every developer and brings a lot of challenges and also along with uncertainty.

2. Introduction to Game Theory

Short description:

In these moments, people tend to get overwhelmed and that affects directly on their judgment and their ability to make decisions. Let's break out for a moment and talk about Game Theory one-on-one. Game Theory is a mathematical field which tries to maximize gain or benefit over contradicting situations between two or more factors, usually called agents. It defines a wide range of social and behavioral relations as well as the science of logical decision making in humans, by the way also in animals and computers. The main thing that I'd like you to take from this session is that you're not in a zero-one game.

In these moments, people tend to get overwhelmed and that affects directly on their judgment and their ability to make decisions. Let's break out for a moment and talk about Game Theory one-on-one. Game Theory is a mathematical field which tries to maximize gain or benefit over contradicting situations between two or more factors, usually called agents. It defines a wide range of social and behavioral relations as well as the science of logical decision making in humans, by the way also in animals and computers.

The main thing that I'd like you to take from this session is that you're not in a zero-one game. A zero-one game is usually when one wins it means the other lose. Specifically, we'll focus today on the process of how to make decisions effectively and hopefully with less pain involved.

It all came to me once I had an argument with one of my colleagues and this argument became worse the longer it lasts and we finally left the room with very bad feeling, a lot of embarrassment and without any decision made. I thought to myself, God, how come this such unimportant topic needs this kind of attention? I mean, it's a total waste of time. Something must be changed.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

A Framework for Managing Technical Debt
TechLead Conference 2023TechLead Conference 2023
35 min
A Framework for Managing Technical Debt
Top Content
Let’s face it: technical debt is inevitable and rewriting your code every 6 months is not an option. Refactoring is a complex topic that doesn't have a one-size-fits-all solution. Frontend applications are particularly sensitive because of frequent requirements and user flows changes. New abstractions, updated patterns and cleaning up those old functions - it all sounds great on paper, but it often fails in practice: todos accumulate, tickets end up rotting in the backlog and legacy code crops up in every corner of your codebase. So a process of continuous refactoring is the only weapon you have against tech debt.In the past three years, I’ve been exploring different strategies and processes for refactoring code. In this talk I will describe the key components of a framework for tackling refactoring and I will share some of the learnings accumulated along the way. Hopefully, this will help you in your quest of improving the code quality of your codebases.

Principles for Scaling Frontend Application Development
React Summit 2023React Summit 2023
26 min
Principles for Scaling Frontend Application Development
Top Content
After spending over a decade at Google, and now as the CTO of Vercel, Malte Ubl is no stranger to being responsible for a team’s software infrastructure. However, being in charge of defining how people write software, and in turn, building the infrastructure that they’re using to write said software, presents significant challenges. This presentation by Malte Ubl will uncover the guiding principles to leading a large software infrastructure.
Fighting Technical Debt With Continuous Refactoring
React Day Berlin 2022React Day Berlin 2022
29 min
Fighting Technical Debt With Continuous Refactoring
Top Content
Let’s face it: technical debt is inevitable and rewriting your code every 6 months is not an option. Refactoring is a complex topic that doesn't have a one-size-fits-all solution. Frontend applications are particularly sensitive because of frequent requirements and user flows changes. New abstractions, updated patterns and cleaning up those old functions - it all sounds great on paper, but it often fails in practice: todos accumulate, tickets end up rotting in the backlog and legacy code crops up in every corner of your codebase. So a process of continuous refactoring is the only weapon you have against tech debt. In the past three years, I’ve been exploring different strategies and processes for refactoring code. In this talk I will describe the key components of a framework for tackling refactoring and I will share some of the learnings accumulated along the way. Hopefully, this will help you in your quest of improving the code quality of your codebases.
Monolith to Micro-Frontends
React Advanced Conference 2022React Advanced Conference 2022
22 min
Monolith to Micro-Frontends
Top Content
Many companies worldwide are considering adopting Micro-Frontends to improve business agility and scale, however, there are many unknowns when it comes to what the migration path looks like in practice. In this talk, I will discuss the steps required to successfully migrate a monolithic React Application into a more modular decoupled frontend architecture.
Building High-Performing Cross-Cultural Teams
React Day Berlin 2022React Day Berlin 2022
25 min
Building High-Performing Cross-Cultural Teams
Everything we do, from the way in which we write our emails, to the method in which we provide negative feedback and evaluate performance, governs the performance of our teams. And understanding how culture impacts our efficacy as a team can drastically improve our day-to-day collaboration. In this session you'll learn: How different cultures communicate, How different cultures evaluate performance and give constructive criticism, How different cultures make decisions, How different cultures trust, How different cultures perceive time.
Advanced Patterns for API Management in Large-Scale React Applications
React Advanced Conference 2021React Advanced Conference 2021
20 min
Advanced Patterns for API Management in Large-Scale React Applications
Top Content
In this talk, you will discover how to manage async operations and request cancellation implementing a maintainable and scalable API layer and enhancing it with de-coupled cancellation logic. You will also learn how to handle different API states in a clean and flexible manner.