5 Board Games to become a better developer

5 Board Games to become a better developer

And they aren't even "educational" games!

1. โš“ โ€œLe Havreโ€ and Efficiency

Like most euro games ๐Ÿ’ถ, "le Havre" is all about achieving maximum efficiency with limited resources. Those resources are food, money, combustible... and the more important one: time โณ. You need to learn how to get the most points by playing with the constraints of the game โš™. Software Development is usually like that too: you need to plan ahead (for example, when planning a Sprint) to see how much time do you need to implement a feature and decide if itโ€™s worth it versus implementing a different one that could give more value ๐Ÿ“ˆ to your main project.

"Le Havre" itโ€™s a game where losing focus on what you need to do can make you lose the game altogether ๐Ÿฅด. In a similar way, developers getting lost in details like code cleanness ๐Ÿงฝ or obtaining maximum performance usually can make them forget the main focus of their job: creating business value for the project ๐Ÿ’ฐ.

I highly recommend this game if you like refining processes and adapting that process when new variants appear ๐Ÿ“Š.

2. ๐Ÿ‘‘ โ€œDominionโ€ and Planning Ahead

Dominion is a deck-building game ๐Ÿ—. That means that you will be buying cards with in-game currency ๐Ÿ‘› and those cards will go to your deck. Cards from your deck will appear on your hands ๐Ÿ‘ periodically, improving the chained actions โ›“ that you can perform or slowing you down ๐Ÿข.

In Software Development, you usually need to think way into the future and imagine what you will need and when ๐Ÿค”. But even if you have all the needed data for a proper analysis, as a developer you can fail to notice possible issues or requirements and make decisions that you will just regret in the future ๐Ÿคฆ๐Ÿผโ€โ™€๏ธ.

When you accumulate less useful cards in your deck, you lose effectiveness ๐Ÿ“‰. In a similar way, bad design and wrong abstractions (technical debt) make your codebase harder to maintain and harder to implement new features into it ๐Ÿ˜ฅ.

I recommend this game if you like to strategize and experiment ๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ”ฌ with new combinations of effects to achieve the best results possible in each situation ๐ŸŒŸ.

Also, for a quicker and more โ€œcontainedโ€ experience ๐Ÿ‘๐Ÿป, I recommend a similar game: Star Realms.

3. ๐Ÿช โ€œTerraforming Marsโ€ and Good Design

Are you an Elon Muskโ€™s SpaceX fan? Do you dream to see humanity colonizing Mars and making it habitable ๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ? Then, I believe this game is just for you ๐Ÿ˜€.

I want to talk about how great the design of this game is ๐Ÿ’–. The lore and mechanics are just combined perfectly in every card, making this complex game easy to understand and fun to play for newbies ๐Ÿ‘ผ๐Ÿป.

For example, a card lets you introduce Earth's fish ๐ŸŸ to Mars, but you cannot use it till there are enough oceans ๐ŸŒŠ on the planet. Itโ€™s just common sense, and it makes it easy to remember just by looking at the card picture ๐Ÿ–ผ.

Itโ€™s the same with well-designed code ๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป. If you pay attention to the variable and functions naming โœ’, respecting the systems abstractions; you will be able to avoid a lot of complexity and the maintainer of that code will be able to intuitively understand your logic and thought processes ๐Ÿ’ก.

Designing a system is hard ๐Ÿ˜ฐ, but practice makes perfect! And good inspiration can help you get better at it too ๐Ÿ˜„.

By the way, I recommend playing the digital version ๐Ÿ“ฑ: the app design and features are really high qualityโœจ, especially considering thatโ€™s not very usual on-board games digital adaptations ๐Ÿ’ฉ, unfortunately...

4. ๐Ÿš‚ โ€œTicket to Rideโ€ and Conflicts

A classic well-known internationally ๐ŸŒ, but I had to include it here because the feeling you got when another player builds the train rail ๐Ÿ›ค that you needed to complete your objective is really similar to the feeling of getting bad conflicts when merging different coders' branch code into the main branch ๐Ÿงจ.

It can be helped: players play on a limited map ๐Ÿ—บ, and sometimes all of them need to get to New York ๐Ÿ™. In code, sometimes the team is too big for a limited code base, and they end modifying the same file at the same time or doing a refactor and adding a new feature in the same module ๐Ÿ™„.

How to avoid getting into this sort of conflict? Well, as usual, you need to plan ahead, try to calculate if your opponent or the other coder will โ€œget in your wayโ€ ๐Ÿค” and time your actions accordingly ๐Ÿ•œ.

Of course, in Ticket to Ride, getting into conflicts is part of the game ๐ŸŽ‰, but in real-life software development, you should communicate soon ๐Ÿ“ข and periodically with your team to avoid this kind of issue ๐Ÿ‘๐Ÿฟ.

Donโ€™t be afraid of adapting your plans when you evaluate how they are interacting with the outside world ๐ŸŒ†. Itโ€™s part of the process. Even if you do a perfect analysis ๐Ÿ•ต๐Ÿปโ€โ™€๏ธ at the start of an implementation, there are always some things that you cannot foresee ๐Ÿ˜ข.

5. ๐ŸŽด โ€œHanafudaโ€ and the Confort Zone

Hanafuda (see this post cover image) is a set of old Japanese ๐Ÿ—พ cards that you can use to play many traditional games, similar to the western poker cards โ™ฃ.

I have only played "Koi Koi", a game that consists of combining cards to make sets that have different values depending on some arbitrary rules ๐Ÿ“Š. Again, really similar to Poker ๐Ÿคทโ€โ™‚๏ธ. The thing is: these cards donโ€™t represent kings ๐Ÿ‘‘ and money ๐Ÿ’ต: they represent flowers ๐ŸŒธ, seasons ๐ŸŒฆ, and poetic oriental concepts ๐ŸŽ‹.

For example, thereโ€™s a kind of card that will give you many points if you combine 3 of them, but if among those cards thereโ€™s this one named โ€œRain Manโ€ ๐Ÿ‘จ๐Ÿปโ˜”, youโ€™ll get fewer points. Why? Well, we would probably need to understand the cultural context ๐Ÿ‘˜ first in order to find that this rule belongs to our โ€œcommon senseโ€ ๐Ÿ’ญ.

Itโ€™s hard to learn a system thatโ€™s too different from the previous systems that are well-known to us. It forces you to go outside of your comfort zone ๐Ÿ˜ฑ! Learning Hanafuda from a western perspective is like learning a new programming language that focuses on a completely new programming paradigm ๐Ÿคฏ. Or getting onboarded in a new project in a business with a context you donโ€™t really know anything about it, like moving from e-commerce ๐Ÿ’ป into rocket engineering ๐Ÿš€.

In the end, you learn to see the world in a new way ๐Ÿ˜Ž, and thinking outside of the box ๐Ÿฑ becomes easier for you. And that flexibility is the greater intelligence trait we humans possess ๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง.

So, what's your favorite board game? Is it on the list? Let me know in the comments here or in Twitter ๐Ÿ˜‰!

ย