初めに
こんにちは。トレタ CTO の鄧(でん)です。 今年も残り少なくなってきたので、少し早いかもしれませんがこの怒涛のような一年の振り返りをさせて頂ければと思います。
プロダクト
2021 年は主に 3 本の柱に絞って開発を進めております。
- O/X(Order Experience、より良い顧客体験を実現するためのメニュー / POS システム)
- B/X(Booking Experience、より良い顧客体験を実現するための予約管理システム)
- CC(飲食店向けのコンタクトセンター)
それぞれ事業として違うフェーズになっていたり、技術的な制限が異なってたりするので事業を横断するときのコンテキストスイッチはそこそこ大変だったと記憶しております。
O/X
「2021 年は第二の創業期」という代表の思いと、「お客さまとお料理の幸せな出会いを最高に演出できるメニュー」というコンセプトを元に
- 各法人、各ブランド毎にメニューの演出をフルカスタマイズする(SES)
- 裏側のインフラ、サーバー、店舗スタッフが操作する管理画面などは共通のものを使うことによってコスト面とリリース速度のスケールメリットを得る(SaaS)
というぱっと見相反する要件を実現させるため、メニュー画面とバックエンドの仕組みを分離させたヘッドレス(headless)な構成として作っており、こちらは 2020 年の後半から案を練ってましたが、今年 2021 年の 2 月から開発が活発になって一足先に導入テストなども行い、7 月 26 日ようやく一般公開できるようになりました (1)。
技術的に工夫したところとしてはリリースのプロセスを高速化しつつ、高い信頼性を担保するために車輪を再発明せず、市販の SaaS をレゴブロックのように組み合わせて限られたスケジュールの中で高速に組み立てる手法を採用しており、おかげさまで 12 月 1 日現在、システムに登録されている店舗は 90 を超えており、利用している法人は 4 法人となっており、我々は開発手法とツールを工夫することによって小規模な開発組織を維持しながらこの一年でフロントエンドを 6 案件(各ブランドの UI x 4 + 管理コンソール x 2)、且つサーバーサイド多数 (2) をリリースしたことになります。
ただ、タイトなスケジュールがあるとはいえ、品質やパフォーマンスを妥協することは考えてなく、テストの書きやすさを前提に設計を進める、早めにデザインと API 仕様を擦り合わせる、早めに DB 構造と分析要件を擦り合わせる、全般的に QA が情報や流れをキャッチできるようにするなど、開発手法を工夫してチームとしてのアウトプットを底上げするのを狙っております。
参考資料
B/X
今までトレタの主力商品であった予約台帳ですが、コロナの影響もあり、正直ここ一年伸び悩んでおりました。その中で SRE やサーバーサイドエンジニアの努力もあり、直近一年間のダウンタイムは合計 9 分間、稼働率に換算すると軽く 99.99% を超えております。
もし 2021 年を守りの一年と例えると、来年に関しては一部コロナオミクロン株の懸念もあるものの、攻めに転じる一年だと考えており、飲食業界が回復した際にちゃんとその成長を支えられるように、API 周りの改修、特にメディア連携と店舗を横断した在庫検索を強化しようと考えておりゆくゆくは O/X のようにカスタマイズしやすい予約システムを目指しております。
技術的にはデータ連携のためのストリーム処理や検索エンジンを中心に開発を進めておりますので、もしご興味がありましたらぜひご連絡ください。
ストリーム処理
検索エンジン
CC
飲食店には電話でのやり取りがまだ多く残っておりますが、その負担を少しでも軽減できるようにトレタでは別途 Amazon Connect を通して、音声認識をベースとしたコールセンターサービスを展開しております。
まだ発展途中の分野で、障害や誤認識がまだ多少残ってはいるものの、飲食店のサーポートツールとしては十分利用可能だと考えており、来年以降はより自然なやり取りとより高度なシナリオを実装することによって、より多くのタスクをこなせるように目指しております。
組織と開発手法
トレタでは限られた時間内で手戻りや良くない意味でのサプライズを減らすためにユースケース整理、DB 設計、API 設計、UI 設計、QA などを実装する前にすり合わせております。一部のシステムにおいては実装する前に先に API 仕様をリリースしたり、あるいはテスト仕様を先に書くような開発手法を採用しております。
また、サービスの設計思想として、ただアプリケーションが正常に実行しているだけではなく、行動履歴や購買履歴など、データが正しく蓄積され、それを集計・分析した上で飲食店のオペレーションにフィードバックするところまでが商品価値であり、それを実現するためには早い DB 設計の段階で分析メンバーにもレビューが入るようにしており、コアなデータベースに関しては初期リリースから分析基盤や BI ツールが全て繋がった状態でリリースされておりますので、ある意味分析を前提としてシステム設計をしていると言っても過言ではないと考えております。
B/X の紹介でも少し触れたように、トレタではリリースのプロセスを高速化しつつ、高い信頼性を担保するために車輪を再発明せず SaaS をレゴブロックのように組み合わせて限られたスケジュールの中で高速に組み立てる手法を採用しております。こちらに社内で使っている技術を幾つかリストアップしておりますので、もしご興味ありましたらぜひご感想、ご指摘などお聞かせいただければと思います。
ご連絡お待ちしております。チームの仲間を募集しています!
フロントエンド
- Contentful - CMS
- Firebase - データベース
- Vercel - CI/CD・CDN・Serverless インフラ
- Angular / Next.js / TypeScript
サーバーサイド
- Auth0 - 認証認可
- Stripe - カード決済
- GCP Cloud Run - Serverless インフラ
- Datomi Cloud - データベース
- Clojure / Golang / Ruby on Rails
SRE
データ分析
- GCP BigQuery - DWH
- Looker - BI
- Mixpanel - ユーザーの行動分析
- Segment - ユーザーの行動分析