【エンジニアの】バルマーピークは本当にあるのか 検証してみた【夢?】

こんにちは。プレイドの@sdaikichiです。現在のトレーナーレベルは28、捕まえたポケモンは183種です。

突然ですが、皆さん、お酒は好きですよね?僕も大好きです。

最近はビールが美味しい季節になってきました。

さて、エンジニアには半ば都市伝説のような通説があるのをご存知でしょうか。

バルマーピークです。

ballmerpeak

この説は、「血中アルコール濃度が0.129~0.138%のときに超人的なプログラミング能力を発揮できる」というものです。(このマンガだとWindows MEを引き合いに出してディスられていますが)

エンジニア同士の飲み会では一度は話の種になったことがあるのではないでしょうか。

バルマーピーク、もし本当だったらアツくないすか?

このグラフ(と呼んでいいかわかりませんが)では、ピーク時には平常時の倍ほどのプログラミング能力になると書かれています。

生産性の追求はエンジニアの至上命題です。「お酒を飲みながら仕事なんて!」という固定概念を取り払い、試せるものは試すのがエンジニアとしての矜持ではないでしょうか。

日本の労働生産性は先進国で最低と言われています。さらにIT分野では諸外国に遅れを取っていると言わざるを得ません。
もしバルマーピークの有用性が認められれば、日本のエンジニア達は酒を片手に以前とは比較にならない速度でアウトプットを出し続けることでしょう。ということは、ITはいまや日本の主要産業ですから、国内の生産性も一気に上昇します。ひいては日本のGDP増加、世界でのプレゼンスを再び得ることができるに違いありません。絶対成功させよう東京オリンピック!!

さて、始めましょう。

ルール

プログラミング能力の計測

生産性を比べるという点からすると弊社プロダクトのコードを使うのが一番ですが、酒を飲みながらプロダクションにコミットしていることが露見するとワンチャン解雇まであるので、ここは控えます。

「コーディング能力とは何か」を考え出すとキリがないため、いったんここは粒度の自由さとコーディング能力の客観的指標を兼ね備えている、paizaを使って結果を比べてみることにします。

時間を計測してくれたり、テストケースによる採点も行ってくれるため、飲酒時・素面時の客観的比較が可能です。
paizaスキルチェックのレベルですが、B~Cあたりの難易度で比較するのが普段の業務に近そうなので、ここを使います。
A以上になると数学的な設計能力も問われ、酔っ払った状態では明らかに不利そうなので、今回は避けます。普通に難しくて心が折れたというのもある。

濃度の計測

血中アルコール濃度が基準なので常に血液を取って測定できると良いのですが、さすがに機材が用意できないので、呼気で計測するものを利用します。
(余談ですが本当は国内メーカーのものを使いたかったのですが、おそらく車の運転可否の判定に主眼を置いているのか、濃度の測定範囲が今回のピークより低かったため、この製品を利用します。)

説によると、血中アルコール濃度0.129~0.138%、呼気中アルコール濃度に換算すると0.64~0.69mg/Lがピークとなります。お酒を飲み続け、この範囲までアルコール濃度が上がったのを確認してから、paizaの問題に取り掛かることにします。

濃度の維持

生産性が上がるのはかなり狭い範囲なので、アルコール濃度を維持する必要があります。
自分の体重だとアルコール分解の速さは1時間あたり(血中濃度の低下が)およそ 0.012% なので、維持するためにはビールだったら60分で200mlのペースで飲み続けながらコーディングしていきます。ちびちびと言った感じですね。

検証開始

まずはアルコール濃度をピーク範囲まで上げる必要があります。

近くの居酒屋さんからテイクアウトしてきたもつ煮込みと焼鳥でおっぱじめます。

20分後

そろそろ濃度を計測してみましょう。

ピークの濃度をオーバーしてしまいました。
お酒を飲まずにアルコール濃度が下がるのを待ちます。20分ほどマンガでも読んでましょう。

さらに20分後

富田流のそれは左鉤突きから始まる、それとは即ちーーーピピピッ
おっと、タイマーが鳴りました。濃度を計測しましょう。

<0.23%>(写真撮るのを忘れてしまいました・・・)

今度は下がりすぎてしまいました。
再度ビールで濃度を上げていきます。

そのまたさらに20分後

**よっしゃ来た!**コーディング開始です。
ちなみにこのときの体感酔っぱらい度は微妙にほろ酔いといった感じで、人と喋りながらだったら自分が酔ってることに気付かないんじゃないかな、といったレベルです。

結果

こんなことを繰り返しつつ問題を解いていき、また後日素面の状態で別の問題を解きました。

点数・回答時間は以下のような結果に。

素面の結果

ランクかかった時間受験者の平均時間点数平均との乖離
B17:4031:03100-45.0%
B 19:02 29:25 100 -35.3%
C 9:52 21:40 100 -54.5%
C 23:54 25:57 100 -7.9%
C 11:42 17:38 100 -33.7%
平均-35.28%

お酒を飲んだ結果

ランク かかった時間 受験者の平均時間 点数 平均との乖離
B 25:20 58:56 100 -57.0%
B 17:29 31:36 100 -44.7%
C 14:44 27:35 60-46.6%
C 9:09 20:56 100 -56.3%
C 8:23 13:40 100 -38.7%
平均 -48.66%

うーん・・・・

平均に対する速さでいうと微妙に早くはなっていますが、先述のグラフほどの生産性向上は見られませんでした。

また、飲んだ方では1度凡ミス(採点時後すぐ原因箇所は判明)によりテストケース採点で60点を出しており、注意力の低下が見られます。

ちなみに後々両者のコードを読み返してみて読みやすさ等を比較してみましたが、そこまで違いはありませんでした。というか、提出時間を最優先した結果有り体に言って両方共クソコードでした。

結局「バルマーピークはあります!」と言えるほどの結果にならず残念です。
とはいえ、そもそも「酒なんか飲んだら仕事にならない」という固定観念からすると、速度の向上が見られている時点で有意義な結果になったと言ってもいいのではないでしょうか。

読者諸兄におかれましては、是非この記事を片手にチームのマネージャーに飲酒コーディングの許可を直訴してみてはいかがでしょうか。私は責任を一切負いません。

ただやはり注意力の低下は避けられなさそうなので、もし不安な場合はテストを書いてBrowserStackで実行しましょう。

最後に

ウェブ接客プラットフォーム「KARTE」を運営するプレイドでは、生産性の向上に余念のないエンジニアを募集しています!

詳しくは弊社採用ページ
またはWantedly
をご覧ください。 もしくはお気軽に、下記の「話を聞きに行きたい」ボタンを押してください!