酔えば酔うほど上手くなる
「酔えば酔うほど上手くなる」
まるで昔の格闘技映画の主人公のような人ではあるが、そんなプログラマが実在しました。今から思い起こせば、わたしがまだ駆け出しの技術者であったころ、その人に出会いました。
彼は想像上のプログラマの外見とはまったく異なり、戦車みたいな体格をしてました。その体躯を、いつも狭い机と椅子に縮こまるようにして身を寄せて、せっせとバグを……じゃないプログラムを生産しています。
「お酒とコードの良い関係~♪」
彼はよく言っていましたね。当時、わたしにはなんのことか分かりませんでしたが、よくよく聞いてみると。
「お酒を飲みながら書いたコードの方が、出来がいいんだよなぁ~♪」
というのです(注:会社では飲んでいません。念のため)。
彼は頻繁に仕事を家に持ち帰り、自宅のPCでコードを書くようなのですが、その時必ずといっていいほどお酒を飲んでいる模様。
酒の深度とコードの質にどのような因果関係があるのか、おそらく科学的に証明は不可能と思われますが、彼のコード生成規則の一部になっているのです。
「会社でしかめっ面をして、机にへばりついて書いているコードなんて、全然駄目! やっぱりリラックスして書いているコードが最高~♪」
と豪語して憚(はばか)りません。
彼の良いコードの定義は「コンパクトで、処理速度が速く、バグがない」とのこと。なるほど、「機能面、性能面、品質面では問題ないことが重要です」、と聞こえます。
わたしもその当時は「なーるほど、すごいなー」って感じで関心して聞き入っていました。
しかし……今は思うんですよね。なんとなく違うってことを。欠点が1つだけ、そしてそれは大きな問題として君臨していました。その欠点とは……、誰も理解できなかったんです、そのコードを。
飲みながらコードを書くことで、コンパクトで処理速度が速く、そしてなぜか(?)バグがないソフトウェアができあがることは良いのですが、誰一人そのコードを理解できませんでした。当の本人でさえ、
「うーん。なんでここがこうなって、あそこがこうなって、それでこっちが……???」
と困惑する始末。
でも、動くんですよね、これが(笑)。後日そのコードを見ると“雑音”としか思えない。しかしそのコードは立派に機能していました。
飲んでいるので、そのコードを生成する過程で試行錯誤されたであろう設計思想などは、アルコールとともに蒸発してしまっています。もちろん、ドキュメントなんて残ってません。“雑音”から情報を抜き出すなんて、悪魔に魂を売り渡せばできるんでしょうけど、そのために廃人になりたくないですからね。
コードが先かドキュメントが先か……、もちろん、ドキュメントでしょう。ドキュメントをお粗末に扱うエンジニアは、ワンショットの製品は作れても、10年続く製品の設計はできないように思います。
なぜドキュメントを書くのか、その意味をしっかり理解して書くことが必要なのでしょう。