Ballmer's Peak

We are quite the whisky fans. We also tend to have a drink while working on our software development projects. As our first #4WeekProject, we decided to blend and bottle our own whisky and call it: Ballmer's Peak.

Ballmer's Peak

The Plan

For our project, we will be blending, designing, and bottling our whisky.

Week 1: The Blend

The first week we're most likely going to drink a little too much. We'll be tasting various types of whisky and determine the type of flavour we're looking for.

Week 2: The Label

After drinking this much we will have to take a break. Let's get designing! Although we shouldn't judge a book by its cover... we're all a little guilty.

Week 3: The Bottle

A unique whisky deserves a unique display. During our penultimate project week, we will scour the internet for suppliers who are willing to supply a small number of whacky bottles.

Week 4: The Tasting

I expect to have had a lot of fun on this project by the last week. However, whisky is only truly enjoyed with good company. The last week we will share our creation with friends, collect some feedback, and generally have a good time.

But before we throw ourselves at this challenge, let's have a look at the background of the Ballmer Peak. What is it, and where did it come from?

What Is the Ballmer Peak?

The phrase "Ballmer Peak" (sometimes also known as the "Ballmer Curve" or "Ballmer Effect") was first coined by the famous webcomic XKCD:

Source: https://xkcd.com/323

Here Cueball talks about how Microsoft discovered that having just the right amount of alcohol in your blood drastically improves your programming ability. The name "Ballmer Peak" is a reference to Steve Ballmer, a former CEO of Microsoft. The idea there is that Steve Ballmer makes for an easy association of programming and alcohol, given the way he sometimes behaved. Funnily enough though, Ballmer himself never actually wrote any production code while at Microsoft.

So what is the perfect amount of alcohol? According to the comic it's somewhere between 0.129% and 0.138% BAC (Blood Alcohol Content). However, Randall Munroe (creator of XKCD) gave a talk at Google where he talks about this specific comic, and there he mentions that the top of the peak is actually at 0.1337%. Here he also talks about some experiments he did, trying to solve a Rubik's Cube while getting progressively more intoxicated. He found that while the time it took him to solve the Cube did get worse as he got more drunk (up to 10-15% near the end), he always did manage to solve it. But, as interesting a result as that is, it's not quite comparable to programming, since solving a Rubik's Cube relies mostly on muscle memory rather than complex problem solving.

The question then becomes: how do you get to the Ballmer Peak? There's various sites and tools where you can calculate your BAC based on your sex, body weight, and time since first drink. The type of drink generally doesn't matter, since a glass of beer, wine, and whisky will contain roughly the same volume of alcohol. Someone even made an online tool that generates a drink schedule for you to get to the Ballmer Peak. According to this tool, the drinking schedule for an 80kg (176lbs) male looks like this:

Source: https://alexcrist.github.io/ballmer-peak

It's not perfect, since the tool "targets a BAC peak of 0.12" and "assumes you pound your drink instantly" (see the readme at https://github.com/alexcrist/ballmer-peak). However, it does give us the general idea of the speed at which you'd need to be drinking, which in this case is a drink every 17 minutes for almost 2 hours!

Also good to note, according to https://www.alcohol.org/bac-calculator, at 0.12% BAC:

You are likely slurring your words and may have blurred vision. You may have obvious problems with body control and balance, and you may be experiencing impairments in your mental capacity.

Which does not really bode well for the theory. While speech, vision, and body control may not be the most important for programming, it does heavily rely on your mental capacity. So...

Is It Even Real?

We are not the first ones to ask this question, and while various people will have had varying degrees of success programming while consuming alcohol, most of those stories are purely anecdotal:

I've met many engineers who definitely feel more loose and can pound out more/better code with a beer or two.
I’ve always found alcohol to be nothing but bad for my programming.
For myself, alcohol works by making myself less careful and more toward the goal.

(Source for all of the above: https://www.quora.com/Is-there-any-truth-to-the-Ballmer-Peak)

None of these statements are any good in trying to determine if the Ballmer Peak actually exists. We want to see some actual scientific research and hard numbers!

One piece of relevant research we found mentioned a couple of times is the Yerkes-Dodson law, which describes a relationship between arousal and performance:

Source: https://en.wikipedia.org/wiki/Yerkes%E2%80%93Dodson_law

This research was not directly trying to relate performance to alcohol though, but it's a promising start. A CBS article from 2012 shows even more promise. This article talks about a study conducted by the University of Illinois. Here 40 people were split into 2 groups, where one was given enough alcohol to get their BAC to 0.075%, and the others were completely sober. Then, they were given brain teasers and seeing which group answered more quickly (and correctly).

Astonishingly, those in the drinking group averaged nine correct questions to the six answers correct by the non-drinking group. It also took drunk men 11.5 seconds to answer a question, whereas non-drunk men needed 15.2 seconds to think. Both groups had comparable results on a similar exam before the alcohol consumption began.

Sadly, the research isn't linked directly, but we managed to dig it up after scouring the internet: Uncorking the muse: Alcohol intoxication facilitates creative problem solving. Interesting as the full paper may be, the highlights tell us all we need to know:

► We examine the effects of alcohol intoxication on creative problem solving.
► Sober and intoxicated (BAC = .075) individuals solved Remote Associates Test items.
► Intoxicated individuals solved more items in a shorter time compared to sober.
► Intoxicated individuals were more likely to rate their solutions as insightful.

While 0.075% BAC is not quite the Ballmer Peak, it does at least tell us that there are certain problems that can be solved faster and/or better with a certain amount of alcohol. The study also notes that the improved performance was present for creative problem solving, but not for working memory. But as many programmers will tell you: programming is more like art than science anyway.

In conclusion, while there doesn't seem to be any studies specifically dedicated to programming while intoxicated, there is at least some truth to the idea of the Ballmer Peak. I see this as an absolute win!

One final note: while drinking and coding might give you working code and improved problem solving skills, there's also the question of maintainability:

A friend and I finished coding a project I was working on during a night of drinking. We fixed numerous problems I had encountered. Unfortunately I am now afraid to touch the code, as we neglected to document anything we did.
(Source: https://www.quora.com/Is-there-any-truth-to-the-Ballmer-Peak/answer/Andrew-J-Tucker)

So remember: always drink responsibly, and document your code ;)