身に着けた技術をいかに捨てられるか。エンジニア歴39年、今でもエンジニアで居続ける理由。【エンジニアのキャリアVol.2】

サイバーエージェントのゲーム・エンターテイメント事業に携わる10社以上の子会社が所属する事業部SGE(Smartphone Games & Entertainment)では、さまざまなメンバーが活躍しています。

初めてプログラミングに触れたのは39年前。新しい技術がどんどん出てくる環境は、新しいことが好きな自分には合っていると語る平松。現在は、特定のプロジェクトには所属せず、事業部横断でネイティブアプリの品質チェックやパフォーマンス改善を担当。事業部にいなくてはならない存在となっている。そんな平松の今までのキャリアとこれからどんなことをしていきたいのかをききました。

初めてプログラムに触れたのは1979年

エンジニアをはじめたきっかけを教えてください。

高校の進路をどうしようかと考えている時に、ちょうど地元の高校で、日本で2番目に情報処理科が開設されました。元々、新しいものが好きだったのでそこへの入学を決めました。それが39年前です。

当時はどんなことを学んだんですか?

事務処理用に開発されたプログラミング言語COBOLと科学技術計算家向けFORTRANを学びました。当時は、入力媒体として紙テープや紙カードを使っていました。紙テープはパンチアウト、紙カードは手書きでマークを書きこんでいました。あたりまえですが、今と比べるとかなり不便でしたね(笑)。

平松 慎司(Shinji Hiramatsu)

Adobe Systemsにてプリンシパルエンジニアとして15年間、InDesign,Photoshop等の日本語機能の設計・開発に従事。JISの電子文書システム標準化調査会の委員としても参画。その後、サイバーエージェントグループにて、スマートフォン向けゲームの開発に携わり、現在はサイバーエージェントゲーム・エンターテイメント事業部(SGE)にてネイティブアプリの品質チェック、パフォーマンス改善を担当。

「絶対むり!」と言われると燃える

そこからの経歴は?

まずは、ソフトウェアの会社に入社しました。その頃、AI(人工知能)ブームがあり、カーネギーメロン社のAIエキスパートシステムの日本語のローカライズをしていました。その後、音楽アプリを作りたいと思い、DTMアプリを作っている会社に転職しました。その会社では、音楽アプリだけでなくMacの日本語ワープロの開発も行なっていました。

その後は?

アドビシステムズに転職しました。アドビシステムズでは、C++によるMac/Windowsのクロスプラットフォームの開発環境において、CJK(中国語、日本語、韓国語)のローカライズ、日本語独自機能の実装エンジニアとして、PageMaker, InDesign, Photoshop, illustrator, Flash等の開発に携わりました。その中でもDTP(デスクトップパブリッシング)ソフトのInDesignの開発では、アドビシステムズの最先端技術を余すところ無く導入する新規プロジェクトとして立ち上がり、開発拠点は、アメリカのシアトルで、各専門分野のスペシャリストが集結した日米共同の開発チームが構成され、開発期間中は、年間の半分はシアトルでコードを書いていました。

開発で大変だったことはありますか?

仕様面において、日本では出版、印刷の各会社ごとに独自のハウスルールがあり、その様々なルールを仕様として取りまとめることが、とても難しい課題でした。この問題を解決する為に、50社以上の実際に作業を行なっている現場の担当者から直接ヒアリングを行い、本当に求められている現場のニーズを徹底的に調査して仕様に取り込んでいきました。さらに、日本語組版の標準ガイドラインとなる「日本語文書の組版方法」(X4051)というJIS規格があり、私はこの規格の標準化ワーキンググループの委員として参画していたので、この規格に準拠した日本語文字組版を組み込みました。

当初、出版、印刷業界に携わっている人達からは、要望を満たす電子化システムを作ることは絶対に無理だと言われ続けていました。さらに当時のDTPの市場は、競合他社に9割のシェアを占有されていたので、このシェアを奪うことは無理だとも言われ続けていました。今でもそうですが、絶対に無理だと言われると燃える性格なのですが、本当にユーザのニーズに合った仕様で最新技術を取り入れたアプリを完成させれば絶対に受け入れられると確信を持っていたので、大変でしたが、とても充実した開発を行えていたと思います。そして、約6年の開発期間を経て2002年に正式リリースされ、専門知識を持っていない人でも高品質な日本語組版ができるようになりました。既にリリースされてから15年以上経ちましたが、現在では業界ではデファクトスタンダードなDTPアプリとして定着し、私が大変苦労して実装した日本語組版機能が今でも使われ続けていることは嬉しい限りです。

たまたまゲームだった。

なぜ、サイバーエージェントのゲーム事業に転職をしたのですか?

転職の軸は、“新しいことをやる”。それだけでした。ゲームは今までにやったことのないジャンルだったので、面白そうだと思い転職を決めました。

今はどんな仕事をしていますか?

ゲーム事業は子会社制をとっていて、子会社ごとにサービスをつくっているのですが、事業部としては子会社ごとに溜まったノウハウを事業部全体に展開して、同じ失敗を繰り返さないようにしたり、成功したものはどんどん他の会社も取り入れられるようにしてヒットの確率を上げています。それだけでなく、子会社に所属せずいろんな子会社のヘルプに応じて出動する横軸組織があります。元々は、子会社でゲーム開発をしていましたが、今は、そこで、主に新規タイトルに携わっています。リリース直前のタイトルの最後の品質アップをしたり、バグなくリリースできるようにコードを分析し修正したり、多い時で一度に3プロジェクトほど担当することもあります。

3プロジェクトも同時に?

リリース直前にプロジェクトに参加することが多いので、コードを読んですぐに全体像を理解しないといけないことは大変ですね。コードを読むとコードを書いた人の基本概念は分かるので、それを活かしながら、クラッシュ、パフォーマンスに問題があるところを指摘、修正方法の提案を行い、コードを書いたエンジニアにその原因を理解してもらい、本人に修正してもらうようにしています。プログラミングは人によって、考え方も違いますし、アプリやプロジェクトによっても考え方はバラバラなので、自分では、「こうしないといけない」を持たずに、プロジェクトや状況にあったコードを作るようにしています。今までで携わったプロジェクトが250以上あり、おそらくコードを読んだ量とバグをフィックスした量は誰にも負けないくらいあるので、今の仕事に活きています。

チーム開発の楽しさに気づいた

「こうしないといけない」という気持ちは元々なかったのですか?

30代くらいまでは自分の考えを押し付けていたと思います。ただ、チーム開発やいろんな人のコードを見て修正するということを繰り返していく中で、その人が考えていることを無理やり修正するとバグが出てしまうということが分かりました。それからは、その人の考えた構造を守りながら最小限の直しで、リリースまで進めていくということを意識しています。最終的に、ちゃんと動くコードであれば、そんなにこだわらなくてもいいという考え方になりました。

考え方を変えてから変わったことはありますか?

昔は、1人で完璧なものをつくりたいという気持ちが強かったのですが、アドビシステムズでInDesign日本語版の開発をしていた時にそれぞれの専門知識を持っている人に任せたほうがいいものがつくれるということが分かりました。高い専門知識を持った人たちと開発をするとこんなに相乗効果があるんだなということも感じ、サイバーエージェントのゲーム事業にきてからもそれは同じだったので、チームで開発したほうが楽しいと思うようになりました。自分の技術力を磨こうと思った時も、チームでやったほうが技術をアップデートできる。チームでやったほうがいいこと尽くしだなと思いました。

チームの方がなぜ技術力があがるのですか?

エンジニアは、仕様をみて、技術的に無理かどうかでできるできないを判断してしまいがちなのですが、エンジニア以外の方から、コンセプトもあり本当にプロダクトには必要だと言われると、一見できなそうな仕様でも何がなんでも実現させたいと思えるので、自分の想像以上に技術力を引き上げられると思っています。あとは、いい意味で追い込まれることが多い。状況的に追い込まれると絶対無理だと思っていることができるようになるので、自分を追いこめる目標をたてることもそうですが、そういう状況を意図的につくり追い込まれることも重要だと思います。例えば普通は技術書を読むのに3日かかっているとしても、明日までに、この技術を修得してバグ修正をしないといけないとなるとそれが1日でできるようになる。チームに必要とされてという状況が技術力をあげていくと思います。そして、身に着けた技術をチーム内の人や会社の人にどんどん説明する機会を設けると技術がより身に着くと思います。

頭の中だけでコードが書けるか

エンジニアに飽きたことはないですか?

新しい言語が次から次へと出てくるので、追っかけていくのが楽しいです。新しいことをずっとやっているという感覚なので、辞めようと思ったことも、飽きたこともないです。技術が好きというより、新しいことが好きなので、どんどんアップデートできる環境は自分に合っていると思います。特に、技術はすぐ古い技術になるので、どんどん新しい技術を修得していかないと、かなり取り残されるという感覚があるので。

サイバーエージェントで働き続ける理由はありますか?

サイバーエージェントは、若い人が自分の技術力あげようという意欲が高く、よいものをつくろうというパワーがあるので、若い人のパワーを吸収するには、いい環境だと思っているからですかね(笑)。仕様書がないと何もできないとか受け身だと教えるのは難しいですが、そういう人が少ないですし、いろんなプロジェクトにいきますが、信念を持って動いていく人が多いので、細かく言わなくてもうまく動いてくれて年齢関係なく本当に仕事がしやすい人が多いです。

普段意識していることはありますか?

いかに集中してコードが書けているかが大事なので、集中しているという状態はかなり意識しています。集中できているかどうかをチェックするために、頭の中で、ロジックをデバッグトレースできているかどうかを確認しています。あとは、集中するための息抜きですね(笑)。

経験年数より何かをつくりたいの方が大切

エンジニア歴が長いことがアドバンテージだと感じたことはありますか?

経験年数は全く関係ないと思います。それよりも、何を作りたいかの目標をちゃんと持っていることのほうが大切だと思っています。何かをつくりたいという気持ちがあれば、それに対して、向かっていけるし、知識がある人をどんどん巻き込んでいける。プロジェクトスタート時点では、技術力よりも、いいものをつくりたいという意欲や熱い思いの方が大切だと思います。技術がなければ勉強をすればいい。それをつくりたいからという気持ちがあったほうが技術は身に着く。技術を修得しても、じゃあそれを何に使うのがないと何も使えないものになってしまうので。むしろ、身に着けた技術を捨てていけるかの方が大切だと思います。プログラミングに関してはベースは同じ、ベースのスキルをあげていきながら、新しい技術を身に着けてもそれをどんどん切り捨てていき、自分のスタイルを成長させていくことが大切だと思います。固執しても技術はどんどん進化してしまうので。

エンジニアとしての辞め時は考えていますか?

自分が作りたいものが作れなくなった時だと思っています。自分がこうつくりたいと思ったものがつくれなくなったらおわりですが、まだまだいろんなことをやっていきたいという気持ちなので、必要とされている時はずっとエンジニアをしていたいと思っています。

サイバーエージェントのゲーム&エンターテイメント事業部では、エンジニアを募集中です!
コチラ

【そのほかの記事をみる】

おすすめ記事