Program like a poker player

One of the skills that distinguishes a winning poker player is that they only play when they are feeling at their best. In poker, like many things, the line between good decisions and bad can be very thin. A player must be at their mental and physical peak in order to successfully juggle all of the factors required to come out ahead in a tough game. Tommy Angelo, a professional poker player, wrote extensively on this subject in his excellent book Elements of Poker. All the following quotes are from the book, with some word substitutions made to make them more applicable to programming.

Read more

Merge More Frequently

One of the biggest lessons from Lean manufacturing principles (Toyota Production System, etc), is the importance of working in small batches. Limiting "work-in-process" inventory is an essential technique for keeping costs under control and reducing the risk of missing deadlines. When consumer software was primarily shipped on CD-ROM, there was a limit to how small these batches could be (updates often happened at most once per year).  In the era of web application development, however, teams can deliver updates on a daily basis and fully reap the benefits of working on small chunks at a time.

Read more