Today I was reading a blog post from Mike Caro who on top of other things is a professional poker player and computer programmer who’s achievements include writing a poker bot.
In this particular post Mike talks about a situation in poker that he calls Fancy Play Syndrome (FPS).
The problem is something I named Fancy Play Syndrome (FPS). It’s the disease that presents itself when you believe you’re so superior to your opponents that you need to prove it. So, you choose the fanciest and most unusual play, rather than the one that is apt to earn the biggest profit. Beware of FPS.
Upon reading this it become evident to myself that this phenomena not only exists with poker players but also programmers.
The problem with programmers is they have a insatiable need to have their intellect challenged and that vast majority of application programming jobs are repetitive and fall into boring domains (finance, logistics, retail, etc..).
In most of these positions it doesn’t take long to become unchallenging.
Only a few of the most adept and qualified get to work on the challenging and interesting problems such as Operating systems, Robotics, Search engines, 3d games and so forth.
If your not working on innovative world changing problems its likely your solving the same (or very similar) boring problems over and over again. I don’t know how many times in my career I’ve written a program to process a text file or written a login validation function but its probably more than the days of vacation I’ve taken in my lifetime.
This can lead to Fancy Programmer Syndrome where the actual task or problem is so unchallenging or mundane that you over complicate things to stimulate your brain.
I’ve seen Fancy Programmer Syndrome many a time and have almost caught it myself. Some times its more destructive than others.
So what are some of the signs of someone suffering from Fancy Programmer Syndrome?
- Over-conservative of memory and CPU time saving while sacrificing understandability
- Trying to write code in as few lines as possible
- Over design, Ie. Sales requires a way to see how many sales they made the previous year and the engineer programs a time machine to go back in time so the travler can ask the sales staff at that time.
In poker the goal is not to prove how great you are to your opponents and this can be impossible to do in the short term because of variance. But instead your goal is to make money.
In programming and engineering your goal is to finish the task in a optimal way in time and budget. That challenge should be rewarding enough as it is.
Have you seen cases of Fancy Programmer Syndrome? Leave a comment.