← 机に戻る

W-02 / SaaS

シフリー

小規模チーム向けシフト管理 SaaS — 希望から確定・カレンダー反映まで

LINE・表計算・口頭共有に分かれがちなシフト運用を、ブラウザ上の希望提出・構築・承認・確定にまとめる SaaS です。確定後は各メンバーの Google カレンダーへ反映します。業種を特定の塾に閉じず、3〜30 名規模のチーム全般を想定しています。

STATUS: SaaS / 運用中 / 2025 —

課題PROBLEM

飲食・小売・学習塾など小規模チームでは、希望をチャットで集め、表計算で組み、確定を個別連絡する流れが残りがちです。転記ミス、未提出の見落とし、確定後のカレンダー未反映が繰り返し発生していました。汎用の勤怠スイートは過剰で、現場のカレンダー文化とも噛み合いにくい、というギャップがありました。

自分の役割ROLE

プロダクトオーナー兼実装。要件定義、Web 実装、認証とマルチテナント寄りのロール設計、カレンダー連携、運用改善、障害対応まで担当。利用組織のフィードバックを取り込み、UI をカレンダー中心へ再設計しました。

制約CONSTRAINTS

  • 3〜30 名規模を主対象とし、大企業向け HR スイートとは競合しない
  • スタッフはスマートフォン前提。管理者はデスクトップ中心
  • 確定操作はカレンダー書き込みを伴うため、取り消しのコストが高い
  • マルチ組織利用を前提に、組織間のデータ境界を守る
  • 本番コードは非公開。公開面では設計判断と成果に限定する

解決策SOLUTION

組織単位で使える 3 ロール(管理者・事業主・スタッフ)の Web SaaS。希望提出 → カレンダー上での割当 → 承認 → 確定の流れを一本化し、確定時に Google カレンダーへイベントを作成。欠員補充や個別指名枠など、現場で必要な例外経路も同じ画面体系に載せています。

判断の芯 — NARRATIVE

確定は、カレンダーに書き込む操作である。

シフリーの存在意義は「確定したシフトが、スタッフのカレンダーに自分で入れ直さなくてよい」ことです。だから同期は付帯機能ではなく本筋です。

特定の一組織の内製ツールではなく、複数組織が同じプロダクトを使う SaaS として設計しています。ロールと組織の境界を先に置き、その枠の中で機能を足していきます。

実装を急ぐほど、二重確定や競合で同じ予定が二重に並ぶ事故が起きます。状態遷移と冪等性を先に設計し、AI による実装はその枠の中で回しました。

UI は一覧表から、現場が「その日を見る」カレンダー中心へ作り替えました。充足・未割当・勤務時間の偏りを同じ机上で見られるようにすることが、管理者の一日を変えます。

重要な設計判断DECISIONS

NOTE 01 — 主判断

確定とカレンダー同期を一体の操作にする

確定だけしてカレンダーが空、は運用事故です。同期の成否を日詳細で見える化し、要再認証なども画面上で扱えるようにしています。

NOTE 02

組織とロールを最初から分ける

単一顧客の内製ではなく SaaS として伸ばす前提です。管理者・事業主・スタッフの権限と、組織ごとのデータを混ぜない境界を先に固定しました。

NOTE 03

承認ワークフローを状態として持つ

下書き・承認待ち・承認済み・確定を明示し、確定の二重実行を防ぎます。取り消しの重い操作ほど、状態を曖昧にしない方が安全です。

NOTE 04

カレンダー UI を管理者の主戦場にする

表計算的な一覧より、月・週・日の粒度で「誰が足りないか」を見る方が現場の判断に近い。サイドバーや勤務時間ドックもその前提で再配置しました。

NOTE 05

欠員補充は即時性を優先する

補充は「今日入れる人をすぐ見つける」場面です。候補抽出と応答の摩擦を下げ、先着で枠を埋める設計にしています。

体験への効き方FOR WHOM

管理者

希望を見ながらカレンダー上で割当し、充足と勤務時間の偏りを同じ画面で確認できます。

スタッフ

希望の提出と確定シフトの確認がスマホで完結し、確定後は自分のカレンダーに載ります。

事業主

承認の要否に応じて公開前の確認を挟めます。

画面SCREENS

シフト構築画面。カレンダーと下端の勤務時間ドックが開いた状態
図1 — シフト構築。下端の勤務時間ドック(ホバーで展開する集計)
運用ダッシュボード。期間の要対応・進行中・完了を一覧する
図2 — ダッシュボード。組織全体のシフト運用を俯瞰
確定カレンダーの日詳細。カレンダー同期の成否が表示される
図3 — 確定日の詳細。同期済み/要再認証を画面で扱う

MOBILE

スタッフ向けホーム。希望提出状況・欠員依頼・次の出勤
図4 — スタッフ「今やること」。提出状況と欠員依頼
スタッフ向けのシフト希望提出画面
図5 — 希望提出。可/不可と時間をその日ごとに調整
スタッフ向けの確定シフト画面
図6 — 確定シフト。全員表示とカレンダー同期状況

結果RESULTS

形態

マルチ組織向けシフト管理 SaaS

ロール

管理者・事業主・スタッフ

連携

確定シフトの Google カレンダー反映

振り返りRETROSPECTIVE

サーバーレス環境では、カレンダー同期や通知のような非同期処理が途中で止まったときに気付きにくい場面がありました。同期状態を日単位で見える化し、再認証が必要なケースを画面に出すことで、「裏で失敗している」状態を運用者が拾えるようにしています。内製ツール発想のままでは組織横断の境界が曖昧になる、という点も SaaS 化の学びです。

いまの位置IN OPERATION

自社プロダクトとして運用中。ポートフォリオでは設計判断と画面の一部だけを示し、本番コードは非公開です。

TECH

Python / Flask ・ PostgreSQL ・ Google Calendar API ・ OAuth ・ PWA ・ Vercel ・ Claude Code

開発記録

W-02 / SaaSシフリー小規模チーム向けシフト SaaS← 机に戻る