ビジネス

Next Quality:旅行予約サイトの検索エンジン開発で先端を行くフォルシアが、自社でテストコードを書き始めた理由

フォルシア株式会社取締役 技術統括夏目伸彦さん

大学在学中にインターンとしてフォルシアへ参画。新卒で大手IT企業に就職した後、1年でフォルシアに"出戻り"。9年間技術部長を務め、2018年より現職。

「今度の出張の宿を取らなきゃ」

「ゴールデンウィークの家族旅行、手頃なツアーがないか調べてみよう」

多くの人たちが日常的に利用する旅行予約サイト。こうしたサイトにとって不可欠な機能が「検索」であることに異論はないだろう。この検索エンジンの開発に強みを持つのが、東京・新宿にオフィスを構えるフォルシアである。

同社は2001年の創業以来、航空会社や旅行会社の旅行予約サイト向けに検索エンジンを提供しているエンジニア集団だ。主力となる独自技術基盤が、膨大なデータを高速に検索するためのソフトウェア「Spook(スプーク)」で、ANAグループやJTBといった大手企業のサービスにも導入されている。

今回インタビューをした夏目伸彦さんは、取締役兼フォルシアの屋台骨である開発部門を率いる技術統括責任者だ。大学時代にインターンシップで働いた後、新卒でグーグルに入社するも約1年で“古巣”に舞い戻ってきたという、同社の技術の変遷を深く知る人物である。

どのようにしてフォルシアはユーザーを満足させ続けるミッションクリティカルなシステムを作り上げているのか。開発における「品質」の勘所などを聞いた。

数億通りの検索対象を瞬時にさばく技術

まず、旅行予約サイトの検索機能の裏側がいかに複雑なのかを説明したい。

フォルシアの顧客企業が運営する旅行サイトの多くは、ホテルや旅館など2万ほどの国内宿泊施設を掲載している。ここからユーザーは宿を選ぶわけだが、単純に検索対象が2万通りというわけではない。施設ごとにさまざまなタイプの部屋があり、朝食の有無など各種プランも用意されている。かつ期間も1泊から数週間と幅広い。つまり、検索対象は数億通りも存在するのだ。

フォルシアではこの莫大なデータを瞬時にさばき、ユーザーに最適な結果を導き出すための検索エンジンを提供する。具体的にはどのような特徴があるのだろうか。

「何よりもスピードですね。通常は数億パターンものデータをすべて一度に検索するのは難しいため、先に宿泊エリアを細かく選択するなど、極力対象を絞り込んだ上でユーザーに検索させます。それに対して、当社のエンジンは絞り込ませることなく、スムーズに検索できる点が売りになっています」

フォルシアの検索エンジン「Spook」の特徴(出典:同社サイト)

こうした高いパフォーマンスを実現するために、大本のデータベースとは別に、検索用のデータベースを用意する。しかしここで問題になるのが、双方のデータベースに格納されている情報のズレだ。例えば、あるホテルの部屋が予約で埋まっても、その在庫情報が検索用のデータベースに反映されていなければ本末転倒である。そのような事態が起きるのを防ぐべく、検索用データベースの更新速度を高めることに注力してきた。結果、以前は1日に2〜3回だったのが、現在は数分置きに更新できるようになった。

この卓越した技術力が評価され、今では約30社のサイトにフォルシアの検索エンジンが実装されている。

テストコードを書き始めたわけ

言うまでもないが、高度かつ高性能なシステムを組み上げるには、開発段階での「品質」へのこだわりが不可欠である。そして、その活動は基本的に終わりがない。いかに品質を磨き続けるか、その努力が常に求められている。

もちろん、フォルシアもそうしたカイゼン活動に長年励んできたわけだが、夏目さんによると、自身が開発部門のマネジメント職になった約10年前と比べて飛躍的にシステム開発の品質レベルが向上したと自負する。その要因の一つが、テストコードを書くようになったことだ。

「かつては開発者への依存が強くて、案件に関わったエンジニア以外、誰もそのシステムに触れられない状態でした。でも、それだと後工程でいろいろな課題が噴出するため、現在はテストコードがそろってきているプロジェクトが増えてきました。加えて、linterと呼ばれる文法チェックツールをCI(継続的インテグレーション)で回し、コードレビューを挟むなど、開発環境を整備して品質を担保しています」

テストコードを書くようになった最大の理由は、運用業務の負荷を下げることに他ならない。同社はシステムを開発して終わりではなく、基本的にカットオーバー後のシステム運用も担う。ところが、かつては開発ばかりに目が行き、運用段階で苦労の連続だった。これに関しては、夏目さん自身も何度も周りに迷惑をかけてしまったと反省する。

「昔は1人、あるいは2〜3人といったギリギリの人数で開発を乗り切ることがよくありました。本当にカットオーバーまでの最短距離を突っ走っていたので、開発環境を整備する余裕はなかったです。でも、それだと開発も大変ですが、それ以上に運用が過酷だったと思います。ぐちゃぐちゃなシステムを引き継いで、『何とかしろ』と言われるのは、エンジニアとしてかなり苦痛だったはず。そうした状況をまた生み出してはいけないという思いはあります。そこから運用負荷を下げようとテストコードを書いたり、必要なドキュメントを用意したりといった取り組みが増えてきました。それに伴い、開発環境を整備する文化が育ってきたのだと思います」

テストコードに加えて、画面周りのテストの自動化に取り組んでいる。以前はSelenium(Webアプリケーションをテストするためのポータブルフレームワーク)を利用していたが、作ってメンテナンスされずに放置されていた。今はAutify(ソフトウェアテスト自動化プラットフォーム)というサービスを試し始めている。

ただし、開発者が必ずテストコードを書いたり、テストカバレッジを測定したりするようなルールを設けているわけではない。現状は会社の風土を尊重し、あくまでも各自の自主性に任せている。

稼げる技術でなければ意味がない

フォルシアがこだわるのは品質だけではない。ビジネスである以上、顧客満足は決して欠くことができない要素だと夏目さんは強調する。良いものを作るのはプロとして当然だが、同時に顧客が望むものを提供しなくては意味がない。これに関しては、どの点に注意を払っているのだろうか。

「顧客の期待をきちんと認識することを大事にしています。例えば、テストの結果が必要だという顧客もいれば、そんなことはいいからとにかく早く動くものを作ってくれという顧客もいます。プロジェクトによって求められるものは変わるため、顧客のニーズをきちんと見極め、その上で期待値をコントロールしなければなりません」

そのためにフォルシアが心掛けているのが、エンジニアによる直接のヒアリングである。なぜなら、顧客はビジネスの専門家で、システムの専門家ではないので、本当に必要なものに気付いていないことが多いからだ。指示された通りのシステムを作るのではなく、真のニーズを丁寧に解き明かして、顧客の期待を超えるものを作っていくのがエンジニアの役割だと夏目さんは考える。

エンジニアと顧客の接点を重視する理由はもう一つある。技術で稼ぐことの意義を体感してもらいたいからだ。同社は「ビジネスを紡ぐエンジニア」というキーワードを掲げ、1人でも多くの稼げるエンジニアを育てることに力を入れている。そこにある思いは何か。

「技術とは、それを使って何を解決するかが大事で、人の役に立たなければ意味がないと思っています。具体的に言えば、技術によってビジネス課題を解決し、お客さんに喜んでもらうことで対価を頂くわけです。技術は売れて初めて価値が生まれます。その思考が私たちの根っこにあります」

自社開発サービスで旅行業界以外にもアプローチ

技術で稼ぐ——。これに共感するエンジニアは少なくないが、他方で受託ビジネスが中心であることに消化不良を感じているエンジニアもいる。現に、フォルシアから他社へ転職していったエンジニアに聞くと、「自社サービスを開発したくて……」と話していたそうだ。

「エンジニアは比較的飽き性で、新しいことがしたいのです。その気持ちは私も想像できます。ただ、会社としては長く、満足して働いてもらいたい。そのために活躍の場を広げるのは不可欠だと痛感しています」

そうした中、大きな転換期が訪れている。商品販売プラットフォーム「フォルシア webコネクト」やデータクレンジングツール「Masstery」といった自社開発サービスを相次いでリリースしているのだ。これは同社のエンジニアのモチベーションを高める事案になっている。自社開発サービスに携わる機会が生まれれば、離職などを食い止める要因にもなる。

さらに、旅行・観光業界以外へのビジネス拡大にもつながる。例えば、科学機器や間接資材など大量の商品点数を扱う業界において、フォルシアの検索エンジンを搭載したデータベースシステムの構築は勝算が高いと夏目さんは見る。

一方で、自社開発サービスならではの課題もある。

「今までは基本的にはお客さんが何を望むのかを考えたり、これが欲しいと言われたものを作ったりすれば良かった。でも、自社商品だと、旅行予約サイトとはこうあるべきだという独自性を打ち出しながら提案していかねばなりません。これまでにない取り組みが必要です」

さらなる品質向上を目指して

品質を追求するためにフォルシアは今後どのようなことに取り組むのか。

「テストコードも社内文化としてだいぶ浸透してきましたが、まだすべての開発案件に取り入れているわけではないので、しっかりと底上げしていきたい」

その上で主力である検索エンジンのパフォーマンス向上にも余念がない。

「性能面はまだまだ改善を続けないといけません。世の中のデータ量はどんどん増えていくので、それをうまくさばけるように技術やアーキテクチャをさらに進化させたい。そうしなければパフォーマンス面の品質は上がらないと感じています」

ユーザーがもっと便利に、ストレスなく旅行予約サイトを活用できる世の中を目指し、夏目氏はこれからも陣頭に立ってエンジニア集団をリードしていく。

フォルシア株式会社取締役 技術統括夏目伸彦さん

大学在学中にインターンとしてフォルシアへ参画。新卒で大手IT企業に就職した後、1年でフォルシアに"出戻り"。9年間技術部長を務め、2018年より現職。

SNSシェア

この記事は面白かったですか?

今後の改善の参考にさせていただきます!

Ranking

ランキング

もっと見る