頭の中にプログラムを入れる
Creative Commons|Attribution Photo by Mario Pleitez
いまプロジェクト全体の技術面を把握して設計とコードレビューする立場にいるので、全体像を全部頭に入れながら生活している。 意識していてもいなくても、風呂に入っている時、本を読んでいる時など、裏で脳が勝手に処理しているらしい。 突然不整合に気づいたり、ぼんやりしていた全体像がクリアになったりする。 この脳に入れた状態で生活することを含めて自分の価値なのかも。それを含めて報酬を受けとっていると考えられなくもない。 それは明文化されているわけではないけれど、実際はそういう人間が抜けるとプロジェクトはカオスになるわけで、実際問題はそうだ。 なんか因果な商売だなあと思う。 ちょっと違うけど、SFの短編「記憶屋ジョニィ」を思いだした。ジョニィとは違って記憶するだけではだめなんだけど。(参考:JM (映画) - Wikipedia、クローム襲撃 - Wikipedia))
この手の話は達人たちがちゃんと言語化してくれているので、自分の状況に置きかえて考えて みると楽しい。まずはポール・グラハム。 頭の中にプログラムを入れる プログラムを頭の中に入れるのは容易なことではない。プロジェクトを何ヶ月 か放っておいたなら、戻ったときに再び深い理解を取り戻すのには何日もかか る。そのプログラムに積極的に取り組んでいる場合でさえ、その日その日に取 り掛かるとき頭の中にプログラムをロードするのには30分もかかるかもしれな い。そしてこれはいい場合での話だ。
この本にも関連するクヌース先生の発言がある。
第15章 ドナルド・クヌース クヌース TeXを開発している間にい膨大なことを学びました。学んだことの1 つは、ソフトウェアが脳のどれほど大きな部分を占めるかということです。こ れは私が思っていたよりも難しい仕事でした。授業をフルタイムで教えながら ソフトウェアを書くことはできませんでした。私は授業をフルタイムで教えな がら本をフルタイムで書くことはできましたが、ソフトウェアは細部への注意 をずっと多く必要としたのです。ソフトウェアが私の頭の大部分を満たしてし まい、ほかのことが追い出されることになりました。だから私は大規模ソフト ウェアプロジェクトをやっている人たちには格別の経緯を抱いています。自分 で直面してみるまで、そんなことは想像もしていませんでした。
きっと脳に一度にロードできる情報の限界というものがあるのだろう。 今やっているプロジェクトが大規模かというとそれほどでも無いかもしれないが、かなりの事柄を頭に保持していないといけないのは事実だ。
自分でコードを書く事はあまり無くなってしまったけど、コードの細部まで整合を見ていかないといけない。 望んでいたわけでは無いが、実際にこういう立場になってみると、案外悪くないと思えるようになった。 自分の手でコードは書かないけど、できあがってきたコードを全部見れていて問題があれば修正してもらえる。
そんなわけで、プライベートで大きなプログラムをもうひとつ頭に入れることは無理っぽいなぁ、という感想。 解決策は、プライベートでは実現したいことを外部のライブラリやミドルウェアの機能で補ったり、コードを極限まで圧縮できるマクロを使って脳の消費スペースを少しでも抑えてやるしかないかなぁーと考えているところ。仕事柄、自分でコードをゴリゴリ書いて解決するよりも、オープンソースのパッケージを上手く選定して解決するほうが重要なので、実は利害は一致している。 まあ、二つ入ったほうがいいのは事実なんだけど、こればっかりはHDDじゃないので増設とかできんしなぁ。