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 ๐!