明日2017年4月11日(火)から発売が開始される「モバイルアプリ開発エキスパート養成読本」

サイバーエージェントで活躍するエンジニアは積極的に社外へのアウトプットを行うのが特長ですが、この書籍の執筆に携わったのが新卒5年目の志甫と新卒4年目の鈴木です。

今回は若手エンジニアとして社内の担当プロジェクトのみならず、社外の技術コミュニティでも活躍の場を広げ始めている志甫と鈴木にインタビュー。
初めての挑戦だったという書籍出版までの道のりや、対外的なアウトプットを志すことになったきっかけ、メディア事業でエンジニアとして働くことのおもしろさについて聞きました。

 

IMG_0741

志甫 侑紀
新規サービスを担当するアプリエンジニア。2013年サイバーエージェント新卒入社。
サーバーサイドエンジニアとして入社し、コミュニティーサービスでバックエンドに従事した後、コミュニティサービスのシステム責任者を担当。その後は、Androidエンジニアに転向し、ニュースメディアの運営に携わる。2017年2月よりiOS開発にも携わり、現在新規サービスの立ち上げ中。

 

IMG_0760

鈴木 大貴
インターネットテレビ局「AbemaTV」を担当するiOSエンジニア。2014年サイバーエージェント新卒入社。コミュニティサービスでサーバーサイドを担当した後、iOSエンジニアに転向しファッション通販サイト「VILECT」の立ち上げ・運営に従事。その後新感覚SNS「755」での開発を経て、2017年3月より現職。

 

 

初めての書籍執筆までの道のり

 

――サイバーエージェントに入社したきっかけは?

志甫:大学院に在学中、就職活動では電機メーカーを中心に考えていたのですが、採用フローが進むにつれて改めて自分のやりたいことを見つめ直すタイミングがあったんです。そこで自分はインターネットサービスに興味があるんだと感じて、何社かインターネットサービスを運営する企業の方々にお会いしました。その中でサイバーエージェントの社員の人柄の良さや温かさに触れ、今まで自分が持っていたインターネットに対するネガティブなイメージが払拭されていったんですね。そして入社を決めました。
鈴木:私は大学生の時ベンチャー企業でアプリケーション開発のアルバイトをしていたのですが、今自分が開発しているものが社会にどう役に立つんだろうと日々考えていました。そんなタイミングで、執行役員 兼 AbemaTV開発局局長の長瀬が私が通っている大学の講座の講師として来たことがきっかけでサイバーエージェントを知り、憧れのような気持ちを持っていました。当時の自分はまだプログラミングを始めたばかりだったので、会社のパンフレットを見ながら「このまま大学でしっかり学んでいけば、アメブロをリリースしているような企業にも入れたりするのかな」と思っていたんです。その後サイバーエージェントで一週間アプリ開発を行うインターンに参加し、入社に至りました。

 

 

――現在の担当業務を教えてください

鈴木:2017年3月よりAbemaTVにジョインし、オンデマンド機能である「Abemaビデオ」のiOS開発を担当しています。AbemaTVのiOSチームには国内屈指のトップエンジニアが在籍しているので、チャット上では毎日のように高度な技術議論が繰り広げられていますし、Pull Requestのコメントを追っていくだけでも勉強になり、とても刺激的な環境です。また、実装について意見を求めたりすることができる環境なのが有難いですね。
最近だとFluxのDispatcherのPropertyを1つ1つ定義するのではなく、Enumにしませんかといった提案をし、Enumにすることのメリット・デメリットの話ができたり、今後Dispatcherの扱いをどうしていくかなどの議論を行いました。

 

志甫:サービス立ち上げフェーズなので開発自体はまだ本格的にスタートしていないのですが、スピード感を持って開発を進められるよう、現在はその土台作りをしているところです。例えばコーディングルールや命名規則を決めたり、ブラウザとアプリで設計などを可能な限り揃えて共通言語を増やすことで、開発に集中できる環境を整えています。

現在プロジェクトを立ち上げたばかりでメンバーを募集しているところなのですが、開発は少数精鋭チームになりそうなので、やる気があって元気なメンバーが集まってくれたら嬉しいですね。

 

 

 

――どういった経緯で書籍の出版に至ったのでしょうか?

志甫:よく一緒に勉強会に参加したりと情報交換をしている社外のエンジニア2人と「アプリ開発の技術は変化が早いが、最新技術を押さえた書籍があればアプリ開発を始めたばかりの人がさらに良いアプリを作れるのではないか」という話になりました。その中の一人が今回の書籍の出版元の技術評論社の方と繋がりがあり、お話をさせていただいたところ執筆をご提案いただき実現に至りました。

当時は私もAndroidエンジニアだったのでAndroidエンジニア向けの書籍で考えていたのですが、話していくうちに両OS向けの書籍にしようということで、3人で章立てを考えたあとにiOSエンジニアである鈴木も含めた知り合いのエンジニアに声をかけていきました。私も鈴木も書籍の執筆は初めてだったので、なかなか苦労しました。

 

鈴木:執筆に誘われた当初は、MisterFusionというSwiftでもObjective-Cでも利用できるAutoLayoutのライブラリを私が出していたこともあって、Auto Layoutに関する章を担当してほしいと言われていました。自分が執筆に値するエンジニアでもないのに大丈夫なのだろうかと不安になりましたが、登壇やOSS活動とは違ったアウトプットができる機会があるのに、それを逃すのはもったいないと思ったので参加させていただきました。そのあと企画が二転三転して、iOS開発に関する設計部分の章を担当することになったので、大変でした(笑)設計についてはエンジニアそれぞれの思想も強くある部分なのですが、決められたページ数で収まるように伝えたいことを書きつつも「設計はこれだ!」というような乱暴な書き方にならないうに気を付けましたね。
入稿できるまでに1か月半~2か月くらいかかりました。

 

志甫:私はAndroidの運用に関する章を担当したのですが初めての執筆だったので、対象とする読者が求める内容になっているか、分かりやすくきちんと伝わる内容になっているかという点には気を配りましたね。
同章内ではiOS / Androidの両OSの内容が記載されているので、全体の構成を揃えたりそれぞれの対比や各OS独自機能の説明方法などをバランスよく合わせられるよう、iOS担当の方と何度も打ち合わせをして執筆を進めました。

 

 

IMG_0790

 

 

どんなにささいな内容でも、アウトプットすることが大切

 

――書籍出版以外にも頻繁に社外勉強会での登壇などを行っているようですが、どういったきっけで積極的にアウトプットを行うようになったのでしょうか?

 

鈴木:対外的なアウトプットを心掛けるようになったのは、入社1年目の終わりごろです。サイバーエージェントでは、自身のコードをGitHubにOSSとして公開し、リポジトリのスター数に応じてインセンティブが得られる制度があるのですが、同期のエンジニアが既に多くのスターを集めていて、自分も頑張らないとと思ったんです。

そこでOSSを公開するようになり、スターが貯まりはじめたことで少しづつ自信がつくようになって、Qiitaを書いたり、社外の勉強会で登壇するようになりました。
現時点でSwiftのrepositoryのスター数はトータルで4,600を越えているくらいです。

 

初めて登壇したのは、2年目になる直前の3月、VOYAGE GROUPのエンジニアが主催している新卒エンジニア向け技術交流会でした。”Graphics is all about tricks and illusions.”というタイトルで、当時作っていたライブラリ(SAParallaxViewControllerSwift)をベースにUITableViewCellの一部分にblur効果が適用されつつも背景画像をCellごとにパララックスさせるにはどうするか解説しました。新卒だけの勉強会だったので、初めての登壇には良い機会でしたね。

 

 

志甫:私の場合は、Google Developer Expertsである降矢のように社外でも活躍している先輩Androidエンジニアが近くにいたことが大きな理由ですね。降矢と、現在テクニカルマネージャーを務めている藤原はAndroidアプリ開発者コミュニティ「shibuya.apk」の運営メンバーでもあるので、入社3年目でAndroidエンジニアに転向してからは彼らが行く勉強会やイベントに連れて行ってもらうようにしていました。

 

このようにAndroidエンジニア1年目のころはひたすらインプットするようにしていたので、2年目となる2016年は積極的にアウトプットしていく1年にしようと決めたんです。
たとえば、国内最大級のAndroidエンジニア向けカンファレンス「DroidKaigi」は昨年からカンファレンスのアプリをOSSで作るようになったのですが、私もその開発に挑戦しました。これが自分自身初めてのOSS活動でした。開発する上で、DroidKaigiのアプリ開発の中心人物であるこにふぁーさんと仲良くさせていただいたんですが、こにふぁーさんのブログに「たとえ完璧な状態でなかったとしても、まずはアウトプットしてみることが大切だ」といったことが書かれていたんです。これを見て、アウトプットすることの大切さを改めて感じました。

 

その他にも勉強会のLT枠を見つけたら、登壇する内容が決まっていなくてもまずは申し込むことで、あえて自分を追い込むようにしたりしていましたね。毎年5月にはGoogleI/Oがありますが、GoogleI/Oで発表された内容も公開後1ヶ月くらいはまだ速報性があるので、動画で見た内容をいち早く勉強会で話すようにしてみたり。そして1か月経って次第に周囲に「GoogleI/Oで発表された〇〇を試してみた」的な記事が出てくるとアウトプットの方法を改めて考え直すようにしていました。

 

サイバーエージェントでは、年次に限らず海外カンファレンスへの参加も可能ですが、自分にとって初めての海外カンファレンスは昨年行われたdroidcon Londonでした。
著名なAndroidエンジニアとのコミュニケーションや様々な発表を通して世界の最新技術トレンドを肌で感じることができて、開発モチベーションも上がりました。空き時間やランチなどでは海外のエンジニアが気軽に話しかけてきてくれたりと、海外カンファレンスの方がよりオープンに情報交換をするんだなと感じました。

 

 

鈴木:私の初めての海外カンファレンス参加は2016年6月にサンフランシスコで開催されたAltconfでした。カンファレンスの登壇内容は日本にいても知ることができますが、何よりも現地にいるエンジニアと直接話すことができたのがとても有意義でした。著名なエンジニアとお話させてもらったり、カンファレンスの合間に他社のオフィス見学もできて勉強になりましたね。
志甫と同様、私も2016年は積極的に登壇するよう心がけていました。月1ペースくらいだったと思います。
また社内では、iOS/Androidの業務経験のないエンジニアを対象にした開発合宿の「ネイティブートキャンプ」で講師を務めさせていただいたりなどもしました。(詳しくはこちらの記事 をご覧ください)

 

志甫:お互い昨年は積極的に登壇するようにしていたので、両OS合同の勉強会では頻繁に会ってましたね。

 

 

――お二人とも2016年は積極的にアウトプットする一年を過ごしていたようですが、一年を通して何か良い変化はありましたか?

 

志甫:社外の勉強会やイベントで同世代で活躍しているエンジニアに会う機会が増えたので、かなり闘争心が湧きましたね。良きライバルという感じでかなり意識しています。彼らが登壇するのを見るたびにそのレベルの高さに悔しい気持ちもありますし、その分自分も負けてられないなと思っています。

 

鈴木:入社してすぐは自分の担当部分を作りきるだけで正直いっぱいいっぱいだったのですが、次第に余裕も持てるようになってからはプロジェクトの設計や構造を考えられるようになったと思っています。学生時代に開発経験があったもののあくまで自己流だったので、最近では汎用性も考えて開発できるようになってきました。

 

IMG_0760

 

メディア事業のおもしろさは新しい技術を取り入れるスピードの速さ

 

――それでは逆に、今後の課題があれば教えてください

鈴木:書籍を出版させていただくという大変貴重な機会をいただきましたが、果たして自分がそのレベルのエンジニアに到達しているのかという不安は正直あります。自分がもっと成長するにはどうしたら良いのだろうという、成長することへの危機感は常に持っていますね。ありがたいことに現在技術レベルの非常に高い先輩方と一緒に開発ができていて、成長するためにはこれ以上ないくらいの環境だと思っています。4年目ながら新卒のような気持ちで、愚直にどんどん吸収していきたいです。

 

志甫:課題に思っていることは大きく2つあって、1つは現状OSSの活用があまりできていないことです。今までは運用メインのサービスを担当していたので、新しいライブラリをつくる機会がありませんでした。現在は新規サービスの立ち上げに挑戦できているので、今後は積極的にライブラリをつくり、公開していきたいと思っています。

もう1つは、新卒の頃から若手メンバー中心のプロジェクトに所属していたので、優秀な先輩エンジニアと一緒に同じプロダクトを開発する経験値が少ないこと。先輩エンジニアとの接点は現状でもたくさんありますが、やはり業務上のコミュニケーションとは違うので、少し焦る気持ちもあるのが正直なところです。
ただ最近では、何か開発上で悩むことがあれば他プロジェクトの先輩にもどんどん頼って情報を取りに行けるようになったので、少しずつ改善できてきました。

 

 

――お二人は新卒から一貫してメディア事業に携わっていますが、どういったおもしろさがあるのでしょうか?

志甫:サイバーエージェントのメディア事業では、国内の第一線で活躍するエンジニアと一緒に、インターネットテレビ局「AbemaTV」や定額制音楽配信サービス「AWA」のような高いクオリティを誇れるプロダクトを開発することができます。

ハードウェアの精度が上がったことでアプリで表現できる幅がどんどん広がってきていますが、そういった時代の流れの中で社内ではより良いアプリを作ろうという意識が高まっていてトレンドの中心で開発することができていると日々感じますね。メディア事業で活躍するエンジニアのクオリティへの意識はすさまじく、それが技術の成熟とも相まって、最近では「AbemaTV」が「2016年ベストアプリ」を受賞しました。

 

鈴木:「AbemaTV」ではFluxアーキテクチャをiOSにも採用していたり、と新しい技術を実務で取り入れるスピードもメディア事業に携わるおもしろさの一つだと思います。
無料でホームページが作れる「OWND」はどのプロジェクトよりもはやくGoやSwiftを使っていましたし、「AWA」もいち早くrealmを採用していました。
志甫:映像配信プラットフォーム「FRESH!」でも開発スタート段階ではβ版しかリリースされていなかったKotlinを採用するなど、チャレンジングでしたよね。

 

 

――これから研修を終えた新卒エンジニアが各プロジェクトに配属されていきますが、どんな新卒がメディア事業で活躍できると考えますか?

志甫:物怖じしないで先輩にもがんがん向かってきてくれるようなエンジニアと働けたら嬉しいですね。昔と違って今はGitHubもあるおかげで、学生でも技術レベルが格段に上がってきているなという印象を受けます。
若手として多少の謙虚さは大切かもしれませんが、スピーディに技術的成長を遂げるには先輩にも物怖じしないで向かっていく姿勢が大切ではないでしょうか。

 

鈴木:一緒に働きたいなと思うのは、技術力だけでなく向上心を持っていて、自分のやりたいことがある方ですね。
向上心があって、かつ自分のやりたいことがあると、その目標に向かって自己成長し続けることができると思います。
そういうメンバーがチームにいると、新卒でもチーム全体にポジティブな影響を与えられて、メンバーのモチベーションの向上にも繋がると思っています。
ただ最初から自分のやりたいことを持っているというのはなかなか難しいと思うので、まずは自分がなりたいエンジニア像を持つことが大切かもしれません。

 

 

 

――最後に今後の展望を教えてください

志甫:世界で注目されるような品質のアプリを作っていきたいですね。自分も社内のトップエンジニアが作っているような品質に目線を合わせて、サイバーエージェントがリリースするアプリは全てが品質高いよね、と言われるようになりたいです。

 

鈴木:いままで自分が立ち上げ時から携わったのは割と小規模なサービスでした。「755」や「AbemaTV」は大規模サービスですが、途中からジョインして改善していく役割を担っていたので、「755」で培ったレガシーコードのリファクタ、「AbemaTV」で培っているモダンなアーキテクチャのノウハウを活かして、いつか大規模サービスの開発を一からできるようになりたいですね。
また現状はネイティブアプリの技術トレンドの移り変わりが激しく楽しいですが、いずれはサーバーサイドにも戻ってみたいと思っています。

 

IMG_0735