ガジェット通信

見たことのないものを見に行こう

「健康」と「エンジニア」はナイスな関係?クライミングはパフォーマンスチューニングだ!

DATE:
  • ガジェット通信を≫

チューニングもクライミングも環境再現が”キモ”

自分の体も仕事もグッドなほうに持っていこう、というこの企画。第一回の今回は、隙さえあれば岩壁を登りに(クライミング)に行っちゃうエンジニア・山上健一さん(@kappaLab)に、健康の秘訣を聞いてみた!

クライミングの世界とプログラムの世界は実は近かった!(山上さんのブログ:http://rocas.in/

「僕はボトルネックを見付けて解決するパフォーマンスチューニング作業が好きなんです。処理の重いプログラムを見て、何が原因なんだ? と、何度も考える。そして、ふっと解決法が見えた時のブレークスルー感。この感じがたまらなく好きなんですよね」

そう語るのは、もともとFlashのエンジニアとしてキャリアを積み、ここ数年はフリーのUnityエンジニアとして、ゲーム開発を主戦場に実績を積んでいる山上健一さん(写真)。

現在おもにUnityによるゲーム開発を主戦場とするエンジニア山上健一さん。取材当日は秋も深まっていたのだが、半袖だし、腕が太い!

彼が好きなのは何もゲーム開発における「パフォーマンスチューニング」だけではない。

「仕事が終わったらボルダリングジムに通うのが日課ですし、できるだけ週末は外岩(ジムの外の自然の岩という意味らしい)に向かうようにしています。外岩でうまくパス(クライミング)できなかった部分を抽出して、ジムで再現して、うまくいかなかった原因を分析する。まさに、これはチューニング作業で、楽しくてしょうがない」

そう、彼は「プログラム」だけではなく、クライミングというスポーツを通して「岩壁」もデバックするのだ。

と、突然、山上さんの「クライミングはパフォーマンスチューニングだ!」という話から始めてしまったが、スポーツ知識量の少ない読者のためにクライミングについて少々解説しよう。

クライミングは、文字通り素手で岩を登る競技(写真参照)。個人的にはシルベスタ・スタローンの「クリフハンガー」という映画で「素手であんな高いところまで登るとか、ありえない」と脳裏に刻み込まれた他、そのパロディ漫画「栗ゴハンがー!」(崖の上から、栗ごはんを落としてしまったようだ)で、一生忘れられないギャグを生み出してくれたスポーツである。

話が脱線しそうだが、人工の壁を登るスポーツクライミングは、2020年のオリンピック追加種目として提案されるや、一躍一般の人の認知度もアップしたし、実際、現在競技人口は50万人と、ここ数年で大幅に増えている。それに比例して、壁一面にカラフルな「ホールド(岩壁の凸凹に模した突起)」を備えた、クライミング専用のジム「ボルダリングジム」も急激に増えているので、まちなかでそういったジムで多くの人が壁を登っているのを目撃した人も多いのではないだろうか?

最近、ボルダリングジム、増えましたよね?

山上さんに話を戻すと、プログラマーの彼はなぜ強烈にクライミングに魅了されるのか?

「パフォーマンスチューニングの難しいところは、実は解決よりも状況を再現することなんですね。この端末でこの条件なら問題ないのだけど、その他ではパフォーマンスが落ちたり、不具合が出たりしてしまう。そういった条件を揃えて、不具合を再現するのがとても難しい。僕はチューニングのなかでも、そういった不具合の出るテスト用の環境を作ることが好きなんです。

Unity開発に当てはめるとシーンファイルというものがあって、Aシーンが終了して、Bシーン。そこで通信が走って、Dシーンまでいかないとパフォーマンスが落ちるような状況を再現できない、そんな状態があるとします。

真面目な人はA、B、通信がある……みたいに最初からすべてを再現してテスト環境を作ろうとしますが、僕の場合はバッサリ切ってDダッシュの環境を作って、そこで不具合の出る状態を再現する。そういうことが得意なんです。」

エンジニアとしてもかなりニッチなところが得意というか、好きなようだが、このチューニング用の環境構築のどの部分がクライミングに繋がるのか?

「クライミングには、低い壁をロープなしで登るボルダリングと、ロープを使って長い距離を登るリードクライミングという2種類の競技があるんですが、どちらにも”核心”という言葉があります。

これは、その課題(簡単にいうと上るコースのこと)のなかでの最難関のポイントですね。特にリードクライミングは、ほとんどの場所はそれほど難しくなく登れるんですが、この”核心”のポイントが集中的に難しいのです。

そこで、週末に外岩に行った時は徹底的にその難しい”核心”にチャレンジして、先ほどお話したチューニングのDダッシュの部分のように抽出する。東京に帰ってきて、ジムでその”核心”を再現して、分析、調査をする。その流れで難易度の高い壁をクリアしていくのです」

念のために説明すると、外岩というのは、実際の岩壁だ。都心から車で2時間、3時間のところにあり、そう簡単に毎日チャレンジするわけにはいかない。

まずは都内に帰ってきて、ボルダリングジムに行く。そこでは壁のホールドを自分で自由に組み替えて、外壁を再現できるので、山上さんは東京で”核心”を再現する「ホールド」の並びを作れるというわけだ。

「何度やっても届かないとか、届いても持てないホールドは距離を変えてみてやってみたり、微妙な調整を繰り返してできるようにしてみる。

これは、わりと、クライマーはみんなやってるんですね。できない動きをどうやってできるようにするのか? この行為こそクライミングにおける、まさにパフォーマンスチューニングというべきもので、ものすごく僕が惹き付けられる部分なんです。」

こんなところで「パフォーマンスチューニングしています」

なんとなく、エンジニアにとってクライミングが、頭の使い方的にとても相性のいいスポーツだということがお分かりいただけただろうか?
クライミングには”核心”と並んで、もう一つよく使われる用語がある。それが“一撃(オンサイトフラッシュ)”だ。

「クライミングにおける”一撃”とは、初めて見た壁を、落ちることなく登り切ることですね。この“一撃”にものすごく価値を置いているクライマーは多いです。一撃で登れるということはそれだけ能力が高いことの証明ですからね。

でも、僕には2撃、3撃、何度でも挑戦と失敗を繰り返して、何とかできない課題をクリアするスタイルのほうがシックリきてます。一撃でできた壁もあるんですが、あまり記憶に残ってないんですよね。

それよりも、何度も挑戦して、やっとクリアした岩壁で感じる“これだったんだ!”というブレークスルー感。そっちのほうが気持ちいい。あと、苦労してクリアした課題はモジュールとして保存できるんですよね。また同じような“核心”に出会った時にそのモジュールを当てはめてみる。こういうのは、まさにエンジニアリングでしょ。」

新技術に熱中できない時期もくる。そのとき目の前にクライミングがあった

「クライミングは本業に活かされていますよ。」

クライミングに熱中している山上さんだが、もちろん、その熱中は本業のほうにも良い影響を与えている。

「さっきも話したように、プログラミングだろうがクライミングだろうが、問題解決のアプローチとか、目標の建て方は共通しているから、そういったスキルを磨きながら、健康になっていく。

あと、クライミングをしたければ、夜にジムに行くためにもダラダラ仕事はできないので、仕事の効率が否が応でも上がります。さらに、土日は高速を使って外岩に向かうんですが、渋滞を避けるためにも朝早く出発しなければいけない。強制的に朝方になるんですよ。平日も2時、3時まで仕事をするのではなくて、朝やるようになって仕事の効率が上がったんですね。仕事の効率を上げるために朝方にしたんじゃなくて、クライミングがしたくて朝方になって、さらに仕事も効率的にできるようになった。

あ、あと、土曜日に朝早く出かけるので、金曜日は飲めません。必然的に飲み会が減り、健康になりましたね。」

土曜は朝早くここに行くので、金曜夜もあんまり飲めません。

と、体調も、仕事の効率も、クライミングにハマることでアップしてきた山上さん。ただ、そういった目に見える部分だけでなく、精神的なところでもクライミングは「仕事の支え」になったそうだ。

「僕が20代のころはWEBサービスの開発って、ものすごく最先端な感じがしてたんです。土日も昼夜問わずに自宅で仕事してて、WEBの技術を追っかけるのがすごく楽しかった。

技術的なブログを書けばものすごくコメントがつくし、ライブラリを作って公開すると、これもものすごい反応があった。

ただ30歳手前になって、明らかに健康にも、ワークライフバランス的にもこの生活は良くないぞ、と自覚してきた。さらに最先端だったWEBの技術が、ある程度勉強すれば誰でも習得できるコモディティなものになっちゃたんじゃないか? と感じ始めて、先端の技術を追いかけることに魅力をあまり感じなくなったんですね」

こういう、仕事に対するアプローチの変化は、山上さんの立場の変化にもよるところが大きい。

「僕がクライミングにどっぷり浸かって、毎週末、外岩に向かうようになったのは30歳を過ぎてからです。

30を過ぎると、仕事の内容もガリガリとコーディングするというより、マネジメント能力を要求されるようになりますよね。
20代のころは、自分の任された部分を気合でコーディングすれば何とかなった。でも、マネジメントの立場になると、チームのパフォーマンスを上げることが重要な仕事になっていて、自分が1日、2日徹夜したからといって、状況はどうにも変わらないんですね。

さらに、昨今の開発はコードレビューやペアプロなどコラボレート文化のようなものが根付いてきて、昔ながらの“私に24時間くれたら仕上げてやる!”みたいな豪腕コーディングもやらなくなってる。

個人のスキルですべてを解決するのではなくて、チームでどう効率的に動くかが重要になってきた。そうすると、無理な働き方をしなくなるので、夜や週末にクライミングに時間を割けるようになって、もっとクライミングをしたいという気持ちがここ数年強くなってきたんです。

20代のころとは違って、とにかく時間をかけて仕事を頑張る! という方向ではなく、クライミングと仕事を両立するために、いかに仕事の効率を上げるか? という方向で仕事へモチベーションが上がってきた。

もし、仕事の内容も変わって、先端技術への熱量も減った時にクライミングがなかったら、逆に仕事に対するモチベーションが途切れていたかもしれませんね」

山上さんにはクライミングがあり、クライミングでいわゆるワークライフバランスを整えたからこそ、仕事と長く付き合っていける環境を手に入れたのだ。

エンジニアよ、長期に渡るPDCAを回すのだ

「クライミングを楽しむにはもちろん体を日常的に鍛えなければいけません。そこで、広告系の案件を多く経験していたことが役立ちました」

広告の仕事をしていると体を鍛えるのに役立つ? これはどういうことなのだろう。

「広告の仕事は期間が3ヶ月、という案件が多かったんですね。なので、今回の案件でダメだった部分は、次の案件ですぐに改善策を試せる。PDCAをすごく短いスパンで回せるんです。

プラン(P)とドゥ(D)の効果が、目に見えてわかるんです。

クライミングもPDCAを1日に何回も回します。先ほどお話したように、課題になる”核心”の部分をジムで再現。そこに何度もチャレンジして、課題解決をしていくと、まるでテストツールなんかを使っていて、実行結果がオールグリーンになるような感覚。気持ち良いですよ。

どのスポーツでもそうなんですが、PDCAを意識して体鍛えるのは、エンジニアにとってモチベーションに繋がる有効な方法だと思います。
ただし体は、毎日トレーニングしてもそう簡単に変わらない。毎日、体のチェック(C)をしても、劇的には変わらないんですね。

おそらく、体が変わるのは半年から1年かかる。すぐに結果を求めず、1年かけて徐々にプランと実効の効果を見て楽しむ、そんなスタンスも大切だと思います」

遠くを見る目が、PDCA大好きなガッツリスポーツマン!エンジニアなのに顎がシュッとしてます。

山上さんの話を聞いていると、設計、チューニング、テストに至るまで、エンジニアのすべての工程でクライミングをやっていることが非常に有利なんじゃないかと思えてくるが、普通のエンジニアはどうやってクライミングをはじめればいいのだろう?

「インドアジムにとにかく顔を出してみることですね。最近たくさんクライミングジムができてますから。狙い目は大型ジムの平日午前中から午後一くらいにかけてですね。実際、小さいジムにいきなり飛び込むのは少し照れくさいと思うんです。

大型ジムの昼間だと、人が少ないから、貸切状態で思い切り楽しめる。そういうところで、壁に触って自分なりに登ってみる。

エンジニアなら、いきなり自分の登るルートに課題が見えてきて、チューニングしたくなるはずですよ!」

ということなので、エンジニアの皆さん。明日から近所のボルダリングジムで、壁のデバックを始めてみてはいかがだろうか?きっと、仕事の効率が上がるはずです!(強引か??)

クライマー必携の日本100岩場と、山上さん愛用のクライミングシューズ。あなたも、この世界に入ってみないか?

カテゴリー : デジタル・IT タグ :
CodeIQ MAGAZINEの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。

TOP