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.

This talk has been presented at TechLead Conference 2023, check out the latest edition of this Tech Conference.

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
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Principles for Scaling Frontend Application Development
React Summit 2023React Summit 2023
26 min
Principles for Scaling Frontend Application Development
Top Content
Watch video: Principles for Scaling Frontend Application Development
This Talk discusses scaling front-end applications through principles such as tearing down barriers, sharing code in a monorepo, and making it easy to delete code. It also emphasizes incremental migration, embracing lack of knowledge, and eliminating systematic complexity. The Talk highlights the use of automation in code migration and the importance of removing barriers to enable smoother code migration.
Fighting Technical Debt With Continuous Refactoring
React Day Berlin 2022React Day Berlin 2022
29 min
Fighting Technical Debt With Continuous Refactoring
Top Content
Watch video: Fighting Technical Debt With Continuous Refactoring
This Talk discusses the importance of refactoring in software development and engineering. It introduces a framework called the three pillars of refactoring: practices, inventory, and process. The Talk emphasizes the need for clear practices, understanding of technical debt, and a well-defined process for successful refactoring. It also highlights the importance of visibility, reward, and resilience in the refactoring process. The Talk concludes by discussing the role of ownership, management, and prioritization in managing technical debt and refactoring efforts.
Monolith to Micro-Frontends
React Advanced 2022React Advanced 2022
22 min
Monolith to Micro-Frontends
Top Content
Microfrontends are considered as a solution to the problems of exponential growth, code duplication, and unclear ownership in older applications. Transitioning from a monolith to microfrontends involves decoupling the system and exploring options like a modular monolith. Microfrontends enable independent deployments and runtime composition, but there is a discussion about the alternative of keeping an integrated application composed at runtime. Choosing a composition model and a router are crucial decisions in the technical plan. The Strangler pattern and the reverse Strangler pattern are used to gradually replace parts of the monolith with the new application.
Building High-Performing Cross-Cultural Teams
React Day Berlin 2022React Day Berlin 2022
25 min
Building High-Performing Cross-Cultural Teams
The Talk discusses the importance of effective communication and collaboration in cross-cultural teams. It emphasizes the impact of culture on communication and performance evaluation. The speaker highlights the differences between low-context and high-context communication styles and the need to understand cultural nuances. It also explores the challenges of giving feedback in multicultural teams and suggests ways to improve communication and create a feedback culture. The influence of language on communication and the importance of transparency and honesty in feedback are also discussed.
Advanced Patterns for API Management in Large-Scale React Applications
React Advanced 2021React Advanced 2021
20 min
Advanced Patterns for API Management in Large-Scale React Applications
Top Content
This Talk covers advanced patterns for API management in large-scale React applications. It introduces the concept of an API layer to manage API requests in a more organized and maintainable way. The benefits of using an API layer include improved maintainability, scalability, flexibility, and code reusability. The Talk also explores how to handle API states and statuses in React, and provides examples of canceling requests with Axios and React Query. Additionally, it explains how to use the API layer with React Query for simplified API management.

Workshops on related topic

From Engineer to Leader: A Workshop for First-Time Tech Leaders
TechLead Conference 2024TechLead Conference 2024
144 min
From Engineer to Leader: A Workshop for First-Time Tech Leaders
Workshop
Andrew Murphy
Andrew Murphy
Transitioning from an individual contributor role to a leadership position, especially in the fast-paced tech industry, is hugely challenging. Most new leaders don't receive any training at all in the first 10 years of their new responsibilities.Our comprehensive workshop is designed to assist new and emerging tech leaders in understanding their new roles and gaining the skills to make them confident, happy and effective leaders.
Managers Are From Mars, Devs Are From Venus
TechLead Conference 2024TechLead Conference 2024
111 min
Managers Are From Mars, Devs Are From Venus
Workshop
Mo Khazali
Mo Khazali
A Developer’s Guide to Communicating, Convincing, and Collaborating Effectively With Stakeholders
It’s a tale as old as time - collaboration between developers and business stakeholders has long been a challenge, with a lack of clear communication often leaving both sides frustrated. The best developers can deeply understand their business counterparts’ needs, effectively communicate technical strategy without losing the non-technical crowd, and convince the business to make the right decisions. Working at a consultancy, I’ve both failed and succeeded in architecting and “selling” technical visions, learning many lessons along the way.Whether you work at a product company, are a consultant/freelancer, or want to venture beyond just being a developer, the ability to convince and clearly communicate with stakeholders can set you apart in the tech industry. This becomes even more important with the rise of GenAI and the increasingly competitive developer market, as problem-solving and effective communication are key to positioning yourself.In this workshop, I’ll share real-world examples, both good and bad, and guide you through putting the theory into practice through dojos.
Out of the Frying Pan, Into the Fire: A Manager's Guide to Helping New Developers Thrive
TechLead Conference 2024TechLead Conference 2024
35 min
Out of the Frying Pan, Into the Fire: A Manager's Guide to Helping New Developers Thrive
Workshop
Andrew Coleburn
Andrew Coleburn
Onboarding to a new project can be difficult, no matter your background and experience. But it can be especially challenging for new developers straight out of school or a coding bootcamp. Drawing on personal experience as a bootcamp grad and JavaScript consultant, this talk will discuss tips and strategies for managers to help the new developers on their teams get their bearings in an unfamiliar codebase, so they can make more of an impact, faster!