I don’t want this post to sound like an advert for playing poker, especially high stakes poker, but I have found that many of the disciplines learned by playing poker to win can set you apart as a professional programmer. I would like to teach you those disciplines here.
In 2003, Chris Moneymaker, a completely unknown amateur at the time, invested $86 in an online poker tournament and ended up winning $2,500,000 at the World Series of Poker. Chris is actually a very good poker player, but the buzz that went around was that it proved that anyone can win big at poker. This attracted flocks of new players to the game and was the beginning of a golden era for serious poker players.
My brother quit his job because he was making so much more money playing it. I started, and after a little while was also a decent side-income playing micro-stakes games. Then in 2006, the Unlawful Internet Gambling Enforcement Act was tacked on to the end of the SAFE Port Act making online gambling illegal in the United States.
Soon, instead of playing against tons of drunk Americans, I was finding fewer and fewer good games and sometimes sitting at a table full of tight Scandinavian sharks. My earnings dropped significantly. The game was gradually getting tougher and drier.
By 2009 I was earning way less than my normal job, and I wasn’t finding it fun anymore. I hit a bad run and decided to withdraw my cash and take a break until I felt interested in playing again. That was 6 years ago and I never went back. I believe that getting out when the game was no longer juicy before I lost significantly was one of the best decisions I ever made.
The main difference between poker and general life, is you are in much more control over your general life. You have the power to make your hands stronger, whereas in poker that is entirely down to luck. So in this sense, real life is much more preferable than poker, but the experience of playing poker is also good preparation for coping with the times in your life where you do have very limited control.
Although I no longer play, I’m very glad that I had the experience of playing poker seriously because it taught me:
1. Expected Value and Variance
There is always luck involved, and expected value and variance are mathematical terms to express this.
Always bare in mind that in the short term luck will be a much bigger factor than it will be over the longer term. You might get lucky and find you get a huge bonus, mostly because the colleague in your team is awesome, or you might be unlucky and be under threat of being laid off, perhaps because your colleague wasn’t so awesome. If you are appear to be having a string of bad luck, never start getting superstitious about it. Your luck will turn around. And anyway, it’s unlucky to be superstitious!
So if things are going bad, it’s usually better to take the criticism on the chin and keep showing a consistent positive attitude. If you feel you’re getting more than your fair share of the blame, as long as your boss isn’t a sociopath you’re probably much better off saying that you will do whatever it takes to make amends than starting a blame game. Things can go wrong in business, but they are usually forgotten about pretty quickly because new things are happening all the time. But the fact that you’ve shown a strong attitude will be remembered.
If things are going well, smile, and thank and congratulate everyone who has helped you. Rather than making it look like you didn’t deserve so much credit, it will look like you deserve all the credit you’ve received and are modest about it as well.
2. Play your strong hands strongly
Many people think that poker is all about deception and trickery, but it is a very overrated part of the game. A player with a strong understanding of the mathematics who is generally honest will usually do better than a player who is always misrepresenting his hand.
Whenever you lie, whether in poker or general life, you are taken on a risk. In most circumstances it is far more profitable to be honest. If you have a great product, shout about it’s strengths from the rooftops! It will do you know good to use false modesty.
The only time that I can think of a small amount of deception paying off is the lack of brutal honesty.
For example say both your and your competitor have developed a product with 10 features. 9 out of the 10 of your features is great, but you haven’t had time to develop the last feature properly yet. Now a big client wants to choose between you and your competitor right now.
You could that you have a great product and cover all of the strengths of 9 features. Or you could be brutally honest and say that although 9 of your features are great, one of them really sucks! It depends on the exact nature of the relationship with your client, but the first option might work out better. As long as you continue to keep improving the product, your client might never even notice that one of the features wasn’t up to scratch.
However, I must reiterate, integrity pays off and trickery is overrated.
3. Always try to play in position
Playing in position means that the other person has made their move before you. This means you have significantly more information that allows you to make better decisions. This is applicable throughout life. For example in negotiations, you are much better off knowing how much the other person is willing to pay than you are underselling yourself.
4. Mental toughness to get through tough periods
You can be making easy money and then lose your whole stack on one hand. This could be due to your opponent playing very badly but getting very lucky, or even worse, your opponent completely outplaying you. This could happen several times in a very short amount of time.
This can be a very stressful situation, but the lesson to learn is to control your emotions. Getting emotional only makes things worse. Sometimes you just have to take a loss and accept it.
5. Be calm when people are trying to rile you
Players try to gain an advantage of others by making them tilt, that is making them play much more loosely and aggressively and poorly in order to try to win their losses back. There are all kinds of tricks that can be played here, but a serious player won’t pay any attention to any of them.
In a business environment, you might get demanding customers calling up angry, or even other angry colleagues. Instead of getting upset, just think about the situation logically. What is the goal here? What is the problem? What does the customer want? These situations can usually be diffused within a matter of seconds.
6. Gearing
In a loose game, that is a table where most players are playing loose, a good strategy is to play tight.
In a tight game, it is sometimes better to play looser. The skill is to spot the changing circumstances around you and adapt your own style to optimize for the situation.
This applies to development as well, especially test driven development. Some areas of your code are much more complex than others, and need to be tested much more thoroughly. In this situation you need to gear right down and focus on all of the possible testing angles. When the code is much less complex, you can gear up.
7. Avoid complacency when things are going well
Many times I see people start to coast a bit when the results are good and profits are up. While it is nice to enjoy the good times, it is also important to remember that things could turn for the worse at any moment.
Also, in this situation it may be better to work harder and market your product more aggressively. If sales are up, it may be that your competitors are currently weak. While this is good for you, it’s also true that there are some weaknesses in your own product offering. Even if your company is the leading producer, it may be that the market you are in could be grown much larger than it currently is because many customers haven’t yet seen a product that meets all of their requirements.
It is inevitable that your competitors will realize their mistakes sooner or later and become much stronger. You want to take advantage of their weakness while the environment is good, and think about what your competitors next moves might be so that you can stay one step ahead of them.
8. There is always another hand
So you did everything right but you still lost the hand. Get over it! Life goes on. The next hand is starting right now. Stay sharp and focused on this.
There will be a time later to review old hands. For example we have retrospectives in Scrum. Similarly in poker it is normal to playback online hands so that you can consider how well you played the hand. There are also forums where you can post your hands and have other players review your play for you.
9. There is always another table
When you sit at a table, or any market, you fancy your chances of making some good money there. But often you find that the opposition is getting stronger. The weaker players are going out of business and new super strong players are coming in. This might be a good time to move to a new table.
An example of someone who has applied this well is Sir Richard Branson. In the old days his Virgin brand was associated entirely with selling music in physical form. But well before that market died out he moved into many new markets. Nowadays Virgin is associated with a huge variety of products.
10. Dealing with ambiguity and incomplete information
In poker, you make assumptions in order to put your opponent on a hand or range of hands. You get very quick feedback on whether your assumptions are right or wrong, and even the best players make the wrong assumptions quite often. This makes us much more aware of the times in life when we are making assumptions. That time when you folded your middle strength hand and your opponent showed that he had nothing, and many other experiences, make us also consider what the effects might be if we are making the wrong decisions.
Not making the wrong assumption is so important in poker that small bets are often made mostly just to extract more information from your opponent. This information can be worth much more than the cost of your bet. Similarly, there are many situations in business where we don’t know enough about the market to be confident that our product will sell. Conducting market research costs a company money, but that cost may be trivial compared with the cost of assuming that your product is something many consumers want.
Don’t chase after your losses
Experienced poker players know to seek out games with people who chase after their losses. Sometimes people confuse lost money with invested money. This is the case in software development as well. The advice to “never give up” is simplistic. Experience teaches us when we should stick to the same strategy, and when to know the strategy was the wrong one all along.
Final Words
There is much more to be said about how poker can grow your understanding of the wider world, especially in financial areas. For example, sometimes poker is used as a training tool for understanding the stock market.
If there are some statements about poker in this blog surprise you, I think it is worth gaining an understanding about what poker is really all about, even if you never intend to play it yourself. One good book for teaching you that is Theory of Poker
I have tried to keep this post as simple as possible so that it is easily understood by poker and non poker players alike. However, if there is anything that doesn’t make sense, or if you enjoyed this post, please let me know by leaving a comment
Further Reading
Chris Moneymaker Story
Pingback: Developer On Fire Retrospective | Zombie Code Kill