Sansan事業部マーケティング部フロントエンドエンジニアの吉田です。
弊社には「よいこ」*1という社内の部活動制度があり、筆者はボルダリング部に所属しています。
ボルダリング部は部長である弊社CTOの藤倉を筆頭に、プログラミング等を生業にしているITエンジニアの占める割合が非常に多い。
実際、筆者もボルダリングにはまって、なるほどこのスポーツはエンジニアに向いている箇所が多分にあるなと思ったので考察してみました。
ボルダリングとは?
ボルダリングは壁についたホールドと呼ばれる石を使って壁を登っていくスポーツです。
壁一面にホールドが散りばめられているのですが、どのホールドを使ってもよいというものではなく、「スタート」の印があるホールドから決められたホールドを伝って行き、「ゴール」の印があるホールドを両手でつかめばクリアという、ゲーム要素のあるスポーツです。
伝っていくホールドの数や形によって難易度が変わってくるため、初心者から上級者までが同じ壁で楽しめるスポーツです。
オブザベーション
ボルダリングは課題と呼ばれる各コースがあり、上級者になるほど、いきなり登り始めることはしません。
スタートホールドと伝っていくホールド、そしてゴールホールドを観察し、どのように体を使って登っていけばその課題をクリアできそうかを、まずは頭の中でシミュレーションします。
その行為を「オブザベーション」といいます。
一方、エンジニアは日々の仕事で、設計書(仕様書)を元に機能を実装していくということをしています。
いきなりプログラムを書き始めるということはなく、まずはどのようにプログラミングして組み立てていけば仕様どおりのものができあがるかを、脳内や紙に書き出すなどしてシミュレーションします。
ムーブ
やさしい課題はハシゴを上る要領で難なくクリアできてしまいます。しかし難易度が上がると様々な「ムーブ」といわれるテクニックを駆使してひとつひとつホールドを掴み登攀(とうはん)して行かなければなりません。
一方、エンジニアも「Hello World!」を表示するだけ、というような簡単なことであればさっくりと実現できてしまいますが、基本的に仕事は容易くないのが常です。
エンジニアとして自分の持つ全ての知識とテクニックを振り絞って、求められるものをキーボードを打って創り出して行かなければなりません。
トライアル・アンド・エラー
簡単な課題ならサラリとクリアできてしまうのですが、実力以上の課題に臨むと一度で成功するとは限りません。途中で落下してしまいます。
失敗してもその原因を考え、どのようにすれば今までの失敗を繰り返さずにゴールまでたどり着けるかを考察し、再チャレンジし、成功するまで繰り返します。
エンジニアも複雑な要件を実装する場合、頭で考えたようにプログラミングしても、途中でエラーにあたったりして一度で上手く行くとは限りません。
試行錯誤を繰り返し、コードを正解へと導き創りあげます。
成功、喜び
そして、失敗し、試行錯誤を繰り返し、ついに課題がクリアできたときの喜びは格別です。
それはまたエンジニアの仕事もしかり。
というわけで、ボルダリングとプログラミングの共通点を列挙してみましたが、ボルダリングはエンジニアであろうがなかろうが楽しいし、運動不足は解消できるし筋力はつくし痩せるしでいいところしか見当たりません。
一度体験してみることをおすすめします。
*1:「よいこ」とは「よいコミュニティ」の略で、メンバー同士のコミュニケーションの活性化や一体感の向上など、より良いコミュニティを作るために必要な各種施策を従業員発で企画し、実施していく制度です。