【イベント】『ダビマス』から紐解く開発円滑化の取り組みとは…ドリコム主催エンジニア向け勉強会「Drecom Tech Espresso」をレポート(前編)


2017年2月28日、東京・目黒にてドリコム主催のエンジニア向け勉強会「Drecom Tech Espresso」が開催された。
 
ドリコムはゲーム事業をコアビジネスの1つとしており、『ダービースタリオン マスターズ』『フルボッコヒーローズX』はじめ人気IPタイトルなどの開発に携わってきた。その一方で、広告・メディア分野においても様々な新規事業を立ち上げており、「with entertainment」というキーワードの下に、「人々の期待を超える」もの作りを続けている注目の企業だ。
 
勉強会第1弾となる今回は、「100万ダウンロード突破! ダビマス開発の裏側大公開!」というテーマで、同社のエンジニア(サーバサイド、クライアントサイド)がゲーム開発における様々な取り組みを紹介した。

 

■2ヶ月間、単独で挑んだα版開発でもスケジュール遅延なし

 
最初に登壇したのは、『ダービースタリオン マスターズ』でサーバサイドの開発を担当した神谷健氏。金融系企業にてシステム開発を経験した後、「Rubyを書きたい」という一念で2013年にドリコムへ入社したという。
  

ドリコムでは、開発作業を「プロト」「αフェーズ」「βフェーズ」「リリース」の4つに区切っている。各フェーズで承認を得て、開発を進めていくというオーソドックスなやり方だ。同社では、「プロト」を「技術と面白さ、それぞれの基本的な課題をクリアする」フェーズとして定義している。

2015年10月、神谷氏は「プロト」の段階でプロジェクトに参加した。「プロト」ではサーバサイドの成果物はまだないが、スクラムマスターの役割を担うため、早い段階での参加となったそうだ。
 
 
2016年1月に「αフェーズ」に突入した。このフェーズでは「ゲームサイクルが一通り遊べるようになり、面白さを確認できる」ことが求められる。開発は、神谷氏が「αからが勝負」と言うように、本格的にコーディングが始まる。

しかし、予定されたα開発期間は約2ヶ月で、サーバサイドのロジック実装は実質的には神谷氏1人という状況だった。これはリソース不足というわけではなく、神谷氏自身の判断によるものだという。実際、スケジュール通りにαフェーズを通過し、同年11月1日に無事にリリースを迎えることができた。

 

■寂しさを感じるほどのスムーズな開発

 
神谷氏は、「ベロシティ(作業の進捗速度)が高いまま走り続けることができた」と、開発プロジェクトを振り返る。では、なぜ、ここまでスピーディに開発を行うことができたのだろうか。
 
ベロシティを高く維持するための工夫として、神谷氏は「クライアントエンジニアとの共通言語を作る」ことを挙げた。例えば、APIの仕様を共有する際はJSON Schemaの記述で事足りてしまう。このような技術選定は、打ち合わせをするまでもなく、エンジニア同士のその場の会話で決まることもあり、それがドリコムの社風なのだそうだ。
 

 
さらに、RSpec::Matchersを拡張してレスポンスのバリデーションも行えるようにした。
 

 
このような取り組みによって、コミュニケーションコストの削減、ドキュメント作成にかかる時間の短縮といった効果が生まれ、開発を円滑に進めることができたのだという。あまりにもスムーズな進捗のため、「一度も会話せずに機能実装が終了していて、寂しかった」ということすらあったそうだ。

 

■コーディング規約はレビューコストを下げる特効薬

 
開発スピードの向上には、読みやすいソースコードであることが必要不可欠だ。そのために、onkcop(読み方はオニクコップ)というコーディング規約を導入した。
 
「コーディング規約はレビューコストを下げる特効薬」だと、神谷氏はその重要性を語る。特に、開発の終盤では「分単位でMerge Requestが飛び交う」ほどのベロシティとなるため、コードの読みやすさが要となる。同社のコーディング規約「onkcop」はgithubで公開されているので、ぜひ参考にしてほしい。(https://github.com/onk/onkcop)

 

■テストコードの重要性

 
開発を続ける中で、技術的負債はどうしても積み上がっていくものだ。たとえば、クライアント側の作業を遅延させないために、取り急ぎ、動作するAPIを提供するというケースは多い。しかし、リファクタリングを先延ばしにしていると、大抵の場合、リファクタリングは行われず、負債を返済することができなくなってしまう。この問題について神谷氏は、「後回しにするのではなく、常にリファクタリングしていくことが、スピードアップに寄与する」と話す。
 
リファクタリングでは、「テストコードが充実していると、思い切った修正を継続的に入れていくことが可能になる」という。手が回らなかったり、軽視されがちなテストコードだが、神谷氏は自身の開発スタイルを「テストコードを書かないと開発できない」といい、自然にテストコードが充実していくのだそうだ。

テストコードを書くのは辛いという人もいるかもしれないが、意外にも同氏は「テストカバレッジは気にしない」という。100%を達成したとしても、バグが絶対に無いとも言えないからだ。むしろ、実装が正しいかどうかは気にせず、「全コードをワンパス通すことに集中」し、一度も実行されていない部分が無いようにする。そうすることで、エラーが出ることを防ぎ、クライアントエンジニアに無用な負担をかけずに済むという。

 

■きれいなコードを書く、という重要な基本的スキル

 
神谷氏は、コーディングという点に着目した場合、「理解しやすいコードを書く技術」「きれいなコードを書く技術」という基本的なスキルが、エンジニアにとって重要であることを強調し、講演を締めくくった。
 
記事の後編では、ドリコムのクライアントエンジニア 西村氏の講演をレポートする。

勉強会レポート記事(後編):http://gamebiz.jp/?p=180543
 
(取材・文:Pick UPs! 神谷美恵<Twitter>)


■ドリコム​
 

採用情報はこちら



 
株式会社ドリコム
http://www.drecom.co.jp/

会社情報

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