技術・デザイン

30代に突入したエンジニアが
「20代だからこそ、新規立ち上げを経験して欲しい」と考える理由

サイバーエージェントの Android 領域を牽引するエンジニアの1人である降矢は、Google Developer Experts (以下 GDE) という、日本全体でも25名程度しか存在しない、技術エキスパートに認定されています。
降矢はこのうち Android カテゴリの GDE として2016年頃から活動を続けるとともに、「AbemaTV」をはじめ10以上もの新規サービス立ち上げの経験の持ち主です。
そんな降矢は、自身のキャリアの中で「GDE としての活動」「新規立ち上げの経験」がテックリードとしてのスキルに繋がったと語ります。

Profile

「ネイティブ氷河期」に Web フロントエンジニアから学んだこと

ー Androidエンジニアとしてどんなキャリアパスをたどったのですか?

今では Android エンジニアですが、前々職は SIer で携帯電話の μITRON ベースに C で独自ソフトウェアを組み込んだ OS を開発していました。サイバーエージェントに入社する直前は VMWare、FortiGate、Catalyst などを使った企業・大学向けの基幹システム構築をするネットワークエンジニアでした。

2011年、サイバーエージェントがスマホサービスを100個立ち上げると宣言していた時期に第2新卒でインフラエンジニアとして入社しましたが、趣味で Android アプリを作っていたことをきっかけに、手をあげたら Android エンジニアになったという経緯です。

とはいえ、2012年・2013年の頃は iOS や Android などネイティブアプリ開発はマーケットの需要がなく、WebView 全盛期だったので、気づけば Web フロントの仕事をしていました。

今では笑い話みたいに「ネイティブ氷河期」って言ってますね(笑)。当時の Web業界は無数のサービスが一気に立ち上がった時期で「○○エンジニア」というくくりがゆるく、クオリティよりスピード優先、自分のできることは何でもやるという雰囲気でした。Android エンジニアと名乗るものの、割と柔軟に今求められている技術に携わっている感覚でした。

そして、この時期に Web フロントの仕事をしたことが自身のキャリアにとって大きなターニングポイントになりました。


ー ターニングポイントとは?

社内の Web フロントエンジニアとの出会いです。そこで佐藤歩たちが開催している Web フロントエンジニア向けのカンファレンス「Frontrend」を目の当たりにして衝撃を受けました。

Frontrend で発表されていた技術は当時の最先端をいっていました。また、最先端の技術を自社プロダクトに積極的に採用し、その導入結果を業界内に惜しみなく還元する様子にも衝撃を受けました。

当時、Android や iOS などネイティブでこのようなことをやっている事例はほとんど見たことがなかったし、そもそもカンファレンスに登壇するような人も少なくとも自分の周りにはいなかったので驚きました。また、会社の所属を超えて、技術の共有や情報交換を活発にやっていることを羨ましくも感じました。

Frontrend のインパクトがきっかけとなって、「ネイティブで自分も前に出てみたい」という気持ちが芽生え、開発の合間を縫って登壇を始めました。

※ 2015年当時のFrontrend
※ 2015年当時のFrontrend

アウトプットを継続していたら、転機がやってきた

やるからには「毎月2,3回は勉強会で発表する」というルールを決めて、最初は20名くらいのローカルな勉強会も含め、登壇を始めました。

勉強会の開催自体が少ない時期などでは、OSS 開発も業務の合間を縫って公開していました。

当時立ち上げていた「Ameba Ownd」は Web フロントもネイティブも最先端の技術を使っていたので、開発中に導入したライブラリや技術検証などをまとめ、毎月アウトプットしていきました。新規立ち上げ期だからこそ得られたインプットは、業界に還元できるものも多かったと思います。

ただ、毎月登壇を続けられたのは、業務におけるインプットの質や量よりも、周りの理解のほうが大きかったです。立ち上げ時の忙しい中、背中を後押ししてくれた当時の上司や同僚。技術発表に前向きなエンジニアやプロデューサーが多かったことも励みになりました。

ー そのペースで発表していくために、インプットにどんな工夫をしましたか?

業務以外でネタ探しが必要でした。習慣的に続けていたのは「Android に限らず、新しい技術が出る度に調べて動かす」事です。

たとえば、当時は Docker が出始めた頃でコンテナ技術がホットでした。コンテナ技術自体は以前からあった技術なのですが、Docker の登場とともに業界が湧き上がっていました。また、「Ameba Ownd」 のプロジェクトが始まった時が、ちょうど Swift が出たタイミングで、iOS もSwift で盛り上がっていました。Docker を構築したり Swift で簡単なゲームを作ったりとにかく手を動かしていました。

Android 以外のことをやろうとか、最新技術をキャッチアップしようという感覚ではなく、業界的に盛り上がっているものに興味をもって手を伸ばしていました。僕らは、組み込み言語やインフラや Web や Android など、いろんなことやってきたからこそ、あまり垣根を感じずにいられるのかもしれません。

そのような感じで登壇を続けていたら、気づいたら2016年の Droidkaigi の基調講演をすることになり、そのタイミングで Google から GDE にならないか?と声を掛けてもらいました。

日本に数名の Google Developers Expert (GDE) とは?

ー GDE とは具体的にどんな活動をしているのですか?

Google が認定している制度で、役割としては Android 領域における技術の啓蒙活動を行うことがミッションです。僕が GDE に加入したのは2016年で、Android 領域においては、日本に現在3人の GDE が存在しています。

GDE として、Google Developer Group 主催の勉強会で登壇させてもらったり、Google I/O 等で世界中の GDE やトップエンジニアと交流できる機会が増えたりしました。

GDE に求められる役割は「Google と各社でプロダクト開発しているエンジニアの仲介役」です。Google がリリースする最新技術を、プロダクト開発などで採用し、その検証結果や使い勝手などを噛み砕いて、エントリー層のエンジニアに広めていくといったことです。


ー GDE だけが知る特別な情報などがあるのでしょうか?

Google のおもしろいところは、情報に透明性があることです。Android OS 自体のコードのほぼ全てがオープンソースで公開されていますし、Google が開発している Jetpack などのコードもそのリリースサイクルがとても早いです。

情報が即座に共有される時代だからこそ、僕たち GDE に求められるのは、Google が発表する最新技術やプロダクトについて、特に新しく Android を始める層のエンジニアに噛み砕いてわかりやすく伝えることになります。


ー Google Developers Expert for Android は日本人では数人しかいません。どういう要因でなれるのでしょうか。

その技術へ造詣ももちろんですが、啓蒙活動がミッションの主軸にあるため、カンファレンスや勉強会などに登壇して積極的にアウトプットしていることが大事な要因の1つになる気がします。

技術力とはパラメーターの振り方の結果

ー 通常業務と並行して登壇。バランスをどうとったら良いのでしょうか。技術力を伸ばすだけでも精一杯になりませんか?

例えば社内に、Android エンジニアはたくさんいますが、技術力の高さって一概に比べられないんです。

その技術力の差って「Android の中で何が得意か」の差でしかないのです。例えば、設計が得意な人もいればアニメーション分野が得意な人もいます。たまたま自分はキャッチアップや物事を噛み砕いて説明する分野が得意だっただけ。

ゲーム好きなのでゲームで例えますが、レベルアップした時って、いろんなスキルにパラメーターをふりますよね。それと一緒で、大事なのは自分自身がエンジニアとしてレベルアップしていく時に、パラメーターをどの分野に割り振っていくかなんです。

設計なのかアニメーションなのか、登壇発表なのか。自分が何をやりたいかをよく見つめて、強みにパラメーターをふっていく。そのパラメーターの振り方には正解がなくて、自分でバランスを考えるしかない。

個人的に気をつけているのは、登壇発表にパラメーターを振りきり過ぎないことです。プロダクト開発に関わらず、エンジニアリング的なことはコードレビューに参加して意見を言うだけという状況は自分にとって目指すべき姿ではないと思っています。

もう1つ大事なのは「タイミングをとらえる」こと。僕にとっては Frontrend を見た時がそのタイミングでした。あの時、ネイティブで登壇している人が周りにいなかったから。

あの 「Ameba Ownd」 の立ち上げの忙しい中で、登壇に舵を切ったのがタイミング。

誰にでもそういうタイミングはいつか来るもので、それに備えて自分自身にパラメーターをふっておくのが良いと思います。

テックリードの数 = 会社が新規プロジェクトを立ち上げられる力

ー サイバーエージェントの Android エンジニアには、どんな人が求められていますか?

社内でよく言われているのは「テックリードの数 = 会社が新規プロジェクトを立ち上げられる力」という話です。

テックリードの定義はいろいろありますが、社内では中堅レベル以上のエンジニアを指します。具体的にはプログラミングだけでなく、チームや他部署とコミュニケーションをとって仕様を決めたり、工数をスケジューリングしたりできる能力。また、若手の育成や技術評価などができるエンジニアです。

サイバーエージェントはスタートアップの子会社も多く、たくさんの新規プロジェクトが日々立ち上げられているため、このテックリードの数を増やすことが、会社の成長につながると考えています。そのため自然とテックリードへの育成や抜擢には積極的な姿勢だと思います。

また、20代でテックリードを担えるくらいのエンジニアになることで、「新規サービスを成立させる技術力」が備わり、その能力はその人のキャリアを広げると思っています。


ー 「新規サービスを成立させる技術力」とは?

例えば、新規立ち上げ期に大事になってくるのは、楽にスピード感をもってプロダクトを仕上げることです。いろんな職種の人と議論する中で、チーム全体がペースを保てるようにするためにも、落とし所を見つけることが大切で、そのためにも共通基盤やライブラリ化など開発の効率化が求められます。それがひいてはリリース後のメンテナンスのしやすさ・拡張開発のしやすさにつながっていくからです。

ただ、新規立ち上げ期は最初に描いた理想像のままリリースすることはかなり難しいです。というのも、リリース時期が確定していた場合など、綺麗事が言ってられなくなった時に個々のエンジニアが見せる突破力というか、土壇場力というのも必要な局面があるかもしれません。


– だとするとテックリードに求められる技術力とはなんでしょうか?

アプリだけではなくサービス全体を成立させるための開発設計力です。技術力も大事ですが、開発の進め方のほうが比重が大きいかもしれません。

新規立ち上げって、アーキテクチャを考えたり、新しい技術を選定するというイメージがありますが、それだけでなく、例えばタスクやドキュメント管理のツールなどの選定も大事な要素の1つだと思うのです。プロジェクトで使うものには全て選定理由があります。新規立ち上げに携わるということは、それを決めるタイミングが頻繁にあるので、若手にとって良い機会だと思います。


ー テックリードになるためにはどうしたら良いでしょうか?

新規プロダクトの立ち上げを何度も経験することが近道だと思います。先ほども述べたように、新規立ち上げを経験すると決断経験値が多く積めます。この決断経験値こそがエンジニアとして成長する大きなきっかけになると思います。

自分自身も、サイバーエージェントに入社して以降、「Ameba Ownd」 や 「AbemaTV」 など、さまざまなサービスの立ち上げを経験し、今も新規立ち上げ専門の部署に所属しているのですが、個人的には新規立ち上げで身につく力って非常に大きいと思っています。
今は、自分のようなある程度キャリアを積んだエンジニアの直下に、1年目や2年目の若手がついて一緒に新規プロダクトを開発しています。

サイバーエージェントは子会社の数も多く、新規サービスにも積極的。こういう環境で開発をすることで、テックリードが備わる「新規サービスを成立させる技術力」が身につくと思います。

<編集後記>
サイバーエージェントの Android エンジニアの中では、降矢の背中を追うように、培った知見を外部に発信する姿勢が根付いています。2月7日~8日に開催される Android カンファレンス「DroidKaigi2019」でも3名のエンジニアがセッションに登壇します。

こちらも是非あわせてチェックしてみてください。
「DroidKaigi2019」 サイバーエージェントグループからは3名が登壇

Page Top