【エンジニア対談】ドリコム流サービスを支えるサーバーサイド技術とエンジニア文化〜全てはユーザーに価値を届けるために〜(前編)

ドリコム<3793>は、去る2月3日、2017年3月期の第3四半期累計(4~12月)の連結決算を発表、売上高56億7600万円(前年同期比16.1%増)、営業利益5億1400万円(前年同期3億1900万円の赤字)、経常利益4億5000万円(同3億2200万円の赤字)、四半期純利益4億1700万円(同6億8900万円の赤字)と大幅な黒字転換となった(関連記事)。
 
また、同社は2018年3月までに7~8本のIP(知的財産権)タイトルをリリース予定だ。直近では、2016年11月にリリースした『ダービースタリオン マスターズ(以下、ダビマス)』の第3四半期の売上が7億4000万円と、垂直立ち上がりを見せ、年明け1月の月次売上速報は4億5000万円となり、好調に推移している。
 
その一方で、広告・メディア分野においても様々な新規事業を立ち上げており、「with entertainment」というキーワードの下に、「人々の期待を超える」もの作りを続けている注目の企業だ。
 
本稿では、これらのサービスを支える同社の二大凄腕サーバエンジニア、大仲能史氏、神谷健氏の対談企画を実施。ファシリテーターを務めるのは、技術担当役員の白石久彦氏。現場エンジニアから見た同社の社風、開発環境、スタッフの特徴、そして求める人物像など、赤裸々かつ深い内容が展開された。
その内容を、前後編の2回に分けてお届けしていく。

 

採用情報

 

◼︎Ruby on Rails導入の経緯…「Rubyについては技術力を持ち続けている」



株式会社ドリコム
プロダクト本部 Webアーキテクト部
部長
神谷 健 氏(写真中央)

プロダクト本部 サービス推進部
スペシャリスト
大仲 能史 氏(写真左)
 
【聞き手】
株式会社ドリコム
執行役員テクノロジー担当
白石 久彦 氏(写真右)




白石 久彦 氏(以下、白石):今日は、ドリコムでサーバーサイドのエンジニアとしてよく名前のでる大仲さん(通称onk)、神谷さん(通称カミケン)のレジェンド対談を展開できればと思っています(笑)。タイプの違う凄腕エンジニアに話を聞くことで自分たちのことがよりクリアに見えてくるのじゃないかって思って。ということでよろしくお願いします。早速ですが、二人の役割について簡単に紹介してもらえるかな?
 

大仲 能史 氏(以下、大仲):開発基盤を整える的なことをやりながら、新規プロダクトの開発をやっています。
 

神谷 健 氏(以下、神谷):直近ではダビマスのエンジニアリーダーを担当しています。並行して新規開発ラインのソースコードのレビュー等もしています。
 

白石:じゃあ早速単刀直入なんだけど、ドリコムのサーバーエンジニアリングで僕らが誇れるモノって、二人はなんだと思う?
 
神谷:そうですね。たとえば、activerecord-turntableの作者がいたり、深い技術を知っている人がいたりするところが、強みのひとつかなって思いますね。
 

白石:カミケンがドリコムに転職してきたのは、そういう強みに惹かれたのがきっかけだったよね。
 
神谷:そうですね。ドリコムのRubyに強いエンジニアたちと一緒に仕事がしたいと思って来ました。

 
白石:当時からドリコムにいたonkは、うちの歴史をよく知ってると思うけれど、Rails導入の流れを少し教えてもらえるかな?
 
大仲:Rails 1.0 が出た直後(2005/12)に部署の標準フレームワークとして採用しました。それまではプロジェクトごとに言語すらバラバラでカオスだったんですが、統一するぞと。また、「Rails勉強会@東京」の開催場所に弊社オフィスを貸し出したり「Award on Rails」というコンテストを開催したりなど、その頃からドリコムはRailsコミュニティにも参加・還元するようになりました。以降、特にRubyについては常に技術力を持ち続けている、と言えるんじゃないかな。

 
神谷:自分はその頃、前の会社でRailsを始めたところで、その時からドリコムを常に意識していましたね。
 
白石:じゃあ、ドリコムのことは何となく知っていたんだね。
 
神谷:そうですね。早い時期からRailsで開発をやっている会社だと。
 
 

◼︎動けばいいや、じゃなくて、「なぜそれが、そうやって動いたか」をちゃんと理解しながらやる

 

白石:技術力の本質って二人はなんだと思う?
 
大仲:ちゃんと理解して解決できるということですかね。技術的な問題解決力の基本は大事にしています。
 
神谷:確かに、そこですね。動けばいいや、じゃなくて、「なぜそれが、そうやって動いたか」をちゃんと理解しながらやるという姿勢を大事にしています。
 
白石:なるほど。
 
大仲:「オプションを変えたら動いたー」、じゃなくて。じゃあ、なんでこのオプションがこう動くんだろう、とか。すべてソースコードまで読まないと気が済まないという感じです。

神谷:当社はそういう人が多いですね。
 
大仲:Railsのソースコードを日常的に見ていますよね。
 
神谷:常に見ています。ドキュメントをネットで検索するよりも、まずはソースコードを見に行って、「あー、こうなっているんだ」って。
 
大仲:業務中のチャットでも、「Railsのソースコードのここの行が」というふうに提示することもよくあります。みんなが自然にフレームワーク内のソースコードに慣れ親しむような環境なんですよね。
 
白石:そういうことが普通になるよね。
 
神谷:うちのグループはまさにそうですね。最初の一歩が「Railsのソースコードを読んでね」って(笑)。
 
 

◼︎大規模トラフィックとの戦い…「ソーシャルゲームを始めたら急に桁が変わってしまった(笑)」

 
白石:Rails以外でもMySQLへの理解や知見も、高いと思うんだけど。さっきturntableをOSSとして公開しているという話も出ていたけど。
 
神谷:大量トランザクションへの対応は慣れてますね。経験豊富なエンジニアがいるので、困ったときには相談することもできますし。
 
白石:ここまでのトラフィックへの対策は、やっぱりソーシャルゲームを始めてからだよね。
 
大仲:それまでは、せいぜいユーザーが数万人という規模だったけど、ソーシャルゲームを始めたら急に400万人とか桁が変わってしまったので(笑)。その一桁が上がるごとにアーキテクチャを変えて、今はだいぶ出来上がったという感じですね。
 
神谷:そういう積み重ねが、今はすごく生きてるんですよね。
 
大仲:ソーシャルゲームを始めた頃は、MySQLを使いながら、エンジンがMyISAMだったりしていて…(笑)。
 
神谷:えぇ…なるほど(笑)。
 
大仲:これはマズいってなって、慌ててInnoDBに代えるとか、ユーザー増加に合わせて急いで垂直分散するとか、そういうことをやってきました。その後はpercona-serverを入れて、ioDriveを入れて、turntableによる水平分散をしてって感じですね。
 
神谷:自分がドリコムに入社した頃にFIO(SanDisk社が販売する高速半導体ストレージFusion ioの事)があったんですけど、その経緯を聞いたら納得しました(笑)。
 
大仲:Disk IO が詰まって1日のうち数回、5分間くらいアプリケーションが止まるということもあったので、サービスとして品質を上げなくちゃいけないという背景がありました。
 
神谷:事業への影響がダイレクトに出てしまうところですからね(苦笑)。
 
白石:うちの特長でコードレビューが盛んというのもあるかなと。GitLab導入の影響も大きいと思うけど。
 
大仲:GitLabの導入は、間違いなく、うちの文化が変わった契機の1つですね。


神谷:自分が入社した時にはまだそれほど根付いていなくて、それからちょっと時間が経った後に、一気に浸透していったという感じかなあ。環境から社内の文化が変わったということなんですね。
 
白石:そういう取り組みについてはすごく地道に真っ当にやっている感じだよね。
 
大仲:地道といえば、使っているgemのバージョンアップも週次でやっていますね。
 
白石:bundle updateとかをウィークリーでやっているってこと?
 
大仲:そうです。
 
神谷:僕らって、バージョンの古さ度合いで常にランキングづけされているんですよ。だから、それを解消しなきゃいけない。
 
白石:見える化されることによって、プレッシャーもあると。
 
大仲:そう。隣のプロジェクトが全部最新なのに、お前のところは最新率80%だぞって言われると…。
 
神谷:あれは、本当に重いですね。(笑)
 
大仲:他にもプロジェクト同士で競い合うような社内ツールをどんどん作っていっていて。
 
神谷:競い合わせると、エンジニアって勝負したがるじゃないですか。「負けてられない!」という気持ちが成果物にも出ますし。
 
大仲:数字にするのっていいですよね。カバレッジ率とか。
 
神谷:そういう数字がちょっと低くなっただけでマズい!って思いますからね。負けたーって。
 
 
 

◼︎野良コードレビューが好き

 
白石:そういうエンジニアリング的な取り組みがある一方で、プロダクトごとに組まれたスケジュールってスクラムでどんどん進めていくじゃない?スクラム開発もドリコムの社内文化のひとつではあるんだけど、スケジュール面における他職種の人との考え方の違いやバッティングは、現場ではどういうふうに吸収されてるのかな
 
神谷:たとえば、バージョンが古いからアップデートをしないといけないとなったら、スケジュールの中に組み込んでもらうような働きかけをエンジニア側からしますね。そこは常に重要度を鑑みて、調整しています。
 
大仲:現場の仕事は8割くらいで終わらせて、2割は他の仕事をするために隙間を作っておく。自分のプロジェクトで100%にしてしまうと、他のプロジェクトの様子を窺うとか、そういう時間が取れなくなっちゃうから。
 
白石:二人の役割の違いによるところもあるかもね。onkは、どちらかというとプロジェクト横断的な感じ。基盤に近いし。
 

大仲:僕の方が横串を通す仕事が多い気がしますね。
 
白石:カミケンは、横軸の動きもしつつ、どっちかというと、1つのタイトルにどっぷりが多いね。
 
神谷:そうですね。基本的には、そのタイトルを成功させるというミッションを負いますね。
 
白石:長所を生かしてアサインしているからね(笑)。人それぞれの得意な動き方を尊重するのも、ドリコムの良い文化だよね。でも、当人同士、そこについてはお互いの動きについてはどう思ってるの?
 
神谷:大仲さんのような視点からの横串的な動きはもっと増やしても良いのかなって思っています。僕ら各プロダクトチームのやり方の良いところを見つけてくれたりして、本当にありがたい。そういう視点がなかったら、すごく辛いですからね。常に見てくれている人がいるのは大事です。
 
大仲:僕は、野良コードレビューが好きなので。
 
白石:野良コードレビュー(笑)。
 
大仲:勝手に他のプロジェクトのソースコードを見ているんです。で、共通化できるところを見つけたら、それを吸い出して、gemにしたりして。
 
神谷:そう。あとは、「その書き方は古いよ」って言ってくれるのも、すごく助かる。「次のバージョンで、その書き方はもうできなくなるから直して」って言われて、なるほどー!みたいな。
 
 

◼︎僕らはお客さんに価値を届けるためにエンジニアリングをしている

 
白石:バタバタとリリースまで開発が進んでいく中で、テストという観点で言うと、リリース前のインフラチームと一緒に行う負荷テストも定着してるよね。
 
大仲:本番で負荷で落ちるという経験を何回もしてきたので(笑)。なので、かならず数ヵ月後のデータ量、ユーザー数を想定したテストを行うというルールにしました。負荷によって落ちるということは、そもそも想定アクセス数の要件を満たしていないので、アプリケーションが完成していないんだという考え方です。
 
白石:確かに。機能だけが実装されたからといってOKなのではなく、ちゃんとサービスとしてリリースできる状態にしておく。幸いにもたくさんお客さんがいるんだから、それを前提にしたサービスにしないと、完成したということにはならないよね。
 
大仲:だから、あらゆるテストが必ず工数に含まれているし、開発フローの中にも組み込まれているんです。僕らはお客さんに価値を届けるためにエンジニアリングをしているわけですから。


白石:高負荷に耐えられるように、リリース後にアプリケーションを直さなきゃいけない時もあるじゃない?そういうのって、何をトリガーにアクションするの? 
 
神谷:たとえば、何かしら問題があるクエリはアラートがくるので、それをきっかけに直してますね。

 
大仲:SQLの定量評価ツールで社内の指標に沿ってチェックしています。
 
神谷:我々はいつもインフラから監視されている立場なんです(笑)。ウォーニングが通知されたら、「うわー直さなきゃ」って常に思っています。
 
大仲:数字で見える化されることで、よりゲーム感覚で取り組むようになってません?(笑)
 
神谷:確かに(笑)。自分はそういうの、意地でも直したがるタイプなんで。送信するクエリをどれだけ減らせるか、FETCHする行数をどれだけ減らせるか、レスポンスタイムをどれだけ短縮できるか、とか。

大仲:カミケンが担当してるプロダクトって、どれも数十ミリ秒で返ってくる。
 
白石:ゲーム感覚がそういうところで発揮されてる(笑)
 
神谷:そこに命かけてますからね(笑)


 
後編では、ドリコムのエンジニアチームの考えや展望についてのお話などをお届けしていく。





 
(取材:Pick UPs! 原孝則<Twitter>)
 
 

採用情報


■関連記事

【インタビュー】『ダビスタ』であることを全員で追い続けるチーム…知られざる『ダビマス』開発秘話をドリコムのエンジニアに訊く

【インタビュー】「チームのテンションはゲームに滲み出る」…『ダビマス』を彩るデザイナーたちが目指したのは“馬と自然の美しさ”
 
株式会社ドリコム
http://www.drecom.co.jp/

会社情報

会社名
株式会社ドリコム
設立
2001年11月
代表者
代表取締役社長 内藤 裕紀
決算期
3月
直近業績
売上高108億円、営業利益22億8100万円、経常利益21億9200万円、最終利益11億5900万円(2023年3月期)
上場区分
東証グロース
証券コード
3793
企業データを見る