キッチンとホールのあいだで(バックエンドとフロントエンドのあいだで)
こんにちは。エンジニアリングマネージャーのユジンです。
今回は、minma がいま抱えている課題について、 少しお話ししてみたいと思います。
minma では、月に一度、業績共有会があります。
その中で、ときどき「くらしのマーケット」のシステムの状況について、
全社の前で共有する機会があります。
ただ、会場にはエンジニアではない方が、8割ほどいらっしゃいます。
そのため、技術の話をそのまま説明しても、なかなか伝わりにくく、
「ちゃんと伝えられなかったな」と感じることが、何度かありました。
そこで今回は、そのときの反省も踏まえて、
「技術の話」をそのまま伝えるのではなく、
小さな物語として、いま起きている課題を共有してみようと思います。
少しでも、現在 minma が直面している状況や、
その難しさを感じていただければ幸いです。
キッチンとホールのあいだで

看板は控えめ、席も少なく、
ただ「料理がおいしい」という評判だけで、
毎年少しずつ客が増えていった。
一年目、二年目、三年目、十年目。
気づけば、店は毎年のように売上を伸ばし、
新しいメニューが増え、
新しいスタッフが増え、
店は静かに“成長”していた。
だが、成長はいつも、少し遅れて問題を連れてくる。
1. 多すぎる言葉、足りない言葉
ある日の昼下がり。
ひとりの客が、穏やかな声で尋ねた。
"すみません。今日のおすすめは、何ですか?"
ホールスタッフはキッチンに向かい、そう伝えた。
しばらくして、キッチンの奥から、分厚い紙束が差し出された。
そこには、料理名と値段だけでなく、
- レシピ、
- 原材料の産地、
- 原価、
- 調理の工程、
- 栄養成分、
- 仕入先の情報まで、

びっしりと書かれていた。
ホールスタッフは紙をめくりながら、少し困った顔をした。
'お客さんが知りたいのは、
「Minmaハンバーグ、1,200円」だけなんだけどな'
別の日には、逆のことも起きた。
キッチンから返ってきたのは、短い一言だけ。
"Minma-209"(料理IDだけが返ってきた)
'料理の名前は?'
'デザートある?'
'飲みものある?'
ホールとキッチンを、何度も何度も往復する。
情報は、多すぎたり(OverFetch)、少なすぎたり(UnderFetch)が
いつのまにか、この店の日常になっていた。
店は成長していた。
けれど、店のコントロールは、少しずつ、むずかしくなっていた。
2. 彼が来てから
そんな頃、一人のホールスタッフがやってきた。
特別に派手なところはなかった。
けれど、彼は、よく“見る”人だった。
客の表情を見て、
どこで迷い、
何を知りたがり、
いつ決めようとしているのかを、静かに読み取っていた。
"おすすめは?"
そう聞かれると、彼はキッチンに行き、こう伝えた。
"料理名と、値段と、写真と、ひと言コメントだけください。 "
"それで、十分です。"

返ってきた一枚の紙を手に、
彼は笑顔で席に戻る。
"本日のおすすめは、Minmaハンバーグ、1,200円です。"
"今日はソースを少し改良していますよ。"
客はすぐにうなずき、注文した。
店の流れは、見違えるほどよくなった。
彼は、
多すぎる情報をそっと削り、
足りない情報を先回りして拾い、
いつも“ちょうどいい形”に整えていた。
店長は、彼の背中を見ながら思った。
'この人がいれば、店は回るなぁー'
けれど同時に、別の思いも浮かんでいた。
'でも、こんな人を、
これから先も、何人も見つけられるだろうか'
3. 人だけでは回らなくなって
店は、さらに成長した。
新しい店舗ができ、
新しいメニューが増え、
アプリ注文が始まり、
テイクアウトも増えた。
質問の種類は、日に日に増えていった。
だが――

彼のような人は、ほとんどいなかった。
教えても、同じ動きはなかなか再現できない。
忙しくなると、説明はばらつき、
店舗ごとに答えが変わってしまう。
ある日、新人がキッチンに言った。
"全部ください!"
また、分厚い紙束が戻ってくる。
別の日、別の新人は、
"えっと Minma-209?"
また、長い往復が始まる。
店長は、夜の片付けをしながら、静かにつぶやいた。
"これは、人の問題じゃないな。"
"仕組みの問題だ"
4. 小さなカウンター
その年、店は、小さな決断をした。
ホールとキッチンのあいだに、
小さな“モダンなカウンター”を置くことにした。

それは人ではない。
けれど、こんな役割を持たせた。
- 客の質問ごとに、必要な情報を定義する。
- キッチンには、決まった形式で聞く。
- 料理ごとに、最適な説明を用意する。
- 誰が使っても、同じ答えが返るようにする。
ホールスタッフは、まずそのカウンターに聞く。
"ランチ画面用のおすすめをください"
カウンターはキッチンに伝える。
"料理名・写真・値段・コメント形式でお願いします"
キッチンは、それに合わせて返す。
新人でも、迷わなくなった。
ベテランでも、翻訳に悩まなくてよくなった。
優秀な人の仕事が、仕組みとして、そっと残された瞬間だった。
店は、また少し、うまく回り始めた。
5. 橋が、城になりかけた頃
しばらくのあいだ、すべては順調に見えた。
品質は安定し、
教育は楽になり、
店舗が増えても、店は回った。
けれど、成長は、また新しい問いを連れてきていた。

メニューが増え、
キャンペーンが増え、
画面が増え、
条件が増え、
例外が増えた。
そのたびに、誰かが言った。
"ここで少し計算しましょう "
"在庫チェックもここで"
"キッチン側は変えにくいので、こっちで吸収しましょう"
いつのまにか、
カウンターは、ただの橋ではなくなっていた。
データを組み立て、
条件を持ち、
キャッシュを持ち、
画面の事情を、深く知りすぎていた。
ある日、キッチンの人が、ぽつりとつぶやいた。
'最近、この店、'
'キッチンより、カウンターが一番忙しそうですね。'
6. 主役は、誰だったのか
問題が起きると、皆が迷った。
'これはキッチン?'
'それともカウンター?'
'ホールの使い方?'
境界は、少しずつ曖昧になっていった。
閉店後、静かな店内で、
店長は椅子に腰かけ、ゆっくりと考えた。
そして、静かに言った。
'ただし――'
'仕組みは、放っておくと、'
'いつのまにか“主役”になってしまう。'
'本当の主役は、'
'キッチンであり、'
'料理であり、'
'客なんだ。'

少し笑って、こう続けた。
'カウンターは、'
'あくまで“橋”でいい。'
'城になってはいけない。'
店長は、しばらく何も言わずに、店を見回した。
いまのカウンターは、橋のままだろうか。
役割は、ちゃんと定義できているだろうか。
キッチンは、本業に集中できているだろうか。
ホールは、シンプルに客と向き合えているだろうか。
答えは、まだ、出ていない。
けれど。
課題を感じ、
どうすればいいのかを考え続けている限り、
この店は、きっと、大丈夫だろう。
そう思いながら、
店長は、明日のメニュー表をそっと閉じた。
こうしてその店は、今日も成長を続けている。
課題を感じながら、
どうすればいいのかを、考え続けながら。
登場単語 / システム対応表
| 物語の単語 | システム |
|---|---|
| お客 | ユーザー |
| 注文・質問 | 画面操作 / ユースケース |
| ホールスタッフ | フロントエンド |
| 優秀なホールスタッフ | 良いフロント設計者 / BFF設計者 |
| キッチン / シェフ | バックエンド / ドメイン |
| 料理 | ドメインデータ / ビジネス結果 |
| 分厚い紙束 | OverFetch |
| IDだけの返答 | UnderFetch |
| 小さなモダンカウンター | BFF(Backend For Frontend) |
| 城のように育ったカウンター | 肥大化したBFF |
| 店長 | アーキテクチャ |
| 成長する店 | 成長するプロダクト・組織 |
最後に、
長い内容をここまで読んでいただき、ありがとうございました。
minmaでは、成長に伴う複雑さと正面から向き合い、
システムのレイヤごとの役割を明確にしながら、
段階的に改善を進めていく方針を大切にしています。
この物語が、
アーキテクチャや組織づくりを考えるひとつのヒントになれば幸いです。
そして次は、
この「橋」をどう定義し直そうとしているのか。
そして、それを支えるminmaのテック組織について書いてみたいと思います。