ホーム運営者開発の考え方

SMARTSHIFT DEVELOPMENT STORY

SmartShiftを作った際の
運営者の考え方

飲食店のシフト作成は、どこまで自動化できるのか。約25人分の1か月のシフトを毎月作る現場から、何を仕組みに任せ、何を人が判断すべきかを一つずつ考えた記録です。

全7章 / SmartShift開発前に整理した考え方

この記録について

自動で表を埋めることより、
店長の確認を減らしたい。

SmartShiftの出発点は「AIにすべてを任せること」ではありませんでした。希望休、必要人数、役割、休日数、責任者配置。店長が頭の中で繰り返している判断と確認を整理し、システムへ渡せる部分を見つける。その過程を、第1章から最終章まで順に掲載しています。

第1章

なぜ飲食店のシフト作成には時間がかかるのか

飲食店のシフト作成は、外から見るとそれほど複雑な仕事には見えないかもしれません。スタッフの休み希望を確認して、必要な人数を各日に配置していけば完成する。言葉だけで説明すると、それだけの作業にも思えます。しかし実際に毎月シフトを作っている側からすると、そんなに単純ではありません。私が想定している店舗では、スタッフは約25人です。1か月分のシフトを作成するのに、合計でおよそ3時間かかります。

3時間と聞くと、「それならそこまで大変ではないのでは」と感じる人もいるかもしれません。毎日何時間もかかっているわけではありませんし、月に一度の作業だと考えれば、それほど大きな負担には見えないからです。ただ、問題は単純な作業時間だけではありません。シフトを作っている3時間のあいだ、ずっと細かな判断を繰り返し続ける必要があります。

まず、スタッフから提出された希望を確認します。この人はこの日に入りたい、この日は休みたい、この人はランチには入れるけれどディナーは難しい、といった情報を見ながら、大まかな配置を考えていきます。次に、その配置で店舗運営に必要な人数を確保できているかを確認します。たとえば平日のランチタイムであれば、ホール3人、キッチン2人が必要だとします。土日や祝日になると来店客数が増えるため、ホールは4人必要になります。ディナータイムについても同じように、平日と土日祝日では必要人数が変わります。

つまり、単純に「今日は5人いるから大丈夫」とは判断できません。ホールに必要な人数がいるか。キッチンに必要な人数がいるか。さらに、その時間帯に責任者がいるか。こうした条件を一つひとつ確認する必要があります。

今回のケースでは、責任者になれるスタッフは25人のうち3人です。そのため、人数だけ見れば十分でも、責任者が一人も入っていなければ、そのシフトは成立しているとは言えません。さらにややこしいのが、スタッフごとの休日数です。全員が社員で、月の休日数が決まっているような店舗では、単純に必要人数だけを埋めればよいわけではありません。

あるスタッフを多く勤務させれば、その人の休日数が足りなくなる可能性があります。逆に休日数を優先しすぎると、今度は店舗側の必要人数を満たせなくなることがあります。ここでシフト作成は、単なる「予定表作り」ではなくなります。店舗側の必要人数と、スタッフ側の勤務条件を同時に満たす組み合わせを探す作業になります。

しかも、一度割り当てたら終わりではありません。大まかに全員を配置したあと、シフト表をもう一度見直します。この日はホールが一人足りない。この日はキッチンが多すぎる。このスタッフは休日が一日不足している。このスタッフは逆に休みが多い。責任者の配置が偏っている。

こうした部分を見つけながら、一人の勤務を別の日へ動かします。ところが、一か所を修正すると別の場所に問題が発生することがあります。Aさんを月曜日から火曜日へ移動したことで、火曜日の人数はちょうどよくなった。しかし今度は月曜日のホールが一人不足してしまった。

ではBさんを月曜日に入れようとすると、Bさんの休日数が足りなくなる。そこでBさんの別の日を休みにすると、その日は必要人数を下回る。このように、シフト作成には連鎖的な調整が発生します。

おそらく、飲食店のシフト作成に時間がかかる最大の理由はここにあります。文字を入力することに時間がかかっているわけではありません。店長が頭の中で、複数の条件を何度も照合しているのです。

「人数は足りているか」「ホールとキッチンのバランスは大丈夫か」「責任者はいるか」

「休みの数は合っているか」「スタッフの希望を無視していないか」こうした確認を、1か月分のシフト表を見ながら繰り返しています。

つまり、シフト作成で本当に負担になっているのは「入力」よりも「判断と確認」なのではないかと思います。ここは、シフト作成を自動化するうえで非常に重要なポイントです。もしシフト自動化という言葉を聞いて、「AIが勝手にスタッフを配置してくれる仕組み」を想像しているとしたら、それだけでは十分ではありません。

必要なのは、店長がこれまで頭の中で行っていた確認作業を、システム側に移すことです。たとえば、平日のランチタイムでホールが3人未満になったら、自動的に不足を表示する。キッチンが2人未満なら警告する。責任者が一人もいなければ、そのセルを目立つ色にする。さらに、スタッフごとの休日数も自動で計算し、「必要休日9日に対して現在8日」というように表示する。

ここまでできれば、店長はシフト表を上から下まで目視して、すべてを確認する必要がなくなります。システムが「ここに問題があります」と教えてくれるからです。そう考えると、飲食店のシフト自動化で最初に目指すべきなのは、店長をシフト作成から完全に外すことではないのかもしれません。

まずは、店長が毎月繰り返している確認作業を減らすこと。そして、条件を満たした大まかなシフトをシステム側で作り、最後に人間が必要なところだけを調整すること。この形なら、現場にも取り入れやすく、作成時間の短縮とミスの削減を同時に狙えます。

今回、約25人の1か月分のシフト作成にかかっている時間は、およそ3時間です。この3時間をゼロにする必要はないと思っています。仮に3時間が30分や1時間になり、そのうえ人数不足や休日数の確認ミスまで減らせるのであれば、それだけでも十分大きな改善です。

そして、そのために最初に必要なのは、高性能なAIを導入することではありません。店長が毎月どんな条件を見ながらシフトを作っているのかを、一つひとつ言葉にしていくことです。シフト作成を自動化するということは、店長の頭の中にある「暗黙のルール」を、システムが理解できる「明確なルール」に変えていくことでもあります。

では、飲食店のシフトを自動化するためには、具体的にどんなルールを整理する必要があるのでしょうか。次の章では、必要人数、ホールとキッチンの役割、責任者の配置など、シフト作成を自動化するために必要な条件を具体的に整理していきます。

章一覧へ戻る ↑

第2章

飲食店のシフトを自動化するには「ルールの言語化」が必要

飲食店のシフト作成を自動化しようとすると、最初にぶつかるのが「店長の頭の中では分かっているけれど、言葉になっていないルール」です。普段シフトを作っている人にとっては当たり前でも、システムからすると、その「当たり前」は存在しません。たとえば店長がシフト表を見ながら、「この日はちょっと人が少ないな」と感じたとします。

人間であれば、曜日や時間帯、予約状況、スタッフのスキル、その日のメンバー構成などを見て、ある程度直感的に判断できます。しかしシステムは、何をもって「人が少ない」と判断すればよいのか分かりません。だからこそ、シフト自動化では最初にルールを言葉にする必要があります。

今回のケースで言えば、平日のランチタイムはホール3人、キッチン2人が必要です。土日祝日のランチタイムになると、ホールは4人、キッチンは2人必要です。ディナータイムについても、平日と土日祝日で必要人数が変わります。

これだけでも、かなり重要な情報です。店長の中では、「平日より土日のほうが忙しいから多めに入れる」という感覚的な判断かもしれません。しかし自動化するなら、「平日ランチはホール3人、土日祝ランチはホール4人」という形まで具体化しなければなりません。

この具体化こそが、シフト自動化のスタート地点です。さらに、スタッフ全員が同じ仕事をできるわけではありません。ホールだけできる人もいれば、キッチンだけできる人もいます。

中には、ホールとキッチンの両方に入れる人もいます。シフトを自動で作る場合は、この違いも条件として登録しておく必要があります。たとえば、ある日のランチに5人配置されていたとしても、その5人全員がホール担当だったらキッチンは回りません。

逆に、キッチンばかりに人が集まっても同じです。つまり、「合計人数が足りているか」だけでは不十分です。必要なのは、役割ごとの人数を満たしているかどうかです。

ここまで来ると、シフト作成はかなり分かりやすい条件式に変わってきます。平日ランチなら、ホールが3人以上いること。キッチンが2人以上いること。

土日祝ランチなら、ホールが4人以上いること。キッチンが2人以上いること。さらに今回の店舗では、もう一つ重要な条件があります。

それが「責任者を必ず1人置く」というルールです。責任者になれるスタッフは、25人のうち3人です。この条件は、単純な人数調整よりも優先度が高いと考えられます。

なぜなら、ホールとキッチンの必要人数を満たしていても、責任者が誰もいなければ、その時間帯のシフトとして成立しないからです。そのため、自動でシフトを作るなら、まず責任者を配置し、そのあとでホールとキッチンの人数を埋めていく、という順番にしたほうが自然です。このように考えると、シフト自動化は単にスタッフを空いているところへ入れる作業ではありません。

どの条件を優先するかまで決める必要があります。たとえば、責任者の配置とスタッフの「入りたい日」が重なった場合、どちらを優先するのか。基本的には、責任者がいないと店舗運営そのものが成立しないため、責任者配置のほうを優先するべきです。

一方で、休み希望については、今回の運用では一度希望通りに休みを入れるという考え方になっています。つまり、スタッフが「この日は休みたい」と希望している場合、システムはまずその希望を尊重します。その結果、必要人数を満たせなくなった場合だけ、店長が対応します。

ここにも、はっきりした優先順位があります。休み希望は原則守る。それでも必要人数を下回るなら、不足を表示する。

そして最終的な声かけは人間が行う。このようなルールは、実際の店舗運営にかなり合っていると思います。なぜなら、システムが勝手に「人数が足りないから、この人の休みを取り消そう」と判断すると、スタッフの希望を無視することになるからです。

自動化の目的は、現場の事情を無視してシフトを成立させることではありません。現場で守りたいルールを維持しながら、店長の判断回数を減らすことです。「入りたい日」の希望についても同じです。

ある日に入りたいスタッフが必要人数より多かった場合、今回のルールではランダムで決めます。これは、一見すると単純ですが、実は重要です。もしこの部分のルールが決まっていなければ、システムは誰を入れるべきか判断できません。

勤務時間が少ない人を優先するのか。ベテランを優先するのか。提出が早かった人を優先するのか。

それともランダムにするのか。ここを決めて初めて、自動割り当てが可能になります。つまり、シフト自動化を進めるためには、店長が普段なんとなく決めていることを、すべて明確なルールに変える必要があります。

ただし、ここで注意したいのは、最初からすべてのルールを完璧に決めようとしないことです。飲食店のシフトには例外が多くあります。急な欠勤もあります。

新人を一人にしたくない場合もあります。特定のスタッフ同士を同じ時間帯に入れたくない場合もあるかもしれません。売上予測や予約件数によって必要人数を増やしたい日もあるでしょう。

これらを最初からすべてシステムに入れようとすると、仕組みが複雑になりすぎます。そこで、最初は「絶対に守る条件」と「できれば守る条件」を分けたほうがよいと思います。責任者が1人以上いること。

ホールとキッチンの最低人数を満たすこと。休み希望を原則守ること。こうした条件は、絶対に守る条件に近いでしょう。

一方で、希望勤務時間にできるだけ近づけることや、入りたい日の希望をなるべく反映することは、状況によっては守れない可能性があります。この違いをシステム側で理解できるようにすることが大切です。つまり、シフト作成には「正解」が一つあるわけではありません。

いくつもの条件をできるだけ満たしながら、その中で現実的な案を作るという考え方になります。これは、シフト作成を自動化するときに非常に重要です。人間は、条件が少し崩れていても「今回は仕方ない」と判断できます。

しかしシステムは、どこまでなら崩してよいのか分かりません。だから、「絶対条件」と「調整可能な条件」を分けておく必要があります。この考え方ができると、自動シフト作成は一気に現実的になります。

たとえば最初に責任者を配置します。次に、休み希望を避けながらホールとキッチンの必要人数を埋めます。そのあと、入りたい日の希望や希望勤務時間数を参考にしながら、残りを調整します。

最後に、必要人数を満たしていない場所があれば店長に知らせます。こうして考えると、店長が普段やっている作業を、そのまま順番にシステム化していることが分かります。シフト自動化というと、AIが突然答えを出すようなイメージを持ちやすいですが、実際にはもっと地道です。

まずルールを整理する。次に、優先順位を決める。そして、その条件に沿って機械的に割り当てる。

最後に、人間にしか判断できない部分だけを残す。この形のほうが、現場では使いやすいと思います。そして、もう一つ大事なのが、スタッフ側から入ってくる情報です。

どれだけシステム側のルールを細かく作っても、スタッフの希望がLINE、紙、口頭などに分散していれば、自動化は途中で止まってしまいます。誰がいつ入りたいのか。いつ休みたいのか。

どのくらい働きたいのか。この情報が最初から同じ形式で集まっていれば、そのまま自動割り当てにつなげることができます。逆に、情報の入口がバラバラであれば、結局そこを店長が手作業で整理することになります。

そう考えると、飲食店のシフト自動化で本当に最初に見直すべきなのは、シフト表そのものではなく、スタッフから希望を集める方法なのかもしれません。次の章では、LINEや紙に分散しているシフト希望をどうまとめればよいのか、そして「入りたい日」「休みたい日」「希望勤務時間数」をどのように自動シフト作成につなげるのかを考えていきます。

章一覧へ戻る ↑

第3章

最初に自動化すべきなのはシフト作成ではなく「希望提出」かもしれない

飲食店のシフト作成を自動化しようとすると、どうしても「どうやって自動で人を割り当てるか」という部分に目が向きます。AIに組んでもらうのか。Excelで自動化するのか。

専用のシフト管理システムを使うのか。こうした話から始めたくなります。ただ、実際に運用を考えていくと、その前にもっと大きな問題があります。

それが、スタッフの希望がどのように集められているかです。今回のケースでは、スタッフによって希望の提出方法が違います。多くはLINEか、希望を書き込むための紙のシフト表です。

店舗によっては、さらに口頭で伝える人がいたり、写真で送る人がいたりするかもしれません。人間がシフトを作るのであれば、それでも何とか対応できます。店長がLINEを開き、紙を確認し、必要なら本人に聞き直して、一つのシフト表にまとめればいいからです。

しかし、シフト作成を自動化しようとすると、このやり方が最初の壁になります。システムは、LINEの文章と紙に書かれた希望を自動的に同じ意味として扱うことができません。たとえば、

「12日は休みたいです」というLINEと、シフト表の12日の欄に「休」と書かれている情報は、人間から見れば同じです。

しかしシステムにとっては、入力形式がまったく違います。ここに、自動化の前提となる考え方があります。それは、シフトを自動で作る前に、シフト希望を同じ形式で集める必要があるということです。

今回の議論では、希望提出の方法を統一したほうが効率がいいという結論になりました。これは単なる事務作業の効率化ではありません。自動シフト作成の土台を作るための重要な変更です。

たとえば、全スタッフが同じフォームから希望を提出する形にします。そこで入力してもらう項目は、「入りたい日」「休みたい日」「希望勤務時間数」です。この3つが最初からデータとして揃っていれば、そのままシフト作成の条件として使えます。

「休みたい日」は、原則としてシフトから外す。「入りたい日」は、可能な範囲で優先する。「希望勤務時間数」は、月全体の勤務量を調整するために使う。

これだけでも、かなり大きな違いです。これまで店長がLINEや紙を見ながら頭の中で整理していた情報を、最初からシステムが扱える形にできるからです。ここで重要なのは、スタッフに複雑な入力を求めすぎないことだと思います。

シフト自動化を進める側としては、できるだけ細かい情報を集めたくなります。勤務可能時間、希望ポジション、優先順位、希望休の理由、連勤可能日数など、入力項目はいくらでも増やせます。しかし、入力項目が増えれば増えるほど、スタッフ側の負担も増えます。

フォームを開くたびに何十項目も入力しなければならないとなると、提出そのものが面倒になります。結果として、入力漏れや提出遅れが増える可能性があります。そのため、最初は本当に必要な情報に絞ったほうがいいと思います。

今回であれば、「入りたい日」「休みたい日」「希望勤務時間数」の3つです。この3つだけでも、自動割り当てを考えるうえではかなり使えます。特に重要なのが「休みたい日」です。

今回のルールでは、休み希望が重なったとしても、まずは全員の希望通りに休みを入れます。その結果、その日の必要人数を確保できなくなった場合にだけ、休み希望を出しているスタッフへ声をかけます。これはシステム設計としても分かりやすい考え方です。

最初から「誰かの休みを却下して人数を合わせる」のではありません。まず希望を尊重する。その上で、店舗運営に必要な人数を満たせない部分だけを問題として表示する。

最終的に誰へ声をかけるかは、店長が判断する。この形であれば、自動化したことでスタッフの希望が一方的に無視されることも避けやすくなります。逆に、「入りたい日」の希望が重なった場合は、今回のケースではランダムで決めます。

ここもデータとして希望を集めておくからこそ、自動化できます。たとえば土曜日のランチに6人が入りたいと希望しているけれど、必要人数は5人だったとします。この場合、システムが希望者の中から必要人数分を選び、残りの一人はその時間帯には配置しません。

今回のルールであれば、誰を選ぶかはランダムです。もし将来的に運用方針が変われば、この部分だけルールを変えることもできます。たとえば、月の勤務時間が少ない人を優先する。

前月に希望が通らなかった人を優先する。特定のスキルを持つ人を優先する。こうしたロジックを後から追加することも可能です。

つまり、希望提出の統一は単なる「入力方法の統一」ではありません。シフト作成に必要な情報を、後から計算できるデータに変える作業です。ここは、飲食店の業務を自動化するときにかなり重要な考え方だと思います。

業務を自動化しようとすると、つい最後の作業だけに目が向きます。今回であれば「シフト表を完成させる」という部分です。しかし、その完成形の前には必ず情報の流れがあります。

スタッフが希望を出す。店長が希望を確認する。条件ごとに整理する。

シフト表へ転記する。その後に初めて、割り当てが始まります。もし最初の入力段階がバラバラなら、自動化しても途中で人間の作業が必要になります。

たとえば自動シフト作成システムを導入しても、店長が毎月LINEと紙を見ながら全員分の希望を手入力しているのであれば、負担は思ったほど減らないかもしれません。むしろ「システムに入力する仕事」が新しく増えただけになってしまいます。だからこそ、シフト自動化は希望提出の段階から考える必要があります。

理想的には、スタッフが希望を提出した瞬間に、その情報がシフト作成用のデータとして保存されます。誰がいつ休みたいのか。誰がいつ入りたいのか。

月に何時間くらい働きたいのか。これらが一覧になっていれば、店長は一人ずつ確認する必要がありません。そのまま自動割り当ての材料として使えます。

さらに、提出締切を設定しておけば、未提出者だけを確認することもできます。「25人全員の希望が集まっただろうか」とLINEと紙を見比べる必要もなくなります。誰が提出済みで、誰が未提出なのかが一目で分かるようになります。

こう考えると、希望提出の統一だけでも、シフト作成時間の短縮につながります。そして、それ以上に重要なのがミスを減らせることです。LINEで送られた休み希望を見落とす。

紙に書かれた希望を転記するときに日にちを間違える。口頭で聞いた希望を忘れてしまう。こうしたミスは、シフトを作る人が注意していても起こり得ます。

人間が複数の情報源を確認し、別の表へ転記する以上、完全になくすのは難しいからです。しかし、スタッフ本人が直接システムへ入力し、その情報がそのままシフト作成に使われるなら、転記作業そのものをなくせます。これはかなり大きな違いです。

自動化というと、どうしても派手な部分に目が行きます。AIが一瞬で1か月分のシフトを作る。ボタンを押したら完成する。

そうした仕組みは分かりやすく魅力的です。ただ、現場で本当に効果を出すためには、その前にある地味な作業を整理する必要があります。今回で言えば、希望提出です。

LINEと紙から情報を探す。内容を読み取る。一覧へ転記する。

提出漏れを確認する。こうした小さな作業を減らして初めて、自動シフト作成の効果が最大化されます。そして、この考え方はシフト作成以外の業務にも共通していると思います。

自動化で重要なのは、最後の作業だけを機械にやらせることではありません。情報が入ってくる入口から、最終的な出力までを一本の流れとして考えることです。今回のシフト自動化で考えるなら、

スタッフが希望を入力する。その情報が自動で集約される。店舗側のルールと照合される。

仮のシフトが作られる。不足や過剰が表示される。最後に店長が修正する。

ここまでが一つの流れです。この流れがつながれば、毎月のシフト作成はかなり変わると思います。ただし、ここで次の問題が出てきます。

希望をきれいに集めることができても、すべての条件を満たしたシフトが必ず作れるとは限りません。スタッフ全員に決められた休日数があり、店舗側には毎日の必要人数があります。この二つを1か月全体で合わせようとすると、どうしても数字が合わない場合があります。

実は、シフト自動化を考えるうえで一番難しいのは、この部分なのかもしれません。次の章では、「必要人数」と「スタッフの休日数」を同時に満たそうとしたときに、なぜ誤差が生まれるのかを考えていきます。そして、完全自動化ではなく「ほぼ完成形」を目指したほうが現実的だと考える理由について掘り下げていきます。

章一覧へ戻る ↑

第4章

「完全自動化」がうまくいかない理由――必要人数と休日数の矛盾

ここまで、飲食店のシフト作成を自動化するためには、スタッフの希望提出を統一し、店舗側の必要人数や責任者配置といったルールを明確にする必要がある、という話をしてきました。ここまで条件が整理できれば、あとはシステムに任せれば全部自動で完成するのではないか。そう思いたくなります。

しかし、実際にはそこまで単純ではありません。今回のシフト自動化を考えていく中で、一番大きな壁になると感じたのが、「各日に必要な人数」と「各スタッフに必要な休日数」が、必ずしもきれいに一致しないという問題です。たとえば、全員が社員として働いている店舗を考えます。

社員であれば、月ごとに必要な休日数が決まっている場合があります。仮に全員が月9日の休日を取る必要があるとします。すると、25人のスタッフ全員について、それぞれ9日ずつ休みを確保しなければなりません。

一方で、店舗側には店舗側の都合があります。平日のランチにはホール3人、キッチン2人が必要。土日祝日のランチなら、ホール4人、キッチン2人が必要。

ディナーにもそれぞれ必要人数があります。さらに、各時間帯には責任者を最低1人置かなければならない。つまり、スタッフ側には「これだけ休ませる必要がある」という条件があり、店舗側には「これだけ出勤してもらう必要がある」という条件があります。

この二つが、1か月単位でぴったり一致するとは限りません。ここが非常に重要です。シフト作成は、毎日の必要人数だけを満たせば完成するわけではありません。

逆に、全員の休日数だけをぴったり合わせても完成ではありません。両方を同時に成立させる必要があります。ところが、そもそも数字の上で両立できないケースがあります。

たとえば、店舗が1か月を通して必要とする勤務人数の合計が、スタッフ全員が必要な休日数を取ったあとに働ける勤務日数より多ければ、どう頑張っても人手が足りません。逆に、スタッフ全員を必要な休日数だけ休ませても、働ける人数のほうが店舗の必要人数を上回るのであれば、どこかで人数が余ります。この場合、システムがどれだけ高性能でも、「すべての条件を100%満たした答え」を作ることはできません。

条件そのものが矛盾しているからです。これは、AIの性能が足りないという話ではありません。計算が遅いという話でもありません。

そもそも、存在しない正解を探している状態です。ここを理解せずにシフト自動化を考えると、「AIにやらせたのに完璧なシフトが出てこない」という不満につながります。しかし、本当の問題はAIではありません。

シフトという業務そのものが、複数の条件を調整しながら妥協点を探す仕事だからです。実際、人間がシフトを作るときも同じことをしています。最初から完璧な配置を作っているわけではありません。

まず大まかにスタッフを割り当てます。そのあとで、休日数を確認します。必要人数を確認します。

責任者の配置を確認します。スタッフの希望を確認します。そして、少しずつ入れ替えながら全体を整えていきます。

つまり、店長がやっていることも、すべての条件を一発で満たす作業ではありません。条件同士のずれを見つけて、どこをどう調整するか判断する作業です。この視点に立つと、「シフトの完全自動化」という目標そのものを少し考え直す必要があります。

自動化という言葉を聞くと、どうしても「人間が一切触らなくても完成する状態」を想像しがちです。スタッフが希望を出す。ボタンを押す。

1か月分の完璧なシフトが完成する。理想としては分かりやすいです。ただ、現実の店舗運営では、それを目指すよりも「ほぼ完成した状態までシステムが作る」ほうが実用的なのではないかと思います。

たとえば、システムが1か月分のシフトを作った結果、ほとんどの条件は満たしているけれど、Aさんだけ休日が1日少ない。そして、ある土曜日のランチだけホールが1人不足している。こういう状態まで自動で作れたとします。

それなら、店長が確認すべきポイントは非常に少なくなります。25人分、1か月分を最初から全部確認する必要はありません。「Aさんの休日が1日不足しています」

「○月○日のランチでホールが1人不足しています」という問題だけを見ればいいからです。これは、シフト作成を自動化するうえでかなり大きな発想の転換だと思います。

自動化の目的を、「完璧な答えを出すこと」から「人間が判断しなければならない場所を最小限にすること」へ変えるのです。この考え方なら、システムに無理をさせる必要もありません。どうしても成立しない条件があれば、それを隠さずに見せればいいのです。

人数が足りないなら、「不足」と表示する。休日数が多すぎるなら、「休日超過」と表示する。休日数が足りないなら、「休日不足」と表示する。

責任者がいないなら、「責任者不在」と表示する。つまり、システムに必要なのは、矛盾を無理やり解消する能力だけではありません。どこに矛盾が残っているのかを、店長に分かりやすく伝える能力です。

むしろ、こちらのほうが重要かもしれません。たとえば、人数不足の日にシステムが勝手に休み希望者を出勤へ変更してしまえば、見た目上は人数不足が解消されます。しかし、スタッフの希望を無視したことになります。

それよりも、「この日はホールが1人不足しています」「休み希望者は3人います」

と表示して、誰に相談するかを店長に任せるほうが、現場の運用には合っています。人間にしかできない判断を無理に自動化しない。これも、実用的なシフト自動化には必要な考え方です。

そして、ここで「最適化」という考え方が重要になります。シフトには一つの正解があるわけではありません。条件を満たす候補が複数あることもあります。

逆に、すべての条件を満たせないこともあります。その場合、システムが目指すのは「完璧」ではなく、「できるだけ良い状態」です。責任者は必ず配置する。

必要人数はできる限り満たす。休み希望は可能な限り守る。各スタッフの休日数はできるだけ必要数に近づける。

希望勤務時間数についても、大きく偏らないようにする。こうした複数の条件を見ながら、全体として最もバランスのいいシフトを探すわけです。そして、最後に残った小さな誤差だけを店長が直します。

この役割分担であれば、人間とシステムのそれぞれの得意分野を活かせます。システムは、大量の数字を比較することが得意です。25人分の休日数を一瞬で数えることもできます。

31日分の必要人数と実際の人数を比較することもできます。責任者が配置されていない時間帯をすべて見つけることもできます。一方で人間は、例外への対応が得意です。

「この人なら今月少し多く働いても大丈夫そうだ」「この日は予約が少ないから、1人少なくても対応できる」「このスタッフには先月無理をお願いしたから、今回は別の人に相談しよう」

こういった判断は、店舗の状況や人間関係まで含めて考える必要があります。だからこそ、店長を完全にシフト作成から外す必要はありません。むしろ、単純な計算と確認をすべてシステムに任せ、店長には本当に判断が必要な部分だけを残す。

これが、現実的な「シフト自動化の完成形」に近いと思います。今回、最初に目標として考えていたのは、シフト作成時間を短縮することと、ミスを減らすことでした。この二つを同時に実現するためにも、「完全自動化」にこだわらないことは重要です。

店長がすべて確認するから時間がかかります。人間がすべて目視するから見落としが起きます。ならば、確認作業はシステムに任せればいい。

そして、システムが見つけた問題だけを店長が調整すればいい。仮にシフトの95%をシステムが完成させ、残り5%を店長が修正するだけになれば、それは十分に大きな自動化です。むしろ現場で必要なのは、「人間がいなくても動くシステム」ではなく、「人間が短時間で正しい判断をできるシステム」なのかもしれません。

では、その残り5%の誤差を、店長はどうやって見つければいいのでしょうか。一覧でエラーを表示する方法もあります。しかし、毎日シフト表を見ている店長にとっては、もっと直感的な形があります。

それが、Excelのような見慣れたシフト表そのものに、人数の過不足や休日数のずれを表示する方法です。次の章では、「見た目はいつものシフト表だけれど、裏側では必要人数や休日数をリアルタイムに計算している」という、今回考えているシフト管理画面の完成形について掘り下げていきます。

章一覧へ戻る ↑

第5章

理想は「Excelのように見えて、中では全部計算しているシフト表」

前章では、飲食店のシフト作成を完全自動化することには限界があり、システムがほぼ完成したシフトを作ったうえで、最後の誤差だけを店長が調整する形が現実的なのではないか、という話をしました。では、その「最後の調整」はどのように行えばいいのでしょうか。システムが、

「○月12日のランチはホールが1人不足しています」「Aさんの休日が1日不足しています」「○月18日のディナーに責任者がいません」

といった問題を一覧で表示する方法もあります。もちろん、こうしたリスト表示は必要だと思います。ただ、実際にシフトを修正する場面を考えると、それだけでは少し使いづらいように感じます。

店長が普段見ているのは、問題点を並べた一覧表ではありません。スタッフの名前が縦に並び、日付が横に並んでいる、いわゆるExcelのようなシフト表です。誰が何日に出勤しているのか。

誰が休みなのか。その日のメンバーは誰なのか。こうしたことを、一枚の表を見ながら判断しています。

だったら、自動化するからといって、まったく新しい画面に変える必要はないのではないかと思います。むしろ理想なのは、見た目はこれまで使ってきたシフト表とほとんど変わらないけれど、その裏側では必要な計算がすべて自動で行われている状態です。たとえば、縦軸にはスタッフ25人の名前が並びます。

横軸には1日から31日までの日付が並びます。その交差するセルには、「出勤」「休み」「ランチ」「ディナー」などの勤務情報が入ります。ここまでは、普通のシフト表とそれほど変わりません。

違うのは、その表を変更した瞬間に、関連する数字がすべて自動で再計算されることです。たとえば、9月12日のランチに入っていたAさんを、店長が休みに変更したとします。現在のシフト表であれば、その変更をしたあとに、店長自身が人数を数え直す必要があります。

Aさんはホール担当だった。では、Aさんを外したことでホールは何人になったのか。必要人数は満たしているのか。

別の人を入れなければならないのか。こうした確認が発生します。しかし、自動化されたシフト表なら、Aさんを休みに変更した瞬間に計算が走ります。

平日ランチのホール必要人数が3人で、Aさんを外した結果2人になったのであれば、その日のホール欄が赤く表示されます。「必要3人/配置2人」と表示してもいいでしょう。

これなら、店長は人数を数える必要がありません。変更した結果、何が起きたのかをシステムがその場で教えてくれます。逆に、ホールが必要3人に対して5人配置されているのであれば、今度は過剰配置として別の色で表示できます。

不足は赤。適正なら通常表示。過剰なら黄色。

このようにすれば、1か月分のシフトを眺めただけで、どこを修正する必要があるのか直感的に分かります。これは、単に見た目をきれいにするための機能ではありません。店長がこれまで頭の中で行っていた「確認」を、画面そのものにやらせるということです。

同じことは、休日数についてもできます。たとえばAさんは月9日の休日が必要だとします。現在のシフトでは8日しか休みが入っていない。

その場合、Aさんの名前の横に、「休日8/9 あと1日」と表示します。

Bさんは10日休みが入っているのであれば、「休日10/9 1日超過」と表示します。

すると、店長はシフト表を見ながら、「Aさんはあと1日休ませたい」「Bさんは1日出勤に変えられる可能性がある」

ということがすぐに分かります。ここで重要なのは、人数不足と休日数の情報を別々の画面に分けすぎないことです。たとえば、9月15日のホールが1人不足していて、Bさんの休日が1日多いことが同じ画面上で分かれば、

「ではBさんを15日に入れられないか」という判断につながります。もちろん、Bさんが15日に休み希望を出しているのであれば、その情報も見える必要があります。

そこで、シフト表のセルにも意味を持たせます。本人が希望して休んでいる日は「希望休」。システムが休日数を調整するために入れた休みは「公休」。

本人が入りたいと希望している日は「勤務希望」。この違いが分かれば、同じ「休み」という表示でも、店長の判断は変わってきます。人数が足りないからといって、希望休を簡単に動かすのか。

それとも、特に希望が出ていない公休を動かすのか。現場では大きな違いがあります。だから、自動化されたシフト表では「誰が出勤しているか」だけではなく、「なぜその勤務・休日になっているのか」まで分かるようにしたほうがいいと思います。

責任者についても同じです。各時間帯に最低1人の責任者が必要なのであれば、その条件もリアルタイムで確認します。店長が責任者の一人を別の日に移動した結果、ある日のディナーから責任者がいなくなった。

その瞬間、その日を赤く表示する。「責任者0/必要1」と表示してもいいでしょう。

こうした仕組みがあれば、「人数は足りているけれど責任者がいなかった」という見落としも減らせます。つまり、店長がシフトを編集するたびに、必要人数は足りているか。

ホールとキッチンの人数は足りているか。責任者は配置されているか。スタッフの休日数は合っているか。

希望休を動かしていないか。希望勤務時間から大きく外れていないか。こうした条件をシステムが裏側で再計算し続けるわけです。

人間は、一つのセルを変更するたびにここまで多くの条件を瞬時に再確認するのは難しいです。しかしシステムであれば、変更のたびに同じチェックを繰り返せます。ここに、シフト自動化によってミスを減らせる大きな理由があります。

そして、このシフト表で大切にしたいのは、「自動化していることを必要以上に感じさせない」という点です。新しいシステムを導入すると、どうしても機能を増やしたくなります。たくさんのボタンを置き、細かい設定画面を作り、グラフやダッシュボードを表示したくなります。

しかし、日常的に使う店長からすると、操作が複雑になれば、それだけで負担になります。本当に必要なのは、高機能に見える画面ではありません。いつものシフト表を触る感覚で操作できて、面倒な計算だけが勝手に終わっている状態です。

スタッフを別の日に移したいなら、セルを変更する。休みにしたいなら、「休み」に変える。出勤させたいなら、勤務時間を入力する。

店長がやることは、それだけです。その裏側でシステムが、「人数不足が解消されました」

「ただしAさんの休日が1日不足しました」「この変更によって責任者が不在になりました」と判断してくれる。

これが、今回考えているシフト表の理想形です。そして、ここまでできると、「自動シフト作成」と「手動修正」が別々の作業ではなくなります。最初にシステムが仮のシフトを作ります。

店長はその表を開きます。赤くなっている場所や、休日数に誤差があるスタッフを確認します。必要な場所だけ修正します。

すると、その場で再計算されます。問題がなくなれば赤い表示も消えます。また別の問題が生まれれば、今度はそこが表示されます。

店長は、システムとやり取りしながらシフトを完成させていくような感覚になります。これは、単にExcelのシフト表をシステム化することとは少し違います。Excelでも計算式を作れば、休日数や人数をある程度自動計算することはできます。

しかし今回目指しているのは、さらにその先です。スタッフから提出された希望を読み込み、店舗の必要人数や責任者条件をもとに仮シフトを作り、店長が修正するとリアルタイムで条件を再チェックする。つまり、「表を作るためのツール」ではなく、「シフトを完成させるためのツール」です。

ここまで考えてみると、シフト管理システムの価値は、自動でシフトを作るボタンだけにあるわけではないことが分かります。むしろ重要なのは、そのあとです。自動作成されたシフトに問題があるのか。

どこを修正すればいいのか。修正した結果、別の問題が発生していないか。それを人間が一つずつ確認しなくて済むことに、大きな価値があります。

今回の目的は、1か月分のシフト作成にかかっている約3時間を短縮することと、確認ミスを減らすことです。そのためには、システムが最初のシフトを作るだけでは足りません。店長がシフトを完成させる最後の瞬間まで、自動化が続いている必要があります。

見た目は、いつものExcelのようなシフト表。でも、その裏側では必要人数、休日数、スタッフの役割、責任者配置、希望条件が常に計算されている。店長がやるのは、その情報を見ながら最後の判断をすることだけです。

ここまで実現できれば、最初に考えていた「シフト作成の自動化」は、かなり完成形に近づきます。では、希望提出から始まり、自動割り当て、必要人数の確認、店長による修正までを一つにつなげると、実際にはどんなシステムになるのでしょうか。次の章では、これまで考えてきた機能を一本の流れにまとめ、「飲食店のシフト自動化のほぼ完成形」を具体的に描いていきます。

章一覧へ戻る ↑

第6章

飲食店シフト自動化の「ほぼ完成形」を考えてみる

ここまで、飲食店のシフト作成を自動化するために必要な要素を一つずつ考えてきました。必要人数をルール化すること。ホールとキッチンの役割を区別すること。

各時間帯に責任者を配置すること。スタッフの希望提出を統一すること。必要人数と休日数の矛盾をシステム側で把握すること。

そして、店長がExcelのようなシフト表を直接修正すると、その結果をリアルタイムで再計算すること。一つずつ見ると、それぞれ別の機能に見えます。しかし、本当に重要なのは、これらが一つの流れとしてつながっていることです。

シフト自動化というと、「自動作成ボタンを押したらシフトが完成する」という部分だけを想像しがちです。ただ、実際の店舗で使うことを考えると、自動作成だけでは十分ではありません。スタッフが希望を提出するところから始まり、店長が最終的なシフトを確定するところまで、一連の流れ全体を設計する必要があります。

では、今回考えてきた仕組みを実際に使うとしたら、毎月のシフト作成はどのように進むのでしょうか。まず最初に、スタッフが翌月の勤務希望を提出します。現在はLINEや紙のシフト表など、スタッフによって提出方法が違います。

これを一つの方法に統一します。スタッフはスマートフォンなどから、自分が入りたい日、休みたい日、希望勤務時間数を入力します。ここで大切なのは、スタッフが入力した情報を、店長がもう一度別のシフト表へ転記しないことです。

提出されたデータは、そのまま自動シフト作成に使われます。これだけでも、今まで発生していたLINEの確認や紙からの転記といった作業を減らせます。そして提出期限になったら、システムが希望データをまとめます。

ここで店長が一人ひとりのLINEを見直す必要はありません。誰が提出済みなのか。誰がまだ提出していないのか。

どの日に休み希望が集中しているのか。どの日に勤務希望が多いのか。そうした情報をシステム側で把握できるようにします。

希望が揃ったら、次に仮シフトを作ります。ここで、これまで整理してきた店舗側のルールが使われます。平日のランチはホール3人、キッチン2人。

土日祝日のランチはホール4人、キッチン2人。ディナーについても、平日と土日祝日でそれぞれ設定した必要人数を使います。さらに、各時間帯には責任者を最低1人配置します。

今回のケースでは、25人のスタッフのうち責任者になれる人が3人います。そのため、まず責任者がいない時間帯を作らないように配置し、そのうえでホールとキッチンの人数を埋めていくという考え方ができます。スタッフの希望も同時に反映します。

休みたい日は、原則として希望通り休みにします。ここでシステムが人数を合わせるために、勝手に希望休を取り消すことはしません。一方、入りたい日の希望については、希望者が必要人数より多い場合、今回決めたルールではランダムに割り当てます。

そして月全体を見ながら、それぞれの希望勤務時間数や必要休日数にできるだけ近づくように配置を調整していきます。ここまでが、システムによる「おおよその割り当て」です。現在、店長が時間をかけて行っている作業の一つです。

しかし、自動化後は、この最初の配置をシステムが担当します。もちろん、この段階で完璧なシフトが完成するとは限りません。前章までに考えた通り、店舗側の必要人数とスタッフ側の休日数が、月全体できれいに一致しない可能性があるからです。

そこで次に、システムが作成した仮シフトを自動でチェックします。ある日の平日ランチにホールが2人しかいなければ、必要3人に対して1人不足していると判断します。キッチンが必要2人に対して3人いれば、1人過剰だと判断します。

責任者が一人もいない時間帯があれば、それも問題として表示します。スタッフ側についても同じです。必要休日数が9日のスタッフに8日しか休みがなければ、休日が1日不足していると表示します。

逆に10日休みになっていれば、1日多いと表示します。こうして、仮シフトを作るだけではなく、そのシフトの「どこに問題が残っているのか」までシステムが確認します。ここから、店長の仕事になります。

ただし、これまでのように25人分、1か月分のシフトを最初から全部確認する必要はありません。見るべき場所は、システムが問題として示した部分です。たとえば9月15日のランチでホールが1人不足している。

一方でBさんは必要休日数より1日多く休んでいる。店長はシフト表を見ながら、「Bさんを15日に出勤へ変更できないか」と考えます。Bさんの15日が本人の希望休であれば、簡単には変更しないでしょう。

特に希望がない公休であれば、調整できる可能性があります。そこでBさんを休みから出勤へ変更します。すると、その瞬間にシステムが再計算します。

9月15日のホール不足が解消された。Bさんの休日数も必要数になった。責任者配置にも問題はない。

この状態になれば、その調整は成功です。逆に、Bさんを動かしたことで別の条件に問題が発生したのであれば、新しい警告が表示されます。店長はそれを見て、さらに必要な調整を行います。

つまり、店長は1か月分のシフトをゼロから作るのではありません。システムが作った「ほぼ完成形」を見ながら、残っている問題だけを解決していきます。ここが、今回考えているシフト自動化の中心です。

人間を完全にシフト作成から外すのではありません。人間がやる必要のない部分をシステムへ移し、人間にしか判断できない部分だけを店長に残します。この考え方であれば、自動化に必要以上の完璧さを求める必要もありません。

システムが100%の正解を出せないとしても、問題ではないからです。たとえば1か月分のシフトの95%が自動で決まり、残り5%だけ店長が調整するとします。現在は約3時間かかっているシフト作成の中で、その大部分を占めていた「おおよその割り当て」と「必要人数の確認」が自動化されます。

さらに、店長が修正したあともシステムが再確認してくれるので、最後にもう一度すべてを目視する必要も減ります。これなら、シフト作成時間の短縮とミスの削減を同時に狙えます。今回目指しているシステムを最初から最後までつなげると、かなりシンプルな考え方になります。

スタッフが希望を提出する。その希望をシステムが集約する。店舗の必要人数と責任者条件をもとに、仮シフトを作る。

休日数や希望勤務時間数も見ながら、できるだけ条件に合うように配置する。その結果、どうしても解消できなかった人数不足や休日数の誤差をシフト表上に表示する。店長は、その部分だけを修正する。

修正すると、システムがリアルタイムで再計算する。すべての重要な条件が整ったら、シフトを確定する。ここまでが一つのシステムです。

この流れを考えると、「シフト自動化」という言葉の意味も少し変わってきます。最初は、自動化というと「シフトを自動で作ること」だと考えていました。しかし、ここまで掘り下げてみると、それだけではありません。

希望を集めることも自動化できます。希望を整理することも自動化できます。スタッフを大まかに配置することも自動化できます。

必要人数を確認することも自動化できます。休日数を数えることも自動化できます。責任者がいるか確認することも自動化できます。

そして、店長が修正したあとにもう一度条件を確認する作業も自動化できます。こうして考えると、シフト作成という一つの大きな仕事を自動化するのではなく、その中にある小さな作業を一つずつシステムへ渡していくという考え方のほうが実態に近いと思います。その結果、最後に店長の手元に残るのは「判断」です。

このスタッフにお願いするべきか。この日は少し人数が少なくても営業できるか。このスタッフの希望をどこまで優先するか。

そういった、数字だけでは決めにくい部分です。逆に言えば、それ以外の部分を人間がやり続ける必要はありません。25人分の休日数を数えることに、店長でなければできない判断はありません。

31日分のホール人数を一つずつ数えることにも、店長でなければできない価値はありません。責任者がいるかどうかを毎日目視することも同じです。そのような確認はシステムに任せ、店長は店舗運営に関わる本当の判断に時間を使う。

これが、今回考えているシフト自動化の「ほぼ完成形」です。もちろん、実際にシステムを作れば、さらに追加したい機能は出てくると思います。予約数や売上予測から必要人数を変える機能も考えられます。

スタッフ同士のスキルバランスまで見ることもできるでしょう。将来的には、過去のシフトデータから「この曜日、この時間帯なら何人必要か」を予測することも考えられます。ただ、最初からそこまで必要なのかは別の問題です。

まず必要なのは、今店長が3時間かけて行っている仕事の中から、システムに任せられる作業を減らしていくことです。今回のケースなら、希望提出を統一し、おおよその割り当てを自動化し、必要人数と休日数を自動確認し、最後の修正までリアルタイムでチェックする。ここまでできれば、十分に実用的なシステムになると思います。

そして、この議論を始めたときには「シフトを自動で作るにはどうすればいいか」を考えていました。しかし、最終的に見えてきたものは少し違いました。本当に自動化したいのは、シフトを作るという行為そのものではなく、店長が毎月繰り返している大量の確認作業なのではないか。

その問いが、今回のシフト自動化を考えるうえで一番重要なポイントになってきました。次の最終章では、この視点からもう一度最初の課題に戻り、「シフト自動化によって本当になくしたい仕事は何なのか」を整理して、この議論全体をまとめていきます。

章一覧へ戻る ↑

最終章

シフト自動化でなくしたいのは「シフト作成」ではなく「確認作業」なのかもしれない

ここまで、飲食店のシフト作成をどこまで自動化できるのかを考えてきました。最初の出発点は、とてもシンプルでした。約25人のスタッフがいる店舗で、1か月分のシフトを作るのにおよそ3時間かかっている。

その時間を短縮したい。そして、シフト作成時の確認ミスも減らしたい。そこから、自動化するならどこまでできるのかを一つずつ整理してきました。

平日と土日祝日では必要人数が違う。ランチとディナーでも条件が違う。ホールとキッチンでは必要な人数が違う。

スタッフによって対応できるポジションが違う。さらに、各時間帯には責任者を最低1人配置する必要がある。スタッフ側には、入りたい日、休みたい日、希望勤務時間数があります。

社員であれば、月ごとの休日数も決まっています。こうして条件を並べてみると、シフト作成は単純な表作りではないことが分かります。店長は、これらすべてを頭の中で照らし合わせながら、一人ずつ配置しているからです。

今回の議論を始めた段階では、私自身も「シフトを自動で作れたら楽になる」というイメージを持っていました。しかし、細かく分解していくと、少し違うものが見えてきました。シフト作成で負担になっているのは、スタッフの名前を表に入れる作業そのものではありません。

むしろ、その前後にある大量の確認です。この日は必要人数を満たしているか。ホールは足りているか。

キッチンは足りているか。責任者はいるか。このスタッフの休日数は合っているか。

本人の休み希望を無視していないか。勤務時間が極端に偏っていないか。一か所を修正したことで、別の日に人数不足が起きていないか。

シフトを完成させるまで、こうした確認を何度も繰り返します。だから、もし飲食店のシフト作成を効率化したいのであれば、本当に自動化すべきなのは「シフトを作ること」だけではないのかもしれません。店長が頭の中で繰り返している、この確認作業こそが自動化の中心になるのではないかと思います。

たとえば、スタッフが希望を提出する段階から考えます。これまでLINEや紙に分かれていた希望を、一つの方法に統一する。スタッフ本人が「入りたい日」「休みたい日」「希望勤務時間数」を入力する。

その情報が、そのままシフト作成に使われる。これだけで、店長がLINEと紙を見比べながら転記する作業を減らせます。次に、システムが店舗のルールを使って仮シフトを作ります。

平日のランチならホール3人、キッチン2人。土日祝日のランチならホール4人、キッチン2人。さらに、各時間帯には責任者を1人以上配置する。

休み希望は原則として尊重する。入りたい日の希望者が多ければ、決められたルールに沿って割り当てる。必要休日数や希望勤務時間数も考慮する。

ここまでをシステムが行えば、店長がゼロから一人ずつ配置する必要はなくなります。しかし、これだけではまだ完成ではありません。シフトには、どうしても誤差が残る場合があるからです。

店舗が必要とする勤務人数と、スタッフ全員に必要な休日数が、月全体できれいに一致するとは限りません。必要人数をすべて満たそうとすると、誰かの休日が足りなくなる。休日数をぴったり合わせようとすると、ある日の人数が不足する。

このような状況では、そもそもすべての条件を100%満たすシフトが存在しないことがあります。だから、完全自動化を目指すことには限界があります。ここで重要なのは、「完全に自動で完成させること」を成功条件にしないことです。

システムができるだけ条件を満たしたシフトを作り、残っている問題だけを店長に見せる。そして、最後の判断は店長がする。この形で十分なのではないかと思います。

むしろ、そのほうが現場には合っています。たとえば、ある日のランチでホールが1人不足している。システムは、それを赤く表示する。

同時に、Aさんは必要休日数より1日多く休んでいることも表示する。店長はその情報を見て、Aさんをその日に出勤させられるか判断する。Aさんが希望休を出しているなら、その希望を尊重して別の方法を考える。

特に希望がない休みなら、本人に相談できるかもしれない。この最後の部分は、数字だけでは判断できません。人間関係や本人の事情、店舗の状況などを含めて決める必要があります。

だから、ここは店長が担当すればいいと思います。逆に、人数を数える作業や休日数を数える作業まで店長がする必要はありません。そこはシステムが担当できます。

この役割分担が、今回考えた飲食店のシフト自動化の一つの答えです。システムは計算する。システムは確認する。

システムは問題のある場所を見つける。人間は判断する。そう考えると、自動化とは「人間を仕事から外すこと」ではないことが分かります。

人間がやらなくてもいい仕事を減らし、人間にしかできない仕事に集中できるようにすることです。今回のケースで言えば、店長にしかできないのは「休日数を数えること」ではありません。誰にお願いするかを決めることです。

「ホールが何人いるか」を数えることでもありません。その日の予約状況を見て、本当にその人数が必要なのかを判断することです。「責任者がいるか」を目視確認することでもありません。

責任者を誰に任せるのが適切かを考えることです。こうした仕事に店長の時間を使えるようになるのであれば、シフト自動化には大きな意味があります。そして、画面も特別なものにする必要はないと思います。

理想は、店長がこれまで見てきたExcelのようなシフト表です。スタッフの名前が縦に並び、日付が横に並ぶ。その表を直接修正できる。

ただし、裏側では必要人数、休日数、ホールとキッチンの配置、責任者の有無、希望条件などが常に計算されている。店長がAさんを休みに変更すれば、その瞬間に人数不足が表示される。別のスタッフを出勤に変えれば、その問題が解消される。

そのスタッフの休日数に新しい問題が発生すれば、それも同時に表示される。見た目は普通のシフト表ですが、これまで店長が頭の中で行っていた確認を、裏側でシステムが引き受けています。ここまでできれば、シフト作成にかかる時間はかなり短縮できる可能性があります。

今回の店舗では、現在1か月分のシフト作成におよそ3時間かかっています。最初から最後まで店長が考えるのではなく、システムが仮シフトを作り、問題点まで提示してくれるのであれば、店長は最後の調整に集中できます。3時間を完全にゼロにする必要はありません。

1時間になるだけでもいい。30分になるならさらにいい。そして同時に、人数不足や休日数、責任者配置などの確認ミスも減る。

それが実現するなら、十分に価値のある自動化だと思います。今回、飲食店のシフト自動化について考え始めたときは、「AIでシフトを自動作成する」という話になると思っていました。しかし、20回の質問を通じて条件を掘り下げてみると、最終的に行き着いたのはもっと地味で、もっと現場的な結論でした。

必要なのは、AIが店長の代わりになることではありません。店長が毎月やっている大量の計算と確認を、システムが代わりにやることです。自動化するのは判断そのものではなく、判断するための前処理です。

システムが条件を整理し、計算し、問題を見つける。そして店長は、提示された問題に対して判断する。この関係ができれば、シフト作成は「3時間かけて一から組み立てる仕事」から、「ほぼ完成しているものを確認して仕上げる仕事」に変わります。

それこそが、今回考えてきた「ほぼ完成形」の意味です。シフト作成を100%自動化する必要はありません。95%でもいい。

重要なのは、その95%が、これまで人間が時間を使っていた部分をきちんと減らしていることです。飲食店のシフト作成を自動化するとしたら、最初に考えるべき問いは、「どうすればAIにシフトを作らせられるか」

ではないのかもしれません。まず考えるべきなのは、「今、店長はシフトを作るために何を何度確認しているのか」

という問いです。その確認作業を一つずつシステムに渡していく。その先に、飲食店の現場で本当に使えるシフト自動化があるのではないかと思います。

章一覧へ戻る ↑