見出し画像

とっても面白いビルドエンジニアという仕事

コルクで社会人インターン始めて2週間が経ちました。1ヶ月という期間の中でどんな成果が出せるのかとビクビクしながら始まりましたが、最近では業務の自動化に焦点を絞って仕事をしています。その中で「なんで自動化に興味を持ったの?」という質問を受けたので、自分なりにふりかえってみました。

面白法人カヤックでは、ゲームをつくっている事業部があります。その事業部の中にゲーム技研という部署があり、そこでビルドエンジニアをやっていました。ゲーム業界では近年注目されるようになった職業ですが、一般にはなかなか知られていません。今回はこの職業を紹介しながら、自動化とビルドエンジニアの関係について書いていきます。

ビルドエンジニアとは何をする仕事か?
端的に言うと、「たくさんの人が関わるゲーム開発において、ユーザーに届けるコンテンツを組み立てる工程を維持・メンテナンスする人」です。ゲーム開発では、大規模になると100名を越える人がコンテンツづくりに関わります。その人たちがつくったコンテンツをしっかりと1つの最終形に組み立ててユーザーに届ける必要があります。関わる人が多ければ多いほど手作業で対応することが難しく、自動化される傾向があり、そこで活躍するのがビルドエンジニアになります。プログラマが変更したコードやデザイナーが加えた素材などが正しくゲームに反映されるようにビルドという工程に責任を持って維持管理する仕事になります。

中心的な技術領域
・Jenkinsなどを使った自動化
・ソースコード管理システムを使ったワークフロー構築
・チャットやメールなどを使った通知構築
・ニーズに応じたカスタマイズ
・ビルド工程の保守・維持管理

ビルドエンジニアを始めたきっかけ
面白法人カヤックでは複数のゲームを開発、運用していましたが、当初はビルドエンジニアという仕事はありませんでした。ゲームを開発しているエンジニアが依頼された時に自分のパソコンを使ってゲームをビルドして提出するという流れになっていました。このビルドは長いと1時間ほどかかり、ゲームによっては複数のビルドを行う必要がある場合もあります。頼まれてから提出されるまで、エンジニアのパソコンがビルドのために使えなくなってしまい、その間エンジニアが暇を持て余している姿を見たのがビルドエンジニアを始めたきっかけです。
エンジニアにもっとクリエイティブなことに時間を使って欲しいと思い、Jenkinsという自動化ツールを利用したゲームをビルドする環境の構築を進めました。今でもその時に構築されたシステムが保守されながら利用されています。今では自動でゲームをビルドするというのが当たり前になっていますが、当時はエンジニアが温もりあふれる手作業で対応していたのです。

ビルドエンジニアをやっていていいなと思うことがいくつかあります。

いろんなプロジェクトに貢献することができる
ビルドエンジニアはその性格上1つのプロジェクトにフルタイムで関わるということは少なく、複数のプロジェクトを兼任します。そのため、さまざまなプロジェクトに関わることができるというゲーム開発においては珍しい経験ができます。あっちのプロジェクトでの経験がこっちのプロジェクトで活きるというようなことが日常的に起きます。

新しいチャレンジをしやすい
ビルドエンジニアとしてつくったプログラムやビルド環境は、ユーザーに直接届くことはありません。そのため、プロジェクトの状況が許せばちょっとした冒険やチャレンジをやりやすい環境でもあります。新しい言語を試したり、新しいツールを試したりということを比較的自由に自分の裁量で決めることができます。(その結果も自分の責任になります)

自由な時間に仕事ができる
ビルドするための環境がしっかり動いていれば、ビルドエンジニアはあまり他の職種の人たちと一緒に仕事をする必要がありません。そのため、時間的に自由に仕事ができるというメリットがあります。そのためにも、なるべく問合せが少なくなるようにビルド環境をチューンナップするというのが隠れた努力になります。

ビルドエンジニアをやっていると業務を自動化するのが当たり前になり、そういう視点で他の人の業務を観察するようになります。人が日常的にこなしている仕事をビルドエンジニアが見ると、ここはこうすれば自動化できますよというコメントが出てきます。その際に大事にしているのが、「自働化」です。

「自動化」ではなく「自働化」を強調
トヨタ生産方式で使われる「自動化」は、ニンベンの付く「自働化」です。
「自働化」の語源は、トヨタ自動車の社祖である豊田佐吉が発明した自動織機に源流があります。
自動織機とは、布を作るために、糸を紡ぎ、織物を織る作業を自動で行う機械です。
古くは、「腰機(こしばた)」「地機(じばた)」「高機(たかばた)」という織機を使い、手作業で織物を織っていました。豊田佐吉は1896年に日本で最 初の動力織機、「豊田式汽力織機」を発明。その後、糸切れなどの異常を検知すると運転を停止する「たて糸切断自働停止装置」や「自動杼換装置」など、数々 の革新的な発明を織機に搭載し、1924年には、高速運転中に杼(ひ)の交換ができる世界で初めての自動織機「無停止杼換式豊田自動織機(G型自動織 機)」を世に送り出しました。
「自働」とは、機械に善し悪しを判断させる装置をビルトインした機械であり、「自動」は動くだけのものです。機械を管理・監督する作業者の動きを「単なる動き」ではなく、ニンベンの付いた「働き」にすることが「自働化」を意味します。
「異常があれば機械が止まる」ことで、不良品は生産されず、ひとりで何台もの機械を運転できるので、生産性を飛躍的に向上させることができました。

http://www.toyota.co.jp/jpn/company/vision/production_system/jidoka.html

業務を「自動化」するのではなく、「自働化」することを意識しています。不良品を検知したら正しくエラーを起こして停止すること。エラーの原因がその業務に関わる人が理解でき、対処方法を正しい手順で行えること。ここまで出来てビルドエンジニアとして一人前と言えるのではないでしょうか。

ビルドエンジニアという仕事を通じて学べることはたくさんあります。興味がある人は是非ビルドエンジニアが集まっているコミュニティに参加してみてください。

ゲーム開発環境勉強会
https://www.facebook.com/groups/gamedevenv/

掲載後しばらくしてから告知しているので、興味があったらフォローよろしくお願いします