Embracing Reciprocality as a Software Developer
Tags: learning, growth, selfimprovement, career
Published: 2023-12-02 12:15:04

As a software developer, my journey into the poker world during my youth has embedded enduring principles into my professional mindset. Skills like embracing a non-results-oriented mindset by prioritising long-term outcomes over immediate results, and maintaining a pragmatic view of situations without succumbing to emotional attachment continue to hold significant value. However, today, I aim to explore another concept from that period: reciprocality, a term introduced by Tommy Angelo in his book "Elements of Poker."

In this blog post, we'll explore how reciprocality can impact the decision-making process in poker and software development. We'll examine how coding decisions, much like playing hands of poker, carry implications beyond immediate results, and how embracing the concept of 'mining for reciprocal gold' extends into the realms of continuous improvement and personal growth.

## Understanding Reciprocality
Let us begin our exploration by understanding reciprocality within the poker domain, [as articulated by Tommy Angelo](https://www.tommyangelo.com/reciprocality/): "In the world of reciprocality, it’s not what you do that matters most, and it’s not what they do. It’s both. Reciprocality is any difference between you and your opponents that affects your bottom line. Reciprocality says that when you and your opponents would do the same thing in a given situation, no money moves, and when you do something different, it does."

This definition prompts a closer examination. In the absence of additional costs such as taxes and rake (the fee collected by cardrooms or casinos from each pot for revenue), poker becomes a zero-sum game. This is a situation in which one participant's gain or loss is exactly balanced by the losses or gains of other participants. In other words, the total amount of wealth or utility remains constant, and any benefit to one party comes at the expense of another.

Knowing this, let's look at an example that illustrates the fundamental essence of reciprocality in poker. Consider a scenario where a decision leads to winning a certain amount of money. The evaluation of whether that decision was profitable hinges on how our opponent would have fared in a reversed card situation. If they would have profited more, we end up losing in the long run, irrespective of our immediate gains. Conversely, if our opponent would have earned less or incurred losses in the same scenario, we emerge as long-term winners.

## The Link to Software Development
Although my poker-playing days are behind me, the principle of reciprocality continues to be a valuable principle in my role as a software developer. Its applicability in our profession is diverse and insightful. Consider reciprocality as a lens for assessing the decisions we make as developers on a daily basis. Much like the poker analogy earlier, envision a coding decision with a specific outcome. Assessing its wisdom involves contemplating how an alternative choice might have performed in a parallel coding universe. If an alternative strategy could have produced more efficient code, we might face long-term setbacks, regardless of initial success. Conversely, if the alternative is less optimal or prone to issues, we position ourselves for long-term success.

This evaluative approach extends to various other software development decisions, such as selecting a development methodology, choosing frameworks, or opting for a particular cloud provider. However, personally, I find reciprocality particularly valuable as a compass for navigating the path of lifelong learning.

## True Nobility
After all, the focus of the reciprocal lens can also be turned inward, heeding the wisdom often attributed to Ernest Hemingway: "There is nothing noble about being superior to your fellow man; true nobility is being superior to your former self."

Here's my personal approach: I envision a version of myself that is both realistic and embodies what I deem to be the ideal in that specific moment. It's crucial to acknowledge that this ideal evolves as we grow, adapting to changing priorities and areas of focus. Once I've crafted this aspirational self, I employ the concept of reciprocality to scrutinize my current actions and identify what keeps me from being that perfected version. I'm essentially 'mining for reciprocal gold', a phrase also coined by Tommy Angelo, aiming to understand how I can outperform the present version of myself to move closer to that ideal.

In essence, I engage in a competition with my current self, akin to poker, with the overarching goal of winning in the long term. Unlike poker, however, this victory isn't measured in financial gains but in progress toward personal growth. The ultimate objective is achieving superiority over my former self.

The tech landscape evolves rapidly, and embracing this mindset aligns perfectly with the ethos of continuous improvement. Each line of code becomes a lesson, each project a chapter, contributing to a narrative of growth and refinement. In our industry, the commitment to lifelong learning is the driving force behind staying relevant and effective. The reciprocal lens can show us where our time and efforts are best spent.

## Conclusion
In the dynamic realm of software engineering, the incorporation of reciprocality emerges as a compelling and enduring concept. As we navigate the intricacies of decision-making, the reciprocal lens provides invaluable insights, transcending the confines of poker to become a guiding principle in the multifaceted tech landscape. Whether navigating complex coding problems or embarking on a journey of personal development, the reciprocal lens proves to be a very useful companion, illuminating the path toward enduring success. I wish you the best of luck looking through this lens, revealing paths you may not have known were there.